[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