Page tree

Versions Compared

Key

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

...

Ann's note: the formatting below is weird. Did you copy and paste from an email message?

Ann's note: Please explain how the fields in the manifest map onto what user's see in the Plug-Ins tab.

If you look at the Plug-ins tab, you will see the Bundle-SymbolicName under the Name column, the Bundle-Description under the Description column, and the Bundle-Version under the Version column. & If the Bundle-DocURL is there, the Name cell will have a blue info icon that links to this URL.

  • Import-Package and Require-Bundle don't need to overlap, you can specify a requirement in one or the other. To have a multi line header, start the continuation line after a blank in column 1.
  • Put a blank line at the end of the manifest.mf file - due to a bug in felix.
  • The igb, genometry and genoviz projects can by accessed as bundles.
  • If a class/method is needed from igb/genometry/genoviz, it must be public, and the package must be exported in the manifest.mf Export-Package list. Ann's note: manifest.mf of what?
  • If you want to add a tab window (Ann's note: Do you mean panel or window, because they can be opened as new windows?) as a bundle, there is a helper abstract class, com.affymetrix.igb.window.service.WindowActivator, that you can extend.
  • If you need access to other bundles (like IGBService), you will not be sure when the
    bundle is available. (Ann's note: Please explain more) For Services, like IGBService and WindowService, you can use a ServiceTracker to be notified when the required service is available - see WindowActivator
    for an example.

To create plug-ins using eclipse - a Quick-Start Guide

Eclipse (http://www.eclipse.org) makes it a lot easier to develop bundles. You can create a new project
as a plug in project, and it will give you wizards, etc. for development. see:http://www.vogella.de/articles/OSGi/article.html
(using eclipse Helios)-

  1. check out IGB from https://genoviz.svn.sourceforge.net/svnroot/genoviz/trunk
      into a new project in eclipse
    - make a new IGB_HOME environment variable to point to the IGB project (Ann's Note: What directory should it point to in the checked out code - maybe give an example?)
    - open a command prompt in IGB_HOME, and do an "ant clean" and "ant jar"
    - in eclipse, project explorer, right click the IGB project and select "refresh"
    - in eclipse, project explorer, right click on open space, and select "Import..."
      Select "Plug-ins and Fragments" under "Plug-in Development", click the "Next >" button
         under "Import From", select "Directory:",
         under "Plug-ins and Fragments to Import" select "Select from all plug-ins and Fragments",
         under "Import As" select "Binary Projects"
         for "Directory:", click the "Browse..." button and select the IGB_HOME/ext, click the "OK" button
         click the "Next >" button
      under "Plug-ins and Fragments Found:", select affx_fusion, colt, freehep, image4j, jlfgr, picard, and sam
         click the "Add -->" button to add these all to "Plug-ins and Fragments to Import:", click the "Finish" button
    - Do the following for the directories under IGB_HOME, genometryImpl, genoviz_sdk, igb, plugins/igb_service, plugins/window_service
       in eclipse, project explorer, right click on open space, and select "Import..."
       Select "Existing Projects into Workspace" under "General", click the "Next >" button
       click "Select root directory:" and click the "Browse..." button on the right
       select the project under IGB_HOME, and click "OK"
       click "Finish"

Ann's note: Please add a tutorial explaining how to develop a simple plug-in. Your graph plug-in is probably a good place to start. We need a very simple but cool example that relies on a stable part of the API so that the tutorial doesn't get out of date.)

...