[jboss-cvs] JBossAS SVN: r66411 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ear/spec and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Oct 24 23:46:11 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-24 23:46:11 -0400 (Wed, 24 Oct 2007)
New Revision: 66411

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/jboss/JBossAppMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/spec/ModulesMetaData.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ear/JBossApp5xEverythingUnitTestCase.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5xEverything_testEverything.xml
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5x_testVersion50.xml
Log:
Remove the override from the ear jboss view

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/jboss/JBossAppMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/jboss/JBossAppMetaData.java	2007-10-25 02:23:55 UTC (rev 66410)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/jboss/JBossAppMetaData.java	2007-10-25 03:46:11 UTC (rev 66411)
@@ -21,11 +21,6 @@
  */
 package org.jboss.metadata.ear.jboss;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlTransient;
 
@@ -34,17 +29,15 @@
 import org.jboss.metadata.ear.spec.EarMetaData;
 import org.jboss.metadata.ear.spec.ModuleMetaData;
 import org.jboss.metadata.ear.spec.ModulesMetaData;
-import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
 import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
-import org.jboss.metadata.javaee.support.IdMetaDataImplWithOverride;
-import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
+import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptionGroup;
 
 /**
  * The jboss application metadata
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
-public class JBossAppMetaData extends IdMetaDataImplWithOverride<EarMetaData>
+public class JBossAppMetaData extends IdMetaDataImplWithDescriptionGroup
 {
    private static final long serialVersionUID = 1;
    private String dtdPublicId;
@@ -58,7 +51,6 @@
    /** The unauthenticated principal */
    private String unauthenticatedPrincipal;
    private ModulesMetaData modules;
-   private Map<String, ModuleMetaData> modulesMap;
    /** The security roles */
    private SecurityRolesMetaData securityRoles;
    private String libraryDirectory;
@@ -150,20 +142,12 @@
 
    public String getLibraryDirectory()
    {
-      String dir = libraryDirectory;
-      EarMetaData emd = getOverridenMetaData();
-      if (dir == null && emd != null && emd.isEE5())
-      {
-         Ear5xMetaData emd5x = (Ear5xMetaData) emd;
-         dir = emd5x.getLibraryDirectory();
-      }
-      return dir;
+      return libraryDirectory;
    }
    public void setLibraryDirectory(String libraryDirectory)
    {
       this.libraryDirectory = libraryDirectory;
    }
-
    
    public String getJmxName()
    {
@@ -174,16 +158,6 @@
       this.jmxName = jmxName;
    }
 
-   @XmlTransient
-   public DescriptionGroupMetaData getDescriptionGroup()
-   {
-      EarMetaData emd = getOverridenMetaData();
-      DescriptionGroupMetaData dgmd = null;
-      if (emd != null)
-         dgmd = emd.getDescriptionGroup();
-      return dgmd;
-   }
-
    /**
     * Get the application module information
     * @return the list of application modules
@@ -205,49 +179,60 @@
    @XmlTransient
    public synchronized ModuleMetaData getModule(String name)
    {
-      if (modulesMap == null)
-      {
-         modulesMap = new HashMap<String, ModuleMetaData>();
-         ModulesMetaData merged = getMergedModules();
-         for (ModuleMetaData module : merged)
-         {
-            String file = module.getValue().getFileName();
-            modulesMap.put(file, module);
-         }
-      }
-      return modulesMap.get(name);
+      return modules.get(name);
    }
 
-   @XmlTransient
-   public ModulesMetaData getMergedModules()
+   public void merge(JBossAppMetaData override, EarMetaData original)
    {
-      EarMetaData emd = getOverridenMetaData();
-      ModulesMetaData merged = new ModulesMetaData();
-      if (emd != null && emd.getModules() != null)
-         merged.addAll(emd.getModules());
-      if (modules != null && modules.size() > 0)
+      super.merge(override, original);
+      Ear5xMetaData original5x = null;
+      if(original instanceof Ear5xMetaData)
+         original5x = (Ear5xMetaData) original;
+
+      if(override != null)
       {
-         merged.addAll(modules);
+         if(override.dtdPublicId != null)
+            this.dtdPublicId = override.dtdPublicId;
+         if(override.dtdSystemId != null)
+            this.dtdSystemId = override.dtdSystemId;
+         if(override.version != null)
+            this.version = override.version;
+         if(override.securityDomain != null)
+            setSecurityDomain(override.securityDomain);
+         if(override.loaderRepository != null)
+            setLoaderRepository(override.loaderRepository);
+         if(override.unauthenticatedPrincipal != null)
+            setUnauthenticatedPrincipal(override.unauthenticatedPrincipal);
+         if(override.unauthenticatedPrincipal != null)
+            setUnauthenticatedPrincipal(override.unauthenticatedPrincipal);
+         if(override.libraryDirectory != null)
+            setLibraryDirectory(override.libraryDirectory);
+         else if(original5x != null && original5x.getLibraryDirectory() != null)
+            setLibraryDirectory(original5x.getLibraryDirectory());
+         if(override.jmxName != null)
+            setJmxName(override.jmxName);
       }
-      return merged;
-   }
+      else if(original5x != null && original5x.getLibraryDirectory() != null)
+         setLibraryDirectory(original5x.getLibraryDirectory());
 
-   @XmlTransient
-   public SecurityRolesMetaData getMergedSecurityRoles()
-   {
-      EarMetaData emd = getOverridenMetaData();
+      if(modules == null)
+         modules = new ModulesMetaData();
+      ModulesMetaData overrideModules = null;
+      ModulesMetaData originalModules = null;
+      if(override != null)
+         overrideModules = override.getModules();
+      if(original != null)
+         originalModules = original.getModules();
+      modules.merge(overrideModules, originalModules);
+
       SecurityRolesMetaData securityRolesMetaData = null;
-      if (emd != null)
-         securityRolesMetaData = emd.getSecurityRoles();
-      SecurityRolesMetaData jbossSecurityRolesMetaData = securityRoles;
-      SecurityRolesMetaData mergedSecurityRolesMetaData = new SecurityRolesMetaData();
-      if (jbossSecurityRolesMetaData != null && jbossSecurityRolesMetaData.isEmpty() == false)
-      {
-         mergedSecurityRolesMetaData = JavaEEMetaDataUtil.merge(
-            mergedSecurityRolesMetaData,
-            securityRolesMetaData, jbossSecurityRolesMetaData,
-            "security-role", "application.xml", "jboss-app.xml", false);
-      }
-      return mergedSecurityRolesMetaData;
+      SecurityRolesMetaData overrideSecurityRolesMetaData = null;
+      if (original != null)
+         securityRolesMetaData = original.getSecurityRoles();
+      if(override != null)
+         overrideSecurityRolesMetaData = override.getSecurityRoles();
+      if(securityRoles == null)
+         securityRoles = new SecurityRolesMetaData();
+      securityRoles.merge(overrideSecurityRolesMetaData, securityRolesMetaData);
    }
 }

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/spec/ModulesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/spec/ModulesMetaData.java	2007-10-25 02:23:55 UTC (rev 66410)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ear/spec/ModulesMetaData.java	2007-10-25 03:46:11 UTC (rev 66411)
@@ -54,4 +54,40 @@
          module = iterator.next();
       return module;
    }
+
+   /**
+    * Merge original + override into this.
+    * 
+    * @param original
+    * @param override
+    */
+   public void merge(ModulesMetaData override, ModulesMetaData original)
+   {
+      if(original == null)
+      {
+         if(override != null)
+            this.addAll(override);
+      }
+      else if(override == null)
+      {
+         this.addAll(original);
+      }
+      else
+      {
+         for(ModuleMetaData module : original)
+         {
+            // Only include modules not override in the override map
+            if(override.get(module.getFileName()) == null)
+                  this.add(module);
+            else
+               this.add(override.get(module.getFileName()));
+         }
+         // Add any modules from override not already added
+         for(ModuleMetaData module : override)
+         {
+            if(this.get(module.getFileName()) == null)
+               this.add(module);
+         }
+      }
+   }
 }

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ear/JBossApp5xEverythingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ear/JBossApp5xEverythingUnitTestCase.java	2007-10-25 02:23:55 UTC (rev 66410)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ear/JBossApp5xEverythingUnitTestCase.java	2007-10-25 03:46:11 UTC (rev 66411)
@@ -102,7 +102,7 @@
    {
       Ear5xMetaData spec = unmarshal("Ear5xEverything_testEverything.xml", Ear5xMetaData.class, null);
       JBossAppMetaData jbossAppMD = new JBossAppMetaData();
-      jbossAppMD.setOverridenMetaData(spec);
+      jbossAppMD.merge(null, spec);
       hasJBossAppOverride = false;
       assertEveryting(jbossAppMD);      
    }
@@ -111,8 +111,9 @@
    {
       //enableTrace("org.jboss.xb");
       Ear5xMetaData spec = unmarshal("Ear5xEverything_testEverything.xml", Ear5xMetaData.class, null);
-      JBossAppMetaData jbossAppMD = unmarshal();
-      jbossAppMD.setOverridenMetaData(spec);
+      JBossAppMetaData jbossAppXml = unmarshal();
+      JBossAppMetaData jbossAppMD = new JBossAppMetaData();
+      jbossAppMD.merge(jbossAppXml, spec);
       hasJBossAppOverride = true;
       assertEveryting(jbossAppMD);      
       assertEquals("jboss-app-id", jbossAppMD.getId());
@@ -130,7 +131,7 @@
 
    protected void assertSecurityRoles(JBossAppMetaData ear)
    {
-      SecurityRolesMetaData roles = ear.getMergedSecurityRoles();
+      SecurityRolesMetaData roles = ear.getSecurityRoles();
       assertEquals("There are 2 roles", 2, roles.size());
       SecurityRoleMetaData role0 = roles.get("role0");
       assertEquals("security-role0", role0.getId());
@@ -150,7 +151,7 @@
    }
    protected void assertModules(JBossAppMetaData ear)
    {
-      ModulesMetaData modules = ear.getMergedModules();
+      ModulesMetaData modules = ear.getModules();
       if(hasJBossAppOverride)
          assertEquals(9, modules.size());
       else

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5xEverything_testEverything.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5xEverything_testEverything.xml	2007-10-25 02:23:55 UTC (rev 66410)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5xEverything_testEverything.xml	2007-10-25 03:46:11 UTC (rev 66411)
@@ -28,11 +28,11 @@
         <har>har0.har</har>
     </module>
     <security-role id="security-role0">
-        <jee:description>The 0 security role</jee:description>
+        <description>The 0 security role</description>
         <role-name>role0</role-name>
     </security-role>
     <security-role id="security-role1">
-        <jee:description>The 1 security role</jee:description>
+        <description>The 1 security role</description>
         <role-name>role1</role-name>
     </security-role>
     <library-directory>jboss-app-lib0</library-directory>

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5x_testVersion50.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5x_testVersion50.xml	2007-10-25 02:23:55 UTC (rev 66410)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/ear/JBossApp5x_testVersion50.xml	2007-10-25 03:46:11 UTC (rev 66411)
@@ -16,11 +16,11 @@
         </web>
     </module>
     <security-role id="security-role0">
-        <jee:description>The 0 security role</jee:description>
+        <description>The 0 security role</description>
         <role-name>role0</role-name>
     </security-role>
     <security-role id="security-role1">
-        <jee:description>The 1 security role</jee:description>
+        <description>The 1 security role</description>
         <role-name>role1</role-name>
     </security-role>
     <library-directory>jboss-app-lib0</library-directory>




More information about the jboss-cvs-commits mailing list