ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Benson <gudnabr...@gmail.com>
Subject Re: Import and project helpers
Date Mon, 19 Jul 2010 18:45:48 GMT

On Jul 19, 2010, at 4:12 AM, 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.
>

I didn't actually pick up on where there was an actual API change?   
Being backward-compatibility-obsessed as a project, we should expand  
rather than change our APIs...

-Matt

> Thanks for the review, I will commit that probably with some  
> additionnal unit
> tests.
>
> 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