Recent Changes - Search:

edit SideBar

Notes about the Triquetrum 2019 release

Procedure

  1. Verify that Triquetrum works as is with Eclipse Oxygen Done
  2. Verify that Triquetrum works as is with Eclipse 2019-06 Done
    1. Validation fails on org.apache.batik.dom Done
    2. No property tester contributes a property Ignore for now?
  3. Create a new branch called osgi-2-0-cq-2 that will be what will be submitted for cq. osgi-2-0-cq-2 will be based on osgi-2-0-cq-1 Done
    1. Check out osgi-2-0-cq-1
      git clone https://github.com/icyphy/ptII
      mv ptII osgi-2-0-cq-1
      cd osgi-2-0-cq-1
      git checkout -b origin/osgi-2-0-cq-2
    2. Merge changes from osgi-2-0 into osgi-2-0-cq-2
      git merge --no-commit --no-ff origin/origin/osgi-2-0
      cp ../osgi-2-0/pom.xml .
      cp ../osgi-2-0/releng/org.ptolemy.tycho.update/category.xml releng/org.ptolemy.tycho.update/category.xml
      mvn verify
      git commit -m "Merged from osgi-2-0." -a
      git push
  4. Create a p2 site using osgi-2-0-cq-2 Done
  5. Test Triquetrum under Eclipse 2019-06 and JDK 1.8 Done
  6. Clean the ptII tree Done-ish. Cleaned Java files but did not format.
  7. Update the osgi-2-0 repo by doing diffs with the current ptII head. Be sure not to add the README.txt, makefiles and package.html files that are present in the ptII head. See osgi-2-0/releng/diff-from-ptII Done
  8. Update version numbers of changed modules. Done
  9. Build p2 files from osgi-2-0 and test Done
  10. Update the osgi-2-0-cq-2 repo with diffs from osgi-2-0:
    git merge --no-commit --no-ff origin/origin/osgi-2-0
    cp ../osgi-2-0/pom.xml .
    cp ../osgi-2-0/releng/org.ptolemy.tycho.update/category.xml releng/org.ptolemy.tycho.update/category.xml
    mvn verify
    git commit -m "Merged from osgi-2-0." -a
    git push
    Done
  11. Update version numbers of osgi-2-0-cq-2 modules Done
  12. Update the p2 site using osgi-2-0-cq-2 Done
  13. Test Triquetrum under Eclipse 2019-06 with JDK 1.8 Done
  14. Fix Triquetrum Eclipse warnings. Done Fixed non-Java warnings
  15. Test under JDK 12 Done
    1. Update MANIFEST.MF files with Automatic-Module-Name Done
  16. Create a diff for each cq'd osgi-2-0 feature/package/or-what-ever-the-word is
  17. Submit new cqs
  18. Profit!

Validation fails on org.apache.batik.dom

Under JDK-1.8 with Eclipse 2019-06, when running Triquetrum.product, a dialog appears that says

   The following problems were detected
     org.apache.batik.dom

Expanding org.apache.batik.dom shows:

   Missing Constraint: Import-Package: org.apache.xml.utils 2.7.1
   Missing Constraint: Import-Package: org.apache.xpath 2.7.1
   Missing Constraint: Import-Package: org.apache.xpath.objects 2.7.1
  1. Edited the org.eclipse.triquetrum.target.platform *.tpd files and updated from
    1. http://download.eclipse.org/tools/orbit/downloads/drops/R20170919201930/repository to
    2. http://download.eclipse.org/tools/orbit/downloads/drops/R20190602212107/repository
  2. Right clicked on the *.tpd files and regenerated the target
  3. Clicked on org.eclipse.triquetrum.target.platform.target and clicked on Reload Target Platform
  4. Running still had the same problem

./plugins/editor/org.eclipse.triquetrum.workflow.editor/META-INF/MANIFEST.MF lists

Import-Package: org.apache.batik.bridge;version="1.6.0",
org.apache.batik.css.engine;version="1.6.0",
org.apache.batik.dom;version="1.6.1",
org.apache.batik.dom.svg;version="1.6.0",
org.apache.batik.gvt;version="1.6.0",
org.apache.batik.gvt.renderer;version="1.6.0",

In https://download.eclipse.org/tools/orbit/downloads/drops/R20190602212107/ https://download.eclipse.org/tools/orbit/downloads/drops/R20181102183712/repository/plugins/org.apache.xalan_2.7.1.v201005080400.jar seems to export the missing packages.

It seems like the solution was:

  1. Edit releng/org.eclipse.triquetrum.target.platform/org.eclipse.triquetrum.target.platform.tpd and add
            org.apache.xalan
    to the section under the orbit location:
    location "http://download.eclipse.org/tools/orbit/downloads/drops/R20190602212107/repository" {
            org.slf4j.api.source [1.7.2,1.7.3)
            org.slf4j.impl.log4j12.source [1.7.2,1.7.3)
            org.apache.xalan
            org.apache.commons.io.source
            org.apache.log4j.source
            org.apache.commons.io
            org.apache.commons.lang.source

    // XXX: These are already listed in python-rpc tpd file and there is an error
    // if they are duplicated.
    //      org.slf4j.impl.log4j12
    //      org.slf4j.api
    //      org.apache.commons.lang
    //      org.apache.log4j
    }
  2. Right click on the tpd file and regenerate the target
  3. Click on org.eclipse.triquetrum.target.platform.target, then click on Reload Target Platform
  4. Edit features/org.eclipse.triquetrum.thirdparty.feature/feature.xml and add
       <plugin
             id="org.apache.xalan"
             download-size="0"
             install-size="0"
             version="0.0.0"
             unpack="false"/>

What this does is includes org.apache.xalan, which then exports the missing packages.

No property tester contributes a property

Under JDK1.8 with Eclipse 2019-06, when running the model, I see

!STACK 0
org.eclipse.core.runtime.CoreException: No property tester contributes a property org.eclipse.emf.ecp.core.project.open to type class org.eclipse.core.internal.resources.Folder
        at org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(TypeExtensionManager.java:130)
        at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:204)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.AndExpression.evaluate(AndExpression.java:34)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:81)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:74)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:100)
        at org.eclipse.ui.internal.services.EvaluationReference.changed(EvaluationReference.java:94)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.ui.internal.services.EvaluationService$1.changed(EvaluationService.java:79)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.e4.core.commands.ExpressionContext.addVariable(ExpressionContext.java:86)
        at org.eclipse.ui.internal.services.EvaluationService.changeVariable(EvaluationService.java:149)
        at org.eclipse.ui.internal.services.EvaluationService$3.sourceChanged(EvaluationService.java:125)
        at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:84)
        at org.eclipse.ui.internal.services.MenuSourceProvider.addShowingMenus(MenuSourceProvider.java:78)
        at org.eclipse.ui.internal.Workbench.addShowingMenus(Workbench.java:3424)
        at org.eclipse.ui.internal.PopupMenuExtender.menuAboutToShow(PopupMenuExtender.java:349)
        at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:341)
        at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:471)
        at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:466)
        at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:498)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:259)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4364)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1516)
        at org.eclipse.swt.widgets.Menu.menuWillOpen(Menu.java:808)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:6133)
        at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
        at org.eclipse.swt.internal.cocoa.NSMenu.popUpContextMenu(NSMenu.java:80)
        at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:270)
        at org.eclipse.swt.widgets.Display.runPopups(Display.java:4228)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1441)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-08-03 14:42:51.168
!MESSAGE Failed to evaluate: WithExpression [variable=activeMenuSelection, children=[IterateExpression [type=OR, children=[<test property="canDelete" value="true" plug-in activation: lazy/>]]]]
!STACK 0
org.eclipse.core.runtime.CoreException: No property tester contributes a property org.eclipse.emf.ecp.core.container.canDelete to type class org.eclipse.core.internal.resources.Folder
        at org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(TypeExtensionManager.java:130)
        at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:199)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:81)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:74)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:100)
        at org.eclipse.ui.internal.services.EvaluationReference.changed(EvaluationReference.java:94)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.ui.internal.services.EvaluationService$1.changed(EvaluationService.java:79)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.e4.core.commands.ExpressionContext.addVariable(ExpressionContext.java:86)
        at org.eclipse.ui.internal.services.EvaluationService.changeVariable(EvaluationService.java:149)
        at org.eclipse.ui.internal.services.EvaluationService$3.sourceChanged(EvaluationService.java:125)
        at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:84)
        at org.eclipse.ui.internal.services.MenuSourceProvider.addShowingMenus(MenuSourceProvider.java:78)
        at org.eclipse.ui.internal.Workbench.addShowingMenus(Workbench.java:3424)
        at org.eclipse.ui.internal.PopupMenuExtender.menuAboutToShow(PopupMenuExtender.java:349)
        at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:341)
        at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:471)
        at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:466)
        at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:498)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:259)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4364)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1516)
        at org.eclipse.swt.widgets.Menu.menuWillOpen(Menu.java:808)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:6133)
        at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
        at org.eclipse.swt.internal.cocoa.NSMenu.popUpContextMenu(NSMenu.java:80)
        at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:270)
        at org.eclipse.swt.widgets.Display.runPopups(Display.java:4228)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1441)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-08-03 14:43:06.407
!MESSAGE Failed to evaluate: WithExpression [variable=activeMenuSelection, children=[AndExpression [children=[CountExpression [ size=1, mode: 4 EXACT], IterateExpression [type=AND, children=[<test property="open" value="true" plug-in activation: lazy/>]]]]]]
!STACK 0
org.eclipse.core.runtime.CoreException: No property tester contributes a property org.eclipse.emf.ecp.core.project.open to type class org.eclipse.core.internal.resources.Folder
        at org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(TypeExtensionManager.java:130)
        at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:204)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.AndExpression.evaluate(AndExpression.java:34)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:81)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:74)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:100)
        at org.eclipse.ui.internal.services.EvaluationReference.changed(EvaluationReference.java:94)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.ui.internal.services.EvaluationService$1.changed(EvaluationService.java:79)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.e4.core.commands.ExpressionContext.addVariable(ExpressionContext.java:86)
        at org.eclipse.ui.internal.services.EvaluationService.changeVariable(EvaluationService.java:149)
        at org.eclipse.ui.internal.services.EvaluationService$3.sourceChanged(EvaluationService.java:125)
        at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:84)
        at org.eclipse.ui.internal.services.MenuSourceProvider.addShowingMenus(MenuSourceProvider.java:78)
        at org.eclipse.ui.internal.Workbench.addShowingMenus(Workbench.java:3424)
        at org.eclipse.ui.internal.PopupMenuExtender.menuAboutToShow(PopupMenuExtender.java:349)
        at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:341)
        at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:471)
        at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:466)
        at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:498)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:259)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4364)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1516)
        at org.eclipse.swt.widgets.Menu.menuWillOpen(Menu.java:808)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:6133)
        at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
        at org.eclipse.swt.internal.cocoa.NSMenu.popUpContextMenu(NSMenu.java:80)
        at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:270)
        at org.eclipse.swt.widgets.Display.runPopups(Display.java:4228)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1441)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-08-03 14:43:06.408
!MESSAGE Failed to evaluate: WithExpression [variable=activeMenuSelection, children=[IterateExpression [type=OR, children=[<test property="canDelete" value="true" plug-in activation: lazy/>]]]]
!STACK 0
org.eclipse.core.runtime.CoreException: No property tester contributes a property org.eclipse.emf.ecp.core.container.canDelete to type class org.eclipse.core.internal.resources.Folder
        at org.eclipse.core.internal.expressions.TypeExtensionManager.getProperty(TypeExtensionManager.java:130)
        at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:100)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:199)
        at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:55)
        at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:81)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:74)
        at org.eclipse.ui.internal.services.EvaluationReference.evaluate(EvaluationReference.java:100)
        at org.eclipse.ui.internal.services.EvaluationReference.changed(EvaluationReference.java:94)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.ui.internal.services.EvaluationService$1.changed(EvaluationService.java:79)
        at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:109)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
        at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:379)
        at org.eclipse.e4.core.commands.ExpressionContext.addVariable(ExpressionContext.java:86)
        at org.eclipse.ui.internal.services.EvaluationService.changeVariable(EvaluationService.java:149)
        at org.eclipse.ui.internal.services.EvaluationService$3.sourceChanged(EvaluationService.java:125)
        at org.eclipse.ui.AbstractSourceProvider.fireSourceChanged(AbstractSourceProvider.java:84)
        at org.eclipse.ui.internal.services.MenuSourceProvider.addShowingMenus(MenuSourceProvider.java:78)
        at org.eclipse.ui.internal.Workbench.addShowingMenus(Workbench.java:3424)
        at org.eclipse.ui.internal.PopupMenuExtender.menuAboutToShow(PopupMenuExtender.java:349)
        at org.eclipse.jface.action.MenuManager.fireAboutToShow(MenuManager.java:341)
        at org.eclipse.jface.action.MenuManager.handleAboutToShow(MenuManager.java:471)
        at org.eclipse.jface.action.MenuManager.access$1(MenuManager.java:466)
        at org.eclipse.jface.action.MenuManager$2.menuShown(MenuManager.java:498)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:259)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4364)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1516)
        at org.eclipse.swt.widgets.Menu.menuWillOpen(Menu.java:808)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:6133)
        at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
        at org.eclipse.swt.internal.cocoa.NSMenu.popUpContextMenu(NSMenu.java:80)
        at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:270)
        at org.eclipse.swt.widgets.Display.runPopups(Display.java:4228)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
        at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1441)
Warning: NLS unused message: CompartmentPattern_CompartmentChangesText in: messages

Creating a new workflow fails

Under JDK 1.8 with Eclipse 2019-06, after creating a new project and then trying to create a new workflow, I get:

!MESSAGE null argument:DiagramEditorInput does not convey a Provider ID 'org.eclipse.graphiti.ui.editor.DiagramEditorInput@f2fe1931 uri: platform:/resource/myProject/workflows/newDiagram.tdml#/0. See the error log for details.

The console of the Eclipse used to start Triquetrum shows:

!ENTRY org.eclipse.ui 4 4 2019-08-04 08:29:15.557
!MESSAGE Unable to initialize part
!STACK 0
org.eclipse.core.runtime.AssertionFailedException: null argument:DiagramEditorInput does not convey a Provider ID 'org.eclipse.graphiti.ui.editor.DiagramEditorInput@f2fe1931 uri: platform:/resource/myProject/workflows/newDiagram.tdml#/0. See the error log for details.
at org.eclipse.core.runtime.Assert.isNotNull(Assert.java:88)
at org.eclipse.graphiti.ui.editor.DiagramBehavior.getDiagramTypeProviderId(DiagramBehavior.java:450)
at org.eclipse.graphiti.ui.editor.DiagramBehavior.initDiagramTypeProvider(DiagramBehavior.java:414)
at org.eclipse.graphiti.ui.editor.DiagramBehavior.setInput(DiagramBehavior.java:392)
at org.eclipse.graphiti.ui.editor.DiagramEditor.setInput(DiagramEditor.java:311)
at org.eclipse.graphiti.ui.editor.DiagramEditor.init(DiagramEditor.java:228)
at org.eclipse.triquetrum.workflow.editor.TriqDiagramEditor.init(TriqDiagramEditor.java:50)
at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:354)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:340)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1001)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:966)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:139)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:411)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:333)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1015)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:675)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:781)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:752)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:746)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:730)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$1.handleEvent(PartServiceImpl.java:107)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:146)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4975)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:219)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:132)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:652)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:616)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:791)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:404)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1240)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3209)
at org.eclipse.ui.internal.WorkbenchPage.lambda$9(WorkbenchPage.java:3114)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3112)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3083)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3066)
at org.eclipse.triquetrum.workflow.editor.wizard.WizardUtils.openDiagramInEditor(WizardUtils.java:108)
at org.eclipse.triquetrum.workflow.editor.wizard.CreateDiagramWizard.performFinish(CreateDiagramWizard.java:81)
at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:833)
at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:472)
at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:622)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4364)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4151)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3768)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:260)
at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:280)
at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:320)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:254)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:498)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:488)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:392)
at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:142)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:412)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4364)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4151)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3768)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:635)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
at org.eclipse.equinox.launcher.Main.main(Main.java:1441)

!ENTRY org.eclipse.ui 4 4 2019-08-04 08:29:15.560
!MESSAGE Unable to create part
!SUBENTRY 1 org.eclipse.ui 4 0 2019-08-04 08:29:15.560
!MESSAGE null argument:DiagramEditorInput does not convey a Provider ID 'org.eclipse.graphiti.ui.editor.DiagramEditorInput@f2fe1931 uri: platform:/resource/myProject/workflows/newDiagram.tdml#/0. See the error log for details.

The above message appeared previously, see

This might be caused when the Workflow type field is empty.

Let's ignore this for now. I updated #185

httpclient45 dependency

mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=0.3.0 fails with:

[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: org.eclipse.triquetrum.workflow.editor.rcp.incubation-0.2.1 0.2.1
[ERROR] Missing requirement: org.eclipse.equinox.p2.core.feature.feature.group 1.6.200.v20190516-1504 requires 'org.\
eclipse.ecf.filetransfer.httpclient45.feature.feature.group [1.0.0,2.0.0)' but it could not be found
[ERROR] Cannot satisfy dependency: org.eclipse.triquetrum.workflow.editor.rcp.incubation-0.2.1 0.2.1 depends on: org\
.eclipse.equinox.p2.core.feature.feature.group 0.0.0

feature.xml in ~/.m2/repository/p2/org/eclipse/update/feature/org.eclipse.equinox.p2.core.feature/1.6.200.v20190516-1504/org.eclipse.equinox.p2.core.feature-1.6.200.v20190516-1504.jar contains

<requires>
<import feature="org.eclipse.ecf.core.feature" version="1.4.0" match="compatible"/>
<import feature="org.eclipse.ecf.core.ssl.feature" version="1.1.0" match="compatible"/>
<import feature="org.eclipse.ecf.filetransfer.feature" version="3.13.7" match="compatible"/>
<import feature="org.eclipse.ecf.filetransfer.httpclient45.feature" version="1.0.0" match="compatible"/>
<import feature="org.eclipse.ecf.filetransfer.ssl.feature" version="1.1.0" match="compatible"/>
</requires>

~/.m2/repository/p2/org/eclipse/update/feature/org.eclipse.ecf.filetransfer.httpclient45.feature/1.0.0.v20190530-1947/org.eclipse.ecf.filetransfer.httpclient45.feature-1.0.0.v20190530-1947.jar exists

The problem was that Triquetrum.product was referring to httpclient4.

Edit - History - Print - Recent Changes - Search
Page last modified on August 16, 2019, at 11:00 AM