Difference between revisions of "CompileProtege4InEclipse"

From Protege Wiki
Jump to: navigation, search
(Creating a Runnable for OS X: (checkpoint save))
Line 52: Line 52:
 
== Creating a Runnable for OS X ==
 
== Creating a Runnable for OS X ==
  
Mac users who are willing to go to the bleeding edge should look at the [http://www.eclipse.org/swt/cocoaport.php SWT Cocoa Port]This is probably the way to go because then the Mac will work just like the other operating systems. This version will allow you to run protege  4 as an OSGi runable.  When creating the runnable, remove all the program arguments except for "-console".  Many thanks to Tania for finding this.
+
You would really rather not be reading these instructions. But Apple's java has always been an issue for several reasonsHere are some workarounds that I have not yet been able to try. (I am on a powerbook and none of the ideas that follow apply yet.) It is possible
 +
that one of these workarounds might enable you to follow the
 +
directions for linux or windows above.
  
Otherwise, OS X users have to work a bit harder to get a working runnableI have figured out the following workaround but am looking for a better way.
+
First, make sure you are using the latest version of eclipseThe
First, checkout the ide project as a general project from svn at http://smi-protege.stanford.edu/repos/protege/protege4/small-projects/ide/trunk. In the following instructions I assume that it is checked out as the project "ide". Now the runnable can be created with the following steps:
+
eclipse folk have marked the relevant bug as closed so all issues fall
# Click "Run -> Debug Configurations"A dialog box will come up.
+
to the Cupertino folk. In addition, try using Apple's latest Java 6.
# Select "Java Application" and click the "New" button at the top.
+
It may be that this version works fine with the eclipse OSGi
# Change the name of the "New_Configuration" to something more meaningful.
+
emulationFinally, if none of the above work, you could try
# Select the "Main" tab and
+
openjdk through [[reference macports]]. This is promising and I
## Change the "Main Class" to be org.eclipse.core.runtime.adaptor.EclipseStarter.
+
expect a version of openjdk will be available for my machine in the
#Select the "Arguments" tab and
+
very near future. Any information you can provide about whether any
## Set the working directory to ${workspace_loc:ide}.
+
of the above steps work would be appreciated.
##Add the following -D options to the "VM arguments" box:
 
### -Dosgi.clean=true
 
### -Dorg.protege.plugin.extra.0=${workspace_loc:com.owldl.pellet}
 
### -Dorg.protege.plugin.extra.1=${workspace_loc:org.coode.dlquery}
 
### -Dorg.protege.plugin.extra.2=${workspace_loc:org.coode.owlviz}
 
### -Dorg.protege.plugin.extra.3=${workspace_loc:org.protege.editor.owl}
 
### -Dorg.protege.plugin.extra.4=${workspace_loc:org.semanticweb.owl.owlapi}
 
# Select the "Classpath" tab and
 
## Add ide/org.eclipse.osgi.jar as a jar to the class path.
 
# Click "Apply" to save your changes
 
# Click "Debug" to run the runnable.
 
  
At this point, mac users can create Eclipse Plug-in projects to create
+
Ok - if you get here we will have to resort to using ant to deploy
their own plug-ins. In order to run these plugins the develoeper can add a new org.protege.plugin.extra line and create a staged location for the plugin as described in [[CompileProtege4PluginInEclipseOneProject#Running_the_Plugin]].
+
your plugin to a Protege distribution.  This method will require that
 +
you download a Protege 4 distribution.  Since Protege 4.1 is not quite
 +
released yet, I have included a Protege 4.1 distribution [reference here].
 +
I will describe this in two steps.  First I will describe how you run
 +
the Protege distribution in eclipse and then I will describe how you
 +
compile your plugin into the distribution.
 +
 
 +
=== Step 1: Running Protege from Eclipse ===
 +
 
 +
First obtain a Protege.app distribution.  These will be included with
 +
the releases but before the release is out you can obtain one
 +
[http://smi-protege/protege4/... here].  Place this application in
 +
some memorable location.
 +
 
 +
Click on debug configurations.
 +
[[File: Protege41InEclipseDebugConfigurations.png]]
 +
 
 +
Make a runnable (give it any name you like) and set the main class to
 +
be org.apache.felix.main.Main.
 +
[[File: Protege41InEclipseRunnableMainTab.png]]
 +
 
 +
In the arguments tab set the vm arguments as follows:
 +
<pre>
 +
-Dfelix.config.properties=file:config.properties
 +
-Dlog4j.configuration=file:log4j.xml
 +
-Dorg.protege.plugin.dir=Java/plugins
 +
</pre>
 +
and set the working directory to be the Contents/Resources directory
 +
underneath the Protege.app distribution (use the "File  System..." button).
 +
[img Protege41InEclipseRunnableArgsTab.png]
 +
 
 +
Finally, nearly home now!, in the class path tab remove any existing
 +
class path entries under the user entries and add, using the external
 +
jars button, crimson.jar and felix.jar.  Both of these are found in
 +
the Contents/Resources/Java directory underneath the Protege.app distribution.
 +
 
 +
[img Protege41InEclipseRunnableClassPathTab.png]
 +
 
 +
=== Step 2: Including your runnable in the distrubtion ===
 +
 
 +
So this is all fine.  But presumably the reason that you are following
 +
these instructions is that you are building some plugin and would like
 +
to be able to debug its operation.  To do this you will need to have
 +
some way of running and debugging Protege with the plugin installed.
 +
To follow the instructions that follow you will need an ant build
 +
file.  Fortunately this is easy, we have a
 +
[http://smi-protege.stanford.edu/repos/protege/protege4/protege-base/template-build.xml
 +
template] which usually requires only trivial modification.  There is
 +
some discussion of this [[Provege...here]]. This script has undergone
 +
some modifications so it is important to be using the version of this
 +
script that has the build.properties line in it (16th line of the
 +
template just below the property environment declaration in it).
 +
 
 +
So the first thing is to add a menu item in eclipse that will install
 +
your plugin in the distribution.
 +
 
 +
To Do:
 +
Fix the location of the manifest in the example plugin directions.
 +
Check the locations of the files in anatomy to be sure that they
 +
Add a Protege 4.0 .app file.

Revision as of 10:26, December 2, 2009

Setup and run the Protege 4 OWL editor from Eclipse

This document is in progress. While it is not fully documented yet it does represent the recommended way to set up a protege 4 environment in eclipse. If this documentation is insufficient the fall back is to go to the generic ide instructions.

  1. Download the protege plug-ins with linked source. Currently for Protege 4.0, these can be found here (version information is here). The Protege 4.1 version can be found here and we will shortly deploy scripts that build these files on a regular basis (nightly or weekly).

It is also possible to follow all of these steps by using the plugins from any installation of Protege 4 but these plugins-ins will not include the source. The minimal set of plugins needed is

    1. org.protege.common.jar
    2. org.protege.editor.core.application.jar
    3. org.protege.editor.owl.jar
    4. org.semanticweb.owl.owlapi.jar
  1. Create a new eclipse workspace
  2. Click "File -> Import..." This will bring up a dialog box.
  3. Choose "Plug-in Development -> Plug-ins and Fragments" and click "Next". This will bring up a dialog box.
  4. Unselect "The target platform (as specified in the Preferences)"
  5. Click the browse button and browse to the directory where you downloaded the protege plug-ins with linked source
  6. Don't worry about the warning at the top of the dialog box. The "Plug-ins and Fragments to Import" box should say "Select from all plug-ins..." and the "Import As" box should say "Binary projects".
  7. Click next bringing up a new dialog box.
  8. Click "Add All".
  9. Click "Finish"

This is a milestone. You should now see the Protege bundles as imported Plug-in projects.

Creating a Runnable for Windows or Linux

We now need to create a runnable. As far as I can tell Mac users cannot get the following steps to work. It is possible that this does work on intel macs but I have not been able to test this. There are claims made on the web saying that this issue is solved. SwingSwtProblems describes the results of my current experiments on this issue. Mac users need to use an alternative method.

User Remark: The following with Eclipse-3.5-cocoa for MacOSX10.5.8 works fine for me, just 1 problem: The placement of views always crashes protege.

Windows and Linux users now do the following to make a runnable.

  1. Click "Run -> Debug Configurations". This will bring up a dialog box.
  2. Select "OSGi Framework" and click the "New" Icon at the top.
  3. Name the "New_Configuration" something useful like "Protege".
  4. In the Bundles box, scroll down to where it says "Target Platform". Unselect all the bundles from the target platform (one click to the left of "Target Platform")
  5. Click on "Add Required Bundles".
  6. Click "Apply" to save your changes.
  7. Click "Debug" and Protege should come up.

Windows and Linux users should now be able to easily use eclipse to develop their plug-ins. To start a new bundle just create a new Eclipse Plug-in project. These projects will automatically get attached to the Protege runnable.

Creating a Runnable for OS X

You would really rather not be reading these instructions. But Apple's java has always been an issue for several reasons. Here are some workarounds that I have not yet been able to try. (I am on a powerbook and none of the ideas that follow apply yet.) It is possible that one of these workarounds might enable you to follow the directions for linux or windows above.

First, make sure you are using the latest version of eclipse. The eclipse folk have marked the relevant bug as closed so all issues fall to the Cupertino folk. In addition, try using Apple's latest Java 6. It may be that this version works fine with the eclipse OSGi emulation. Finally, if none of the above work, you could try openjdk through reference macports. This is promising and I expect a version of openjdk will be available for my machine in the very near future. Any information you can provide about whether any of the above steps work would be appreciated.

Ok - if you get here we will have to resort to using ant to deploy your plugin to a Protege distribution. This method will require that you download a Protege 4 distribution. Since Protege 4.1 is not quite released yet, I have included a Protege 4.1 distribution [reference here]. I will describe this in two steps. First I will describe how you run the Protege distribution in eclipse and then I will describe how you compile your plugin into the distribution.

Step 1: Running Protege from Eclipse

First obtain a Protege.app distribution. These will be included with the releases but before the release is out you can obtain one here. Place this application in some memorable location.

Click on debug configurations. Protege41InEclipseDebugConfigurations.png

Make a runnable (give it any name you like) and set the main class to be org.apache.felix.main.Main. Protege41InEclipseRunnableMainTab.png

In the arguments tab set the vm arguments as follows:

-Dfelix.config.properties=file:config.properties
-Dlog4j.configuration=file:log4j.xml
-Dorg.protege.plugin.dir=Java/plugins

and set the working directory to be the Contents/Resources directory underneath the Protege.app distribution (use the "File System..." button). [img Protege41InEclipseRunnableArgsTab.png]

Finally, nearly home now!, in the class path tab remove any existing class path entries under the user entries and add, using the external jars button, crimson.jar and felix.jar. Both of these are found in the Contents/Resources/Java directory underneath the Protege.app distribution.

[img Protege41InEclipseRunnableClassPathTab.png]

Step 2: Including your runnable in the distrubtion

So this is all fine. But presumably the reason that you are following these instructions is that you are building some plugin and would like to be able to debug its operation. To do this you will need to have some way of running and debugging Protege with the plugin installed. To follow the instructions that follow you will need an ant build file. Fortunately this is easy, we have a [http://smi-protege.stanford.edu/repos/protege/protege4/protege-base/template-build.xml template] which usually requires only trivial modification. There is some discussion of this Provege...here. This script has undergone some modifications so it is important to be using the version of this script that has the build.properties line in it (16th line of the template just below the property environment declaration in it).

So the first thing is to add a menu item in eclipse that will install your plugin in the distribution.

To Do: Fix the location of the manifest in the example plugin directions. Check the locations of the files in anatomy to be sure that they Add a Protege 4.0 .app file.