Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@apache.org Received: (qmail 69699 invoked from network); 28 Feb 2003 04:54:40 -0000 Received: from exchange.sun.com (192.18.33.10) by daedalus.apache.org with SMTP; 28 Feb 2003 04:54:40 -0000 Received: (qmail 27737 invoked by uid 97); 28 Feb 2003 04:56:25 -0000 Delivered-To: qmlist-jakarta-archive-commons-dev@nagoya.betaversion.org Received: (qmail 27730 invoked from network); 28 Feb 2003 04:56:25 -0000 Received: from daedalus.apache.org (HELO apache.org) (208.185.179.12) by nagoya.betaversion.org with SMTP; 28 Feb 2003 04:56:25 -0000 Received: (qmail 69344 invoked by uid 500); 28 Feb 2003 04:54:36 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 69333 invoked by uid 500); 28 Feb 2003 04:54:36 -0000 Received: (qmail 69330 invoked from network); 28 Feb 2003 04:54:36 -0000 Received: from icarus.apache.org (208.185.179.13) by daedalus.apache.org with SMTP; 28 Feb 2003 04:54:36 -0000 Received: (qmail 30542 invoked by uid 1052); 28 Feb 2003 04:54:35 -0000 Date: 28 Feb 2003 04:54:35 -0000 Message-ID: <20030228045435.30541.qmail@icarus.apache.org> From: costin@apache.org To: jakarta-commons-cvs@apache.org Subject: cvs commit: jakarta-commons/modeler/src/java/org/apache/commons/modeler/ant JmxSet.java MLETTask.java ModelerTask.java ant.properties X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N costin 2003/02/27 20:54:35 Modified: modeler/src/java/org/apache/commons/modeler/ant JmxSet.java MLETTask.java ModelerTask.java ant.properties Log: A bit of refactoring and improvements in the ant tasks, to simplify the syntax and take advantage of metadata. The type is no longer needed ( since we have it anyway ). Duplicated code removed. can take a "modeler" boolean flag that will add support for arbitrary beans ( it was a separate tag before ). Revision Changes Path 1.5 +24 -14 jakarta-commons/modeler/src/java/org/apache/commons/modeler/ant/JmxSet.java Index: JmxSet.java =================================================================== RCS file: /home/cvs/jakarta-commons/modeler/src/java/org/apache/commons/modeler/ant/JmxSet.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- JmxSet.java 5 Jan 2003 16:38:09 -0000 1.4 +++ JmxSet.java 28 Feb 2003 04:54:35 -0000 1.5 @@ -57,6 +57,7 @@ import org.apache.tools.ant.*; import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.Log; +import org.apache.commons.modeler.Registry; import javax.management.*; import javax.management.MBeanServer; @@ -74,6 +75,7 @@ String valueRef; Object objValue; String objectName; + ObjectName oname; String type; @@ -84,6 +86,14 @@ this.attribute = attribute; } + public void setName( String name ) { + this.attribute=name; + } + + public String getName() { + return attribute; + } + public void setValue(String value) { this.value = value; } @@ -108,30 +118,30 @@ this.objectName = name; } + public void setObjectName( ObjectName oname ) { + this.oname=oname; + } public void execute() { try { - MBeanServer server=(MBeanServer)project.getReference("jmx.server"); + Registry registry=Registry.getRegistry(); + MBeanServer server=registry.getMBeanServer(); - if (server == null) { - if( MBeanServerFactory.findMBeanServer(null).size() > 0 ) { - server=(MBeanServer)MBeanServerFactory.findMBeanServer(null).get(0); - } else { - if( log.isDebugEnabled()) - log.debug("Creating mbean server"); - server=MBeanServerFactory.createMBeanServer(); - } - project.addReference("jmx.server", server); + if( oname==null ) + oname=new ObjectName(objectName); + if( type==null ) { + type=registry.getType(oname, attribute); + if( log.isDebugEnabled()) + log.debug("Discovered type " + type); } - ObjectName oname=new ObjectName(objectName); - // XXX convert value, use meta data to find type - if( objValue==null && valueRef != null ) { + if( objValue==null && valueRef != null ) { objValue=project.getReference(valueRef); } if( objValue==null ) { - if( type==null) {// string is default + if( type==null || "java.lang.String".equals( type )) { + // string is default objValue=value; } else if( "ObjectName".equals( type )) { if( log.isTraceEnabled()) 1.4 +47 -16 jakarta-commons/modeler/src/java/org/apache/commons/modeler/ant/MLETTask.java Index: MLETTask.java =================================================================== RCS file: /home/cvs/jakarta-commons/modeler/src/java/org/apache/commons/modeler/ant/MLETTask.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- MLETTask.java 5 Jan 2003 16:38:09 -0000 1.3 +++ MLETTask.java 28 Feb 2003 04:54:35 -0000 1.4 @@ -83,8 +83,10 @@ String archive; String codebase; String objectName; + ObjectName oname; - Vector args; + List args=new ArrayList(); + List attributes=new ArrayList(); // ant specific String loaderRef; // class loader ref @@ -93,8 +95,11 @@ } public void addArg(Arg arg ) { - if( args==null ) args=new Vector(); - args.addElement(arg); + args.add(arg); + } + + public void addAttribute( JmxSet arg ) { + attributes.add( arg ); } @@ -151,36 +156,62 @@ return server; } + boolean modeler=false; + + public void setModeler(boolean modeler) { + this.modeler = modeler; + } protected void bindJmx(String objectName, String code, - String arg0, Vector args) + String arg0, List args) throws Exception { MBeanServer server=getMBeanServer(); - ObjectName oname=new ObjectName( objectName ); + oname=new ObjectName( objectName ); + if( modeler ) { + Arg codeArg=new Arg(); + codeArg.setType("java.lang.String"); + codeArg.setValue( code ); + if( args==null) args=new ArrayList(); + args.add(0, codeArg); + code="org.apache.commons.modeler.BaseModelMBean"; + } + + Object argsA[]=new Object[ args.size()]; + String sigA[]=new String[args.size()]; + for( int i=0; i