ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas Lalevée <nicolas.lale...@hibnet.org>
Subject Re: Import and project helpers
Date Tue, 27 Jul 2010 08:12:32 GMT
On Monday 19 July 2010 11:12:47 Nicolas Lalevée wrote:
> On Friday 16 July 2010 18:07:57 Matt Benson wrote:
> > On Jul 16, 2010, at 8:25 AM, Nicolas Lalevée wrote:
> > > Hi,
> > >
> > > I did some other experiment with the groovy frontend to ant
> > > recently. And I
> > > would like to be able to make a groovy build file import an xml
> > > build file
> > > and vice versa.
> > >
> > > As far as I can tell, in order to do this, a simple change would be
> > > needed in
> > > ImportTask. Rather than doing this in importResource:
> > >
> > > helper.parse(getProject(), importedResource);
> > >
> > > we would do something like:
> > >
> > > ProjectHelper subHelper =
> > > ProjectHelperRepository.getInstance().getProjectHelperForBuildFile(
> > >                     importedResource);
> > >
> > > // push current stacks into the sub helper
> > > subHelper.getImportStack().addAll(helper.getImportStack());
> > > subHelper.getExtensionStack().addAll(helper.getExtensionStack());
> > > getProject().addReference(ProjectHelper.PROJECTHELPER_REFERENCE,
> > > subHelper);
> > >
> > > subHelper.parse(getProject(), importedResource);
> > >
> > > // push back the stacks from the sub helper to the main one
> > > getProject().addReference(ProjectHelper.PROJECTHELPER_REFERENCE,
> > > helper);
> > > helper.getImportStack().clear();
> > > helper.getImportStack().addAll(subHelper.getImportStack());
> > > helper.getExtensionStack().clear();
> > > helper.getExtensionStack().addAll(subHelper.getExtensionStack());
> > >
> > >
> > > For the little tests I have done with the groovy frontend, it seems
> > > to work
> > > quite well.
> > >
> > > Actually it seems so simple that I am wondering if I might have
> > > missed some
> > > side effect. Did I ?
> >
> > I suppose it's possible you missed something, but it seems okay.  If
> > it were me, I might work out a way to make the subHelper send its
> > imports/extensions directly back to the top-level ProjectHelper
> > rather than so much clearing and replacing, but I'll admit to being
> > somewhat paranoid.
>
> I think I got paranoid too but the other way: I didn't want to change the
> API of ProjectHelper that might be implemented around the world and bring
> backward compatibility issues.
>
> Thanks for the review, I will commit that probably with some additionnal
> unit tests.

In fact I got stuck in writing unit tests because I cannot control easily 
what's in the ProjectHelperRepository. I think I will modify it so we can 
modify its content in a live system: just like for the property helpers I 
will introduce a task to install a project helper.
So I will be able to do some ant unit tests.
Unless there are some remarks or objections as always.

Nicolas


>
> Nicolas
>
> > -Matt
> >
> > > At least the unit tests showed me that I did nothing that wrong.
> > >
> > > Nicolas
> > >
> > > ---------------------------------------------------------------------
> > > 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



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message