A On Fri, Nov 1, 2019, 03:46 Gintautas Grigelionis <g.grigelio...@gmail.com> wrote:
> 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 > >> > >> >