public void execute() {
try {
MBeanServer server=(MBeanServer)project.getReference("jmx.server");
if (server == null) {
if( MBeanServerFactory.findMBeanServer(null).size() > 0 ) {
server=(MBeanServer)MBeanServerFactory.findMBeanServer(null).get(0);
} else {
System.out.println("Creating mbean server");
server=MBeanServerFactory.createMBeanServer();
}
project.addReference("jmx.server", server);
}
ObjectName oname=new ObjectName(objectName);
if( args==null ) {
server.invoke(oname, method, null, null);
} else {
// XXX Use the loader ref, if any
Object argsA[]=new Object[ args.size()];
String sigA[]=new String[args.size()];
for( int i=0; i< args.size(); i++ ) {
Arg arg=(Arg)args.elementAt(i);
if( arg.type==null )
arg.type="java.lang.String";
sigA[i]=arg.getType();
argsA[i]=arg.getValue();
// XXX Deal with not string types - IntrospectionUtils
}
server.invoke(oname, method, argsA, sigA);
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
|