Page tree

Versions Compared

Key

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

...

Download

...

and

...

unzip

...

the

...

template file SamplePlugin.zip

Copy the template folder to IGB source plugins folder

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

...

Image Added

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

Code Block
titleActivator.java
borderStylesolid
@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)
	};

}
{code}
&nbsp; &nbsp; } @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) };
&nbsp; &nbsp; }

For more detail refer to the [Extension Points|http://wiki.transvar.org/confluence/display/igbdevelopers/Bundles+and+Plug-Ins#BundlesandPlug-Ins-ExtensionPoints] section


4. Update MAINFEST.BASE
{panel}

}

For more detail refer to the Extension Points section

4. Update MAINFEST.BASE

Panel

Wiki Markup
Manifest-Version: 1.0
Bundle-ManifestVersion: 2

{

<span style="color: #ff0000

}Bundle-Name{color}{color:#000000}: MyPlugin{color} {color:#ff0000}Bundle-SymbolicName{color}{color:#000000}

">Bundle-Name</span><span style="color: #000000">: MyPlugin</span>
<span style="color: #ff0000">Bundle-SymbolicName</span><span style="color: #000000">: com.myorg.myplugin.

MyPlugin{color} {

MyPlugin</span>
<span style="color: #ff0000

}Bundle-Version{color}{color:#000000}

">Bundle-Version</span><span style="color: #000000">: 0.0.

9{color} {

9</span>
<span style="color: #ff0000

}Bundle-Activator{color}{color:#000000}:{color} {color:#000000}com.myorg.myplugin{color}{color:#000000}.Activator{color} {color:#000000}Bundle-ActivationPolicy: lazy{color} {color:#000000}Bundle

">Bundle-Activator</span><span style="color: #000000">:</span> <span style="color: #000000">com.myorg.myplugin</span><span style="color: #000000">.Activator</span>
<span style="color: #000000">Bundle-ActivationPolicy: lazy</span>
<span style="color: #000000">Bundle-RequiredExecutionEnvironment: JavaSE-1.

6{color} {

6</span>
<span style="color: #000000

}Bundle

">Bundle-Description: Plugin to allow the user to create a plugin as 

template{color}

template</span>
Bundle-DocURL: [http://wiki.transvar.org]

{

<span style="color:

#ff0000}[

 #ff0000"><a href="http://wiki.transvar.org

]{color} {color:#ff0000}Import-Package{color}

">http://wiki.transvar.org</a></span>
<span style="color: #ff0000">Import-Package</span>: com.affymetrix.common;version="\[&nbsp;(appVersion),&nbsp;(appVersion)\]",
&nbsp;com.affymetrix.genometryImpl,
&nbsp;com.affymetrix.genometryImpl.operator,
&nbsp;com.affymetrix.genometryImpl.symmetry,
&nbsp;com.affymetrix.genometryImpl.parsers,
&nbsp;com.affymetrix.igb.osgi.service,
&nbsp;org.osgi.framework;version="1.5.0",
&nbsp;org.osgi.util.tracker;version="1.4.0"

{panel}

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

...

Panel

name=MyPlugin
project=MyPlugin
classpath=${igb_service

\

}/build:$

\

{window_service

\

}/build:$

\

{common

\

}/build:$

\

{igb

\

}/build:$

\

{genometry

\

}/build:$

\

{genoviz

\

}/build:$

\

{osgi.impl

\}{color} {color:#000000}

}
plugin-jar=true

{color} {panel} Change the

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:

...

}
Panel

not.include.bundles=MyPlugin

{panel} Clean and Build IGB Delete files in

Clean and Build IGB

Delete files in IGB_HOME/plugins/ext

...

In

...

command

...

line,

...

go

...

to

...

IGB_HOME,

...

run

...

command

...

}
Panel

ant

externalBundles {panel} Enter your svn password as necessary Move the generated files in

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