David, Thanks for providing this tool, it's a big help. I had some problems on a test geronimo-application.xml file that includes some gbean references (for hooking up to security gbeans). The file looks like:
================================================= <?xml version="1.0" ?> <application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application" configId="hello" parentId="geronimo/j2ee-security/1.0.1-SNAPSHOT/car"> <gbean name="hello-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> <attribute name="realmName">hello-realm</attribute> <reference name="LoginModuleConfiguration"> <name>hello-login-chain</name> </reference> <reference name="ServerInfo"> <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-system/1.0.1-SNAPSHOT/car,J2EEServer=geronimo,j2eeType=GBean,name=ServerInfo</gbean-name> </reference> <reference name="LoginService"> <gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-security/1.0.1-SNAPSHOT/car,J2EEServer=geronimo,j2eeType=JaasLoginService,name=JaasLoginService</gbean-name> </reference> </gbean> <gbean name="hello-login-chain" class="org.apache.geronimo.security.jaas.JaasLoginModuleUse"> <attribute name="controlFlag">REQUIRED</attribute> <reference name="LoginModule"> <name>hello-login</name> </reference> </gbean> <gbean name="hello-login" class="org.apache.geronimo.security.jaas.LoginModuleGBean"> <attribute name="loginModuleClass">reva.common.auth.TrivialLoginModule</attribute> <attribute name="serverSide">true</attribute> <attribute name="options"> usersURI=var/security/demo_users.properties groupsURI=var/security/demo_groups.properties </attribute> <attribute name="loginDomainName">hello-realm</attribute> </gbean> </application> ================================================= The problem seems to be the application/gbean/reference/gbean-name elements, as the error I get at offline deploy time looks like: Deployer operation failed: org.apache.xmlbeans.XmlException: Invalid deployment descriptor: [error: cvc-complex-type.2.4a: Expected elements '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' instead of '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' here in element [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1, error: cvc-complex-type.2.4a: Expected elements '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' instead of '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' here in element [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1] Descriptor: <xml-fragment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:environment> <dep:moduleId> <dep:groupId>default</dep:groupId> <dep:artifactId>hello</dep:artifactId> <dep:version>1-default</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies> <dep:dependency> <dep:groupId>geronimo</dep:groupId> <dep:artifactId>j2ee-security</dep:artifactId> <dep:version>1.0.1-SNAPSHOT</dep:version> <dep:type>car</dep:type> </dep:dependency> </dep:dependencies> <dep:hidden-classes/> <dep:non-overridable-classes/> </dep:environment> <dep:gbean name="hello-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> <dep:attribute name="realmName">hello-realm</dep:attribute> <dep:reference name="LoginModuleConfiguration"> <dep:name>hello-login-chain</dep:name> </dep:reference> <dep:reference name="ServerInfo"> <dep:gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-system/1.0.1-SNAPSHOT/car,J2EEServer=geronimo,j2eeType=GBean,name=ServerInfo</dep:gbean-name> </dep:reference> <dep:reference name="LoginService"> <dep:gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-security/1.0.1-SNAPSHOT/car,J2EEServer=geronimo,j2eeType=JaasLoginService,name=JaasLoginService</dep:gbean-name> </dep:reference> </dep:gbean> <dep:gbean name="hello-login-chain" class="org.apache.geronimo.security.jaas.JaasLoginModuleUse"> <dep:attribute name="controlFlag">REQUIRED</dep:attribute> <dep:reference name="LoginModule"> <dep:name>hello-login</dep:name> </dep:reference> </dep:gbean> <dep:gbean name="hello-login" class="org.apache.geronimo.security.jaas.LoginModuleGBean"> <dep:attribute name="loginModuleClass">reva.common.auth.TrivialLoginModule</dep:attribute> <dep:attribute name="serverSide">true</dep:attribute> <dep:attribute name="options">usersURI=var/security/demo_users.properties groupsURI=var/security/demo_groups.properties</dep:attribute> <dep:attribute name="loginDomainName">hello-realm</dep:attribute> </dep:gbean> </xml-fragment> org.apache.geronimo.common.DeploymentException: org.apache.xmlbeans.XmlException: Invalid deployment descriptor: [error: cvc-complex-type.2.4a: Expected elements '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' instead of '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' here in element [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1, error: cvc-complex-type.2.4a: Expected elements '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1 [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' instead of '[EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1' here in element [EMAIL PROTECTED]://geronimo.apache.org/xml/ns/deployment-1.1] Descriptor: <xml-fragment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:environment> <dep:moduleId> <dep:groupId>default</dep:groupId> <dep:artifactId>hello</dep:artifactId> <dep:version>1-default</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies> <dep:dependency> <dep:groupId>geronimo</dep:groupId> <dep:artifactId>j2ee-security</dep:artifactId> <dep:version>1.0.1-SNAPSHOT</dep:version> <dep:type>car</dep:type> </dep:dependency> </dep:dependencies> <dep:hidden-classes/> <dep:non-overridable-classes/> </dep:environment> <dep:gbean name="hello-realm" class="org.apache.geronimo.security.realm.GenericSecurityRealm"> <dep:attribute name="realmName">hello-realm</dep:attribute> <dep:reference name="LoginModuleConfiguration"> <dep:name>hello-login-chain</dep:name> </dep:reference> <dep:reference name="ServerInfo"> <dep:gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-system/1.0.1-SNAPSHOT/car,J2EEServer=geronimo,j2eeType=GBean,name=ServerInfo</dep:gbean-name> </dep:reference> <dep:reference name="LoginService"> <dep:gbean-name>geronimo.server:J2EEApplication=null,J2EEModule=geronimo/j2ee-security/1.0.1-SNAPSHOT/car,J2EEServer=geronimo,j2eeType=JaasLoginService,name=JaasLoginService</dep:gbean-name> </dep:reference> </dep:gbean> <dep:gbean name="hello-login-chain" class="org.apache.geronimo.security.jaas.JaasLoginModuleUse"> <dep:attribute name="controlFlag">REQUIRED</dep:attribute> <dep:reference name="LoginModule"> <dep:name>hello-login</dep:name> </dep:reference> </dep:gbean> <dep:gbean name="hello-login" class="org.apache.geronimo.security.jaas.LoginModuleGBean"> <dep:attribute name="loginModuleClass">reva.common.auth.TrivialLoginModule</dep:attribute> <dep:attribute name="serverSide">true</dep:attribute> <dep:attribute name="options">usersURI=var/security/demo_users.properties groupsURI=var/security/demo_groups.properties</dep:attribute> <dep:attribute name="loginDomainName">hello-realm</dep:attribute> </dep:gbean> </xml-fragment> at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.getEarPlan(EARConfigBuilder.java:342) at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.getDeploymentPlan(EARConfigBuilder.java:260) at org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.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:122) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:817) at org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) at org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35) at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) at org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$a95a5462.getDeploymentPlan(<generated>) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:229) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:121) at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.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:122) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239) at org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:106) at org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:60) at java.lang.Thread.run(Thread.java:534) I have a vaguely ominous sense that the way I'm using gbean-name isn't kosher, but it has worked fine up till now. Thanks, Toby