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 Thu, 29 Jul 2010 18:39:53 GMT
I have committed it.
Unit tests are showing me that is works quite well.

cheers,
Nicolas


Le 27 juil. 2010 à 10:12, Nicolas Lalevée a écrit :

> 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
> 


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


Mime
View raw message