On 15/08/2012, at 11:04 PM, Luke Daley wrote:

> I think we should avoid doing this.
> 
> My issue with it is that it's weak modelling. Not to pick on FindBugs (it's 
> by far not the only plugin that does this, including my own), but what's the 
> role of a class named “FindBugsExtension”? 
> 
> These things have a purpose or function, and the name should reflect it. The 
> fact that it's a build language extension is not really relevant to its name 
> I don't think. 

But that's exactly it's purpose. Every plugin has an extension object that 
wires in the DSL for that plugin. It's just a container for a set of DSL 
elements for that plugin. That's all it is, the entire reason for its 
existence. Certainly, each particular element of the plugin's DSL has 
individual purpose, and should be typed and modelled and named according to 
it's purpose. No question there.

The fact that the FindBugs DSL currently only contains properties that define 
some default values is a coincidence. We might later add, say, some ruleset 
definitions. These aren't defaults - they're a model. So, FindBugsDefaults 
would have to be renamed back to FindBugsExtension.

These things are DSL extensions.


--
Adam Murdoch
Gradle Co-founder
http://www.gradle.org
VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com

Reply via email to