[jboss-cvs] JBossAS SVN: r66522 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ejb/jboss and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Oct 28 16:33:49 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-10-28 16:33:49 -0400 (Sun, 28 Oct 2007)
New Revision: 66522
Added:
projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletsMetaData.java
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWebApp24_testRunAsPrincipal.xml
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/WebApp24_testRunAsPrincipal.xml
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossRemoteEnvironmentRefsGroupMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/RunAsIdentityMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferencesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferencesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferencesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferencesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/ServletMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/TomcatDeployerUnitTestCase.java
Log:
Add jboss servlet override, drop the WebMetaData override, and correct the run-as identity notion
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/client/jboss/JBossClientMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -340,7 +340,7 @@
if(jndiEnvironmentRefsGroup == null)
jndiEnvironmentRefsGroup = new JBossEnvironmentRefsGroupMetaData();
- jndiEnvironmentRefsGroup.merge(jbossEnv, specEnv, false);
+ jndiEnvironmentRefsGroup.merge(jbossEnv, specEnv, "jboss-client.xml", "application-client.xml", false);
// Get the merged resource-env-refs
ResourceEnvironmentReferencesMetaData resEnvRefs = jndiEnvironmentRefsGroup.getResourceEnvironmentReferences();
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -259,11 +259,15 @@
}
@XmlElement(type=JBossEnvironmentRefsGroupMetaData.class)
- public void setJndiEnvironmentRefsGroup(Environment jndiEnvironmentRefsGroup)
+ public void setJndiEnvironmentRefsGroup(Environment env)
{
- if(this.jndiEnvironmentRefsGroup != null)
- throw new IllegalArgumentException("jndiEnvironmentRefsGroup already set");
- this.jndiEnvironmentRefsGroup = (JBossEnvironmentRefsGroupMetaData) jndiEnvironmentRefsGroup;
+ if (env == null)
+ throw new IllegalArgumentException("Null jndiEnvironmentRefsGroup");
+ JBossEnvironmentRefsGroupMetaData jenv = (JBossEnvironmentRefsGroupMetaData) env;
+ if(jndiEnvironmentRefsGroup != null)
+ jndiEnvironmentRefsGroup.merge(jenv, null, null, "jboss.xml", "ejb-jar.xml", false);
+ else
+ jndiEnvironmentRefsGroup = jenv;
}
/**
@@ -1365,7 +1369,8 @@
{
this.merge(override, original, "jboss.xml", "ejb-jar.xml", true);
}
- public void merge(JBossEnterpriseBeanMetaData override, EnterpriseBeanMetaData original, String overridenFile, String overrideFile, boolean mustOverride)
+ public void merge(JBossEnterpriseBeanMetaData override, EnterpriseBeanMetaData original,
+ String overrideFile, String overridenFile, boolean mustOverride)
{
super.merge(override, original);
if(override != null && override.getEjbClass() != null)
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -29,17 +29,11 @@
import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
-import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
import org.jboss.metadata.javaee.spec.Environment;
-import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
-import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
-import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
import org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData;
import org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData;
-import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
import org.jboss.metadata.javaee.spec.RemoteEnvironmentRefsGroupMetaData;
-import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
@@ -73,11 +67,6 @@
/** The persistence context reference */
private PersistenceContextReferencesMetaData persistenceContextRefs;
- /** The security identity
- // This is only here because historically this was mixed in the environment xml
- private SecurityIdentityMetaData securityIdentity;
- */
-
/**
* Merge an environment
*
@@ -90,7 +79,7 @@
public static JBossEnvironmentRefsGroupMetaData mergeNew(JBossEnvironmentRefsGroupMetaData jbossEnvironmentRefsGroup,
EnvironmentRefsGroupMetaData environmentRefsGroup,
ResourceManagersMetaData resourceMgrs,
- String overridenFile, String overrideFile, boolean mustOverride)
+ String overrideFile, String overridenFile, boolean mustOverride)
{
JBossEnvironmentRefsGroupMetaData merged = new JBossEnvironmentRefsGroupMetaData();
@@ -99,21 +88,22 @@
return merged;
}
-
public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name)
{
- // TODO Auto-generated method stub
- return null;
+ EJBLocalReferenceMetaData ref = null;
+ if(this.ejbLocalReferences != null)
+ ref = ejbLocalReferences.get(name);
+ return ref;
}
-
public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name)
{
- // TODO Auto-generated method stub
- return null;
+ PersistenceContextReferenceMetaData ref = null;
+ if(this.persistenceContextRefs != null)
+ ref = persistenceContextRefs.get(name);
+ return ref;
}
-
public ServiceReferencesMetaData getServiceReferences()
{
return serviceReferences;
@@ -160,80 +150,45 @@
* @param overrideFile the override file
* @return the merged environment
*/
- public void merge(JBossEnvironmentRefsGroupMetaData jbossEnvironmentRefsGroup,
- Environment environmentRefsGroup,
- ResourceManagersMetaData resourceMgrs,
- String overridenFile, String overrideFile, boolean mustOverride)
+ public void merge(JBossEnvironmentRefsGroupMetaData jbossEnv,
+ Environment specEnv,
+ ResourceManagersMetaData resourceMgrs,
+ String overrideFile, String overridenFile, boolean mustOverride)
{
- if (jbossEnvironmentRefsGroup == null && environmentRefsGroup == null)
+ if (jbossEnv == null && specEnv == null)
return;
- EnvironmentEntriesMetaData envEntries = null;
- EJBReferencesMetaData ejbRefs = null;
- EJBReferencesMetaData jbossEjbRefs = null;
+ super.merge(jbossEnv, specEnv, overridenFile, overrideFile, mustOverride);
+
EJBLocalReferencesMetaData ejbLocalRefs = null;
EJBLocalReferencesMetaData jbossEjbLocalRefs = null;
- ResourceReferencesMetaData resRefs = null;
- ResourceReferencesMetaData jbossResRefs = null;
- ResourceEnvironmentReferencesMetaData resEnvRefs = null;
- ResourceEnvironmentReferencesMetaData jbossResEnvRefs = null;
- ServiceReferencesMetaData serviceRefs = null;
- JBossServiceReferencesMetaData jbossServiceRefs = null;
- MessageDestinationReferencesMetaData messageDestinationRefs = null;
- MessageDestinationReferencesMetaData jbossMessageDestinationRefs = null;
- PersistenceContextReferencesMetaData persistenceContextRefs = null;
- PersistenceUnitReferencesMetaData persistenceUnitRefs = null;
- LifecycleCallbacksMetaData postConstructs = null;
- LifecycleCallbacksMetaData preDestroys = null;
-
- if (environmentRefsGroup != null)
+ PersistenceContextReferencesMetaData specPersistenceContextRefs = null;
+ PersistenceContextReferencesMetaData jbossPersistenceContextRefs = null;
+
+ if (specEnv != null)
{
- envEntries = environmentRefsGroup.getEnvironmentEntries();
- ejbRefs = environmentRefsGroup.getEjbReferences();
- ejbLocalRefs = environmentRefsGroup.getEjbLocalReferences();
- serviceRefs = environmentRefsGroup.getServiceReferences();
- resRefs = environmentRefsGroup.getResourceReferences();
- resEnvRefs = environmentRefsGroup.getResourceEnvironmentReferences();
- messageDestinationRefs = environmentRefsGroup.getMessageDestinationReferences();
- persistenceContextRefs = environmentRefsGroup.getPersistenceContextRefs();
- persistenceUnitRefs = environmentRefsGroup.getPersistenceUnitRefs();
- postConstructs = environmentRefsGroup.getPostConstructs();
- preDestroys = environmentRefsGroup.getPreDestroys();
+ ejbLocalRefs = specEnv.getEjbLocalReferences();
+ specPersistenceContextRefs = specEnv.getPersistenceContextRefs();
}
- if (jbossEnvironmentRefsGroup != null)
+ if (jbossEnv != null)
{
- jbossEjbRefs = jbossEnvironmentRefsGroup.getEjbReferences();
- jbossEjbLocalRefs = jbossEnvironmentRefsGroup.getEjbLocalReferences();
- jbossServiceRefs = jbossEnvironmentRefsGroup.serviceReferences;
- jbossResRefs = jbossEnvironmentRefsGroup.getResourceReferences();
- jbossResEnvRefs = jbossEnvironmentRefsGroup.getResourceEnvironmentReferences();
- jbossMessageDestinationRefs = jbossEnvironmentRefsGroup.getMessageDestinationReferences();
+ jbossEjbLocalRefs = jbossEnv.getEjbLocalReferences();
+ jbossPersistenceContextRefs = jbossEnv.getPersistenceContextRefs();
}
else
{
// Use the merge target for the static merge methods
- jbossEjbRefs = this.getEjbReferences();
jbossEjbLocalRefs = this.getEjbLocalReferences();
- jbossServiceRefs = this.serviceReferences;
- jbossResRefs = this.getResourceReferences();
- jbossResEnvRefs = this.getResourceEnvironmentReferences();
- jbossMessageDestinationRefs = this.getMessageDestinationReferences();
+ jbossPersistenceContextRefs = getPersistenceContextRefs();
}
-
- EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overridenFile, overrideFile);
- if (mergedEjbRefs != null)
- this.setEjbReferences(mergedEjbRefs);
-
+
EJBLocalReferencesMetaData mergedEjbLocalRefs = EJBLocalReferencesMetaData.merge(jbossEjbLocalRefs, ejbLocalRefs, overridenFile, overrideFile);
if (mergedEjbLocalRefs != null)
this.setEjbLocalReferences(mergedEjbLocalRefs);
- JBossServiceReferencesMetaData mergedServiceRefs = JBossServiceReferencesMetaData.merge(jbossServiceRefs, serviceRefs, overridenFile, overrideFile);
- if (mergedServiceRefs != null)
- this.setServiceReferences(mergedServiceRefs);
-
// Need to set the jndi name from resource mgr if referenced
+ ResourceReferencesMetaData jbossResRefs = getResourceReferences();
if(resourceMgrs != null && jbossResRefs != null)
{
for(ResourceReferenceMetaData ref : jbossResRefs)
@@ -248,31 +203,11 @@
}
}
}
- ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, overridenFile, overrideFile, mustOverride);
- if (mergedResRefs != null)
- this.setResourceReferences(mergedResRefs);
- ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, overridenFile, overrideFile);
- if (mergedResEnvRefs != null)
- this.setResourceEnvironmentReferences(mergedResEnvRefs);
-
- MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, overridenFile, overrideFile);
- if (mergedMessageDestinationRefs != null)
- this.setMessageDestinationReferences(mergedMessageDestinationRefs);
+ PersistenceContextReferencesMetaData mergedPcRefs = PersistenceContextReferencesMetaData.merge(jbossPersistenceContextRefs,
+ specPersistenceContextRefs, overridenFile, overrideFile);
+ if (mergedPcRefs != null)
+ this.setPersistenceContextRefs(mergedPcRefs);
- if (envEntries != null)
- this.setEnvironmentEntries(envEntries);
-
- if (persistenceContextRefs != null)
- this.setPersistenceContextRefs(persistenceContextRefs);
-
- if (persistenceUnitRefs != null)
- this.setPersistenceUnitRefs(persistenceUnitRefs);
-
- if (postConstructs != null)
- this.setPostConstructs(postConstructs);
-
- if (preDestroys != null)
- this.setPreDestroys(preDestroys);
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossRemoteEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossRemoteEnvironmentRefsGroupMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossRemoteEnvironmentRefsGroupMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -100,7 +100,7 @@
jbossMessageDestinationRefs = jbossEnvironmentRefsGroup.getMessageDestinationReferences();
}
- EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overridenFile, overrideFile);
+ EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overridenFile, overrideFile, mustOverride);
if (mergedEjbRefs != null)
merged.setEjbReferences(mergedEjbRefs);
@@ -116,7 +116,7 @@
if (mergedResEnvRefs != null)
merged.setResourceEnvironmentReferences(mergedResEnvRefs);
- MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, overridenFile, overrideFile);
+ MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, overridenFile, overrideFile, mustOverride);
if (mergedMessageDestinationRefs != null)
merged.setMessageDestinationReferences(mergedMessageDestinationRefs);
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferencesMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -56,7 +56,8 @@
* @return the merged referencees
*/
public static JBossServiceReferencesMetaData merge(ServiceReferencesMetaData override,
- ServiceReferencesMetaData overriden, String overridenFile, String overrideFile)
+ ServiceReferencesMetaData overriden,
+ String overridenFile, String overrideFile)
{
if (override == null && overriden == null)
return null;
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/RunAsIdentityMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/RunAsIdentityMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/RunAsIdentityMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -39,7 +39,9 @@
/** The name of the run-as principal */
private String principalName;
- /** The run-as role names */
+ /** The run-as role name */
+ private String roleName;
+ /** The extra run-as role names */
private HashSet<String> runAsRoles = new HashSet<String>();
private static final String ANOYMOUS_PRINCIPAL = "anonymous";
@@ -51,10 +53,11 @@
{
if(principalName == null)
principalName = ANOYMOUS_PRINCIPAL;
- this.principalName = principalName;
if (roleName == null)
throw new IllegalArgumentException("The run-as identity must have at least one role");
+ this.principalName = principalName;
+ this.roleName = roleName;
runAsRoles.add(roleName);
}
@@ -75,10 +78,14 @@
}
}
- public String getName()
+ public String getPrincipalName()
{
return principalName;
}
+ public String getRoleName()
+ {
+ return roleName;
+ }
/**
Return a set with the configured run-as role
@@ -114,6 +121,6 @@
*/
public String toString()
{
- return "[roles=" + runAsRoles + ",principal=" + getName() + "]";
+ return "[roles=" + runAsRoles + ",principal=" + getPrincipalName() + "]";
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -97,13 +97,30 @@
this.local = local;
}
+ /**
+ * A legacy accessor that delgated to {@link #getMappedName()}
+ * @return
+ */
+ public String getLocalJndiName()
+ {
+ return getMappedName();
+ }
+ /**
+ * Map the legacy local-jndi-name element onto the standard mapped-name
+ * @param name
+ */
+ public void setLocalJndiName(String name)
+ {
+ setMappedName(name);
+ }
+
public EJBLocalReferenceMetaData merge(EJBLocalReferenceMetaData original)
{
EJBLocalReferenceMetaData merged = new EJBLocalReferenceMetaData();
merged.merge(this, original);
return merged;
}
-
+
/**
* Merge the contents of override with original into this.
*
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferencesMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferencesMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -44,7 +44,9 @@
* @param overrideFile the override file
* @return the merged referencees
*/
- public static EJBLocalReferencesMetaData merge(EJBLocalReferencesMetaData override, EJBLocalReferencesMetaData overriden, String overridenFile, String overrideFile)
+ public static EJBLocalReferencesMetaData merge(EJBLocalReferencesMetaData override,
+ EJBLocalReferencesMetaData overriden,
+ String overridenFile, String overrideFile)
{
if (override == null && overriden == null)
return null;
@@ -53,7 +55,7 @@
return overriden;
EJBLocalReferencesMetaData merged = new EJBLocalReferencesMetaData();
- return JavaEEMetaDataUtil.merge(merged, overriden, override, "ejb-local-ref", overridenFile, overrideFile, true);
+ return JavaEEMetaDataUtil.merge(merged, overriden, override, "ejb-local-ref", overridenFile, overrideFile, false);
}
/**
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferencesMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferencesMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -44,7 +44,9 @@
* @param overrideFile the override file
* @return the merged referencees
*/
- public static EJBReferencesMetaData merge(EJBReferencesMetaData override, EJBReferencesMetaData overriden, String overridenFile, String overrideFile)
+ public static EJBReferencesMetaData merge(EJBReferencesMetaData override,
+ EJBReferencesMetaData overriden, String overridenFile, String overrideFile,
+ boolean mustOverride)
{
if (override == null && overriden == null)
return null;
@@ -53,7 +55,7 @@
return overriden;
EJBReferencesMetaData merged = new EJBReferencesMetaData();
- return JavaEEMetaDataUtil.merge(merged, overriden, override, "ejb-ref", overridenFile, overrideFile, true);
+ return JavaEEMetaDataUtil.merge(merged, overriden, override, "ejb-ref", overridenFile, overrideFile, mustOverride);
}
/**
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentRefsGroupMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -25,6 +25,8 @@
import javax.xml.bind.annotation.XmlElement;
+import org.jboss.metadata.ejb.jboss.JBossEnvironmentRefsGroupMetaData;
+import org.jboss.metadata.ejb.jboss.ResourceManagersMetaData;
import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
import org.jboss.xb.annotations.JBossXmlModelGroup;
@@ -39,7 +41,8 @@
"serviceReferences", "resourceReferences", "resourceEnvironmentReferences",
"messageDestinationReferences", "persistenceContextRefs", "persistenceUnitRefs",
"postConstructs", "preDestroys"})
-public class EnvironmentRefsGroupMetaData extends RemoteEnvironmentRefsGroupMetaData implements Serializable, Environment
+public class EnvironmentRefsGroupMetaData extends RemoteEnvironmentRefsGroupMetaData
+ implements Serializable, Environment
{
/** The serialVersionUID */
private static final long serialVersionUID = 1337095770028220349L;
@@ -115,4 +118,39 @@
{
return AbstractMappedMetaData.getByName(name, persistenceContextRefs);
}
+
+ public void merge(Environment jbossEnv, Environment specEnv,
+ String overridenFile, String overrideFile, boolean mustOverride)
+ {
+ super.merge(jbossEnv, specEnv, overrideFile, overridenFile, mustOverride);
+
+ EJBLocalReferencesMetaData ejbLocalRefs = null;
+ EJBLocalReferencesMetaData jbossEjbLocalRefs = null;
+ PersistenceContextReferencesMetaData persistenceContextRefs = null;
+
+ if (specEnv != null)
+ {
+ ejbLocalRefs = specEnv.getEjbLocalReferences();
+ persistenceContextRefs = specEnv.getPersistenceContextRefs();
+ }
+
+ if (jbossEnv != null)
+ {
+ jbossEjbLocalRefs = jbossEnv.getEjbLocalReferences();
+ persistenceContextRefs = jbossEnv.getPersistenceContextRefs();
+ }
+ else
+ {
+ // Use the merge target for the static merge methods
+ jbossEjbLocalRefs = this.getEjbLocalReferences();
+ persistenceContextRefs = getPersistenceContextRefs();
+ }
+
+ EJBLocalReferencesMetaData mergedEjbLocalRefs = EJBLocalReferencesMetaData.merge(jbossEjbLocalRefs, ejbLocalRefs, overridenFile, overrideFile);
+ if (mergedEjbLocalRefs != null)
+ this.setEjbLocalReferences(mergedEjbLocalRefs);
+
+ if (persistenceContextRefs != null)
+ this.setPersistenceContextRefs(persistenceContextRefs);
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferencesMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferencesMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -44,7 +44,10 @@
* @param overrideFile the override file
* @return the merged referencees
*/
- public static MessageDestinationReferencesMetaData merge(MessageDestinationReferencesMetaData override, MessageDestinationReferencesMetaData overriden, String overridenFile, String overrideFile)
+ public static MessageDestinationReferencesMetaData merge(MessageDestinationReferencesMetaData override,
+ MessageDestinationReferencesMetaData overriden,
+ String overridenFile, String overrideFile,
+ boolean mustOverride)
{
if (override == null && overriden == null)
return null;
@@ -53,7 +56,7 @@
return overriden;
MessageDestinationReferencesMetaData merged = new MessageDestinationReferencesMetaData();
- return JavaEEMetaDataUtil.merge(merged, overriden, override, "message-destination-ref", overridenFile, overrideFile, true);
+ return JavaEEMetaDataUtil.merge(merged, overriden, override, "message-destination-ref", overridenFile, overrideFile, mustOverride);
}
/**
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -24,6 +24,7 @@
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
+import org.jboss.metadata.javaee.support.MergeableMappedMetaData;
import org.jboss.metadata.javaee.support.ResourceInjectionMetaDataWithDescriptions;
/**
@@ -35,6 +36,7 @@
//@SchemaType(name="persistence-context-refType", mandatory=false)
@XmlType(name="persistence-context-refType")
public class PersistenceContextReferenceMetaData extends ResourceInjectionMetaDataWithDescriptions
+ implements MergeableMappedMetaData<PersistenceContextReferenceMetaData>
{
/** The serialVersionUID */
private static final long serialVersionUID = 994249685587171979L;
@@ -146,4 +148,39 @@
throw new IllegalArgumentException("Null properties");
this.properties = properties;
}
+
+ public PersistenceContextReferenceMetaData merge(PersistenceContextReferenceMetaData original)
+ {
+ PersistenceContextReferenceMetaData merged = new PersistenceContextReferenceMetaData();
+ merged.merge(this, original);
+ return merged;
+ }
+
+ public void merge(PersistenceContextReferenceMetaData override, PersistenceContextReferenceMetaData original)
+ {
+ super.merge(override, original);
+ PersistenceContextReferenceMetaData merged = new PersistenceContextReferenceMetaData();
+ merged.merge(this, original);
+
+ if(override != null && override.persistenceUnitName != null)
+ persistenceUnitName = override.persistenceUnitName;
+ else if(original != null && original.persistenceUnitName != null)
+ persistenceUnitName = original.persistenceUnitName;
+ if(override != null && override.persistenceContextType != null)
+ persistenceContextType = override.persistenceContextType;
+ else if(original != null && original.persistenceContextType != null)
+ persistenceContextType = original.persistenceContextType;
+ if(override != null && override.properties != null)
+ {
+ if(this.properties == null )
+ properties = new PropertiesMetaData();
+ properties.addAll(override.properties);
+ }
+ if(original != null && original.properties != null)
+ {
+ if(this.properties == null )
+ properties = new PropertiesMetaData();
+ properties.addAll(original.properties);
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferencesMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferencesMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -22,6 +22,7 @@
package org.jboss.metadata.javaee.spec;
import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
+import org.jboss.metadata.javaee.support.JavaEEMetaDataUtil;
/**
* PersistenceContextReferencesMetaData.
@@ -34,6 +35,20 @@
/** The serialVersionUID */
private static final long serialVersionUID = 75353633724235761L;
+ public static PersistenceContextReferencesMetaData merge(PersistenceContextReferencesMetaData override,
+ PersistenceContextReferencesMetaData overriden,
+ String overridenFile, String overrideFile)
+ {
+ if (override == null && overriden == null)
+ return null;
+
+ if (override == null)
+ return overriden;
+
+ PersistenceContextReferencesMetaData merged = new PersistenceContextReferencesMetaData();
+ return JavaEEMetaDataUtil.merge(merged, overriden, override, "persistence-context-ref", overridenFile, overrideFile, false);
+ }
+
/**
* Create a new PersistenceContextReferencesMetaData.
*/
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -340,9 +340,9 @@
return AbstractMappedMetaData.getByName(name, srefs);
}
- public void merge(RemoteEnvironmentRefsGroupMetaData jbossEnv, RemoteEnvironmentRefsGroupMetaData specEnv, boolean mustOverride)
+ public void merge(RemoteEnvironment jbossEnv, RemoteEnvironment specEnv,
+ String overrideFile, String overridenFile, boolean mustOverride)
{
- EnvironmentEntriesMetaData envEntries = null;
EJBReferencesMetaData ejbRefs = null;
EJBReferencesMetaData jbossEjbRefs = null;
ServiceReferencesMetaData serviceRefs = null;
@@ -359,7 +359,6 @@
if (specEnv != null)
{
- envEntries = specEnv.getEnvironmentEntries();
ejbRefs = specEnv.getEjbReferences();
serviceRefs = specEnv.getServiceReferences();
resRefs = specEnv.getResourceReferences();
@@ -378,29 +377,61 @@
jbossResEnvRefs = jbossEnv.getResourceEnvironmentReferences();
jbossMessageDestinationRefs = jbossEnv.getMessageDestinationReferences();
}
-
- EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, "", "");
+ else
+ {
+ // Merge into this
+ jbossEjbRefs = getEjbReferences();
+ jbossServiceRefs = getServiceReferences();
+ jbossResRefs = getResourceReferences();
+ jbossResEnvRefs = getResourceEnvironmentReferences();
+ jbossMessageDestinationRefs = getMessageDestinationReferences();
+ }
+
+
+ EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overrideFile, overridenFile, mustOverride);
if (mergedEjbRefs != null)
setEjbReferences(mergedEjbRefs);
- ServiceReferencesMetaData mergedServiceRefs = JBossServiceReferencesMetaData.merge(jbossServiceRefs, serviceRefs, "", "");
+ ServiceReferencesMetaData mergedServiceRefs = JBossServiceReferencesMetaData.merge(jbossServiceRefs, serviceRefs, overrideFile, overridenFile);
if (mergedServiceRefs != null)
setServiceReferences(mergedServiceRefs);
- ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, "", "", mustOverride);
+ ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, overrideFile, overridenFile, mustOverride);
if (mergedResRefs != null)
setResourceReferences(mergedResRefs);
- ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, "", "");
+ ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, overrideFile, overridenFile);
if (mergedResEnvRefs != null)
setResourceEnvironmentReferences(mergedResEnvRefs);
- MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, "", "");
+ MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, "", "", mustOverride);
if (mergedMessageDestinationRefs != null)
setMessageDestinationReferences(mergedMessageDestinationRefs);
- if (envEntries != null)
- setEnvironmentEntries(envEntries);
+ if(specEnv != null)
+ {
+ EnvironmentEntriesMetaData envEntries = specEnv.getEnvironmentEntries();
+ if (envEntries != null)
+ {
+ EnvironmentEntriesMetaData thisEnv = this.getEnvironmentEntries();
+ if(thisEnv != null)
+ thisEnv.addAll(envEntries);
+ else
+ this.setEnvironmentEntries(envEntries);
+ }
+ }
+ if(jbossEnv != null)
+ {
+ EnvironmentEntriesMetaData envEntries = jbossEnv.getEnvironmentEntries();
+ if (envEntries != null)
+ {
+ EnvironmentEntriesMetaData thisEnv = this.getEnvironmentEntries();
+ if(thisEnv != null)
+ thisEnv.addAll(envEntries);
+ else
+ this.setEnvironmentEntries(envEntries);
+ }
+ }
if (persistenceUnitRefs != null)
setPersistenceUnitRefs(persistenceUnitRefs);
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -21,6 +21,7 @@
*/
package org.jboss.metadata.javaee.spec;
+import java.util.HashSet;
import java.util.Set;
import javax.xml.bind.annotation.XmlElement;
@@ -44,7 +45,7 @@
/** The serialVersionUID */
private static final long serialVersionUID = -4349954695900237831L;
- /** The prinicpals */
+ /** The prinicpal names that have this role */
private Set<String> principals;
/**
@@ -119,7 +120,24 @@
public SecurityRoleMetaData merge(SecurityRoleMetaData original)
{
- // There is nothing to merge
- return this;
+ SecurityRoleMetaData merged = new SecurityRoleMetaData();
+ merged.merge(this, original);
+ return merged;
}
+ public void merge(SecurityRoleMetaData override, SecurityRoleMetaData original)
+ {
+ super.merge(override, original);
+ if(override != null && override.principals != null)
+ {
+ if(principals == null)
+ principals = new HashSet<String>();
+ principals.addAll(override.principals);
+ }
+ if(original != null && original.principals != null)
+ {
+ if(principals == null)
+ principals = new HashSet<String>();
+ principals.addAll(original.principals);
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -23,6 +23,7 @@
import javax.xml.bind.annotation.XmlType;
+import org.jboss.metadata.javaee.support.MergeableMappedMetaData;
import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions;
/**
@@ -32,7 +33,9 @@
* @version $Revision: 1.1 $
*/
@XmlType(name="security-role-refType")
-public class SecurityRoleRefMetaData extends NamedMetaDataWithDescriptions
+public class SecurityRoleRefMetaData
+ extends NamedMetaDataWithDescriptions
+ implements MergeableMappedMetaData<SecurityRoleRefMetaData>
{
/** The serialVersionUID */
private static final long serialVersionUID = -8092072767419265555L;
@@ -91,4 +94,20 @@
{
setName(roleName);
}
+
+ public SecurityRoleRefMetaData merge(SecurityRoleRefMetaData original)
+ {
+ SecurityRoleRefMetaData merged = new SecurityRoleRefMetaData();
+ merged.merge(this, original);
+ return merged;
+ }
+ public void merge(SecurityRoleRefMetaData override, SecurityRoleRefMetaData original)
+ {
+ super.merge(override, original);
+ if(override != null && override.roleLink != null)
+ setRoleLink(override.roleLink);
+ else if(original != null && original.roleLink != null)
+ setRoleLink(original.roleLink);
+ }
+
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleRefsMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -21,24 +21,26 @@
*/
package org.jboss.metadata.javaee.spec;
-import org.jboss.metadata.javaee.support.NonNullLinkedHashSet;
+import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
/**
* SecurityRoleRefsMetaData.
*
* @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @author Scott.Stark at jboss.org
* @version $Revision: 1.1 $
*/
-public class SecurityRoleRefsMetaData extends NonNullLinkedHashSet<SecurityRoleRefMetaData>
+public class SecurityRoleRefsMetaData
+ extends AbstractMappedMetaData<SecurityRoleRefMetaData>
{
/** The serialVersionUID */
- private static final long serialVersionUID = 1775636729892021076L;
+ private static final long serialVersionUID = 1;
/**
* Create a new SecurityRoleRefsMetaData.
*/
public SecurityRoleRefsMetaData()
{
- // For serialization
+ super("role name for security role ref");
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRolesMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -98,20 +98,31 @@
public void merge(IdMetaDataImpl override, IdMetaDataImpl original)
{
super.merge(override, original);
- SecurityRolesMetaData sr0 = (SecurityRolesMetaData) override;
- SecurityRolesMetaData sr1 = (SecurityRolesMetaData) original;
- if(sr0 != null)
+ SecurityRolesMetaData roles1 = (SecurityRolesMetaData) override;
+ SecurityRolesMetaData roles0 = (SecurityRolesMetaData) original;
+ if(roles0 != null)
{
- this.addAll(sr0);
+ for(SecurityRoleMetaData sr : roles0)
+ {
+ SecurityRoleMetaData to = this.get(sr.getRoleName());
+ if(to != null)
+ {
+ to.merge(sr, null);
+ }
+ else
+ {
+ this.add(sr);
+ }
+ }
}
- if(sr1 != null)
+ if(roles1 != null)
{
- for(SecurityRoleMetaData sr : sr1)
+ for(SecurityRoleMetaData sr : roles1)
{
SecurityRoleMetaData to = this.get(sr.getRoleName());
if(to != null)
{
- to.merge(sr);
+ to.merge(sr, null);
}
else
{
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/merge/MergeUtil.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -93,7 +93,7 @@
jbossMessageDestinationRefs = jbossEnvironmentRefsGroup.getMessageDestinationReferences();
}
- EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overridenFile, overrideFile);
+ EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, overridenFile, overrideFile, mustOverride);
if (mergedEjbRefs != null)
merged.setEjbReferences(mergedEjbRefs);
@@ -109,7 +109,7 @@
if (mergedResEnvRefs != null)
merged.setResourceEnvironmentReferences(mergedResEnvRefs);
- MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, overridenFile, overrideFile);
+ MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, overridenFile, overrideFile, mustOverride);
if (mergedMessageDestinationRefs != null)
merged.setMessageDestinationReferences(mergedMessageDestinationRefs);
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletMetaData.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -0,0 +1,60 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.web.jboss;
+
+import org.jboss.metadata.web.spec.ServletMetaData;
+
+/**
+ * jboss-web/servlet metadata
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class JBossServletMetaData extends ServletMetaData
+{
+ private static final long serialVersionUID = 1;
+
+ private String runAsPrincipal;
+
+ public String getRunAsPrincipal()
+ {
+ return runAsPrincipal;
+ }
+
+ public void setRunAsPrincipal(String runAsPrincipal)
+ {
+ this.runAsPrincipal = runAsPrincipal;
+ }
+
+ public JBossServletMetaData merge(ServletMetaData original)
+ {
+ JBossServletMetaData merged = new JBossServletMetaData();
+ merged.merge(this, original);
+ return merged;
+ }
+ public void merge(JBossServletMetaData override, ServletMetaData original)
+ {
+ super.merge(override, original);
+ if(override != null && override.runAsPrincipal != null)
+ setRunAsPrincipal(override.runAsPrincipal);
+ }
+}
Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletMetaData.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletsMetaData.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletsMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.web.jboss;
+
+import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.metadata.web.spec.ServletsMetaData;
+
+/**
+ * jboss-web/serlvet collection
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class JBossServletsMetaData
+ extends AbstractMappedMetaData<JBossServletMetaData>
+{
+ private static final long serialVersionUID = 1;
+
+ public static JBossServletsMetaData merge(JBossServletsMetaData override,
+ ServletsMetaData original)
+ {
+ JBossServletsMetaData merged = new JBossServletsMetaData();
+ if (override == null && original == null)
+ return merged;
+
+ for(ServletMetaData smd : original)
+ {
+ String key = smd.getKey();
+ if(override != null && override.containsKey(key))
+ {
+ JBossServletMetaData overrideSMD = override.get(key);
+ JBossServletMetaData jbs = overrideSMD.merge(smd);
+ merged.add(jbs);
+ }
+ else
+ {
+ JBossServletMetaData jbs = new JBossServletMetaData();
+ jbs.merge(null, smd);
+ merged.add(jbs);
+ }
+ }
+
+ // Process the remaining overrides
+ if(override != null)
+ {
+ for(JBossServletMetaData jbs : override)
+ {
+ String key = jbs.getKey();
+ if(merged.containsKey(key))
+ continue;
+ merged.add(jbs);
+ }
+ }
+
+ return merged;
+ }
+
+ public JBossServletsMetaData()
+ {
+ super("jboss-web app servlets");
+ }
+}
Property changes on: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossServletsMetaData.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/web/jboss/JBossWebMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -21,7 +21,6 @@
*/
package org.jboss.metadata.web.jboss;
-import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
@@ -33,11 +32,17 @@
import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
import org.jboss.metadata.ejb.jboss.JBossEnvironmentRefsGroupMetaData;
-import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
+import org.jboss.metadata.javaee.jboss.RunAsIdentityMetaData;
+import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
import org.jboss.metadata.javaee.spec.EJBLocalReferencesMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
import org.jboss.metadata.javaee.spec.EJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.EmptyMetaData;
+import org.jboss.metadata.javaee.spec.Environment;
import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
@@ -58,22 +63,52 @@
import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
import org.jboss.metadata.javaee.support.AbstractMappedMetaData;
-import org.jboss.metadata.javaee.support.IdMetaDataImplWithOverride;
+import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptionGroup;
+import org.jboss.metadata.web.spec.ErrorPageMetaData;
+import org.jboss.metadata.web.spec.FilterMappingMetaData;
+import org.jboss.metadata.web.spec.FiltersMetaData;
+import org.jboss.metadata.web.spec.JspConfigMetaData;
+import org.jboss.metadata.web.spec.ListenerMetaData;
+import org.jboss.metadata.web.spec.LocaleEncodingsMetaData;
+import org.jboss.metadata.web.spec.LoginConfigMetaData;
+import org.jboss.metadata.web.spec.MimeMappingMetaData;
import org.jboss.metadata.web.spec.SecurityConstraintMetaData;
import org.jboss.metadata.web.spec.ServletMappingMetaData;
import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.metadata.web.spec.ServletsMetaData;
+import org.jboss.metadata.web.spec.SessionConfigMetaData;
+import org.jboss.metadata.web.spec.Web25MetaData;
import org.jboss.metadata.web.spec.WebMetaData;
+import org.jboss.metadata.web.spec.WelcomeFileListMetaData;
/**
+ * The combined web.xml/jboss-web.xml metadata
* @author Scott.Stark at jboss.org
* @version $Revision$
*/
-public class JBossWebMetaData extends IdMetaDataImplWithOverride<WebMetaData>
+public class JBossWebMetaData extends IdMetaDataImplWithDescriptionGroup
{
private static final long serialVersionUID = 1;
- /** DTD information */
+ // Spec information
+ private String servletVersion;
+ private EmptyMetaData distributable;
+ private boolean metadataComplete;
+ private List<ParamValueMetaData> contextParams;
+ private SessionConfigMetaData sessionConfig;
+ private FiltersMetaData filters;
+ private List<FilterMappingMetaData> filterMappings;
+ private List<ErrorPageMetaData> errorPages;
+ private List<JspConfigMetaData> jspConfig;
+ private List<ListenerMetaData> listeners;
+ private List<LoginConfigMetaData> loginConfig;
+ private List<MimeMappingMetaData> mimeMappings;
+ private List<ServletMappingMetaData> servletMappings;
+ private List<SecurityConstraintMetaData> securityContraints;
+ private WelcomeFileListMetaData welcomeFileList;
+ private LocaleEncodingsMetaData localEncodings;
+
+ // JBoss extended information
private String dtdPublicId;
private String dtdSystemId;
private String version;
@@ -83,30 +118,28 @@
private String jaccContextID;
/** The loader repository */
private ClassLoadingMetaData classLoading;
- private ServletsMetaData servlets = new ServletsMetaData();
/** A list of extra dependencies to wait on */
private List<String> depends;
/** */
- private Map<String, SecurityRoleMetaData> runAsIdentity = new HashMap<String, SecurityRoleMetaData>();
+ private Map<String, RunAsIdentityMetaData> runAsIdentity = new HashMap<String, RunAsIdentityMetaData>();
private SecurityRolesMetaData securityRoles = new SecurityRolesMetaData();
+ /** The servlets */
+ private JBossServletsMetaData servlets = new JBossServletsMetaData();
/** The message destinations */
private MessageDestinationsMetaData messageDestinations = new MessageDestinationsMetaData();
/** The environment */
private JBossEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup;
- /** The merged environment */
- private transient JBossEnvironmentRefsGroupMetaData mergedEnvironment;
+ /** The web app virtual host list */
private List<String> virtualHosts;
private boolean flushOnSessionInvalidation;
private boolean useSessionCookies;
private ReplicationConfig replicationConfig;
private PassivationConfig passivationConfig;
private WebserviceDescriptionsMetaData webserviceDescriptions = new WebserviceDescriptionsMetaData();
- /** The optional JBossWS config-name */
+ /** The optional JBossWS config-name, should it be here? */
private String configName;
- /** The optional JBossWS config-file */
+ /** The optional JBossWS config-file, should it be here? */
private String configFile;
- /** The security identity */
- private SecurityIdentityMetaData securityIdentity;
/** The web context class loader used to create the java:comp context */
@Deprecated
@@ -171,14 +204,24 @@
// Set the version based on the public id
if (dtdPublicId != null && dtdPublicId.contains("3.0"))
setVersion("3.0");
- if (dtdPublicId != null && dtdPublicId.contains("3.2"))
+ else if (dtdPublicId != null && dtdPublicId.contains("3.2"))
setVersion("3.2");
- if (dtdPublicId != null && dtdPublicId.contains("4.0"))
+ else if (dtdPublicId != null && dtdPublicId.contains("2.4"))
setVersion("4.0");
- if (dtdPublicId != null && dtdPublicId.contains("4.2"))
+ else if (dtdPublicId != null && dtdPublicId.contains("4.2"))
setVersion("4.2");
- if (dtdPublicId != null && dtdPublicId.contains("5.0"))
+ else if (dtdPublicId != null && dtdPublicId.contains("5.0"))
setVersion("5.0");
+ else if(dtdSystemId != null && dtdSystemId.contains("3_0"))
+ setVersion("3.0");
+ else if(dtdSystemId != null && dtdSystemId.contains("3_2"))
+ setVersion("3.2");
+ else if(dtdSystemId != null && dtdSystemId.contains("4_0"))
+ setVersion("4.0");
+ else if(dtdSystemId != null && dtdSystemId.contains("4_2"))
+ setVersion("4.2");
+ else if(dtdSystemId != null && dtdSystemId.contains("5_0"))
+ setVersion("5.0");
}
/**
* Get the DTD public id if one was seen
@@ -207,7 +250,338 @@
{
this.version = version;
}
+ public String getServletVersion()
+ {
+ return servletVersion;
+ }
+ public void setServletVersion(String servletVersion)
+ {
+ this.servletVersion = servletVersion;
+ }
+
+ /**
+ * Is this a servlet 2.3 version application
+ * @return true if this is a javaee 2.3 version application
+ */
+ @XmlTransient
+ public boolean is23()
+ {
+ return servletVersion != null && servletVersion.equals(JavaEEMetaDataConstants.J2EE_13_WEB);
+ }
+ @XmlTransient
+ public boolean is24()
+ {
+ return servletVersion != null && servletVersion.equals("2.4");
+ }
+ @XmlTransient
+ public boolean is25()
+ {
+ return servletVersion != null && servletVersion.equals("2.5");
+ }
+
+
+ public boolean isMetadataComplete()
+ {
+ return metadataComplete;
+ }
+ public void setMetadataComplete(boolean metadataComplete)
+ {
+ this.metadataComplete = metadataComplete;
+ }
+
+ public EmptyMetaData getDistributable()
+ {
+ return distributable;
+ }
+ public void setDistributable(EmptyMetaData distributable)
+ {
+ this.distributable = distributable;
+ }
+ public SessionConfigMetaData getSessionConfig()
+ {
+ return sessionConfig;
+ }
+ public void setSessionConfig(SessionConfigMetaData sessionConfig)
+ {
+ this.sessionConfig = sessionConfig;
+ }
+ public List<ParamValueMetaData> getContextParams()
+ {
+ return contextParams;
+ }
+ @XmlElement(name="context-param")
+ public void setContextParams(List<ParamValueMetaData> params)
+ {
+ this.contextParams = params;
+ }
+
+ public FiltersMetaData getFilters()
+ {
+ return filters;
+ }
+ @XmlElement(name="filter")
+ public void setFilters(FiltersMetaData filters)
+ {
+ this.filters = filters;
+ }
+
+ public List<FilterMappingMetaData> getFilterMappings()
+ {
+ return filterMappings;
+ }
+ @XmlElement(name="filter-mapping")
+ public void setFilterMappings(List<FilterMappingMetaData> filterMappings)
+ {
+ this.filterMappings = filterMappings;
+ }
+
+ public List<ErrorPageMetaData> getErrorPages()
+ {
+ return errorPages;
+ }
+ @XmlElement(name="error-page")
+ public void setErrorPages(List<ErrorPageMetaData> errorPages)
+ {
+ this.errorPages = errorPages;
+ }
+
+ public List<JspConfigMetaData> getJspConfig()
+ {
+ return jspConfig;
+ }
+ public void setJspConfig(List<JspConfigMetaData> jspConfig)
+ {
+ this.jspConfig = jspConfig;
+ }
+
+ public List<ListenerMetaData> getListeners()
+ {
+ return listeners;
+ }
+ @XmlElement(name="listener")
+ public void setListeners(List<ListenerMetaData> listeners)
+ {
+ this.listeners = listeners;
+ }
+
+ public LocaleEncodingsMetaData getLocalEncodings()
+ {
+ return localEncodings;
+ }
+ @XmlElement(name="locale-encoding-mapping-list")
+ public void setLocalEncodings(LocaleEncodingsMetaData localEncodings)
+ {
+ this.localEncodings = localEncodings;
+ }
+
+ public List<LoginConfigMetaData> getLoginConfig()
+ {
+ return loginConfig;
+ }
+ public void setLoginConfig(List<LoginConfigMetaData> loginConfig)
+ {
+ this.loginConfig = loginConfig;
+ }
+
+ public List<MimeMappingMetaData> getMimeMappings()
+ {
+ return mimeMappings;
+ }
+ @XmlElement(name="mime-mapping")
+ public void setMimeMappings(List<MimeMappingMetaData> mimeMappings)
+ {
+ this.mimeMappings = mimeMappings;
+ }
+
+ public JBossServletMetaData getServletByName(String name)
+ {
+ JBossServletMetaData servlet = null;
+ if(servlets != null)
+ servlet = servlets.get(name);
+ return servlet;
+ }
+ public JBossServletsMetaData getServlets()
+ {
+ return servlets;
+ }
+ @XmlElement(name="servlet")
+ public void setServlets(JBossServletsMetaData servlets)
+ {
+ this.servlets = servlets;
+ }
+
+ public List<ServletMappingMetaData> getServletMappings()
+ {
+ return servletMappings;
+ }
+ @XmlElement(name="servlet-mapping")
+ public void setServletMappings(List<ServletMappingMetaData> servletMappings)
+ {
+ this.servletMappings = servletMappings;
+ }
+
+ public List<SecurityConstraintMetaData> getSecurityContraints()
+ {
+ return securityContraints;
+ }
+ @XmlElement(name="security-constraint")
+ public void setSecurityContraints(List<SecurityConstraintMetaData> securityContraints)
+ {
+ this.securityContraints = securityContraints;
+ }
+
+ public SecurityRolesMetaData getSecurityRoles()
+ {
+ return securityRoles;
+ }
+ @XmlElement(name="security-role")
+ public void setSecurityRoles(SecurityRolesMetaData securityRoles)
+ {
+ this.securityRoles = securityRoles;
+ }
+
+ public WelcomeFileListMetaData getWelcomeFileList()
+ {
+ return welcomeFileList;
+ }
+ public void setWelcomeFileList(WelcomeFileListMetaData welcomeFileList)
+ {
+ this.welcomeFileList = welcomeFileList;
+ }
+
+ public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbLocalReferences());
+ }
+
+ public EJBLocalReferencesMetaData getEjbLocalReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getEjbLocalReferences();
+ return null;
+ }
+
+ public EJBReferenceMetaData getEjbReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEjbReferences());
+ }
+
+ public EJBReferencesMetaData getEjbReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getEjbReferences();
+ return null;
+ }
+
+ public EnvironmentEntriesMetaData getEnvironmentEntries()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getEnvironmentEntries();
+ return null;
+ }
+
+ public EnvironmentEntryMetaData getEnvironmentEntryByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getEnvironmentEntries());
+ }
+
+ public MessageDestinationReferenceMetaData getMessageDestinationReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getMessageDestinationReferences());
+ }
+
+ public MessageDestinationReferencesMetaData getMessageDestinationReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getMessageDestinationReferences();
+ return null;
+ }
+
+ public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceContextRefs());
+ }
+
+ public PersistenceContextReferencesMetaData getPersistenceContextRefs()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPersistenceContextRefs();
+ return null;
+ }
+
+ public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getPersistenceUnitRefs());
+ }
+
+ public PersistenceUnitReferencesMetaData getPersistenceUnitRefs()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPersistenceUnitRefs();
+ return null;
+ }
+
+ public LifecycleCallbacksMetaData getPostConstructs()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPostConstructs();
+ return null;
+ }
+
+ public LifecycleCallbacksMetaData getPreDestroys()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getPreDestroys();
+ return null;
+ }
+
+ public ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceEnvironmentReferences());
+ }
+
+ public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getResourceEnvironmentReferences();
+ return null;
+ }
+
+ public ResourceReferenceMetaData getResourceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getResourceReferences());
+ }
+
+ public ResourceReferencesMetaData getResourceReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getResourceReferences();
+ return null;
+ }
+
+ public ServiceReferenceMetaData getServiceReferenceByName(String name)
+ {
+ return AbstractMappedMetaData.getByName(name, getServiceReferences());
+ }
+
+ public ServiceReferencesMetaData getServiceReferences()
+ {
+ if (jndiEnvironmentRefsGroup != null)
+ return jndiEnvironmentRefsGroup.getServiceReferences();
+ return null;
+ }
+
+ public MessageDestinationsMetaData getMessageDestinations()
+ {
+ return messageDestinations;
+ }
+ @XmlElement(name="message-destination")
+ public void setMessageDestinations(MessageDestinationsMetaData messageDestinations)
+ {
+ this.messageDestinations = messageDestinations;
+ }
+
public String getAlternativeDD()
{
return alternativeDD;
@@ -301,14 +675,6 @@
{
this.securityDomain = securityDomain;
}
- public SecurityRolesMetaData getSecurityRoles()
- {
- return securityRoles;
- }
- public void setSecurityRoles(SecurityRolesMetaData securityRoles)
- {
- this.securityRoles = securityRoles;
- }
public HashMap getArbitraryMetadata()
{
@@ -375,16 +741,6 @@
this.replicationConfig = replicationConfig;
}
- public ServletsMetaData getServlets()
- {
- return servlets;
- }
- @XmlElement(name="servlet")
- public void setServlets(ServletsMetaData servlets)
- {
- this.servlets = servlets;
- }
-
public boolean isUseSessionCookies()
{
return useSessionCookies;
@@ -424,15 +780,6 @@
this.webserviceDescriptions = webserviceDescriptions;
}
- @XmlTransient
- public boolean getDistributable()
- {
- boolean distributable = false;
- if (this.getOverridenMetaData() != null)
- distributable = getOverridenMetaData().getDistributable() != null;
- return distributable;
- }
-
/**
* Get the security-role names from the web.xml descriptor
* @return Set<String> of the security-role names from the web.xml
@@ -451,10 +798,13 @@
public SecurityRoleRefsMetaData getSecurityRoleRefs(String servletName)
{
SecurityRoleRefsMetaData refs = null;
- ServletMetaData servlet = getMergedServlets().get(servletName);
- if (servlet != null)
+ if(getServlets() != null)
{
- refs = servlet.getSecurityRoleRefs();
+ ServletMetaData servlet = getServlets().get(servletName);
+ if (servlet != null)
+ {
+ refs = servlet.getSecurityRoleRefs();
+ }
}
return refs;
}
@@ -468,6 +818,7 @@
String rolename = srm.getRoleName();
if(principalRolesMap == null)
principalRolesMap = new HashMap<String, Set<String>>();
+ if(srm.getPrincipals() != null)
for(String pr : srm.getPrincipals())
{
Set<String> roleset = (Set<String>)principalRolesMap.get(pr);
@@ -486,7 +837,7 @@
*
* @return the jndiEnvironmentRefsGroup.
*/
- public JBossEnvironmentRefsGroupMetaData getJbossJndiEnvironmentRefsGroup()
+ public Environment getJndiEnvironmentRefsGroup()
{
return jndiEnvironmentRefsGroup;
}
@@ -497,226 +848,36 @@
* @param jndiEnvironmentRefsGroup the jndiEnvironmentRefsGroup.
* @throws IllegalArgumentException for a null jndiEnvironmentRefsGroup
*/
- public void setJbossJndiEnvironmentRefsGroup(JBossEnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
+ @XmlElement(type=JBossEnvironmentRefsGroupMetaData.class)
+ public void setJndiEnvironmentRefsGroup(Environment env)
{
- if (jndiEnvironmentRefsGroup == null)
+ if (env == null)
throw new IllegalArgumentException("Null jndiEnvironmentRefsGroup");
- this.jndiEnvironmentRefsGroup = jndiEnvironmentRefsGroup;
+ JBossEnvironmentRefsGroupMetaData jenv = (JBossEnvironmentRefsGroupMetaData) env;
+ if(jndiEnvironmentRefsGroup != null)
+ jndiEnvironmentRefsGroup.merge(jenv, null, null, "jboss-web.xml", "web.xml", false);
+ else
+ jndiEnvironmentRefsGroup = jenv;
}
- /**
- * Get the mergedEnvironment.
- * TODO
- *
- * @return the mergedEnvironment.
- */
@XmlTransient
- public JBossEnvironmentRefsGroupMetaData getMergedEnvironment()
- {
- if (mergedEnvironment != null)
- return mergedEnvironment;
-
- try
- {
- mergedEnvironment = JBossEnvironmentRefsGroupMetaData.mergeNew(jndiEnvironmentRefsGroup,
- this.getOverridenMetaData().getJndiEnvironmentRefsGroup(),
- // jboss-web does not use resource-managers
- null,
- "web.xml", "jboss-web.xml", true);
- }
- catch (Exception e)
- {
- throw new RuntimeException("Error merging jndi environment for " + getId(), e);
- }
- return mergedEnvironment;
- }
- /**
- * TODO
- * @return
- */
- @XmlTransient
- public ServletsMetaData getMergedServlets()
- {
- WebMetaData wmd = getOverridenMetaData();
- ServletsMetaData smd = wmd.getServlets();
- if(smd == null)
- smd = new ServletsMetaData();
- return smd;
- }
-
- @XmlTransient
- public List<ServletMappingMetaData> getServletMappings()
- {
- WebMetaData wmd = getOverridenMetaData();
- List<ServletMappingMetaData> smd = wmd.getServletMappings();
- if(smd == null)
- smd = Collections.emptyList();
- return smd;
- }
-
- @XmlTransient
- public EnvironmentEntriesMetaData getEnvironmentEntries()
- {
- return getMergedEnvironment().getEnvironmentEntries();
- }
-
- @XmlTransient
- public EnvironmentEntryMetaData getEnvironmentEntryByName(String name)
- {
- return AbstractMappedMetaData.getByName(name, getEnvironmentEntries());
- }
-
- @XmlTransient
- public EJBLocalReferencesMetaData getEjbLocalReferences()
- {
- return getMergedEnvironment().getEjbLocalReferences();
- }
-
- @XmlTransient
- public EJBReferencesMetaData getEjbReferences()
- {
- return getMergedEnvironment().getEjbReferences();
- }
-
- /**
- * Get the messageDestinations.
- *
- * @return the messageDestinations.
- */
- public MessageDestinationsMetaData getMessageDestinations()
- {
- return messageDestinations;
- }
- @XmlTransient
public MessageDestinationMetaData getMessageDestination(String name)
{
return messageDestinations.get(name);
}
/**
- * Set the messageDestinations.
- *
- * @param messageDestinations the messageDestinations.
- * @throws IllegalArgumentException for a null messageDestinations
- */
- @XmlElement(name="message-destination")
- public void setMessageDestinations(MessageDestinationsMetaData messageDestinations)
- {
- if (messageDestinations == null)
- throw new IllegalArgumentException("Null messageDestinations");
- this.messageDestinations = messageDestinations;
- }
-
- @XmlTransient
- public MessageDestinationReferenceMetaData getMessageDestinationReferenceByName(String name)
- {
- return AbstractMappedMetaData.getByName(name, getMessageDestinationReferences());
- }
-
- @XmlTransient
- public MessageDestinationReferencesMetaData getMessageDestinationReferences()
- {
- return getMergedEnvironment().getMessageDestinationReferences();
- }
-
- @XmlTransient
- public PersistenceContextReferenceMetaData getPersistenceContextReferenceByName(String name)
- {
- return AbstractMappedMetaData.getByName(name, getPersistenceContextRefs());
- }
-
- @XmlTransient
- public PersistenceContextReferencesMetaData getPersistenceContextRefs()
- {
- return getMergedEnvironment().getPersistenceContextRefs();
- }
-
- @XmlTransient
- public PersistenceUnitReferenceMetaData getPersistenceUnitReferenceByName(String name)
- {
- return AbstractMappedMetaData.getByName(name, getPersistenceUnitRefs());
- }
-
- @XmlTransient
- public PersistenceUnitReferencesMetaData getPersistenceUnitRefs()
- {
- return getMergedEnvironment().getPersistenceUnitRefs();
- }
-
- @XmlTransient
- public LifecycleCallbacksMetaData getPostConstructs()
- {
- return getMergedEnvironment().getPostConstructs();
- }
-
- @XmlTransient
- public LifecycleCallbacksMetaData getPreDestroys()
- {
- return getMergedEnvironment().getPreDestroys();
- }
-
- @XmlTransient
- public ResourceEnvironmentReferenceMetaData getResourceEnvironmentReferenceByName(String name)
- {
- return AbstractMappedMetaData.getByName(name, getResourceEnvironmentReferences());
- }
-
- @XmlTransient
- public ResourceEnvironmentReferencesMetaData getResourceEnvironmentReferences()
- {
- return getMergedEnvironment().getResourceEnvironmentReferences();
- }
-
- @XmlTransient
- public ResourceReferenceMetaData getResourceReferenceByName(String name)
- {
- return AbstractMappedMetaData.getByName(name, getResourceReferences());
- }
-
- @XmlTransient
- public ResourceReferencesMetaData getResourceReferences()
- {
- return getMergedEnvironment().getResourceReferences();
- }
-
- @XmlTransient
- public ServiceReferenceMetaData getServiceReferenceByName(String name)
- {
- return AbstractMappedMetaData.getByName(name, getServiceReferences());
- }
-
- @XmlTransient
- public ServiceReferencesMetaData getServiceReferences()
- {
- return getMergedEnvironment().getServiceReferences();
- }
-
- /**
- * Get the security identity
- *
- * @return the security identity
- */
- public SecurityIdentityMetaData getSecurityIdentity()
- {
- return securityIdentity;
- }
- public void setSecurityIdentity(SecurityIdentityMetaData securityIdentity)
- {
- this.securityIdentity = securityIdentity;
- }
-
- /**
* Access the RunAsIdentity associated with the given servlet
* @param servletName - the servlet-name from the web.xml
* @return RunAsIdentity for the servet if one exists, null otherwise
*/
@XmlTransient
- public SecurityRoleMetaData getRunAsIdentity(String servletName)
+ public RunAsIdentityMetaData getRunAsIdentity(String servletName)
{
- SecurityRoleMetaData srmd = runAsIdentity.get(servletName);
- if (srmd == null)
+ RunAsIdentityMetaData identity = runAsIdentity.get(servletName);
+ if (identity == null)
{
- ServletsMetaData servlets = getMergedServlets();
+ JBossServletsMetaData servlets = getServlets();
if(servlets != null)
{
ServletMetaData servlet = servlets.get(servletName);
@@ -729,42 +890,273 @@
if (runAs != null)
{
String roleName = runAs.getRoleName();
- srmd = new SecurityRoleMetaData();
- srmd.setName(roleName);
- runAsIdentity.put(servletName, srmd);
+ identity = new RunAsIdentityMetaData(roleName, null);
+ runAsIdentity.put(servletName, identity);
}
}
}
}
}
- return srmd;
+ return identity;
}
- @XmlTransient
- public List<SecurityConstraintMetaData> getSecurityContraints()
- {
- return getOverridenMetaData().getSecurityContraints();
- }
-
/**
*
* @return servlet/run-as <String servlet-name, SecurityRoleMetaData>
*/
- public Map<String, SecurityRoleMetaData> getRunAsIdentity()
+ public Map<String, RunAsIdentityMetaData> getRunAsIdentity()
{
return runAsIdentity;
}
/** The jboss-web.xml servlet/run-as <String servlet-name, SecurityRoleMetaData>
*/
- public void setRunAsIdentity(Map<String, SecurityRoleMetaData> runAsIdentity)
+ public void setRunAsIdentity(Map<String, RunAsIdentityMetaData> runAsIdentity)
{
this.runAsIdentity.clear();
this.runAsIdentity.putAll(runAsIdentity);
}
+
public void mergeSecurityRoles(SecurityRolesMetaData roles)
{
+ if(this.securityRoles == null)
+ securityRoles = roles;
+ else
+ securityRoles.merge(roles, null);
+ }
+ public void merge(JBossWebMetaData override, WebMetaData original)
+ {
+ this.merge(override, original, "jboss-web.xml", "web.xml", false);
+ }
+ public void merge(JBossWebMetaData override, WebMetaData original,
+ String overrideFile, String overridenFile, boolean mustOverride)
+ {
+ super.merge(override, original);
+
+ if(override != null && override.servletVersion!= null)
+ setServletVersion(override.servletVersion);
+ else if(original != null && original.getVersion() != null)
+ setServletVersion(original.getVersion());
+
+ if(override != null && override.distributable!= null)
+ setDistributable(override.distributable);
+ else if(original != null && original.getDistributable() != null)
+ setDistributable(original.getDistributable());
+
+ if(override != null && override.metadataComplete != false)
+ setMetadataComplete(override.metadataComplete);
+ else if(original != null && (original instanceof Web25MetaData) )
+ {
+ Web25MetaData web25MD = (Web25MetaData) original;
+ setMetadataComplete(web25MD.isMetadataComplete());
+ }
+
+ if(override != null && override.contextParams!= null)
+ setContextParams(override.contextParams);
+ else if(original != null && original.getContextParams() != null)
+ setContextParams(original.getContextParams());
+ if(override != null && override.sessionConfig!= null)
+ setSessionConfig(override.sessionConfig);
+ else if(original != null && original.getSessionConfig() != null)
+ setSessionConfig(original.getSessionConfig());
+
+ if(override != null && override.filters!= null)
+ setFilters(override.filters);
+ else if(original != null && original.getFilters() != null)
+ setFilters(original.getFilters());
+
+ if(override != null && override.filterMappings!= null)
+ setFilterMappings(override.filterMappings);
+ else if(original != null && original.getFilterMappings() != null)
+ setFilterMappings(original.getFilterMappings());
+
+ if(override != null && override.errorPages!= null)
+ setErrorPages(override.errorPages);
+ else if(original != null && original.getErrorPages() != null)
+ setErrorPages(original.getErrorPages());
+
+ if(override != null && override.jspConfig!= null)
+ setJspConfig(override.jspConfig);
+ else if(original != null && original.getJspConfig() != null)
+ setJspConfig(original.getJspConfig());
+
+ if(override != null && override.listeners!= null)
+ setListeners(override.listeners);
+ else if(original != null && original.getListeners() != null)
+ setListeners(original.getListeners());
+
+ if(override != null && override.loginConfig!= null)
+ setLoginConfig(override.loginConfig);
+ else if(original != null && original.getLoginConfig() != null)
+ setLoginConfig(original.getLoginConfig());
+
+ if(override != null && override.mimeMappings!= null)
+ setMimeMappings(override.mimeMappings);
+ else if(original != null && original.getMimeMappings() != null)
+ setMimeMappings(original.getMimeMappings());
+
+ if(override != null && override.servletMappings!= null)
+ setServletMappings(override.servletMappings);
+ else if(original != null && original.getServletMappings() != null)
+ setServletMappings(original.getServletMappings());
+
+ if(override != null && override.securityContraints!= null)
+ setSecurityContraints(override.securityContraints);
+ else if(original != null && original.getSecurityContraints() != null)
+ setSecurityContraints(original.getSecurityContraints());
+
+ if(override != null && override.welcomeFileList!= null)
+ setWelcomeFileList(override.welcomeFileList);
+ else if(original != null && original.getWelcomeFileList() != null)
+ setWelcomeFileList(original.getWelcomeFileList());
+
+ if(override != null && override.localEncodings!= null)
+ setLocalEncodings(override.localEncodings);
+ else if(original != null && original.getLocalEncodings() != null)
+ setLocalEncodings(original.getLocalEncodings());
+
+ if(override != null && override.dtdPublicId != null)
+ this.dtdPublicId = override.dtdPublicId;
+
+ if(override != null && override.dtdSystemId != null)
+ this.dtdSystemId = override.dtdSystemId;
+
+ if(override != null && override.version!= null)
+ setVersion(override.version);
+ else if(original != null && original.getVersion() != null)
+ setVersion(original.getVersion());
+
+ if(override != null && override.contextRoot!= null)
+ setContextRoot(override.contextRoot);
+
+ if(override != null && override.alternativeDD!= null)
+ setAlternativeDD(override.alternativeDD);
+
+ if(override != null && override.securityDomain!= null)
+ setSecurityDomain(override.securityDomain);
+
+ if(override != null && override.jaccContextID!= null)
+ setJaccContextID(override.jaccContextID);
+
+ if(override != null && override.classLoading!= null)
+ setClassLoading(override.classLoading);
+
+ if(override != null && override.depends!= null)
+ setDepends(override.depends);
+
+ if(override != null && override.runAsIdentity!= null)
+ setRunAsIdentity(override.runAsIdentity);
+
+ if(securityRoles == null)
+ securityRoles = new SecurityRolesMetaData();
+ SecurityRolesMetaData overrideRoles = null;
+ SecurityRolesMetaData originalRoles = null;
+ if(override != null)
+ overrideRoles = override.getSecurityRoles();
+ if(original != null)
+ originalRoles = original.getSecurityRoles();
+ securityRoles.merge(overrideRoles, originalRoles);
+
+ JBossServletsMetaData soverride = null;
+ ServletsMetaData soriginal = null;
+ if(override != null)
+ soverride = override.getServlets();
+ if(original != null)
+ soriginal = original.getServlets();
+ servlets = JBossServletsMetaData.merge(soverride, soriginal);
+
+ MessageDestinationsMetaData overrideMsgDests = null;
+ MessageDestinationsMetaData originalMsgDests = null;
+ if(override != null && override.messageDestinations!= null)
+ overrideMsgDests = override.messageDestinations;
+ if(original != null && original.getMessageDestinations() != null)
+ originalMsgDests = original.getMessageDestinations();
+ this.messageDestinations = MessageDestinationsMetaData.merge(overrideMsgDests,
+ originalMsgDests, overridenFile, overrideFile);
+
+ if(this.jndiEnvironmentRefsGroup == null)
+ jndiEnvironmentRefsGroup = new JBossEnvironmentRefsGroupMetaData();
+ Environment env = null;
+ JBossEnvironmentRefsGroupMetaData jenv = null;
+ if( override != null )
+ jenv = override.jndiEnvironmentRefsGroup;
+ if(original != null)
+ env = original.getJndiEnvironmentRefsGroup();
+ jndiEnvironmentRefsGroup.merge(jenv, env, null, overrideFile, overridenFile, mustOverride);
+
+ if(override != null && override.virtualHosts!= null)
+ setVirtualHosts(override.virtualHosts);
+
+ if(override != null && override.flushOnSessionInvalidation)
+ setFlushOnSessionInvalidation(override.flushOnSessionInvalidation);
+
+ if(override != null && override.useSessionCookies)
+ setUseSessionCookies(override.useSessionCookies);
+
+ if(override != null && override.replicationConfig!= null)
+ setReplicationConfig(override.replicationConfig);
+
+ if(override != null && override.passivationConfig!= null)
+ setPassivationConfig(override.passivationConfig);
+
+ if(override != null && override.webserviceDescriptions!= null)
+ setWebserviceDescriptions(override.webserviceDescriptions);
+
+ if(override != null && override.configName!= null)
+ setConfigName(override.configName);
+
+ if(override != null && override.configFile!= null)
+ setConfigFile(override.configFile);
+
+ if(override != null && override.arbitraryMetadata!= null)
+ setArbitraryMetadata(override.arbitraryMetadata);
+
+ if(override != null && override.invalidateSessionPolicy >= 0)
+ setInvalidateSessionPolicy(override.invalidateSessionPolicy);
+
+ if(override != null && override.replicationGranularity >= 0)
+ setReplicationGranularity(override.replicationGranularity);
+
+ if(override != null && override.replicationFieldBatchMode)
+ setReplicationFieldBatchMode(override.replicationFieldBatchMode);
+
+ if(override != null && override.maxActiveSessions != -1)
+ setMaxActiveSession(override.maxActiveSessions);
+
+ if(override != null && override.sessionCookies != -1)
+ setSessionCookies(override.sessionCookies);
+
+ // Update run-as indentity for a run-as-principal
+ if(servlets != null)
+ {
+ for(JBossServletMetaData servlet : servlets)
+ {
+ String servletName = servlet.getServletName();
+ String principalName = servlet.getRunAsPrincipal();
+ // Get the web.xml run-as primary role
+ String webXmlRunAs = null;
+ if(servlet.getRunAs() != null)
+ webXmlRunAs = servlet.getRunAs().getRoleName();
+ if (principalName != null)
+ {
+ // Update the run-as indentity to use the principal name
+ if (webXmlRunAs == null)
+ {
+ throw new IllegalStateException("run-as-principal: " + principalName + " found in jboss-web.xml but there was no run-as in web.xml");
+ }
+ // See if there are any additional roles for this principal
+ Set<String> extraRoles = securityRoles.getSecurityRoleNamesByPrincipal(principalName);
+ RunAsIdentityMetaData runAsId = new RunAsIdentityMetaData(webXmlRunAs, principalName, extraRoles);
+ runAsIdentity.put(servletName, runAsId);
+ }
+ else if (webXmlRunAs != null)
+ {
+ RunAsIdentityMetaData runAsId = new RunAsIdentityMetaData(webXmlRunAs, null);
+ runAsIdentity.put(servletName, runAsId);
+ }
+ }
+ }
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/ServletMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/ServletMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/ServletMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -28,6 +28,7 @@
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.javaee.spec.RunAsMetaData;
import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+import org.jboss.metadata.javaee.support.MergeableMetaData;
import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptionGroup;
/**
@@ -37,6 +38,7 @@
* @version $Revision$
*/
public class ServletMetaData extends NamedMetaDataWithDescriptionGroup
+ implements MergeableMetaData<ServletMetaData>
{
private static final long serialVersionUID = 1;
@@ -109,6 +111,41 @@
this.securityRoleRefs = securityRoleRefs;
}
+ public ServletMetaData merge(ServletMetaData original)
+ {
+ ServletMetaData merged = new ServletMetaData();
+ merged.merge(this, original);
+ return merged;
+ }
+ public void merge(ServletMetaData override, ServletMetaData original)
+ {
+ super.merge(override, original);
+ if(override != null && override.servletClass != null)
+ setServletClass(override.servletClass);
+ else if(original != null && original.servletClass != null)
+ setServletClass(original.servletClass);
+ if(override != null && override.jspFile != null)
+ setJspFile(override.jspFile);
+ else if(original != null && original.jspFile != null)
+ setJspFile(original.jspFile);
+ if(override != null && override.initParam != null)
+ setInitParam(override.initParam);
+ else if(original != null && original.initParam != null)
+ setInitParam(original.initParam);
+ if(override != null && override.loadOnStartup > 0)
+ setLoadOnStartup(override.loadOnStartup);
+ else if(original != null && original.loadOnStartup > 0)
+ setLoadOnStartup(original.loadOnStartup);
+ if(override != null && override.runAs != null)
+ setRunAs(override.runAs);
+ else if(original != null && original.runAs != null)
+ setRunAs(original.runAs);
+ if(override != null && override.securityRoleRefs != null)
+ setSecurityRoleRefs(override.securityRoleRefs);
+ else if(original != null && original.securityRoleRefs != null)
+ setSecurityRoleRefs(original.securityRoleRefs);
+ }
+
public String toString()
{
StringBuilder tmp = new StringBuilder("ServletMetaData(id=");
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebMetaData.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -322,11 +322,14 @@
* @param jndiEnvironmentRefsGroup the jndiEnvironmentRefsGroup.
* @throws IllegalArgumentException for a null jndiEnvironmentRefsGroup
*/
- public void setJndiEnvironmentRefsGroup(EnvironmentRefsGroupMetaData jndiEnvironmentRefsGroup)
+ public void setJndiEnvironmentRefsGroup(EnvironmentRefsGroupMetaData env)
{
- if (jndiEnvironmentRefsGroup == null)
+ if (env == null)
throw new IllegalArgumentException("Null jndiEnvironmentRefsGroup");
- this.jndiEnvironmentRefsGroup = jndiEnvironmentRefsGroup;
+ if(jndiEnvironmentRefsGroup != null)
+ jndiEnvironmentRefsGroup.merge(env, null, "jboss-web.xml", "web.xml", false);
+ else
+ this.jndiEnvironmentRefsGroup = env;
}
public EJBLocalReferenceMetaData getEjbLocalReferenceByName(String name)
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -21,11 +21,37 @@
*/
package org.jboss.test.metadata.web;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.jboss.annotation.javaee.Descriptions;
import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
+import org.jboss.metadata.javaee.jboss.RunAsIdentityMetaData;
+import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceType;
+import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationUsageType;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.javaee.spec.ResourceAuthorityType;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
import org.jboss.metadata.web.jboss.ClassLoadingMetaData;
import org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData;
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.Web24MetaData;
+import org.jboss.metadata.web.spec.WebMetaData;
import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
@@ -39,7 +65,11 @@
{
public static SchemaBindingResolver initResolver()
{
- return schemaResolverForClass(JBoss50DTDWebMetaData.class);
+ DefaultSchemaResolver resolver = new DefaultSchemaResolver();
+ resolver.addClassBindingForLocation("web-app_2_4.xsd", Web24MetaData.class);
+ resolver.addClassBindingForLocation("jboss-web_4_0.dtd", JBoss50DTDWebMetaData.class);
+ resolver.addClassBindingForLocation("jboss-web_4_2.dtd", JBoss50DTDWebMetaData.class);
+ return resolver;
}
public JBossWebApp24UnitTestCase(String name)
@@ -58,9 +88,288 @@
assertNotNull(loaderRepository);
assertEquals("jbossws.jbws1581:domain=jaxws-jbws1581.war", loaderRepository.getName());
}
-
+
+ public void testRunAsPrincipal()
+ throws Exception
+ {
+ JBossWebMetaData jbossWeb = unmarshal();
+ assertEquals("4.0", jbossWeb.getVersion());
+ assertEquals("java:/jaas/jbosstest-web", jbossWeb.getSecurityDomain());
+ ResourceReferenceMetaData dsRef = jbossWeb.getResourceReferenceByName("jdbc/DefaultDS");
+ assertEquals("java:/DefaultDS", dsRef.getMappedName());
+ }
+ public void testMergedRunAsPrincipal()
+ throws Exception
+ {
+ WebMetaData webMD = unmarshal("WebApp24_testRunAsPrincipal.xml", WebMetaData.class, null);
+ JBossWebMetaData jbossWebMD = unmarshal("JBossWebApp24_testRunAsPrincipal.xml", JBossWebMetaData.class, null);
+ JBossWebMetaData jbossWeb = new JBossWebMetaData();
+ jbossWeb.merge(jbossWebMD, webMD);
+
+ assertEquals("4.0", jbossWeb.getVersion());
+ assertEquals("java:/jaas/jbosstest-web", jbossWeb.getSecurityDomain());
+ assertEquals(5, jbossWeb.getResourceReferences().size());
+ // jdbc/DefaultDS
+ ResourceReferenceMetaData dsRef = jbossWeb.getResourceReferenceByName("jdbc/DefaultDS");
+ assertEquals("jdbc/DefaultDS", dsRef.getResourceRefName());
+ assertEquals("The default DS", dsRef.getDescriptions().value()[0].value());
+ assertEquals("java:/DefaultDS", dsRef.getMappedName());
+ assertEquals("javax.sql.DataSource", dsRef.getType());
+ assertEquals(ResourceAuthorityType.Container, dsRef.getResAuth());
+ // mail/DefaultMail
+ ResourceReferenceMetaData mailRef = jbossWeb.getResourceReferenceByName("mail/DefaultMail");
+ assertEquals("mail/DefaultMail", mailRef.getResourceRefName());
+ assertEquals("Default Mail", mailRef.getDescriptions().value()[0].value());
+ assertEquals("java:/Mail", mailRef.getMappedName());
+ assertEquals("javax.mail.Session", mailRef.getType());
+ assertEquals(ResourceAuthorityType.Container, mailRef.getResAuth());
+ // url/JBossHome
+ ResourceReferenceMetaData jbossUrlRef = jbossWeb.getResourceReferenceByName("url/JBossHome");
+ assertEquals("url/JBossHome", jbossUrlRef.getResourceRefName());
+ assertEquals("JBoss Home Page", jbossUrlRef.getDescriptions().value()[0].value());
+ assertEquals("http://www.jboss.org", jbossUrlRef.getResUrl());
+ assertEquals("java.net.URL", jbossUrlRef.getType());
+ assertEquals(ResourceAuthorityType.Container, jbossUrlRef.getResAuth());
+ // url/IndirectURL
+ ResourceReferenceMetaData indirectUrlRef = jbossWeb.getResourceReferenceByName("url/IndirectURL");
+ assertEquals("url/IndirectURL", indirectUrlRef.getResourceRefName());
+ assertEquals("SomeWebSite HomePage", indirectUrlRef.getDescriptions().value()[0].value());
+ assertEquals("java:SomeWebSite", indirectUrlRef.getMappedName());
+ assertEquals("java.net.URL", indirectUrlRef.getType());
+ assertEquals(ResourceAuthorityType.Container, indirectUrlRef.getResAuth());
+
+ assertEquals(2, jbossWeb.getResourceEnvironmentReferences().size());
+ ResourceEnvironmentReferenceMetaData resenv1 = jbossWeb.getResourceEnvironmentReferenceByName("res1/aQueue");
+ assertEquals("resenv1", resenv1.getId());
+ assertEquals("res1/aQueue", resenv1.getResourceEnvRefName());
+ assertEquals("A 1st test of the resource-env-ref tag", resenv1.getDescriptions().value()[0].value());
+ assertEquals("javax.jms.Queue", resenv1.getType());
+ assertEquals("queue/mdbtest", resenv1.getJndiName());
+ assertEquals("queue/mdbtest", resenv1.getMappedName());
+ ResourceEnvironmentReferenceMetaData resenv2 = jbossWeb.getResourceEnvironmentReferenceByName("res2/aQueue");
+ assertEquals("resenv2", resenv2.getId());
+ assertEquals("res2/aQueue", resenv2.getResourceEnvRefName());
+ assertEquals("A 2nd test of the resource-env-ref tag", resenv2.getDescriptions().value()[0].value());
+ assertEquals("javax.jms.Queue", resenv2.getType());
+ assertEquals("queue/mdbtest", resenv2.getJndiName());
+ assertEquals("queue/mdbtest", resenv2.getMappedName());
+
+ SecurityRolesMetaData secRoles = jbossWeb.getSecurityRoles();
+ assertEquals(6, secRoles.size());
+ SecurityRoleMetaData role1 = secRoles.get("AuthorizedUser");
+ assertNotNull(role1);
+ assertEquals("security-role1", role1.getId());
+ assertEquals("AuthorizedUser", role1.getRoleName());
+ assertEquals("An AuthorizedUser is one with a valid username and password", getDescription(role1.getDescriptions()));
+ assertEquals(null, role1.getPrincipals());
+ SecurityRoleMetaData role2 = secRoles.get("ServletUserRole");
+ assertEquals("security-role2", role2.getId());
+ assertEquals("ServletUserRole", role2.getRoleName());
+ assertEquals("A role used by the UserInRoleServlet", getDescription(role2.getDescriptions()));
+ assertEquals(null, role2.getPrincipals());
+ SecurityRoleMetaData role3 = secRoles.get("InternalUser");
+ assertEquals("security-role3", role3.getId());
+ assertEquals("InternalUser", role3.getRoleName());
+ assertEquals("InternalUser is private app role", getDescription(role3.getDescriptions()));
+ assertEquals(null, role3.getPrincipals());
+ SecurityRoleMetaData role4 = secRoles.get("ExtraRole1");
+ assertEquals("security-role4", role4.getId());
+ assertEquals("ExtraRole1", role4.getRoleName());
+ assertEquals("ExtraRole1 is an extra role added to a run-as principal", getDescription(role4.getDescriptions()));
+ assertEquals(set("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal"), role4.getPrincipals());
+ SecurityRoleMetaData role5 = secRoles.get("ExtraRole2");
+ assertEquals("security-role5", role5.getId());
+ assertEquals("ExtraRole2", role5.getRoleName());
+ assertEquals("ExtraRole2 is an extra role added to a run-as principal", getDescription(role5.getDescriptions()));
+ assertEquals(set("ExtraRole2Principal1", "ExtraRole2Principal2"), role5.getPrincipals());
+ SecurityRoleMetaData role6 = secRoles.get("NonExistentRole");
+ assertEquals("security-role6", role6.getId());
+ assertEquals("NonExistentRole", role6.getRoleName());
+ assertEquals("Role that does not exist", getDescription(role6.getDescriptions()));
+ assertEquals(null, role6.getPrincipals());
+
+ assertEquals(7, jbossWeb.getEnvironmentEntries().size());
+ EnvironmentEntryMetaData env1 = jbossWeb.getEnvironmentEntryByName("Ints/i0");
+ assertEquals("Ints/i0", env1.getEnvEntryName());
+ assertEquals("java.lang.Integer", env1.getType());
+ assertEquals("0", env1.getValue());
+ EnvironmentEntryMetaData env7 = jbossWeb.getEnvironmentEntryByName("ejb/catalog/CatalogDAOClass");
+ assertEquals("env7", env7.getId());
+ assertEquals("ejb/catalog/CatalogDAOClass", env7.getEnvEntryName());
+ assertEquals("An entry with a class name", getDescription(env7.getDescriptions()));
+ assertEquals("java.lang.String", env7.getType());
+ assertEquals("com.sun.model.dao.CatalogDAOImpl", env7.getValue());
+
+ assertEquals(13, jbossWeb.getEjbReferences().size());
+ // ejb/bean0
+ EJBReferenceMetaData ejb1 = jbossWeb.getEjbReferenceByName("ejb/bean0");
+ assertEquals("ejb1", ejb1.getId());
+ assertEquals("ejb/bean0", ejb1.getEjbRefName());
+ assertEquals(EJBReferenceType.Session, ejb1.getEjbRefType());
+ assertEquals("org.jboss.test.web.interfaces.StatelessSessionHome", ejb1.getHome());
+ assertEquals("org.jboss.test.web.interfaces.StatelessSession", ejb1.getRemote());
+ assertEquals("ENCBean0", ejb1.getLink());
+ assertEquals(null, ejb1.getJndiName());
+ // ejb/bean1
+ EJBReferenceMetaData ejb4 = jbossWeb.getEjbReferenceByName("ejb/bean3");
+ assertEquals("ejb4", ejb4.getId());
+ assertEquals("ejb/bean3", ejb4.getEjbRefName());
+ assertEquals(EJBReferenceType.Session, ejb4.getEjbRefType());
+ assertEquals("org.jboss.test.web.interfaces.StatelessSessionHome", ejb4.getHome());
+ assertEquals("org.jboss.test.web.interfaces.StatelessSession", ejb4.getRemote());
+ assertEquals(null, ejb4.getLink());
+ assertEquals("jbosstest/ejbs/UnsecuredEJB", ejb4.getJndiName());
+ assertEquals("jbosstest/ejbs/UnsecuredEJB", ejb4.getMappedName());
+ jbossWeb.getEjbReferenceByName("ejb/RelativeBean");
+
+ assertEquals(8, jbossWeb.getEjbLocalReferences().size());
+ EJBLocalReferenceMetaData local3 = jbossWeb.getEjbLocalReferenceByName("ejb/local/bean3");
+ assertEquals("local3", local3.getId());
+ assertEquals("ejb/local/bean3", local3.getEjbRefName());
+ assertEquals(EJBReferenceType.Session, local3.getEjbRefType());
+ assertEquals("org.jboss.test.web.interfaces.StatelessSessionLocalHome", local3.getLocalHome());
+ assertEquals("org.jboss.test.web.interfaces.StatelessSessionLocal", local3.getLocal());
+ assertEquals(null, local3.getLink());
+ assertEquals("jbosstest/ejbs/local/ENCBean1", local3.getJndiName());
+ assertEquals("jbosstest/ejbs/local/ENCBean1", local3.getMappedName());
+ // ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget
+ EJBLocalReferenceMetaData local8 = jbossWeb.getEjbLocalReferenceByName("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget");
+ assertEquals("local8", local8.getId());
+ assertEquals("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget", local8.getEjbRefName());
+ assertEquals(EJBReferenceType.Session, local8.getEjbRefType());
+ assertEquals("org.jboss.test.web.interfaces.RunAsTargetLocalHome", local8.getLocalHome());
+ assertEquals("org.jboss.test.web.interfaces.RunAsTargetLocal", local8.getLocal());
+ assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesTarget", local8.getLink());
+ assertEquals(null, local8.getJndiName());
+
+ // mdr/ConsumesLink
+ assertEquals(3, jbossWeb.getMessageDestinationReferences().size());
+ MessageDestinationReferenceMetaData mref1 = jbossWeb.getMessageDestinationReferenceByName("mdr/ConsumesLink");
+ assertEquals("msgref1", mref1.getId());
+ assertEquals("mdr/ConsumesLink", mref1.getMessageDestinationRefName());
+ assertEquals("javax.jms.Queue", mref1.getType());
+ assertEquals(MessageDestinationUsageType.Consumes, mref1.getMessageDestinationUsage());
+ assertEquals("TestQueue", mref1.getLink());
+ // mdr/ConsumesProducesJNDIName
+ MessageDestinationReferenceMetaData mref3 = jbossWeb.getMessageDestinationReferenceByName("mdr/ConsumesProducesJNDIName");
+ assertEquals("msgref3", mref3.getId());
+ assertEquals("mdr/ConsumesProducesJNDIName", mref3.getMessageDestinationRefName());
+ assertEquals("javax.jms.Queue", mref3.getType());
+ assertEquals(MessageDestinationUsageType.ConsumesProduces, mref3.getMessageDestinationUsage());
+ assertEquals(null, mref3.getLink());
+ assertEquals("queue/A", mref3.getJndiName());
+ assertEquals("queue/A", mref3.getMappedName());
+
+ assertEquals(2, jbossWeb.getMessageDestinations().size());
+ MessageDestinationMetaData msgdest1 = jbossWeb.getMessageDestination("TestQueue");
+ assertEquals("msgdest1", msgdest1.getId());
+ assertEquals("A TestQueue destination", msgdest1.getDescriptionGroup().getDescription());
+ assertEquals("TestQueue", msgdest1.getMessageDestinationName());
+ assertEquals("queue/testQueue", msgdest1.getJndiName());
+ assertEquals("queue/testQueue", msgdest1.getMappedName());
+ MessageDestinationMetaData msgdest2 = jbossWeb.getMessageDestination("TestTopic");
+ assertEquals("msgdest2", msgdest2.getId());
+ assertEquals("A TestTopic destination", msgdest2.getDescriptionGroup().getDescription());
+ assertEquals("TestTopic", msgdest2.getMessageDestinationName());
+ assertEquals("topic/testTopic", msgdest2.getJndiName());
+ assertEquals("topic/testTopic", msgdest2.getMappedName());
+
+ // servlets
+ assertEquals(30, jbossWeb.getServlets().size());
+ JBossServletMetaData servlet1 = jbossWeb.getServletByName("APIServlet");
+ assertNotNull(servlet1);
+ assertEquals("servlet1", servlet1.getId());
+ assertEquals("org.jboss.test.web.servlets.APIServlet", servlet1.getServletClass());
+ JBossServletMetaData servlet2 = jbossWeb.getServletByName("ClasspathServlet");
+ assertNotNull(servlet2);
+ assertEquals("servlet2", servlet2.getId());
+ assertEquals("org.jboss.test.web.servlets.ClasspathServlet", servlet2.getServletClass());
+ assertEquals(1, servlet2.getLoadOnStartup());
+ // servlet10
+ JBossServletMetaData servlet10 = jbossWeb.getServletByName("EJBOnStartupServlet");
+ assertNotNull(servlet10);
+ assertEquals("servlet10", servlet10.getId());
+ assertEquals("EJBOnStartupServlet", servlet10.getServletName());
+ assertEquals("org.jboss.test.web.servlets.EJBOnStartupServlet", servlet10.getServletClass());
+ assertEquals(1, servlet10.getLoadOnStartup());
+ List<ParamValueMetaData> s10params = servlet10.getInitParam();
+ assertEquals(1, s10params.size());
+ ParamValueMetaData s10p0 = s10params.get(0);
+ assertEquals("failOnError", s10p0.getParamName());
+ assertEquals("false", s10p0.getParamValue());
+ // servlet19
+ JBossServletMetaData servlet19 = jbossWeb.getServletByName("UnsecureRunAsServletWithPrincipalNameAndRoles");
+ assertNotNull(servlet19);
+ assertEquals("servlet19", servlet19.getId());
+ assertEquals("UnsecureRunAsServletWithPrincipalNameAndRoles", servlet19.getServletName());
+ assertEquals("org.jboss.test.web.servlets.UnsecureRunAsServlet", servlet19.getServletClass());
+ List<ParamValueMetaData> s19params = servlet19.getInitParam();
+ assertEquals(1, s19params.size());
+ ParamValueMetaData s19p0 = s19params.get(0);
+ assertEquals("ejbName", s19p0.getParamName());
+ assertEquals("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget", s19p0.getParamValue());
+ RunAsMetaData s19RunAs = servlet19.getRunAs();
+ assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
+ assertEquals("InternalUser", s19RunAs.getRoleName());
+ assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", servlet19.getRunAsPrincipal());
+ RunAsIdentityMetaData s19RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsServletWithPrincipalNameAndRoles");
+ assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", s19RunAsID.getPrincipalName());
+ Set<String> s19RunAsPrincipalRoles = jbossWeb.getSecurityRoles().getSecurityRoleNamesByPrincipal("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal");
+ assertEquals(set("ExtraRole1"), s19RunAsPrincipalRoles);
+ assertEquals(set("ExtraRole1", "InternalUser"), s19RunAsID.getRunAsRoles());
+ assertEquals(true, s19RunAsID.doesUserHaveRole("ExtraRole1"));
+ assertEquals(true, s19RunAsID.doesUserHaveRole("InternalUser"));
+ // servlet20
+ JBossServletMetaData servlet20 = jbossWeb.getServletByName("UnsecureRunAsJsp");
+ assertNotNull(servlet20);
+ assertEquals("servlet20", servlet20.getId());
+ assertEquals("UnsecureRunAsJsp", servlet20.getServletName());
+ assertEquals(null, servlet20.getServletClass());
+ assertEquals("/runAs.jsp", servlet20.getJspFile());
+ RunAsMetaData s20RunAs = servlet20.getRunAs();
+ assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
+ assertEquals("InternalUser", s20RunAs.getRoleName());
+ assertEquals(null, servlet20.getRunAsPrincipal());
+ RunAsIdentityMetaData s20RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsJsp");
+ assertEquals("anonymous", s20RunAsID.getPrincipalName());
+ assertEquals(set("InternalUser"), s20RunAsID.getRunAsRoles());
+ assertEquals(true, s20RunAsID.doesUserHaveRole("InternalUser"));
+ // servlet27
+ JBossServletMetaData servlet27 = jbossWeb.getServletByName("UserInRoleServlet");
+ assertEquals("servlet27", servlet27.getId());
+ assertEquals("UserInRoleServlet", servlet27.getServletName());
+ assertEquals("org.jboss.test.web.servlets.UserInRoleServlet", servlet27.getServletClass());
+ List<ParamValueMetaData> s27params = servlet27.getInitParam();
+ assertEquals(2, s27params.size());
+ ParamValueMetaData s27p0 = s27params.get(0);
+ assertEquals("expectedUserRoles", s27p0.getParamName());
+ assertEquals("AuthorizedUser,ServletUser", s27p0.getParamValue());
+ ParamValueMetaData s27p1 = s27params.get(1);
+ assertEquals("unexpectedUserRoles", s27p1.getParamName());
+ assertEquals("Anonymous", s27p1.getParamValue());
+ SecurityRoleRefsMetaData s27RoleRefs = servlet27.getSecurityRoleRefs();
+ assertEquals(1, s27RoleRefs.size());
+ SecurityRoleRefMetaData s27ServletUser = s27RoleRefs.get("ServletUser");
+ assertEquals("ServletUser", s27ServletUser.getRoleName());
+ assertEquals("ServletUserRole", s27ServletUser.getRoleLink());
+ }
+
protected JBossWebMetaData unmarshal() throws Exception
{
- return unmarshal(JBoss50DTDWebMetaData.class);
+ return unmarshal(JBossWebMetaData.class);
}
+ protected String getDescription(Descriptions descriptions)
+ {
+ String desc = null;
+ if(descriptions != null)
+ desc = descriptions.value()[0].value();
+ return desc;
+ }
+ protected Set<String> set(String...strings)
+ {
+ HashSet<String> set = new HashSet<String>();
+ for(String s : strings)
+ set.add(s);
+ return set;
+ }
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/TomcatDeployerUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/TomcatDeployerUnitTestCase.java 2007-10-28 20:12:14 UTC (rev 66521)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/web/TomcatDeployerUnitTestCase.java 2007-10-28 20:33:49 UTC (rev 66522)
@@ -54,8 +54,7 @@
public void testConfweb23() throws Exception
{
- JBossWebMetaData jwebApp = unmarshal(Web23MetaData.class);
- WebMetaData webApp = jwebApp.getOverridenMetaData();
+ JBossWebMetaData webApp = unmarshal(Web23MetaData.class);
DescriptionGroupMetaData dg = webApp.getDescriptionGroup();
assertNotNull(dg);
assertEquals("TomcatDeployer_confweb.xml", dg.getDescription());
@@ -64,8 +63,7 @@
}
public void testConfweb24() throws Exception
{
- JBossWebMetaData jwebApp = unmarshal(Web24MetaData.class);
- WebMetaData webApp = jwebApp.getOverridenMetaData();
+ JBossWebMetaData webApp = unmarshal(Web24MetaData.class);
DescriptionGroupMetaData dg = webApp.getDescriptionGroup();
assertNotNull(dg);
assertEquals("TomcatDeployer_confweb.xml", dg.getDescription());
@@ -74,8 +72,7 @@
}
public void testConfweb25() throws Exception
{
- JBossWebMetaData jwebApp = unmarshal(Web25MetaData.class);
- WebMetaData webApp = jwebApp.getOverridenMetaData();
+ JBossWebMetaData webApp = unmarshal(Web25MetaData.class);
DescriptionGroupMetaData dg = webApp.getDescriptionGroup();
assertNotNull(dg);
assertEquals("TomcatDeployer_confweb.xml", dg.getDescription());
@@ -91,6 +88,7 @@
name = name.substring(0, end) + "_" + super.getName() + ".xml";
return unmarshal(name, clazz);
}
+
protected JBossWebMetaData unmarshal(String name, Class clazz)
throws Exception
{
@@ -102,7 +100,7 @@
SchemaBinding schema = JBossXBBuilder.build(clazz);
WebMetaData confWebMD = (WebMetaData) unmarshaller.unmarshal(webXml.toString(), schema);
JBoss50WebMetaData sharedMetaData = new JBoss50WebMetaData();
- sharedMetaData.setOverridenMetaData(confWebMD);
+ sharedMetaData.merge(null, confWebMD);
return sharedMetaData;
}
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWebApp24_testRunAsPrincipal.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWebApp24_testRunAsPrincipal.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWebApp24_testRunAsPrincipal.xml 2007-10-28 20:33:49 UTC (rev 66522)
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE jboss-web PUBLIC
+ "-//JBoss//DTD Web Application 2.4//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
+
+<jboss-web>
+ <security-domain>java:/jaas/jbosstest-web</security-domain>
+
+ <resource-env-ref>
+ <resource-env-ref-name>res1/aQueue</resource-env-ref-name>
+ <jndi-name>queue/mdbtest</jndi-name>
+ </resource-env-ref>
+ <resource-env-ref>
+ <resource-env-ref-name>res2/aQueue</resource-env-ref-name>
+ <jndi-name>queue/mdbtest</jndi-name>
+ </resource-env-ref>
+
+ <resource-ref>
+ <res-ref-name>jdbc/DefaultDS</res-ref-name>
+ <jndi-name>java:/DefaultDS</jndi-name>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>mail/DefaultMail</res-ref-name>
+ <jndi-name>java:/Mail</jndi-name>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>jms/QueFactory</res-ref-name>
+ <jndi-name>ConnectionFactory</jndi-name>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>url/JBossHome</res-ref-name>
+ <res-url>http://www.jboss.org</res-url>
+ </resource-ref>
+ <resource-ref>
+ <res-ref-name>url/IndirectURL</res-ref-name>
+ <jndi-name>java:SomeWebSite</jndi-name>
+ </resource-ref>
+
+ <security-role>
+ <role-name>ExtraRole1</role-name>
+ <principal-name>UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal</principal-name>
+ </security-role>
+ <security-role>
+ <role-name>ExtraRole2</role-name>
+ <principal-name>ExtraRole2Principal1</principal-name>
+ <principal-name>ExtraRole2Principal2</principal-name>
+ </security-role>
+
+ <ejb-ref>
+ <ejb-ref-name>ejb/bean3</ejb-ref-name>
+ <jndi-name>jbosstest/ejbs/UnsecuredEJB</jndi-name>
+ </ejb-ref>
+
+ <ejb-local-ref>
+ <ejb-ref-name>ejb/local/bean3</ejb-ref-name>
+ <local-jndi-name>jbosstest/ejbs/local/ENCBean1</local-jndi-name>
+ </ejb-local-ref>
+
+ <message-destination-ref>
+ <message-destination-ref-name>mdr/ConsumesProducesJNDIName</message-destination-ref-name>
+ <jndi-name>queue/A</jndi-name>
+ </message-destination-ref>
+
+ <message-destination>
+ <message-destination-name>TestQueue</message-destination-name>
+ <jndi-name>queue/testQueue</jndi-name>
+ </message-destination>
+ <message-destination>
+ <message-destination-name>TestTopic</message-destination-name>
+ <jndi-name>topic/testTopic</jndi-name>
+ </message-destination>
+
+ <servlet>
+ <servlet-name>UnsecureRunAsServletWithPrincipalName</servlet-name>
+ <run-as-principal>UnsecureRunAsServletWithPrincipalNamePrincipal</run-as-principal>
+ </servlet>
+ <servlet>
+ <servlet-name>UnsecureRunAsServletWithPrincipalNameAndRoles</servlet-name>
+ <run-as-principal>UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal</run-as-principal>
+ </servlet>
+
+</jboss-web>
Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/JBossWebApp24_testRunAsPrincipal.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/WebApp24_testRunAsPrincipal.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/WebApp24_testRunAsPrincipal.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/WebApp24_testRunAsPrincipal.xml 2007-10-28 20:33:49 UTC (rev 66522)
@@ -0,0 +1,674 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="2.4"
+ xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+
+ <description>The WebApp Integration Tests Descriptor</description>
+
+ <filter>
+ <description>A filter that validates that is sees the authenticated subject</description>
+ <filter-name>SubjectFilter</filter-name>
+ <filter-class>org.jboss.test.web.servlets.SubjectFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>SubjectFilter</filter-name>
+ <servlet-name>SubjectServlet</servlet-name>
+ </filter-mapping>
+
+ <listener>
+ <listener-class>org.jboss.test.web.servlets.TestSessionListener</listener-class>
+ </listener>
+ <listener>
+ <listener-class>org.jboss.test.web.servlets.TestContextListener</listener-class>
+ </listener>
+ <!-- ### Servlets -->
+ <servlet id="servlet1">
+ <servlet-name>APIServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.APIServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet2">
+ <servlet-name>ClasspathServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.ClasspathServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet id="servlet3">
+ <servlet-name>ENCServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.ENCServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet4">
+ <servlet-name>EJBServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.EJBServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet5">
+ <servlet-name>EntityServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.EntityServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet6">
+ <servlet-name>SecuredEntityFacadeServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.EntityFacadeServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet7">
+ <servlet-name>StatefulSessionServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.StatefulSessionServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet8">
+ <servlet-name>UserTransactionServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.UserTransactionServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet9">
+ <servlet-name>ClientLoginServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.ClientLoginServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet10">
+ <servlet-name>EJBOnStartupServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.EJBOnStartupServlet</servlet-class>
+ <init-param>
+ <param-name>failOnError</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet id="servlet11">
+ <servlet-name>DebugServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.DebugServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet12">
+ <servlet-name>IncludeServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.IncludeServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet13">
+ <servlet-name>SecureIncludeServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.IncludeServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet14">
+ <servlet-name>SecureServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.SecureServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet15">
+ <servlet-name>SecureEJBServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.SecureEJBServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet16">
+ <servlet-name>UnsecureEJBServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.UnsecureEJBServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet17">
+ <servlet-name>UnsecureRunAsServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.UnsecureEJBServlet</servlet-class>
+ <run-as>
+ <description>Assume an InternalUser role to access a private EJB</description>
+ <role-name>InternalUser</role-name>
+ </run-as>
+ </servlet>
+ <servlet id="servlet18">
+ <servlet-name>UnsecureRunAsServletWithPrincipalName</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.UnsecureRunAsServlet</servlet-class>
+ <init-param>
+ <param-name>ejbName</param-name>
+ <param-value>ejb/UnsecureRunAsServletWithPrincipalNameTarget</param-value>
+ </init-param>
+ <run-as>
+ <description>Assume an InternalUser role to access a private EJB</description>
+ <role-name>InternalUser</role-name>
+ </run-as>
+ </servlet>
+ <servlet id="servlet19">
+ <servlet-name>UnsecureRunAsServletWithPrincipalNameAndRoles</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.UnsecureRunAsServlet</servlet-class>
+ <init-param>
+ <param-name>ejbName</param-name>
+ <param-value>ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget</param-value>
+ </init-param>
+ <run-as>
+ <description>Assume an InternalUser role to access a private EJB</description>
+ <role-name>InternalUser</role-name>
+ </run-as>
+ </servlet>
+ <servlet id="servlet20">
+ <servlet-name>UnsecureRunAsJsp</servlet-name>
+ <jsp-file>/runAs.jsp</jsp-file>
+ <run-as>
+ <description>Assume an InternalUser role to access a private EJB</description>
+ <role-name>InternalUser</role-name>
+ </run-as>
+ </servlet>
+ <servlet id="servlet21">
+ <servlet-name>SecureEJBServletMT</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.SecureEJBServletMT</servlet-class>
+ </servlet>
+ <servlet id="servlet22">
+ <servlet-name>SpeedServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.SpeedServlet</servlet-class>
+ </servlet>
+ <servlet id="servlet23">
+ <servlet-name>snoop</servlet-name>
+ <jsp-file>/snoop.jsp</jsp-file>
+ </servlet>
+ <servlet id="servlet24">
+ <servlet-name>classpath</servlet-name>
+ <jsp-file>/classpath.jsp</jsp-file>
+ </servlet>
+ <servlet id="servlet25">
+ <servlet-name>restricted/include_ejb.jsp</servlet-name>
+ <jsp-file>/restricted/include_ejb.jsp</jsp-file>
+ </servlet>
+ <servlet id="servlet26">
+ <servlet-name>restricted/ejb.jsp</servlet-name>
+ <jsp-file>/restricted/ejb.jsp</jsp-file>
+ </servlet>
+ <servlet id="servlet27">
+ <servlet-name>UserInRoleServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.UserInRoleServlet</servlet-class>
+ <init-param>
+ <param-name>expectedUserRoles</param-name>
+ <param-value>AuthorizedUser,ServletUser</param-value>
+ </init-param>
+ <init-param>
+ <param-name>unexpectedUserRoles</param-name>
+ <param-value>Anonymous</param-value>
+ </init-param>
+ <security-role-ref>
+ <description>A mapping for the ServletUser role</description>
+ <role-name>ServletUser</role-name>
+ <role-link>ServletUserRole</role-link>
+ </security-role-ref>
+ </servlet>
+ <servlet id="servlet28">
+ <description>A servlet that validates that is sees the authenticated subject</description>
+ <servlet-name>SubjectServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.SubjectServlet</servlet-class>
+ </servlet>
+
+ <servlet id="servlet29">
+ <description>The legacy invoker servlet</description>
+ <servlet-name>invoker</servlet-name>
+ <servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class>
+ </servlet>
+
+ <servlet id="servlet30">
+ <servlet-name>SimpleServlet</servlet-name>
+ <servlet-class>org.jboss.test.web.servlets.lib.SimpleServlet</servlet-class>
+ </servlet>
+
+ <!-- The servlet and jsp page mappings -->
+ <servlet-mapping id="servlet-mapping1">
+ <servlet-name>APIServlet</servlet-name>
+ <url-pattern>/APIServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping2">
+ <servlet-name>ClasspathServlet</servlet-name>
+ <url-pattern>/ClasspathServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping3">
+ <servlet-name>ENCServlet</servlet-name>
+ <url-pattern>/ENCServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping4">
+ <servlet-name>DebugServlet</servlet-name>
+ <url-pattern>/DebugServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping5">
+ <servlet-name>EJBServlet</servlet-name>
+ <url-pattern>/EJBServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping6">
+ <servlet-name>EntityServlet</servlet-name>
+ <url-pattern>/EntityServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping7">
+ <servlet-name>SecuredEntityFacadeServlet</servlet-name>
+ <url-pattern>/restricted/SecuredEntityFacadeServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping8">
+ <servlet-name>StatefulSessionServlet</servlet-name>
+ <url-pattern>/StatefulSessionServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping9">
+ <servlet-name>UserTransactionServlet</servlet-name>
+ <url-pattern>/UserTransactionServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping10">
+ <servlet-name>EJBOnStartupServlet</servlet-name>
+ <url-pattern>/EJBOnStartupServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping11">
+ <servlet-name>ClientLoginServlet</servlet-name>
+ <url-pattern>/ClientLoginServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping12">
+ <servlet-name>IncludeServlet</servlet-name>
+ <url-pattern>/IncludeServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping13">
+ <servlet-name>SecureIncludeServlet</servlet-name>
+ <url-pattern>/restricted/IncludeServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping14">
+ <servlet-name>SecureServlet</servlet-name>
+ <url-pattern>/restricted/SecureServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping15">
+ <servlet-name>SecureServlet</servlet-name>
+ <url-pattern>/restricted2/SecureServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping16">
+ <servlet-name>SecureServlet</servlet-name>
+ <url-pattern>/restricted3/SecureServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping17">
+ <servlet-name>SecureEJBServlet</servlet-name>
+ <url-pattern>/restricted/SecureEJBAccess</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping18">
+ <servlet-name>UnsecureEJBServlet</servlet-name>
+ <url-pattern>/UnsecureEJBAccess</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping19">
+ <servlet-name>UnsecureRunAsServlet</servlet-name>
+ <url-pattern>/UnsecureRunAsServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping20">
+ <servlet-name>SecureEJBServletMT</servlet-name>
+ <url-pattern>/restricted/SecureEJBAccessMT</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping21">
+ <servlet-name>SpeedServlet</servlet-name>
+ <url-pattern>/SpeedServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping22">
+ <servlet-name>UserInRoleServlet</servlet-name>
+ <url-pattern>/restricted/UserInRoleServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping23">
+ <servlet-name>SubjectServlet</servlet-name>
+ <url-pattern>/restricted/SubjectServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping24">
+ <servlet-name>snoop</servlet-name>
+ <url-pattern>*.snp</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping25">
+ <servlet-name>snoop</servlet-name>
+ <url-pattern>/test-jsp-mapping</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping26">
+ <servlet-name>UnsecureRunAsServletWithPrincipalName</servlet-name>
+ <url-pattern>/UnsecureRunAsServletWithPrincipalName</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping27">
+ <servlet-name>UnsecureRunAsServletWithPrincipalNameAndRoles</servlet-name>
+ <url-pattern>/UnsecureRunAsServletWithPrincipalNameAndRoles</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping28">
+ <servlet-name>UnsecureRunAsJsp</servlet-name>
+ <url-pattern>/runAs.jsp</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping29">
+ <servlet-name>invoker</servlet-name>
+ <url-pattern>/servlet/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping id="servlet-mapping30">
+ <servlet-name>SimpleServlet</servlet-name>
+ <url-pattern>/SimpleServlet</url-pattern>
+ </servlet-mapping>
+
+ <!-- The Welcome File List -->
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ </welcome-file-list>
+
+ <!-- ### Resources -->
+ <!-- JDBC DataSources (java:comp/env/jdbc) -->
+ <resource-ref>
+ <description>The default DS</description>
+ <res-ref-name>jdbc/DefaultDS</res-ref-name>
+ <res-type>javax.sql.DataSource</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <!-- JavaMail Connection Factories (java:comp/env/mail) -->
+ <resource-ref>
+ <description>Default Mail</description>
+ <res-ref-name>mail/DefaultMail</res-ref-name>
+ <res-type>javax.mail.Session</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <!-- JMS Connection Factories (java:comp/env/jms) -->
+ <resource-ref>
+ <description>Default QueueFactory</description>
+ <res-ref-name>jms/QueFactory</res-ref-name>
+ <res-type>javax.jms.QueueConnectionFactory</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <!-- URL Connection Factories (java:comp/env/url) -->
+ <resource-ref>
+ <description>JBoss Home Page</description>
+ <res-ref-name>url/JBossHome</res-ref-name>
+ <res-type>java.net.URL</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+ <resource-ref>
+ <description>SomeWebSite HomePage</description>
+ <res-ref-name>url/IndirectURL</res-ref-name>
+ <res-type>java.net.URL</res-type>
+ <res-auth>Container</res-auth>
+ </resource-ref>
+
+ <resource-env-ref id="resenv1">
+ <description>A 1st test of the resource-env-ref tag</description>
+ <resource-env-ref-name>res1/aQueue</resource-env-ref-name>
+ <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
+ </resource-env-ref>
+ <resource-env-ref id="resenv2">
+ <description>A 2nd test of the resource-env-ref tag</description>
+ <resource-env-ref-name>res2/aQueue</resource-env-ref-name>
+ <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
+ </resource-env-ref>
+
+ <!-- ### Security -->
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>Restricted</web-resource-name>
+ <description>Declarative security tests</description>
+ <url-pattern>/restricted/*</url-pattern>
+ <http-method>HEAD</http-method>
+ <http-method>GET</http-method>
+ <http-method>POST</http-method>
+ <http-method>PUT</http-method>
+ <http-method>DELETE</http-method>
+ </web-resource-collection>
+ <auth-constraint>
+ <description>Only authenticated users can access secure content</description>
+ <role-name>AuthorizedUser</role-name>
+ </auth-constraint>
+ <user-data-constraint>
+ <description>no description</description>
+ <transport-guarantee>NONE</transport-guarantee>
+ </user-data-constraint>
+ </security-constraint>
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>Restricted</web-resource-name>
+ <description>Declarative security tests with no http methods</description>
+ <url-pattern>/restricted2/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <description>Only authenticated users can access secure content</description>
+ <role-name>AuthorizedUser</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>Restricted</web-resource-name>
+ <description>Test Unauthorized Access</description>
+ <url-pattern>/restricted3/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <description>Non-existent role used for testing unauthorized access</description>
+ <role-name>NonExistentRole</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ <realm-name>JBossTest Servlets</realm-name>
+ </login-config>
+
+ <security-role id="security-role1">
+ <description>An AuthorizedUser is one with a valid username and password</description>
+ <role-name>AuthorizedUser</role-name>
+ </security-role>
+ <security-role id="security-role2">
+ <description>A role used by the UserInRoleServlet</description>
+ <role-name>ServletUserRole</role-name>
+ </security-role>
+ <security-role id="security-role3">
+ <description>InternalUser is private app role</description>
+ <role-name>InternalUser</role-name>
+ </security-role>
+ <security-role id="security-role4">
+ <description>ExtraRole1 is an extra role added to a run-as principal</description>
+ <role-name>ExtraRole1</role-name>
+ </security-role>
+ <security-role id="security-role5">
+ <description>ExtraRole2 is an extra role added to a run-as principal</description>
+ <role-name>ExtraRole2</role-name>
+ </security-role>
+ <security-role id="security-role6">
+ <description>Role that does not exist</description>
+ <role-name>NonExistentRole</role-name>
+ </security-role>
+
+ <!-- ### Environment (java:comp/env/ejb) -->
+ <env-entry id="env1">
+ <description>Integer0</description>
+ <env-entry-name>Ints/i0</env-entry-name>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+ <env-entry-value>0</env-entry-value>
+ </env-entry>
+ <env-entry id="env2">
+ <description>Integer1</description>
+ <env-entry-name>Ints/i1</env-entry-name>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+ <env-entry-value>1</env-entry-value>
+ </env-entry>
+ <env-entry id="env3">
+ <description>Float0</description>
+ <env-entry-name>Floats/f0</env-entry-name>
+ <env-entry-type>java.lang.Float</env-entry-type>
+ <env-entry-value>0.0</env-entry-value>
+ </env-entry>
+ <env-entry id="env4">
+ <description>Float1</description>
+ <env-entry-name>Floats/f1</env-entry-name>
+ <env-entry-type>java.lang.Float</env-entry-type>
+ <env-entry-value>1.1</env-entry-value>
+ </env-entry>
+ <env-entry id="env5">
+ <description>String0</description>
+ <env-entry-name>Strings/s0</env-entry-name>
+ <env-entry-type>java.lang.String</env-entry-type>
+ <env-entry-value>String0</env-entry-value>
+ </env-entry>
+ <env-entry id="env6">
+ <description>String1</description>
+ <env-entry-name>Strings/s1</env-entry-name>
+ <env-entry-type>java.lang.String</env-entry-type>
+ <env-entry-value>String1</env-entry-value>
+ </env-entry>
+ <env-entry id="env7">
+ <description>An entry with a class name</description>
+ <env-entry-name>ejb/catalog/CatalogDAOClass</env-entry-name>
+ <env-entry-type>java.lang.String</env-entry-type>
+ <env-entry-value>com.sun.model.dao.CatalogDAOImpl</env-entry-value>
+ </env-entry>
+
+ <!-- ### EJB References (java:comp/env/ejb) -->
+ <!-- An ejb-ref that has no corresponding ejb-ref in jboss-web.xml -->
+ <ejb-ref id="ejb1">
+ <ejb-ref-name>ejb/bean0</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>ENCBean0</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/bean1</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>ENCBean1</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/bean2</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>ENCBean1</ejb-link>
+ </ejb-ref>
+ <!-- ejb-ref that needs jboss-web.xml -->
+ <ejb-ref id="ejb4">
+ <ejb-ref-name>ejb/bean3</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/Entity</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.EntityHome</home>
+ <remote>org.jboss.test.web.interfaces.Entity</remote>
+ <ejb-link>Entity</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/EntityFacade</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.EntityFacadeHome</home>
+ <remote>org.jboss.test.web.interfaces.EntityFacade</remote>
+ <ejb-link>EntityFacade</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/OptimizedEJB</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>OptimizedEJB</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/NotOptimizedEJB</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>NotOptimizedEJB</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/CtsBmp</ejb-ref-name>
+ <ejb-ref-type>Entity</ejb-ref-type>
+ <home>org.jboss.test.cts.interfaces.CtsBmpHome</home>
+ <remote>org.jboss.test.cts.interfaces.CtsBmp</remote>
+ <ejb-link>BMPBean</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/SecuredEJB</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>SecuredEJB</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/UnsecuredEJB</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>UnsecuredEJB</ejb-link>
+ </ejb-ref>
+ <ejb-ref>
+ <ejb-ref-name>ejb/StatefulEJB</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>StatefulEJB</ejb-link>
+ </ejb-ref>
+ <!-- A relative ejb-ref -->
+ <ejb-ref>
+ <ejb-ref-name>ejb/RelativeBean</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <home>org.jboss.test.web.interfaces.StatelessSessionHome</home>
+ <remote>org.jboss.test.web.interfaces.StatelessSession</remote>
+ <ejb-link>websubdir/relative.jar#SessionBean</ejb-link>
+ </ejb-ref>
+
+ <ejb-local-ref id="local1">
+ <ejb-ref-name>ejb/local/bean0</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.StatelessSessionLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.StatelessSessionLocal</local>
+ <ejb-link>ENCBean0</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="local2">
+ <ejb-ref-name>ejb/local/bean1</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.StatelessSessionLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.StatelessSessionLocal</local>
+ <ejb-link>ENCBean1</ejb-link>
+ </ejb-local-ref>
+ <!-- ejb-local-ref that needs jboss-web.xml -->
+ <ejb-local-ref id="local3">
+ <ejb-ref-name>ejb/local/bean3</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.StatelessSessionLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.StatelessSessionLocal</local>
+ </ejb-local-ref>
+
+ <ejb-local-ref id="local4">
+ <ejb-ref-name>ejb/local/OptimizedEJB</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.StatelessSessionLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.StatelessSessionLocal</local>
+ <ejb-link>jbosstest-web-ejbs.jar#OptimizedEJB</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="local5">
+ <ejb-ref-name>ejb/local/SecuredEJB</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.StatelessSessionLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.StatelessSessionLocal</local>
+ <ejb-link>SecuredEJB</ejb-link>
+ </ejb-local-ref>
+ <!-- A relative ejb-local-ref -->
+ <ejb-local-ref id="local6">
+ <ejb-ref-name>ejb/local/RelativeBean</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.StatelessSessionLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.StatelessSessionLocal</local>
+ <ejb-link>websubdir/relative.jar#SessionBean</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="local7">
+ <ejb-ref-name>ejb/UnsecureRunAsServletWithPrincipalNameTarget</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.RunAsTargetLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.RunAsTargetLocal</local>
+ <ejb-link>UnsecureRunAsServletWithPrincipalNameTarget</ejb-link>
+ </ejb-local-ref>
+ <ejb-local-ref id="local8">
+ <ejb-ref-name>ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget</ejb-ref-name>
+ <ejb-ref-type>Session</ejb-ref-type>
+ <local-home>org.jboss.test.web.interfaces.RunAsTargetLocalHome</local-home>
+ <local>org.jboss.test.web.interfaces.RunAsTargetLocal</local>
+ <ejb-link>UnsecureRunAsServletWithPrincipalNameAndRolesTarget</ejb-link>
+ </ejb-local-ref>
+
+ <message-destination-ref id="msgref1">
+ <description>consumes using a link</description>
+ <message-destination-ref-name>mdr/ConsumesLink</message-destination-ref-name>
+ <message-destination-type>javax.jms.Queue</message-destination-type>
+ <message-destination-usage>Consumes</message-destination-usage>
+ <message-destination-link>TestQueue</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="msgref2">
+ <description>produces using a link</description>
+ <message-destination-ref-name>mdr/ProducesLink</message-destination-ref-name>
+ <message-destination-type>javax.jms.Topic</message-destination-type>
+ <message-destination-usage>Produces</message-destination-usage>
+ <message-destination-link>TestTopic</message-destination-link>
+ </message-destination-ref>
+ <message-destination-ref id="msgref3">
+ <description>consumesproduces using a jndi name</description>
+ <message-destination-ref-name>mdr/ConsumesProducesJNDIName</message-destination-ref-name>
+ <message-destination-type>javax.jms.Queue</message-destination-type>
+ <message-destination-usage>ConsumesProduces</message-destination-usage>
+ </message-destination-ref>
+
+ <message-destination id="msgdest1">
+ <description>A TestQueue destination</description>
+ <message-destination-name>TestQueue</message-destination-name>
+ </message-destination>
+ <message-destination id="msgdest2">
+ <description>A TestTopic destination</description>
+ <message-destination-name>TestTopic</message-destination-name>
+ </message-destination>
+</web-app>
Property changes on: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/web/WebApp24_testRunAsPrincipal.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ native
More information about the jboss-cvs-commits
mailing list