By the way, the failure "unable to create engine" was due to OpenJDK 7 lacking Rhino. Perhaps worth a mention, too.
Gintas On Wed, 30 Oct 2019 at 21:59, Gintautas Grigelionis <g.grigelio...@gmail.com> wrote: > Thanks for prompt reply and all pointers. idReferences seem to have no > connection to references that addBeans use. > > I am under impression that things were somewhat different with Ant 1.6 > (-ish), but the manual did not change since then > so it probably needs an update with a reference to macrodef and friends as > more useful for use cases like this. > Maybe there's a point in making addBeans to instantiate all idReferences? > Or at least to log which idReferences are not instantiated yet? > > Gintas > > On Tue, 29 Oct 2019 at 10:01, Jan Matèrne (jhm) <apa...@materne.de> wrote: > >> The AntXMLContext stores the id-object pair in the project instance via >> public void configureId(Object element, Attributes attr) { >> String id = attr.getValue("id"); >> if (id != null) { >> project.addIdReference(id, element); >> } >> } >> >> In the Projct class this is stored in a HashMap >> >> /** Map of id references - used for indicating broken build files */ >> private final HashMap<String, Object> idReferences = new HashMap<>(); >> >> public void addIdReference(final String id, final Object value) { >> idReferences.put(id, value); >> } >> >> But I haven't found a place where this private field is read... >> >> >> Jan >> >> >> >> > -----Ursprüngliche Nachricht----- >> > Von: Jan Matèrne (jhm) [mailto:apa...@materne.de] >> > Gesendet: Dienstag, 29. Oktober 2019 08:48 >> > An: 'Ant Developers List' >> > Betreff: AW: Script task specification >> > >> > I placed some system-outs in the parsing code. >> > The parsing is done by ProjectHelper2. Id is stored via AntXMLContext to >> > the "UnknownElement". >> > >> > C:\projekte\apache-ant-svn\sandbox\script>ant >> > Buildfile: C:\projekte\apache-ant-svn\sandbox\script\build.xml >> > PH2.ElemeentHandler.onStartElement tag=echo taskname=echo >> > AntXMLContext.configureId >> > element=org.apache.tools.ant.UnknownElement@1f89ab83 id=foo >> > PH2.ElemeentHandler.onStartElement tag=script taskname=script >> > AntXMLContext.configureId >> > element=org.apache.tools.ant.UnknownElement@383534aa id=null >> > >> > >> > main: >> > [script] PH2.ElemeentHandler.onStartElement tag=antlib >> > taskname=antlib >> > [script] AntXMLContext.configureId >> > element=org.apache.tools.ant.UnknownElement@50cbc42f id=null >> > [script] PH2.ElemeentHandler.onStartElement tag=componentdef >> > taskname=componentdef >> > ... more element definitions ... >> > >> > BUILD FAILED >> > C:\projekte\apache-ant-svn\sandbox\script\build.xml:9: >> > org.mozilla.javascript.EcmaError: ReferenceError: "foo" is not defined. >> > >> > >> > >> > Jan >> > >> > >> > > -----Ursprüngliche Nachricht----- >> > > Von: Jan Matèrne (jhm) [mailto:apa...@materne.de] >> > > Gesendet: Dienstag, 29. Oktober 2019 08:03 >> > > An: 'Ant Developers List' >> > > Betreff: AW: Script task specification >> > > >> > > It seems that the task must be executed before. >> > > If you add a >depends="sub"< on the main target, that works. >> > > >> > > So the question is: when are id's stored? >> > > The parsing is done via ProjectHelper's and their SAX-Parser-Handlers. >> > > On the first view I would say, that the id is stored while parsing - >> > > so before exucution. >> > > >> > > >> > > Jan >> > > >> > > > -----Ursprüngliche Nachricht----- >> > > > Von: Gintautas Grigelionis [mailto:g.grigelio...@gmail.com] >> > > > Gesendet: Montag, 28. Oktober 2019 14:25 >> > > > An: Ant Developers List >> > > > Betreff: Script task specification >> > > > >> > > > The documentation of the script task states: >> > > > >> > > > "All items (tasks, targets, etc) of the running project are >> > > > accessible from the script, using either their name or id attributes >> > > > (as long as their names are considered valid Java identifiers, that >> > is). " >> > > > >> > > > However, the following fails: >> > > > >> > > > <?xml version="1.0"?> >> > > > <project name="test" default="main" basedir="."> >> > > > <target name="sub"> >> > > > <echo id="foo">Executing a task</echo> >> > > > </target> >> > > > >> > > > <!-- tests the script stuff --> >> > > > <target name="main"> >> > > > <script language="javascript"><![CDATA[ >> > > > foo.setMessage("I'm a foo!") >> > > > sub.execute() >> > > > ]]></script> >> > > > </target> >> > > > </project> >> > > > >> > > > Surely there are more limitations? Besides, failure modes are >> > > > different in Rhino (unable to create engine) and Nashorn (reference >> > > not defined). >> > > > >> > > > Regards, >> > > > Gintas >> > > >> > > >> > > --------------------------------------------------------------------- >> > > To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org For additional >> > > commands, e-mail: dev-h...@ant.apache.org >> > >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org For additional >> > commands, e-mail: dev-h...@ant.apache.org >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org >> For additional commands, e-mail: dev-h...@ant.apache.org >> >>