Import term in deployed plugin
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:Submitted by Nathan Bruning on 15 April 2010 at 20:43[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
Issue Log
You can specify whether to unpack a plugin jar by setting the
unpack
property in thefeature.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"
:)
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
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 thatImportTerm
tries to load the file from yourwebdsl_editor.jar
file, throwing an exception if it can’t find it there. Maybe you could check if that file is included in thejar
?
Log in to post comments