...
- The java standard for Plugins is OSGi (http://www.osgi.org), this is what IGB (written in java) uses.
- the OSGi term for a Plugin is Bundle, they mean the same thing.
- an OSGi bundle is a jar file. It must have a MANIFEST.MF file with the OSGi headers (see below).
- an OSGi bundle can (usually will) have a special java class called an Activator. This class must extend
org.osgi.framework.BundleActivator
, and implement the start() and stop() method. The activator class is specified in the Bundle-Activator bundle header (see below). These methods are called when the bundle is started and stopped. - when a program is running with OSGi, the OSGi framework dynamically handles installing / uninstalling,
activating (starting), deactivating (stopping), and upgrading bundles. - There are several implementations of OSGi, including:
- Apache Felix (http://felix.apache.org/)
- Eclipse Equinox (http://www.eclipse.org/equinox/)
- Knoplerfish (http://www.knopflerfish.org/)
- the implementations are (for the most part) interchangeable and are free
- the implementations allow the user to run OSGi from a command line tool or to start it within a program
- IGB starts the felix implementation from with the com.affymetrix.igb.main.OSGiHandler class, but IGB can
be run using the Felix command line tool by runningant gogo
- there are several tutorials for OSGi, including:
- How to get Started with OSGi (http://www.osgi.org/About/HowOSGi)
- Apache Felix OSGi Tutorial (http://felix.apache.org/site/apache-felix-osgi-tutorial.html)
- OSGi for Beginners (http://www.theserverside.com/news/1363825/OSGi-for-Beginners)
- OSGi with Eclipse Equinox - Tutorial (http://www.vogella.de/articles/OSGi/article.html)
- Explain:
- What is a bundle? Give an example.
- What is OSGi and how does it work?
- Explain what an Activator is.
- Provide references to tutorials developers new to the concept of bundles can read to get familiar with the topic.
- Explain the concept of extension point.
- Explain the advantages of bundles, plug-ins. (Ann can write this part after talking more with Michael and Lance.)
...