Epsilon Workflow Depends on Apache Ant plugin [message #1850833] |
Fri, 18 March 2022 03:12 |
|
Hi!
I have found that org.eclipse.epsilon.workflow: 2.5.0.202203082242 depends directly on
org.apache.ant:1.10.12.v20211102-1452 and re-exports it.
This leads to ant classes ending up on the plugin class loader of every plugin that uses workflow.
The design of Eclipse's ant runner is such that it does not require the ant jars to be present on the plugin class-loader. They are loaded at execution time by the ant runner plugin using a throw-away class loader only dedicated to the build run. In fact, the classes definitely should not be, because they do not allow unloading of the ant systems statics after a run. Ant's state will 'stick around'.
Cmp. here: https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.isv/guide/ant_contributing_task.htm
There is also the possibility of classpath clashes as the internal and external classloaders collide.
For build purposes, the dependency needs to present, but it should be added to the build-time classpath using the '.extra' directive.
Could we please have an issue to correct this?
|
|
|
Re: Epsilon Workflow Depends on Apache Ant plugin [message #1850876 is a reply to message #1850833] |
Sun, 20 March 2022 19:15 |
|
Hi Jörn,
Is this what you are proposing?
diff --git a/plugins/org.eclipse.epsilon.workflow/META-INF/MANIFEST.MF b/plugins/org.eclipse.epsilon.workflow/META-INF/MANIFEST.MF
index edd7300..3ab8f31 100644
--- a/plugins/org.eclipse.epsilon.workflow/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.epsilon.workflow/META-INF/MANIFEST.MF
@@ -4,8 +4,7 @@
Bundle-SymbolicName: org.eclipse.epsilon.workflow;singleton:=true
Bundle-Version: 2.5.0.qualifier
Bundle-Vendor: Eclipse Modeling Project
-Require-Bundle: org.apache.ant;visibility:=reexport,
- org.eclipse.ant.core;visibility:=reexport,
+Require-Bundle: org.eclipse.ant.core;visibility:=reexport,
org.eclipse.epsilon.eol.dt,
org.eclipse.epsilon.common.dt,
org.eclipse.epsilon.etl.dt,
diff --git a/plugins/org.eclipse.epsilon.workflow/build.properties b/plugins/org.eclipse.epsilon.workflow/build.properties
index 559d3eb..4191302 100644
--- a/plugins/org.eclipse.epsilon.workflow/build.properties
+++ b/plugins/org.eclipse.epsilon.workflow/build.properties
@@ -10,3 +10,4 @@
source.lib/org.eclipse.epsilon.workflow.jar = ant/,\
src/
output.lib/org.eclipse.epsilon.workflow.jar = bin/
+jars.extra.classpath = platform:/bundle/org.apache.ant/lib/ant.jar
\ No newline at end of file
Best,
Dimitris
|
|
|
|
|
|
Re: Epsilon Workflow Depends on Apache Ant plugin [message #1850978 is a reply to message #1850886] |
Wed, 23 March 2022 19:09 |
|
Hi Dimitris,
I've just pushed a few changes that reintroduce the change to the Eugenia workflow plugin, while also fixing the Tycho build. The Eugenia workflow plugin needs jars.extra.classpath in order to compile from Eclipse, and I had to disable API checks during compilation in Tycho (as it doesn't seem to understand that .extra/jars.classpath.extra notation. Jenkins seems happy now :-).
Best,
Antonio
|
|
|
|
Powered by
FUDForum. Page generated in 0.03407 seconds