My favorites | Sign in
Project Home Wiki Issues Source
Search
for
INQLE_Developer_Guide  
Describes how to contribute code to INQLE
Featured
Updated Mar 18, 2010 by drdono...@gmail.com

Developing INQLE Plugins

The easiest way to contribute to INQLE is to provide a plugin for INQLE. A plugin contains 1 or more extensions or extension types. See Plugins_for_INQLE for the type of extensions you can contribute. Here is a discussion on Eclipse Equinox extensions and extension points.

To develop INQLE plugins, you must package your files or code in a folder or a jar file, and place it in your INQLE "plugins" folder. On startup, INQLE will recognize your plugin and use it!

All plugin folders must contain these 2 things.

  1. a file called plugin.xml, which describes all extensions and extension points that it contributes. A plugin folder may contribute multiple extensions and/or extension points.
  2. a folder called META-INF, which contains a file called MANIFEST.MF. MANIFEST.MF contains information about your plugin.

So a at a minimum, a plugin might look like this

my_plugin
 |-plugins.xml
 |-META_INF
    |-MANIFEST.MF

Developing INQLE Java Plugins

If your plugin contains Java code (most plugins do), you will need to set up a development environment, which can make use of the Java code within INQLE. We recommend you use Eclipse. The INQLE javadoc is provided for download here.

If you intend to contribute to the INQLE user interface (most plugins do), then you will need to configure your Eclipse to use the Eclipse RAP target platform. This is described here.

To create your plugin in Eclipse, go to File -> New -> Project... -> Plug-In Project Name your project something like "org.myorg.myapp.myname". You can keep the other settings default:

  • Make sure that "This plug-in is targeted to run with - Eclipse" version 3.3 or higher.
  • If your plugin will need code to run at startup and shutdown, then you will need an activator.
  • "This plug-in will make contributions to the UI" should be deselected.
  • Rich Client Application: yes

You will need to add the INQLE jar files (and any other third party bundles you need) to your Eclipse target platform, so that these files are available when you compile your Java code. In Eclipse, go to Window -> Preferences -> Plug-in Developement -> Target Platform Click Add... Select File System, then Next. Click Add... and navigate to the INQLE plugins folder on your hard drive. Select this folder and and click OK. Now the inqle Java classes will be available to your projects.

You will need to add the appropriate bundles to your project. Within your Eclipse plug-in project, open your MANIFEST.MF file and go to the dependencies tab. Here you can add any bundle which is available to Eclipse. You can add other, 3rd party, bundles here as well.

When you are ready to export your project, right click it in Eclipse and select Export... -> Plug-in Development -> Deployable Plug-ins and Fragments and save to your inqle plugins folder.

Developing on the INQLE Core

Writing code for core INQLE requires expertise in ~2 or more of these areas:

  • Java
  • Equinox OSGi
  • Eclipse RCP or RAP
  • Jena RDF
Please contact me (David Donohue) if you are ready to do this.

Scenerios and Use Cases for Developing INQLE Plugins

See Scenarios and Use Cases for some example ideas of what a contributor might want to build and how she would do it.

Setting up your INQLE development environment

To work on the INQLE core code, you can follow these steps.

(1) Download Eclipse for RCP/Plug-in Developers, version 3.5 (Galileo). from http://www.eclipse.org/downloads/

(2) Add the Eclipse RAP plugin, and set up your Eclipse to use RAP as the target platform. This is described here.

(3) Add the Subclipse plugin to Eclipse, as described here.

(4) Download the latest team project file from here http://inqle.org/downloads/ It is of the format:

inqle_team_project_set_x.x.x.psf

(5) In Eclipse, go to File -> Import -> Team -> Team Project Set -> Next Select the team project set file you downloaded, and click Finish.

Each of the bundles that comprise INQLE will be checked out as a separate Eclipse project. Your development environment should now be ready to go!

Building and Deploying INQLE

This is the way to do a full build of INQLE. This build will erase any INQLE files that might have existed before, such as databases you might have previously created. To deploy INQLE, right click the InqleFeature project. Next, select "Export...", then under "Plug-in Development", select "Deployable features". Select the directory of your choice to export to. Note that under the Options tab, you should uncheck this box: "Package as individual jar archives"

Next you start INQLE, by running inqle-console.sh (Mac, Linux) or inqle-console.bat (Windows).

Testing Code and Deploying Individual Bundle(s)

If you are developing on some INQLE bundles, and wish to do a quicker deploy, you can select in Eclipse Packages View, the bundle you wish to export. Select Export... -> Deployable Plug-ins and fragments -> Next -> Select the bundle(s) to export, and ensure the "Directory" is set to the root of your INQLE folder, e.g. C:\my_apps\INQLE. Click Finish. The bundle(s) will be compiled and placed in the proper directory ("plugins") within your INQLE application folder. Next you can stop and start INQLE, by closing the INQLE console, then run inqle-console.sh (Mac, Linux) or inqle-console.bat (Windows).

Comment by rsman...@gmail.com, Sep 12, 2008

David, i followed the instructions for checking out and installing the INQLE bundles, however when i try to deploy it from eclipse i keep getting this error regarding the org.eclipse.equinox.http_0.0.0. plugin: Problems during export

Unable to find plug-in: org.eclipse.equinox.http_0.0.0. Please check the error log for more details.
any ideas?

Comment by project member drdono...@gmail.com, Sep 15, 2008

Nice find, Roger! I believe this bundle is not needed (here is where I learned how to deploy RAP as a standalone Jetty server http://rapblog.innoopract.com/2007/11/rap-deployment-part-1-deploying-your.html ). I removed this bundle and committed to subversion head.


Sign in to add a comment
Powered by Google Project Hosting