[jboss-cvs] JBossAS SVN: r93511 - projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Sep 14 20:08:46 EDT 2009


Author: remy.maucherat at jboss.com
Date: 2009-09-14 20:08:46 -0400 (Mon, 14 Sep 2009)
New Revision: 93511

Modified:
   projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/LocaleEncodingsMetaData.java
   projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebCommonMetaData.java
   projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebFragmentMetaData.java
   projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WelcomeFileListMetaData.java
Log:
- More augment implementation.

Modified: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/LocaleEncodingsMetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/LocaleEncodingsMetaData.java	2009-09-15 00:01:06 UTC (rev 93510)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/LocaleEncodingsMetaData.java	2009-09-15 00:08:46 UTC (rev 93511)
@@ -21,6 +21,7 @@
  */
 package org.jboss.metadata.web.spec;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -46,4 +47,54 @@
    {
       this.mappings = mappings;
    }   
+   
+   public void augment(LocaleEncodingsMetaData webFragmentMetaData, LocaleEncodingsMetaData webMetaData)
+   {
+      if (getMappings() == null)
+      {
+         setMappings(webFragmentMetaData.getMappings());
+      }
+      else if (webFragmentMetaData.getMappings() != null)
+      {
+         List<LocaleEncodingMetaData> mergedMappings = new ArrayList<LocaleEncodingMetaData>();
+         for (LocaleEncodingMetaData mapping : webFragmentMetaData.getMappings())
+         {
+            boolean found = false;
+            for (LocaleEncodingMetaData check : getMappings())
+            {
+               if (check.getLocale().equals(mapping.getLocale()))
+               {
+                  found = true;
+                  // Check for a conflict
+                  if (!check.getEncoding().equals(mapping.getEncoding()))
+                  {
+                     // If the parameter name does not exist in the main web, it's an error
+                     boolean found2 = false;
+                     if (webMetaData.getMappings() != null)
+                     {
+                        for (LocaleEncodingMetaData check1 : webMetaData.getMappings())
+                        {
+                           if (check1.getLocale().equals(check.getLocale()))
+                           {
+                              found2 = true;
+                              break;
+                           }
+                        }
+                     }
+                     if (!found2)
+                        throw new IllegalStateException("Unresolved conflict on locale: " + check.getLocale());
+                  }
+               }
+            }
+            if (!found)
+               mergedMappings.add(mapping);
+         }
+         for (LocaleEncodingMetaData mapping : getMappings())
+         {
+            mergedMappings.add(mapping);
+         }
+         setMappings(mergedMappings);
+      }
+   }
+   
 }

Modified: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebCommonMetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebCommonMetaData.java	2009-09-15 00:01:06 UTC (rev 93510)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebCommonMetaData.java	2009-09-15 00:08:46 UTC (rev 93511)
@@ -82,7 +82,7 @@
    private List<MimeMappingMetaData> mimeMappings;
    private ServletsMetaData servlets;
    private List<ServletMappingMetaData> servletMappings;
-   private List<SecurityConstraintMetaData> securityContraints;
+   private List<SecurityConstraintMetaData> securityConstraints;
    private SecurityRolesMetaData securityRoles;
    private WelcomeFileListMetaData welcomeFileList;
    private LocaleEncodingsMetaData localEncodings;
@@ -284,14 +284,14 @@
       this.servletMappings = servletMappings;
    }
 
-   public List<SecurityConstraintMetaData> getSecurityContraints()
+   public List<SecurityConstraintMetaData> getSecurityConstraints()
    {
-      return securityContraints;
+      return securityConstraints;
    }
    @XmlElement(name="security-constraint")
-   public void setSecurityContraints(List<SecurityConstraintMetaData> securityContraints)
+   public void setSecurityContraints(List<SecurityConstraintMetaData> securityConstraints)
    {
-      this.securityContraints = securityContraints;
+      this.securityConstraints = securityConstraints;
    }
 
    public SecurityRolesMetaData getSecurityRoles()

Modified: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebFragmentMetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebFragmentMetaData.java	2009-09-15 00:01:06 UTC (rev 93510)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WebFragmentMetaData.java	2009-09-15 00:08:46 UTC (rev 93511)
@@ -372,8 +372,77 @@
       }
 
       // Security constraints
+      if (getSecurityConstraints() == null)
+      {
+         setSecurityContraints(webFragmentMetaData.getSecurityConstraints());
+      }
+      else if (webFragmentMetaData.getSecurityConstraints() != null)
+      {
+         List<SecurityConstraintMetaData> mergedSecurityConstraints = new ArrayList<SecurityConstraintMetaData>();
+         for (SecurityConstraintMetaData securityConstraint : webFragmentMetaData.getSecurityConstraints())
+         {
+            mergedSecurityConstraints.add(securityConstraint);
+         }
+         for (SecurityConstraintMetaData securityConstraint : getSecurityConstraints())
+         {
+            mergedSecurityConstraints.add(securityConstraint);
+         }
+         setSecurityContraints(mergedSecurityConstraints);
+      }
+
+      // Security roles
+      if (getSecurityRoles() == null)
+      {
+         setSecurityRoles(webFragmentMetaData.getSecurityRoles());
+      }
+      else if (webFragmentMetaData.getSecurityRoles() != null)
+      {
+         // The merge seems to be doing what we want, and this is additive
+         getSecurityRoles().merge(webFragmentMetaData.getSecurityRoles(), null);
+      }
       
+      // Welcome file list
+      if (getWelcomeFileList() == null)
+      {
+         setWelcomeFileList(webFragmentMetaData.getWelcomeFileList());
+      }
+      else if (webFragmentMetaData.getWelcomeFileList() != null)
+      {
+         getWelcomeFileList().augment(webFragmentMetaData.getWelcomeFileList(), null);
+      }
+
+      // Locale encoding
+      if (getLocalEncodings() == null)
+      {
+         setLocalEncodings(webFragmentMetaData.getLocalEncodings());
+      }
+      else if (webFragmentMetaData.getLocalEncodings() != null)
+      {
+         getLocalEncodings().augment(webFragmentMetaData.getLocalEncodings(), webMetaData.getLocalEncodings());
+      }
       
+      // All ENC elements except message destinations
+      if (getJndiEnvironmentRefsGroup() == null)
+      {
+         setJndiEnvironmentRefsGroup(webFragmentMetaData.getJndiEnvironmentRefsGroup());
+      }
+      else if (webFragmentMetaData.getJndiEnvironmentRefsGroup() != null)
+      {
+         // FIXME
+         //getJndiEnvironmentRefsGroup().augment(webFragmentMetaData.getJndiEnvironmentRefsGroup(), webMetaData.getJndiEnvironmentRefsGroup());
+      }
+      
+      // Message destinations
+      if (getMessageDestinations() == null)
+      {
+         setMessageDestinations(webFragmentMetaData.getMessageDestinations());
+      }
+      else if (webFragmentMetaData.getMessageDestinations() != null)
+      {
+         // FIXME
+         //getMessageDestinations().augment(webFragmentMetaData.getMessageDestinations(), webMetaData.getMessageDestinations());
+      }
+      
    }
 
 }

Modified: projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WelcomeFileListMetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WelcomeFileListMetaData.java	2009-09-15 00:01:06 UTC (rev 93510)
+++ projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/WelcomeFileListMetaData.java	2009-09-15 00:08:46 UTC (rev 93511)
@@ -21,6 +21,7 @@
  */
 package org.jboss.metadata.web.spec;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
@@ -48,5 +49,34 @@
       this.welcomeFiles = welcomeFiles;
    }
 
-   
+   public void augment(WelcomeFileListMetaData webFragmentMetaData, WelcomeFileListMetaData webMetaData)
+   {
+      // Note: as this is purely additive, webMetaData is useless
+      if (getWelcomeFiles() == null)
+      {
+         setWelcomeFiles(webFragmentMetaData.getWelcomeFiles());
+      }
+      else if (webFragmentMetaData.getWelcomeFiles() != null)
+      {
+         List<String> mergedWelcomeFiles = new ArrayList<String>();
+         for (String welcomeFile : webFragmentMetaData.getWelcomeFiles())
+         {
+            boolean found = false;
+            for (String check : getWelcomeFiles())
+            {
+               if (check.equals(welcomeFile))
+               {
+                  found = true;
+               }
+            }
+            if (!found)
+               mergedWelcomeFiles.add(welcomeFile);
+         }
+         for (String welcomeFile : getWelcomeFiles())
+         {
+            mergedWelcomeFiles.add(welcomeFile);
+         }
+         setWelcomeFiles(mergedWelcomeFiles);
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list