Page tree

Versions Compared

Key

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

...

This module is an API module which contains most of the service interfaces which allow hooks into the IGB platform.  The Weblinks modules implements several of the interfaces contained in this module.  This will be discussed in more detail below, including the interface (IgbMenuItemProvider)the Web Links moduel uses to add a menu item to IGB's Tools menu. The following sections will discuss this in more detail.

com.affymetrix:igbSwingExt

...

This module contains many custom swing components which are commonly used throughout the project.  In some cases the interfaces contained in the igb-services modules require the use of some of the custom swing components contained in this module.  We do this because we often have the need to add additional functions to basic swing components (e.g. weight for Menu Items to allow sorting in the context of a pluggable system).

com.google.guava:guava

Code Block
languagexml
<dependency>
   <groupId>com.google.guava</groupId>
   <artifactId>guava</artifactId>
   <scope>provided</scope>
</dependency> 

A very useful utility module which is used extensively in our project.  We highly recommend you take a look at the content of this project (see https://code.google.com/p/guava-libraries/), and occasionally even demmand in our interfaces you leverage some of the collection data structures from Guava (e.g. Multimap). You will thank us later!

org.slf4j:slf4j-api

Code Block
languagexml
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <scope>provided</scope>
</dependency>

...

This is a special tag which instructs the felix bundle plugin to scan our modules classes for the Declarative Service annotations and generate the required service descriptor meta-data for OSGi.  For more information on this topic see http://wiki.osgi.org/wiki/Service-Component and http://www.aqute.biz/Bnd/Components

Weblinks Use of IGB-Services

IgbService

...

How the Web Links module uses IGB extension points

IGB Services (com.affymetrix:igb-services)

Igb Services is a collection of useful utilities provided by IGB to modules for reference.  In the case of the Weblinks Web Links module, this service is used to register itself as a "ContextualPopupListener" and for little else.  Its worth pointing out that this would not be necessary if the ContextualPopupListener instances were tracked using the OSGi service registry, but since we cannot migrate the entire project to OSGi services all at once this more manual listener registration mechanism is still in use at this location. 

...