under construction
Introduction
Plugins
- Plugins are software programs that can be dynamically added to existing programs to add / enhance the functionality.
- They are also called Add-ons or Bundles (the OSGi term).
- You may have seen plugins in the software that you use, Internet browsers, text/graphics editors, games, etc.
- Examples include Adobe Flash and Adobe Reader for browsers, and countless Photoshop filters.
- Users can search for plugins and choose ones that address their needs.
- The user can add the plugin (download and install) whenever they want.
- They can remove a plugin if they no longer need it.
- The plugins can also be updated dynamically when the author(s) make changes.
OSGi
- 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. - 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
- 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.)
...