On Feb 26, 2005, at 4:01 PM, Ralph Goers wrote:

Glen Ezkovich wrote:


They will always find a special case where this is most expedient or only solution they see because they don't realize that there are other more appropriate solutions. Making this configurable just adds one more complexity to the equation. I suggest that it be decided one way or the other. If you want users to be able to hang themselves by writing Java code in their templates if they choose, let them. If not, don't.


The problem is, it isn't our place to be prohibiting this. This is a policy decision user's of Cocoon need to make. You can be sure that in my organization I would have a policy that prohibits enabling this feature, but I am also sure that there are plenty of folks who don't share the same view and consider the ability to invoke aribitrary stuff from a template a necessity. In that sense it has to be configurable, because I want to absolutely be sure the feature cannot be used and not rely on folks voluntarily complying.

I think we share the same sentiment. On the other hand, you can not be sure that someone has not turned this feature on unless you check and if the feature is there you can check to see if it has been used. Either way you have to check. Admittedly, checking wether it is turned on is easier then checking if it has been used. If you are in charge and you say "do not write Java programs in the template", then the compliance is not voluntary.


Until recently, I believed that "features" such as this should be configurable because as you say, not everyone shares the same view. What I've come to realize is that the more there is to configure the more difficult and annoying a product becomes to use. I've also come to realize that if I believe strongly about a policy and can build consensus, then its probably a good thing to enforce that policy in code. There is a reason that you will have your organization prohibit this feature. Why, in a product that you are contributing to will you allow users to make bad decisions? Stand up for your convictions. While CTemplate will be Cocoon's template framework, nothing precludes those who want the ability to write Java programs in their templates from implementing there own template generator or using the current JXTG.

The feature of configuring the ability to write Java programs in a template smells of featuritis and MS Office syndrome. If you feel that there are currently valid reasons to allow Java programming in a template leave the ability in and add a script to your build system that checks for this in your templates. If you, like me, can see no valid and appropriate use case at this time, take it out. Keep things simple.


Glen Ezkovich HardBop Consulting glen at hard-bop.com



A Proverb for Paranoids:
"If they can get you asking the wrong questions, they don't have to worry about answers."
- Thomas Pynchon Gravity's Rainbow




Reply via email to