Deployment Plan XML Parsing - Not add generated namespace names to closing tags
-------------------------------------------------------------------------------

                 Key: GERONIMO-4861
                 URL: https://issues.apache.org/jira/browse/GERONIMO-4861
             Project: Geronimo
          Issue Type: Bug
      Security Level: public (Regular issues)
          Components: deployment
    Affects Versions: 2.2
            Reporter: Quintin Beukes
            Priority: Minor


When creating a deployment plan and using more than one namespace, but not 
implicitly specifying the namespaces in all elements, the namespace names are 
added to the temporary XML file. Though it doesn't add them correctly. I 
included my original openejb-jar.xml, the error I get through deploy.sh, and 
the generated XML file (which I reformatted to make it more readable). 

You will notice the problem are in the last 2 closing tags of the ns7 (ie. 
security-2.0) namespace. The ns7 namespace prefix wasn't added to them, and 
this generates the validator error.

{code:xml|title=original-openejb-jar.xml}
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar xmlns="http://openejb.apache.org/xml/ns/openejb-jar-2.2";
         xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2";
         xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0";
         xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2";>

  <dep:environment>
    <dep:moduleId>
      <dep:groupId>kms</dep:groupId>
      <dep:artifactId>KMSPlatform-ejb</dep:artifactId>
      <dep:version>1.0</dep:version>
      <dep:type>jar</dep:type>
    </dep:moduleId>

    <dep:dependencies>
      <dep:dependency>
        <dep:groupId>console.dbpool</dep:groupId>
        <dep:artifactId>jdbc_kmsPool</dep:artifactId>
        <dep:version>1.0</dep:version>
        <dep:type>rar</dep:type>
      </dep:dependency>

      <dep:dependency>
        <dep:groupId>console.realm</dep:groupId>
        <dep:artifactId>KMSRealm</dep:artifactId>
        <dep:version>1.0</dep:version>
        <dep:type>car</dep:type>
      </dep:dependency>

      <dep:dependency>
        <dep:groupId>org.springframework</dep:groupId>
        <dep:artifactId>spring-core</dep:artifactId>
        <dep:version>2.5.6</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>org.springframework</dep:groupId>
        <dep:artifactId>spring-beans</dep:artifactId>
        <dep:version>2.5.6</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>org.springframework</dep:groupId>
        <dep:artifactId>spring-context</dep:artifactId>
        <dep:version>2.5.6</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>

      <dep:dependency>
        <dep:groupId>org.slf4j</dep:groupId>
        <dep:artifactId>slf4j-api</dep:artifactId>
        <dep:version>1.5.5</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>

      <!-- hibernate follows -->
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>core</dep:artifactId>
        <dep:version>3.3</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>annotations</dep:artifactId>
        <dep:version>3.4</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>antlr</dep:artifactId>
        <dep:version>2.7.6</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>commons-annotations</dep:artifactId>
        <dep:version>3.4</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>commons-collections</dep:artifactId>
        <dep:version>3.1</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>dom4j</dep:artifactId>
        <dep:version>1.6.1</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>entitymanager</dep:artifactId>
        <dep:version>3.4</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>javassist</dep:artifactId>
        <dep:version>3.9.0.GA</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>jpa</dep:artifactId>
        <dep:version>3.0</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>jta</dep:artifactId>
        <dep:version>1.1</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>hibernate</dep:groupId>
        <dep:artifactId>GeronimoTransactionManager</dep:artifactId>
        <dep:version>1.0</dep:version>
        <dep:type>jar</dep:type>
      </dep:dependency>
    </dep:dependencies>
  </dep:environment>

  <security>
    <role-mappings>
      <role role-name="Admin">
        <principal 
class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"
                  name="Admin"/>
      </role>
      <role role-name="Standard User">
        <principal 
class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"
                  name="Standard User"/>
      </role>
    </role-mappings>
  </security>
</openejb-jar>
{code}

{code:title=Deployment Error}
2009-09-10 11:43:04,602 ERROR [DeployTool] Error: 
org.apache.geronimo.common.DeploymentException: Unable to deploy 
KMSPlatform-ejb.jar: Error parsing geronimo-openejb.xml with xmlbeans.  
For debug purposes, XML content written to: 
/opt/kms/server/geronimo-2.2-20090908/var/temp/openejb-jar-1373120338936693638.xml
        error: </role-mappings> does not close tag <ns7:role-mappings>.
        </role-mappings> does not close tag <ns7:role-mappings>.

        at 
org.apache.geronimo.deployment.cli.CommandDeploy.runCommand(CommandDeploy.java:45)
        at 
org.apache.geronimo.deployment.cli.CommandDistribute.executeOnline(CommandDistribute.java:149)
        at 
org.apache.geronimo.deployment.cli.CommandDistribute.execute(CommandDistribute.java:125)
        at 
org.apache.geronimo.deployment.cli.DeployTool.execute(DeployTool.java:168)
        at 
org.apache.geronimo.kernel.util.MainConfigurationBootstrapper.main(MainConfigurationBootstrapper.java:45)
        at org.apache.geronimo.cli.AbstractCLI.executeMain(AbstractCLI.java:65)
        at 
org.apache.geronimo.cli.deployer.DeployerCLI.main(DeployerCLI.java:31)
{code}

{code:xml|title=reformatted 
/opt/kms/server/geronimo-2.2-20090908/var/temp/openejb-jar-1373120338936693638.xml}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns6:ejb-jar xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2"; 
    xmlns:ns2="http://geronimo.apache.org/xml/ns/j2ee/application-1.2"; 
    xmlns:ns3="http://geronimo.apache.org/xml/ns/openejb-clustering-wadi-1.2"; 
    xmlns:ns4="http://geronimo.apache.org/xml/ns/naming-1.2"; 
    xmlns:ns5="http://openejb.apache.org/xml/ns/openejb-jar-2.2"; 
    xmlns:ns6="http://geronimo.apache.org/xml/ns/j2ee/ejb/openejb-2.0"; 
    xmlns:ns7="http://geronimo.apache.org/xml/ns/security-2.0"; 
    xmlns:ns8="http://java.sun.com/xml/ns/persistence"; 
    xmlns:ns9="http://openejb.apache.org/xml/ns/pkgen-2.1";>
  <environment>
    <moduleId>
      <groupId>kms</groupId>
      <artifactId>KMSPlatform-ejb</artifactId>
      <version>1.0</version>
      <type>jar</type>
    </moduleId>
    <dependencies>
      <dependency>
        <groupId>console.dbpool</groupId>
        <artifactId>jdbc_kmsPool</artifactId>
        <version>1.0</version>
        <type>rar</type>
      </dependency>
      <dependency>
        <groupId>console.realm</groupId>
        <artifactId>KMSRealm</artifactId>
        <version>1.0</version>
        <type>car</type>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>2.5.6</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>2.5.6</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>2.5.6</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.5</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>core</artifactId>
        <version>3.3</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>annotations</artifactId>
        <version>3.4</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>antlr</artifactId>
        <version>2.7.6</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>commons-annotations</artifactId>
        <version>3.4</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.1</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>entitymanager</artifactId>
        <version>3.4</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>javassist</artifactId>
        <version>3.9.0.GA</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>jpa</artifactId>
        <version>3.0</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>jta</artifactId>
        <version>1.1</version>
        <type>jar</type>
      </dependency>
      <dependency>
        <groupId>hibernate</groupId>
        <artifactId>GeronimoTransactionManager</artifactId>
        <version>1.0</version>
        <type>jar</type>
      </dependency>
    </dependencies>
  </environment>
  <ns7:security>
    <ns7:role-mappings xmlns="http://geronimo.apache.org/xml/ns/security-2.0"; 
    xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"; 
    xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"; 
    xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0";>
      <sec:role xmlns:ns14="http://geronimo.apache.org/xml/ns/security-2.0"; 
xmlns="" role-name="Admin">
        <ns14:principal 
class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal" 
name="Admin"/>
      </sec:role>
      <sec:role xmlns:ns14="http://geronimo.apache.org/xml/ns/security-2.0"; 
xmlns="" role-name="Standard User">
        <ns14:principal 
class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal" 
name="Standard User"/>
      </sec:role>
    </role-mappings>
  </security>
</ns6:ejb-jar>
{code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to