Nicola Ken Barozzi wrote: >> IntrospectionHelper - there are already plently of libraries for doing >> introspection, some using advanced features we can't include because of >> dependencies ( JDK1.3, other libs ). There is also JMX who defines a >> special mechanism for setting attributes ( if someone would want to >> transparently support JMX components as tasks - in commons-modeler for >> example :-). > > Hmmm, seems like FlexibilitySyndrome, where anything can be a Task... > but on the other hand it's really quite cool, 'cause anything can become > a task without implementing Task... cool, very nice. It could be used > for example to use JSP taglibs as tasks, no?
:-) Well - anything can be a Task already ( if it has an execute() method ). That's "flexibility syndrome" from before ant1.0 I think. The "core" of ant consist of loosly coupled components - combined with some simple and flexible beans patterns. There are 2 benefits of a pluggable IH: ability to use a more efficient implementation ( if anyone cares - maybe testing or other non-build uses of ant ). And ability to extend or adapt the patterns. Long ago I proposed a "do" attribute that would allow "adapted" tasks ( i.e. not extending Task) to use a different method ( start, stop, action, etc - execute is the default ). JMX is very interesting because it works on almost the same principle as ant: you have simple mbeans, no need to implement any JMX-specific interface, you have dynamic mbeans that implement an interface, and you have model mbeans that are similar with the TaskAdapter-based tasks. And given the potential adoption of JMX ( tomcat is using it heavily already, and tomcat5 will be fully JMX-based - j2ee requires it, most app servers, many other apps ) - it makes a lot of sense to have a good ( and simple ) way to use it in ant ( for testing, control, automation - probably less for actual compiling ). Currently I'm trying an mlet-like syntax: <mbean name="tomcat:type=Server" code="o.a...." /> <jmx-attribute objectName="tomcat:type=Server" attribute="port" value="8080" /> I think an ant syntax may be more intuitive: <mbean id="tomcat" name="" code="" /> <tomcat port="8080" /> Or even have the <mbean> declaration implemented in an antlib plugin. Costin -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>