Apromore is using a Plug-in Framework to keep its architecture as modular as possible and to allow for flexible extension of its core features. The Plug-in Framework is based on some basic principles, some APIs and the industry standard OSGi. To use OSGi in the most convenient way, we are currently using the following technologies/tools under the "hood":

If you don't know anything about OSGi, DON'T PANIC! Development of a Plugin requires just little knowledge of the underlying technologies.

Architecture

As described on the official website Apromore is layered into the three tiers: Presentation, Logic, Data. The Plug-in Framework sits directly under the Repository Manager and provides the "Plug-in" capabilities for the Toolbox and the Canonizer.

Development

The following information should enable your to develop your own plug-in against one of the pre-defined plug-in interfaces of Apromore. If your want to know more about the plug-in framework of Apromore, add a new plug-in interface to Apromore or struggle with adding a new plug-in, you may want to read this Master's thesis, Chapter 4 contains an in-depth description of Apromore's plug-in framework. Especially Section 4.3.2 is a MUST READ!

Prerequisites

So before starting plugin development you should do the following:

Now try to build Apromore as described in the included README file. Check if Eclipse Virgo is running after calling "ant copy-virgo start-virgo":

http://localhost:9000/portal/

You should see a similar interface as in the demo version running here:

http://apromore.qut.edu.au/portal/

If Apromore does not start, then try to start Eclipse Virgo manually by using the start script located in the 'bin' directory of Eclipse Virgo:

/Apromore-Deploy/virgo-tomcat-server-3.6.0.RELEASE/bin

If it still does not work, there may be more information to debug the issue located in the 'log' directory of Eclipse Virgo:

/Apromore-Deploy/virgo-tomcat-server-3.6.0.RELEASE/serviceability/logs

Choosing a Plug-in API

Next you need to decide against what kind of Plug-in API you want to develop. Currently there are the following Plug-in APIs available:

Plug-in development takes place in the 'Apromore-Plugins' directory of Apromore. For an up-to-date list of Plug-in APIs you should always check out the available Maven sub-modules in this directory. If there is not yet a Plug-in API available that fulfills your need, then you need to develop a new Plug-in API together with our core development team.

Further Information

Java Docs

  • Plugin API JavaDoc (coming soon)
  • Canoniser API JavaDoc (coming soon)

External Tutorials / FAQs

OSGi

Maven Bundle Plug-in

Eclipse Virgo

 

Navigation