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.
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]

Submitted on 14 November 2014 at 10:36

On 14 November 2014 at 10:47 Manuel Weiel tagged !manuelweiel

On 20 November 2014 at 14:02 Gabriël Konat commented:

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.


On 20 November 2014 at 14:18 Gabriël Konat commented:

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]

On 21 November 2014 at 11:03 Gabriël Konat commented:

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 the org.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 the org.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.

On 21 November 2014 at 14:07 Gabriël Konat tagged 1.3.1

On 21 November 2014 at 14:09 Gabriël Konat commented:

It looks like org.apache.batik.pdf still exports org.apache.commons.io, but only if there is an Import-Bundle dependency on org.apache.batik.pdf, so we can safely export org.apache.commons.io again.


On 21 November 2014 at 14:09 Gabriël Konat closed this issue.

Log in to post comments