How do OSGi bundles differ from regular Java Jar files?
OSGi bundles are an extension of Java JAR files, with additional metadata in the manifest file. This metadata includes bundle name, version, and dependencies on other bundles or packages. It also specifies which packages within the bundle are to be exposed as public API and which ones are private. Bundles can be installed, started, stopped, updated, and uninstalled without shutting down the JVM, providing dynamic module system capabilities not present in regular JARs.