Could you describe how you want to use this a bit? There's already the ServiceConfigBuilder which converts xml gbean plans to Configurations and the whole Configuration framework which do this. Also you can register custom NamespaceDrivenBuilders to process documents in other xml schemas into gbean configurations. So I wonder if what you want to do is already possible...

Without knowing what you are aiming for its very hard to give you any advice.

thanks
david jencks
On Aug 24, 2007, at 11:13 AM, Stefan Schulze Frielinghaus wrote:

Hello,

I'm trying to write a GBean which dynamically deploys and undeploys
other GBeans. My first thought about this task was to get a list of
all running modules from which I could decide which to undeploy.

String uri = "deployer:geronimo:inVM";
String username = "system";
String password = "manager";
                
dManager = dFactoryMgr.getDeploymentManager(uri, username, password);

System.out.println("Targets:");
Target[] targets = dManager.getTargets();               
for(Target t : targets) {
        System.out.println(t);
}

System.out.println("Modules:");
TargetModuleID[] moduleIDs = dManager.getRunningModules(null, targets);
                        
for(TargetModuleID m : moduleIDs) {
        System.out.println(m);
}

With the code above I tried to accomplish my goal. But if I run this
one I get the following exception:

14:38:55,100 ERROR [BaseDeploymentFactory]
org.apache.geronimo.web.deployment.WARConfigurer
java.lang.ClassCastException:
org.apache.geronimo.web.deployment.WARConfigurer
         at
org.apache.geronimo.deployment.plugin.jmx.LocalDeploymentManager.loadM od
uleConfigurers(LocalDeploymentManager.java:51)
         at
org.apache.geronimo.deployment.plugin.jmx.LocalDeploymentManager.<init >(
LocalDeploymentManager.java:41)
         at
org.apache.geronimo.deployment.plugin.factories.BaseDeploymentFactory. ge
tDeploymentManager(BaseDeploymentFactory.java:133)
         at
javax.enterprise.deploy.shared.factories.DeploymentFactoryManager.getD ep
loymentManager(DeploymentFactoryManager.java:109)
         at
de.furtwangen.hs.informatik.geronimo.ac.MigrationService.test
(MigrationService.java:37)
         at
de.furtwangen.hs.informatik.geronimo.ac.AutonomicGeronimoGBean.testMig ra
tion(AutonomicGeronimoGBean.java:202)
         at
de.furtwangen.hs.informatik.geronimo.ac.AutonomicGeronimoGBean$
$FastClassByCGLIB$$78735f6f.invoke(<generated>)
         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
         at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
         at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:127)
         at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:863)
         at org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:239)
         at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke
(MBeanGBeanBridge.java:168)
         at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke
(DynamicMetaDataImpl.java:213)
         at com.sun.jmx.mbeanserver.MetaDataImpl.invoke
(MetaDataImpl.java:220)
         at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke
(DefaultMBeanServerInterceptor.java:815)
         at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke
(JmxMBeanServer.java:784)
         at javax.management.remote.rmi.RMIConnectionImpl.doOperation
(RMIConnectionImpl.java:1408)
         at javax.management.remote.rmi.RMIConnectionImpl.access$100
(RMIConnectionImpl.java:81)
         at javax.management.remote.rmi.RMIConnectionImpl
$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
         at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation
(RMIConnectionImpl.java:1341)
         at javax.management.remote.rmi.RMIConnectionImpl.invoke
(RMIConnectionImpl.java:782)
         at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown
Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at sun.rmi.server.UnicastServerRef.dispatch
(UnicastServerRef.java:294)
         at sun.rmi.transport.Transport$1.run(Transport.java:153)
         at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java: 149)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages
(TCPTransport.java:466)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run
(TCPTransport.java:707)
         at java.lang.Thread.run(Thread.java:613)

Is there another way to deploy/undeploy GBeans via another GBean?

I even tried it with another URI (String uri =
"deployer:geronimo:jmx:rmi://localhost/jndi/rmi:/JMXConnector";) but
with that I still got a worse result.

javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationExcept io
n: Failed to retrieve RMIServer stub:
javax.naming.NoInitialContextException: Cannot instantiate class:
org.apache.xbean.naming.global.GlobalContextManager [Root exception
is java.lang.ClassNotFoundException:
org.apache.xbean.naming.global.GlobalContextManager]
         at
org.apache.geronimo.deployment.plugin.factories.BaseDeploymentFactory. ne
wRemoteDeploymentManager(BaseDeploymentFactory.java:167)
         at
org.apache.geronimo.deployment.plugin.factories.BaseDeploymentFactory. ge
tDeploymentManager(BaseDeploymentFactory.java:131)
         at
javax.enterprise.deploy.shared.factories.DeploymentFactoryManager.getD ep
loymentManager(DeploymentFactoryManager.java:109)
         at
de.furtwangen.hs.informatik.geronimo.ac.MigrationService.test
(MigrationService.java:37)
         at
de.furtwangen.hs.informatik.geronimo.ac.AutonomicGeronimoGBean.testMig ra
tion(AutonomicGeronimoGBean.java:202)
         at
de.furtwangen.hs.informatik.geronimo.ac.AutonomicGeronimoGBean$
$FastClassByCGLIB$$78735f6f.invoke(<generated>)
         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
         at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
         at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:127)
         at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:863)
         at org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:239)
         at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke
(MBeanGBeanBridge.java:168)
         at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke
(DynamicMetaDataImpl.java:213)
         at com.sun.jmx.mbeanserver.MetaDataImpl.invoke
(MetaDataImpl.java:220)
         at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke
(DefaultMBeanServerInterceptor.java:815)
         at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke
(JmxMBeanServer.java:784)
         at javax.management.remote.rmi.RMIConnectionImpl.doOperation
(RMIConnectionImpl.java:1408)
         at javax.management.remote.rmi.RMIConnectionImpl.access$100
(RMIConnectionImpl.java:81)
         at javax.management.remote.rmi.RMIConnectionImpl
$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
         at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation
(RMIConnectionImpl.java:1341)
         at javax.management.remote.rmi.RMIConnectionImpl.invoke
(RMIConnectionImpl.java:782)
         at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown
Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:585)
         at sun.rmi.server.UnicastServerRef.dispatch
(UnicastServerRef.java:294)
         at sun.rmi.transport.Transport$1.run(Transport.java:153)
         at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java: 149)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages
(TCPTransport.java:466)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run
(TCPTransport.java:707)
         at java.lang.Thread.run(Thread.java:613)
Caused by: java.io.IOException: Failed to retrieve RMIServer stub:
javax.naming.NoInitialContextException: Cannot instantiate class:
org.apache.xbean.naming.global.GlobalContextManager [Root exception
is java.lang.ClassNotFoundException:
org.apache.xbean.naming.global.GlobalContextManager]
         at javax.management.remote.rmi.RMIConnector.connect
(RMIConnector.java:317)
         at javax.management.remote.JMXConnectorFactory.connect
(JMXConnectorFactory.java:248)
         at
org.apache.geronimo.deployment.plugin.factories.BaseDeploymentFactory. ne
wRemoteDeploymentManager(BaseDeploymentFactory.java:159)
         ... 30 more
Caused by: javax.naming.NoInitialContextException: Cannot instantiate
class: org.apache.xbean.naming.global.GlobalContextManager [Root
exception is java.lang.ClassNotFoundException:
org.apache.xbean.naming.global.GlobalContextManager]
         at javax.naming.spi.NamingManager.getInitialContext
(NamingManager.java:657)
         at javax.naming.InitialContext.getDefaultInitCtx
(InitialContext.java:247)
         at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java: 197)
         at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI
(RMIConnector.java:1815)
         at javax.management.remote.rmi.RMIConnector.findRMIServer
(RMIConnector.java:1787)
         at javax.management.remote.rmi.RMIConnector.connect
(RMIConnector.java:259)
         ... 32 more
Caused by: java.lang.ClassNotFoundException:
org.apache.xbean.naming.global.GlobalContextManager
         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
268)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:
319)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:242)
         at com.sun.naming.internal.VersionHelper12.loadClass
(VersionHelper12.java:42)
         at javax.naming.spi.NamingManager.getInitialContext
(NamingManager.java:654)
         ... 38 more

Since I've the package org.apache.xbean.naming in my classpath I
don't no why geronimo can't instantiate a class of them.

So has anyone an idea how to solve a deply/undeploy task?

Best regards,
Stefan

PS: I miss opened this thread at [EMAIL PROTECTED] and "closed" it. Sorry for the inconvenience.

Reply via email to