ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexey Solofnenko <trel...@gmail.com>
Subject Re: Script task specification
Date Thu, 02 Jul 2020 01:06:41 GMT
A

On Fri, Nov 1, 2019, 03:46 Gintautas Grigelionis <g.grigelionis@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.grigelionis@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) <apache@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:apache@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:apache@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.grigelionis@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-unsubscribe@ant.apache.org For
> additional
> >> > > commands, e-mail: dev-help@ant.apache.org
> >> >
> >> >
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org For additional
> >> > commands, e-mail: dev-help@ant.apache.org
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> >> For additional commands, e-mail: dev-help@ant.apache.org
> >>
> >>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message