Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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:
    1. Apache Felix (http://felix.apache.org/)
    2. Eclipse Equinox (http://www.eclipse.org/equinox/)
    3. Knoplerfish (http://www.knopflerfish.org/)
  • the implementations are (for the most part) interchangeable and are free
  • there are several tutorials for OSGi, including:
    1. How to get Started with OSGi (http://www.osgi.org/About/HowOSGi)
    2. Apache Felix OSGi Tutorial (http://felix.apache.org/site/apache-felix-osgi-tutorial.html)
    3. OSGi for Beginners (http://www.theserverside.com/news/1363825/OSGi-for-Beginners)
    4. 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.)

...