Skip to main content
Jump to: navigation, search

Triquetrum/Kepler Feature

This page consists of notes about how the Triquetrum/Kepler Triquetrum Repository was created. See Triquetrum/Kepler for an overview.

Creating a new Kepler Bundle

See Creating an actor bundle.

  1. Create the plug-in,
    1. In Eclipse: File -> New Plug-in Project
    2. In the dialog, set the Project Name: to org.kepler.triquetrum.ddp
    3. Click Next, then Finish
  2. In the org.kepler.triquetrum.ddp package, update MANIFEST.MF:
Require-Bundle: org.eclipse.ui,
  1. Create the p2.inf file (See Creating an actor bundle)
    1. Open the project, click on META-INF, highlight the p2.inf file and select copy
    2. In the org.kepler.triquetrum.ddp project click on META-INF and paste
    3. The p2.inf file will be created.


  1. In the org.kepler.triquetrum.ddp project, right click on the src icon and click New -> Class
  2. Change the package to
  3. We will update the enclosing type later
  4. Use File -> Open to open the kepler/ddp-common/src/org/kepler/ddp/actor/ file, copy and paste it in to the newly created file
  5. There will be lots of errors.

Fix the compilation errors in

Below are the steps taken to fix the compilation errors in

The import cannot be found

The error:


Solution: Add the following to org.kepler.triquetrum.ddp MANIFEST.MF under Require-Bundle:,

Various Kepler classes are missing

In ExecutionChoice, these imports are failing:

 import org.kepler.ddp.gui.ExecutionChoiceEditorFactory;
 import org.kepler.ddp.gui.ExecutionChoiceEditorPane;
 import org.kepler.provenance.ProvenanceRecorder;
 import org.kepler.reporting.ReportingListener

The solution is to copy them over. An alternative would be to use the Eclipse projects for these Kepler projects.

(cd ~/src/kepler/build-area/src; \
 tar -cf - org/kepler/build/modules/{Module,ModuleTree}.java) \
 | (cd ~/src/workspaceTriq03JunB/org.kepler.triquetrum.ddp/src/; tar -xvf -)

(cd ~/src/kepler/ddp-common/src; \
 tar -cf - org/kepler/ddp/gui/ExecutionChoiceEditor{Factory,Pane}.java) \
 | (cd ~/src/workspaceTriq03JunB/org.kepler.triquetrum.ddp/src/; tar -xvf -)

(cd ~/src/kepler/provenance/src; \
 tar -cf - org/kepler/provenance/ \
 | (cd ~/src/workspaceTriq03JunB/org.kepler.triquetrum.ddp/src/; tar -xvf -)

(cd ~/src/kepler/reporting/src; \
 tar -cf - org/kepler/reporting/ \
 | (cd ~/src/workspaceTriq03JunB/org.kepler.triquetrum.ddp/src/; tar -xvf -)

Various Ptolemy Classes are Missing

DDFDirector, various actor.hoc, KeplerDocumentationAttribute and LibraryAttribute classes are missing, so we copy them over.

FIXME: These should be added as a bundle to Triquetrum.

(cd $PTII; \
  tar -cf - ptolemy/domains/ddf/kernel/{DDFDirector,ActorEnablingStatus}.java \
  ptolemy/actor/util/ \
  ptolemy/actor/lib/hoc/{Case,CaseDirector,MultiCompositeActor,MultiCompositePort,Refinement,RefinementPort}.java \
  ptolemy/actor/util/ ptolemy/math/ \
  ptolemy/vergil/basic/{DocAttribute,KeplerDocumentationAttribute}.java \
  ptolemy/moml/ \
  | (cd ~/src/workspaceTriq03JunB/org.kepler.triquetrum.ddp-common/src/; tar -xvf -)


The error is:

 Description	Resource	Path	Location	Type
Configuration cannot be resolved to a type	/org.kepler.triquetrum.ddp/src/org/kepler/ddp/actor/pattern	line 258	Java Problem

The issue is that these imports in DDPDataSink are not present

 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.fs.Path;

One solution would be to import the jars from ~/KeplerData/workflows/module/hadoop/tools/share/hadoop/

A better solution would be to find a hadoop Eclipse bundle upon which we could depend.

Kepler provides a hadoop project that could be helpful here!

Solution: Right click on the org.kepler.triquetrum.ddp project -> Build Path -> Configure Build Path and add the following package dependencies

  • ddp-common
  • hadoop

Packaging the plugin(s) for your RCP editor

See Packaging the plugin(s) for your RCP editor

Create a simple (non-Java plugin): File -> New Plug-in Project.

  • Name: org.kepler.triquetrum.ddp.palette
  • Uncheck Create a Java Project
  • Click Next, then Finish

Right click on the newly created project, select File -> New -> File and create plugin.xml.

plugin.xml should look like:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
	     name="Triquetrum palette ExecutionChoice extension"
	  <group displayName="Examples">

MANIFEST.MF should look like:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Palette entry for ExecutionChoice
Bundle-SymbolicName: org.kepler.triquetrum.ddp.palette;singleton:=true
Bundle-Version: 1.0.0.qualifier
Require-Bundle: org.eclipse.triquetrum.workflow.editor;bundle-version="1.0.0"


For details, see Triquetrum/Extending_Triquetrum#Implementing_an_actor_feature.

  1. File -> New -> Feature Project
    1. Name: org.kepler.triquetrum.ddp.feature
    2. Finish

feature.xml should contain:

<?xml version="1.0" encoding="UTF-8"?>

      <import plugin="org.eclipse.ui"/>
      <import plugin="org.eclipse.core.runtime"/>
      <import plugin=""/>
      <import plugin="org.apache.commons.logging"/>
      <import plugin="org.ptolemy.commons"/>
      <import plugin="ptolemy.gui"/>
      <import plugin="ptolemy.core"/>
      <import plugin="ptolemy.moml"/>
      <import plugin=""/>
      <import plugin="org.eclipse.triquetrum.workflow.editor" version="1.0.0" match="greaterOrEqual"/>




Creating the Feature

For details, see Triquetrum/Extending_Triquetrum#Installing_the_feature_in_your_workbench.

Using the actor

Erwin suggested that running an update from a Triquetrum launched from another Eclipse is complex and that it would be better to Download a Triquetrum and run it.

Back to the top