Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Triquetrum/ICE"

m
(Setting up ICE)
Line 41: Line 41:
 
# Go to "org.eclipse.ice.target.mars" and :
 
# Go to "org.eclipse.ice.target.mars" and :
 
## edit "mars.target", replacing the committed "Triq features for ICE" by the folder where you exported your Triquetrum features.
 
## edit "mars.target", replacing the committed "Triq features for ICE" by the folder where you exported your Triquetrum features.
## select the Triquetrum features in there (two times three for binaries and sources)
+
## select the Triquetrum features in there (two times three for binaries and sources). Check the checkbox to Include required software.
## let the target resolve, this may take a long time
+
## let the target resolve, this may take a long time. The Triquetrum entry should show 81 plug-ins available.
## set "mars.target" as your target (unless you are doing this with ICE, which already has all of the required bundles set).
+
## set "mars.target" as your target
# Go to the "org.eclipse.ice.repository" project and right-click and run the launch configuration product.* for your OS. If you are using Windows or Mac, you will need to add org.eclipse.ice.triquetrum to that configuration.
+
# Go to the "org.eclipse.ice.repository" project and use the launch configuration product.* for your OS. (In the near future a multi-OS product definition will be made available as a launch tool.)
# Go to the ICE perspective and in the ItemViewer at the left create the Triquetrum Item by clicking on the green plus button. The Triquetrum Item is currently at the bottom of the list that appears with an ugly name at the moment.
+
# For windows, the Triquetrum bundles have already been added to the launch configuration. If you are using Linux or Mac, you will need to add :
 +
#* org.eclipse.ice.triquetrum
 +
#* diva + all ptolemy bundles
 +
#* all triquetrum bundles
 +
# Following bundles should be set with "Auto-Start=true" in your launch configuration :
 +
#* ptolemy.actor.lib
 +
#* ptolemy.domains.process
 +
#* ptolemy.domains.sdf
 +
#* ptolemy.moml
 +
#* org.eclipse.ice.triquetrum
 +
#* org.eclipse.triquetrum.workflow.actor.ui
 +
#* org.eclipse.triquetrum.workflow.execution.impl
 +
#* org.eclipse.triquetrum.workflow.repository.impl.filesystem
 +
#* org.eclipse.triquetrum.workflow.ui
 +
# Validate Plug-ins should report no issues.
 +
# Run ICE
 +
# Go to the ICE perspective and in the ItemViewer at the left create the Triquetrum Item by clicking on the green plus button. The Triquetrum Item is currently at the bottom of the list : TriquetrumWorkflowItemModel.
 +
# You should get an ICE Item Form for trying Triquetrum workflows. For the moment this should show 2 dummy test flows called "hello" and "goodbye".
 +
# Select one workflow and Save (Ctrl-S or similar depending on your OS). A minimal workflow configuration form should appear on the right in the Item form, with just one field. This is linked to a parameter in the test workflow model. You can specify a message in the field, that will be shown in a small Display shell when you run the workflow by clicking the Go! button.
 +
 
 +
When all goes well, you should get a result similar to :
 +
 
 +
[[File:Triquetrum_in_ICE_screenshot.jpg|500px]]
  
 
==Telling ICE about the Triquetrum Features ==
 
==Telling ICE about the Triquetrum Features ==

Revision as of 17:34, 27 February 2016

Part of the Triquetrum Project is to interface with ICE. This page describes how to set up ICE and Triquetrum.

This work is very speculative and is for reference by Triquetrum developers. It probably won't be of much use for other people.

What is this about

Currently the focus is on enabling ICE to select and launch Triquetrum workflows. We're not yet going for a full integration of the workflow editor in ICE, but this would be the natural next step.

Exporting Features from Triquetrum

ICE requires features from Triquetrum. Eventually, we will have a P2 site for these features, but in the near term, we export the features by hand from a Triquetrum workspace.

  1. See Building From Sources for how to setup a workspace and how to build Triquetrum in Eclipse.
  2. Select 3 features in your workspace :
    1. org.eclipse.triquetrum.core.feature
    2. org.eclipse.triquetrum.ptolemy.feature
    3. org.eclipse.triquetrum.workflow.core.feature
  3. File -> Export
  4. In the Export window:
    1. Plug-in Development -> Deployable features
    2. Click Next
  5. In the Deployable Features window:
    1. In "Directory", browse to a directory, which will be used in the ICE RCP in the next section
    2. In the Options tab, select "Package as individual JAR archives", "Generate p2 repository" and "Use class files compiled in the workspace". Optionally you can also "Export source" as "Generate source bundles".
    3. Click Finish.
  6. In the selected directory you should see the typical p2/install directory structure.
    1. In the features folder the 3 selected features should be present
    2. In the plugins folder you should have 31 plugins when you exported Triquetrum sources as well.

Setting up ICE

Below are instructions on how to set up the ICE plugin that will run Triquetrum workflows.

This is based on a fork of the main ICE repo.

This is very likely to change or otherwise not work in the future.

Jay prepared a skeleton for a org.eclipse.ice.triquetrum.model.TriquetrumWorkflowItemModel in a bundle org.eclipse.ice.triquetrum. This was done by using the ICE project generator. A more sustainable way would be to leverage upcoming changes to the ICE workflow engine which makes it possible to compose workflow engines.

  1. Create an empty workspace
  2. Get the fork from https://github.com/jayjaybillings/ice-triquetrum
  3. Switch to the next branch and import all the projects.
  4. Go to "org.eclipse.ice.target.mars" and :
    1. edit "mars.target", replacing the committed "Triq features for ICE" by the folder where you exported your Triquetrum features.
    2. select the Triquetrum features in there (two times three for binaries and sources). Check the checkbox to Include required software.
    3. let the target resolve, this may take a long time. The Triquetrum entry should show 81 plug-ins available.
    4. set "mars.target" as your target
  5. Go to the "org.eclipse.ice.repository" project and use the launch configuration product.* for your OS. (In the near future a multi-OS product definition will be made available as a launch tool.)
  6. For windows, the Triquetrum bundles have already been added to the launch configuration. If you are using Linux or Mac, you will need to add :
    • org.eclipse.ice.triquetrum
    • diva + all ptolemy bundles
    • all triquetrum bundles
  7. Following bundles should be set with "Auto-Start=true" in your launch configuration :
    • ptolemy.actor.lib
    • ptolemy.domains.process
    • ptolemy.domains.sdf
    • ptolemy.moml
    • org.eclipse.ice.triquetrum
    • org.eclipse.triquetrum.workflow.actor.ui
    • org.eclipse.triquetrum.workflow.execution.impl
    • org.eclipse.triquetrum.workflow.repository.impl.filesystem
    • org.eclipse.triquetrum.workflow.ui
  8. Validate Plug-ins should report no issues.
  9. Run ICE
  10. Go to the ICE perspective and in the ItemViewer at the left create the Triquetrum Item by clicking on the green plus button. The Triquetrum Item is currently at the bottom of the list : TriquetrumWorkflowItemModel.
  11. You should get an ICE Item Form for trying Triquetrum workflows. For the moment this should show 2 dummy test flows called "hello" and "goodbye".
  12. Select one workflow and Save (Ctrl-S or similar depending on your OS). A minimal workflow configuration form should appear on the right in the Item form, with just one field. This is linked to a parameter in the test workflow model. You can specify a message in the field, that will be shown in a small Display shell when you run the workflow by clicking the Go! button.

When all goes well, you should get a result similar to :

Triquetrum in ICE screenshot.jpg

Telling ICE about the Triquetrum Features

The next step is to tell the ICE projects about the Triquetrum features.

  1. Go to "org.eclipse.ice.target.mars" and click on "mars.target"
  2. In the mars.target Target Definition tab under the list of Locations, click on the location "file:/C:/temp/triquetrum/features-for-ice", then click on Edit
  3. In the Edit window, click on Add and then Local, then browse to the Triquetrum Features exported above. Click on Open, then OK.
  4. In the Edit Content window, under Names will appear "There are no categorized items". The fix is to un-check "Group by Category", which will show all the Triquetrum features. Click on Select All, and then Finish.
  5. In the bottom right of the ICE Eclipse window a message about "Resolving Target Definition" will appear.
  6. After a few minutes, the resolution will end.
  7. In the mars.target pane, click on "Set as Target Platform". The rebuild will occur. You may see errors about org.eclipse.eavp, which may be ignored.
  8. Go to the "org.eclipse.ice.repository" project and right-click and run the launch configuration product.* for your OS and select Run -> Run Configuration.
  9. In the Run Configurations window:
    1. Click on the Plug-ins tab and find the triquetrum features by typing "triquetrum" into the text entry widget at the top of the list of features.
    2. Click on the check box next to each triquetrum feature
    3. Repeat the above two steps
      1. "diva"
      2. "ptolemy"
      3. "org.eclipse.emf.databinding"
      4. "org.eclipse.emf.ecp.edit.spi"
      5. "org.eclipse.graphiti.mm"
      6. "org.eclipse.emf.ecp.view.model.common.edit.provider"
    4. Click on Apply, then Run
  10. If the "Errors in Workspace" dialog pops up, click proceed.

FIXME: If I do the above, then I keep having to add packages. If, in the Run Configurations window, Plug-ins tab, I click on "validate plug-ins automatically prior to launching", then there are lots of plugins that are not present.

Problems

Missing Packages

During startup, the following messages appeared:

org.osgi.framework.BundleException: Could not resolve module: org.eclipse.triquetrum.workflow.editor [421]
  Unresolved requirement: Import-Package: org.eclipse.emf.databinding

	at org.eclipse.osgi.container.Module.start(Module.java:434)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.triquetrum.workflow.model 4 0 2016-02-26 17:33:12.261
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.triquetrum.workflow.model [424]
  Unresolved requirement: Import-Package: org.eclipse.graphiti.mm; version="0.12.1"

	at org.eclipse.osgi.container.Module.start(Module.java:434)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.triquetrum.workflow.model.edit 4 0 2016-02-26 17:33:12.261
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.triquetrum.workflow.model.edit [425]
  Unresolved requirement: Require-Bundle: org.eclipse.triquetrum.workflow.model; visibility:="reexport"
    -> Bundle-SymbolicName: org.eclipse.triquetrum.workflow.model; bundle-version="1.0.0.201602261637"; singleton:="true"
       org.eclipse.triquetrum.workflow.model [424]
         Unresolved requirement: Import-Package: org.eclipse.graphiti.mm; version="0.12.1"

	at org.eclipse.osgi.container.Module.start(Module.java:434)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.triquetrum.workflow.model.editor 4 0 2016-02-26 17:33:12.262
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.triquetrum.workflow.model.editor [426]
  Unresolved requirement: Require-Bundle: org.eclipse.triquetrum.workflow.model.edit; visibility:="reexport"
    -> Bundle-SymbolicName: org.eclipse.triquetrum.workflow.model.edit; bundle-version="1.0.0.201602261637"; singleton:="true"
       org.eclipse.triquetrum.workflow.model.edit [425]
         Unresolved requirement: Require-Bundle: org.eclipse.triquetrum.workflow.model; visibility:="reexport"
           -> Bundle-SymbolicName: org.eclipse.triquetrum.workflow.model; bundle-version="1.0.0.201602261637"; singleton:="true"
              org.eclipse.triquetrum.workflow.model [424]
                Unresolved requirement: Import-Package: org.eclipse.graphiti.mm; version="0.12.1"

	at org.eclipse.osgi.container.Module.start(Module.java:434)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

I added those packages, but then there were more missing packages.

Back to the top