Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Download and unzip the template file [^SamplePlugin.zip]

Copy the template folder to IGB source plugins folder


Update files:

1. Change the plugin name from 'SamplePlug' to your customized name such as 'MyPlugin' (your plugin name)

2. Change the package from 'com.affymetrix.igb.sampleplugin' to your package name i.e. 'com.myorg.myplugin'.

If you IDE does not support create folder directly you can do this from your Finder (MacOS) or Windows Explorer, the directory is IGB_HOME/plugins/MyPlug/src

3. Expand src from your IDE until you see the Activator.java and SamplePlugin.java, update the 'SamplePlugin.java' to your plugin name and change all the necessary package declaration, class name and constructor(s).

4. Update source code to build your own functions

The sample code is to implement an annotation operation, so in the Activator.java it registers service for Alignment, Annotation and ProbeSet

Activator.java
@Override
protected ServiceRegistration<?>\[\] registerService(IGBService igbService) throws Exception {
return new ServiceRegistration\[\] {
bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Alignment), null),
bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Annotation), null),
bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.ProbeSet), null)
};

    } @Override protected ServiceRegistration<?>[] registerService(IGBService igbService) throws Exception { return new ServiceRegistration[]

Unknown macro: { bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Alignment), null), bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Annotation), null), bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.ProbeSet), null) }

;
    }

For more detail refer to the Extension Points section

4. Update MAINFEST.BASE

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: MyPlugin
Bundle-SymbolicName: com.myorg.myplugin.MyPlugin
Bundle-Version: 0.0.9
Bundle-Activator: com.myorg.myplugin.Activator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Description: Plugin to allow the user to create a plugin as template
Bundle-DocURL: http://wiki.transvar.orghttp://wiki.transvar.org
Import-Package: com.affymetrix.common;version="[ (appVersion), (appVersion)]",
 com.affymetrix.genometryImpl,
 com.affymetrix.genometryImpl.operator,
 com.affymetrix.genometryImpl.symmetry,
 com.affymetrix.genometryImpl.parsers,
 com.affymetrix.igb.osgi.service,
 org.osgi.framework;version="1.5.0",
 org.osgi.util.tracker;version="1.4.0"

Bundle-Name - change to your plugin name i.e. MyPlugin

Bundle-SymbolicName - change to your package path i.e. com.myorg.myplugin.MyPlugin

Bundle-Version - change to your plugin version

Bundle-Activation - change to your Activator path i.e. com.myorg.myplugin.Activator

Import-Package - include all the classes your are using in your source code

5. Update ant.properties

name=MyPlugin
project=MyPlugin
classpath=${igb_service}/build:${window_service}/build:${common}/build:${igb}/build:${genometry}/build:${genoviz}/build:${osgi.impl}
plugin-jar=true

Change the 'name' and 'project' to your plugin name i.e. MyPlugin

Update the 'classpath' with necessary path, refer to project build.xml for the location annotations.

6. Update project's build.properties

On the line 'not.include.bundles=', delete all the existing values and add your plugin name:

not.include.bundles=MyPlugin

Clean and Build IGB

Delete files in IGB_HOME/plugins/ext

In command line, go to IGB_HOME, run command

ant externalBundles

Enter your svn password as necessary

Move the generated files in IGB_HOME/plugins/ext (MyPlugin.jar and repository.xml) to the folder (local or remote HTTP server) where you want your plugin site on
Make sure you are cut from IGB_HOME/plugins/ext (or delete it after copying)

Run IGB -> "Plug-ins' tab

Click 'Repositories...' button to open the Plugin configuration panel

Enter the name you want to name, this can be any name you like since it will only show in the plugin site list

Enter the URL for your remote server such as http://www.mysite.com/my_plugin_folder

OR

Click '...' button to select the folder in local machine

Click 'Add Repository' button and now you should see your plugin site is added into the site list, also your plugin MyPlugin is showing in the Plug-ins tab in IGB after close the configuration panel

  • No labels