When a plugin is deployed via an update site, Eclipse unpacks the plugins jar (at least, for some plugins???)

import-term works fine when the plugin is contained inside a jar, but otherwise the file containing the term is looked up in the installation directory of the strj plugin.

For example, <import-term(editor.timestamp.aterm)> results in:

[pid  8519] stat("/home/nathan/EclipseUpdateTesting/eclipse/plugins/org.strategoxt.strj_0.2.3.201004101222/trans/editor.timestamp.aterm", 0x2b2b55566040) = -1 ENOENT (No such file or directory)
[pid  8519] stat("/home/nathan/EclipseUpdateTesting/eclipse/plugins/org.strategoxt.strj_0.2.3.201004101222/editor.timestamp.aterm", 0x2b2b55566030) = -1 ENOENT
Submitted by Nathan Bruning on 15 April 2010 at 20:43

On 15 April 2010 at 22:31 Lennart Kats commented:

You can specify whether to unpack a plugin jar by setting the unpack property in the feature.xml file. If you don’t specify the property, Eclipse just seems to decide arbitrarily whether or not to unpack (at least I haven’t been able to find out when it unpacks and when it doesn’t, just that it can change its mind at some point, breaking plugins that previously worked fine).

I suppose a workaround for now is to specify unpack="false" :)


On 16 April 2010 at 19:51 Nathan Bruning commented:

When specifying unpack=“false”, the plugin does not seem to load it’s own jar files into the interpreter.

Plugin jar contains (amongst other) these files:

include/webdsl.jar
include/webdsl_editor.jar
lib/acoda.jar

Error message while loading plugin:

Error loading compiler service providers [include/webdsl_editor.jar, include/webdsl.jar, lib/acoda.jar]
(ZipException: error in opening zip file)

And then:

org.spoofax.interpreter.core.UndefinedStrategyException: Definition 'editor-analyze' not found

On 17 April 2010 at 12:08 Lennart Kats commented:

Hehe, yeah, that’s kind of what I expected to happen. That’s an Eclipse limitation. But I thought your previous comment suggested that this worked for you?

Also, don’t you just get a StrategoException when loading the file fails? What should happen is that ImportTerm tries to load the file from your webdsl_editor.jar file, throwing an exception if it can’t find it there. Maybe you could check if that file is included in the jar?

Log in to post comments