Unable to install in Eclipse 4.3 (1)
In a fresh Eclipse Java EE 4.3, Spoofax 1.3 won’t install with error message:
Cannot complete the install because one or more required items could not be found.
Submitted on 14 November 2014 at 10:36
Software being installed: Spoofax Core 1.3.0 (org.strategoxt.imp.feature.group 1.3.0)
Missing requirement: org.metaborg.spoofax.core 1.3.0 (org.metaborg.spoofax.core 1.3.0) requires ‘package org.apache.commons.io [1.4.0,2.0.0)’ but it could not be found
Cannot satisfy dependency:
From: Spoofax Core 1.3.0 (org.strategoxt.imp.feature.group 1.3.0)
To: org.metaborg.spoofax.core [1.3.0]
Issue Log
There seems to be a problem installing spoofax in Eclipse 4.3 (Kepler), I’m looking into it. Spoofax should install into Eclipse 4.4 (Luna) though, so you can try that.
This also occurs when installing nightly into Eclipse 4.3. For reference, the full error is:
Cannot complete the install because one or more required items could not be found. Software being installed: Spoofax EMF Integration 1.3.0.20141119-142412-master (org.spoofax.modelware.emf.feature.feature.group 1.3.0.20141119-142412-master) Missing requirement: org.metaborg.spoofax.core 1.3.0.20141119-142412-master (org.metaborg.spoofax.core 1.3.0.20141119-142412-master) requires 'package org.apache.commons.io [1.4.0,2.0.0)' but it could not be found Cannot satisfy dependency: From: Spoofax EMF Integration 1.3.0.20141119-142412-master (org.spoofax.modelware.emf.feature.feature.group 1.3.0.20141119-142412-master) To: org.strategoxt.imp.feature.group [1.3.0.20141119-142412-master] Cannot satisfy dependency: From: Spoofax Core 1.3.0.20141119-142412-master (org.strategoxt.imp.feature.group 1.3.0.20141119-142412-master) To: org.metaborg.spoofax.core [1.3.0.20141119-142412-master]
The issue here is that Eclipse 4.3 distribution does not include the
org.apache.commons.io
package, but 4.4 does. If we provide theorg.apache.commons.io
package our self, Spoofax can be installed into 4.3, but will cause ambiguities in 4.4.This seems to be caused by the
org.apache.batik.pdf
plugin, which (stupidly) exports theorg.apache.commons.io
package. This Eclipse bug has been reported at: https://bugs.eclipse.org/bugs/show_bug.cgi?id=350792 and https://bugs.eclipse.org/bugs/show_bug.cgi?id=344560. It says it has been fixed, but might have regressed now. For some reason, this plugin is included in 4.4 (GMF depends on it) but not 4.3.Possible solutions:
- Investigate provider and mandatory attributes on Export-Package, to make external dependencies within Spoofax only resolve to our own defined external dependencies.
- Depend on org.apache.batik.pdf in 4.3, if this is possible. This is fragile because we depend on a bug, but a quick solution.
- Create a feature patch and patch the org.apache.batik.pdf package to not export these packages, but this may break wiring in other plugins.
It looks like
org.apache.batik.pdf
still exportsorg.apache.commons.io
, but only if there is an Import-Bundle dependency onorg.apache.batik.pdf
, so we can safely exportorg.apache.commons.io
again.
Log in to post comments