...
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)-
- 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.)
...