[jboss-cvs] JBossAS SVN: r66337 - in projects/metadata/trunk/src/main/java/org/jboss/metadata: common/javaee/ejb and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Oct 22 16:38:01 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-10-22 16:38:01 -0400 (Mon, 22 Oct 2007)
New Revision: 66337
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.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/JBossEnterpriseBeansMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.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/EJBReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java
Log:
Update merge logic and expand jboss metadata
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ApplicationMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -81,6 +81,7 @@
{
JBossMetaData jbossMetaData = new JBossMetaData();
jbossMetaData.setOverridenMetaData(delegate);
+ jbossMetaData.merge(null, delegate);
return jbossMetaData;
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/javaee/ejb/IEnterpriseBeanMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -112,5 +112,5 @@
public void setEnterpriseBeansMetaData(IEnterpriseBeansMetaData<?> data);
//
- public void merge(NamedMetaData merged, NamedMetaData original);
+ //public void merge(NamedMetaData merged, NamedMetaData original);
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -24,6 +24,7 @@
import java.util.Collections;
import java.util.Set;
+import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
import org.jboss.metadata.ejb.spec.ApplicationExceptionsMetaData;
import org.jboss.metadata.ejb.spec.AssemblyDescriptorMetaData;
import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
@@ -276,17 +277,17 @@
}
@Override
- public void merge(IdMetaDataImpl mergedinput, IdMetaDataImpl original)
+ public void merge(IdMetaDataImpl override, IdMetaDataImpl original)
{
- // TODO Auto-generated method stub
- super.merge(mergedinput, original);
- JBossAssemblyDescriptorMetaData merged = (JBossAssemblyDescriptorMetaData) mergedinput;
+ super.merge(override, original);
+ JBossAssemblyDescriptorMetaData input = (JBossAssemblyDescriptorMetaData) override;
AssemblyDescriptorMetaData assemblyDescriptorMetaData = (AssemblyDescriptorMetaData) original;
+ JBossAssemblyDescriptorMetaData merged = this;
SecurityRolesMetaData securityRolesMetaData = null;
- SecurityRolesMetaData jbossSecurityRolesMetaData = getSecurityRoles();
+ SecurityRolesMetaData jbossSecurityRolesMetaData = input.getSecurityRoles();
MessageDestinationsMetaData messageDestinationsMetaData = null;
- MessageDestinationsMetaData jbossMessageDestinationsMetaData = getMessageDestinations();
+ MessageDestinationsMetaData jbossMessageDestinationsMetaData = input.getMessageDestinations();
if (assemblyDescriptorMetaData != null)
{
merged.setOverridenMetaData(assemblyDescriptorMetaData);
@@ -331,4 +332,25 @@
}
return x;
}
+ public void merge(JBossAssemblyDescriptorMetaData merged, IAssemblyDescriptorMetaData assembly)
+ {
+ AssemblyDescriptorMetaData original = (AssemblyDescriptorMetaData) assembly;
+ super.merge(merged, original);
+ if(messageDestinations != null)
+ {
+ MessageDestinationsMetaData mergedMD = new MessageDestinationsMetaData();
+ messageDestinations.merge(mergedMD, original.getMessageDestinations());
+ merged.setMessageDestinations(mergedMD);
+ }
+ else if(original.getMessageDestinations() != null)
+ merged.setMessageDestinations(original.getMessageDestinations());
+ if(this.securityRoles != null)
+ {
+ SecurityRolesMetaData mergedSR = new SecurityRolesMetaData();
+ securityRoles.merge(mergedSR, original.getSecurityRoles());
+ merged.setSecurityRoles(mergedSR);
+ }
+ else if(original.getSecurityRoles() != null)
+ merged.setSecurityRoles(original.getSecurityRoles());
+ }
}
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-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeanMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -25,18 +25,22 @@
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
import org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData;
import org.jboss.metadata.common.javaee.ejb.IEjbJarMetaData;
import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.spec.ContainerTransactionMetaData;
import org.jboss.metadata.ejb.spec.ContainerTransactionsMetaData;
import org.jboss.metadata.ejb.spec.EjbJarMetaData;
import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
import org.jboss.metadata.ejb.spec.EntityBeanMetaData;
import org.jboss.metadata.ejb.spec.ExcludeListMetaData;
import org.jboss.metadata.ejb.spec.InterceptorBindingMetaData;
+import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
import org.jboss.metadata.ejb.spec.MethodInterfaceType;
+import org.jboss.metadata.ejb.spec.MethodMetaData;
import org.jboss.metadata.ejb.spec.MethodPermissionMetaData;
import org.jboss.metadata.ejb.spec.MethodPermissionsMetaData;
import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
@@ -105,6 +109,12 @@
/** The enterprise bean container */
private JBossEnterpriseBeansMetaData enterpriseBeansMetaData;
+ /** The mapped name */
+ private String mappedName;
+
+ /** The ejb class */
+ private String ejbClass;
+
/** The local jndi name */
private String localJndiName;
@@ -157,8 +167,38 @@
/** The jndi refs */
private JndiRefsMetaData jndiRefs;
+
+ /** The security identity */
+ private SecurityIdentityMetaData securityIdentity;
+
+ /** The cached container transactions */
+ private transient ContainerTransactionsMetaData cachedContainerTransactions;
+ /** The transaction type cache */
+ private transient ConcurrentHashMap<Method, TransAttributeType> methodTx;
+ /** The transaction type */
+ private TransactionType transactionType;
+
/**
+ * Create the correct JBossEnterpriseBeanMetaData for the input
+ * standard bean metadata.
+ *
+ * @param bean the standard bean metadata
+ * @return the corresponding jboss extenstion metadata
+ */
+ static JBossEnterpriseBeanMetaData newBean(EnterpriseBeanMetaData bean)
+ {
+ JBossEnterpriseBeanMetaData jbean = null;
+ if(bean instanceof EntityBeanMetaData)
+ jbean = new JBossEntityBeanMetaData();
+ if(bean instanceof MessageDrivenBeanMetaData)
+ jbean = new JBossMessageDrivenBeanMetaData();
+ if(bean instanceof SessionBeanMetaData)
+ jbean = new JBossSessionBeanMetaData();
+ return jbean;
+ }
+
+ /**
* Create a new EnterpriseBeanMetaData.
*/
public JBossEnterpriseBeanMetaData()
@@ -252,94 +292,142 @@
setName(ejbName);
}
- public ContainerTransactionsMetaData getContainerTransactions()
- {
- return ensureOverride().getContainerTransactions();
- }
-
- public DescriptionGroupMetaData getDescriptionGroup()
- {
- return ensureOverride().getDescriptionGroup();
- }
-
public String getEjbClass()
{
- return ensureOverride().getEjbClass();
+ return ejbClass;
}
public IEjbJarMetaData getEjbJarMetaData()
{
- return ensureOverride().getEjbJarMetaData();
+ return enterpriseBeansMetaData.getEjbJarMetaData();
}
- public ExcludeListMetaData getExcludeList()
+ /**
+ * Get the container transactions
+ *
+ * @return the container transactions or null for no result
+ */
+ public ContainerTransactionsMetaData getContainerTransactions()
{
- return ensureOverride().getExcludeList();
+ if (cachedContainerTransactions != null)
+ return cachedContainerTransactions;
+ org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getContainerTransactionsByEjbName(getEjbName());
}
- public InterceptorBindingMetaData getInterceptorBinding()
+ /**
+ * Get the method transaction type
+ *
+ * @param methodName the method name
+ * @param params the parameters
+ * @param iface the interface type
+ * @return the method transaction type
+ */
+ public TransAttributeType getMethodTransactionType(String methodName, Class[] params, MethodInterfaceType iface)
{
- return ensureOverride().getInterceptorBinding();
- }
+ // default value
+ TransAttributeType result = null;
- public String getMappedName()
- {
- return ensureOverride().getMappedName();
- }
+ ContainerTransactionsMetaData containerTransactions = getContainerTransactions();
+ if (containerTransactions == null || containerTransactions.isEmpty())
+ return result;
- public MethodPermissionsMetaData getMethodPermissions()
- {
- return ensureOverride().getMethodPermissions();
+ ContainerTransactionMetaData bestMatchTransaction = null;
+ MethodMetaData bestMatch = null;
+ for (ContainerTransactionMetaData transaction : containerTransactions)
+ {
+ MethodMetaData match = transaction.bestMatch(methodName, params, iface, bestMatch);
+ if (match != bestMatch)
+ {
+ bestMatchTransaction = transaction;
+ bestMatch = match;
+ }
+ }
+
+ if (bestMatchTransaction != null)
+ result = bestMatchTransaction.getTransAttribute();
+
+ return result;
}
+ /**
+ * Get the transaction type
+ *
+ * @param m the method
+ * @param iface the interface type
+ * @return the transaction type
+ */
public TransAttributeType getMethodTransactionType(Method m, MethodInterfaceType iface)
{
- return ensureOverride().getMethodTransactionType(m, iface);
- }
+ if (m == null)
+ return TransAttributeType.Supports;
- public TransAttributeType getMethodTransactionType(String methodName, Class[] params, MethodInterfaceType iface)
- {
- return ensureOverride().getMethodTransactionType(methodName, params, iface);
- }
+ TransAttributeType result = null;
+ if (methodTx != null)
+ {
+ result = methodTx.get(m);
+ if (result != null)
+ return result;
+ }
- public TransactionType getTransactionType()
- {
- return ensureOverride().getTransactionType();
- }
+ result = getMethodTransactionType(m.getName(), m.getParameterTypes(), iface);
- public boolean isBMT()
- {
- return ensureOverride().isBMT();
+ // provide default if method is not found in descriptor
+ if (result == null)
+ result = TransAttributeType.Required;
+
+ if (methodTx == null)
+ methodTx = new ConcurrentHashMap<Method, TransAttributeType>();
+ methodTx.put(m, result);
+ return result;
}
- public boolean isCMT()
+ /**
+ * Get the interceptor binding
+ *
+ * @return the interceptor binding or null for no result
+ */
+ public InterceptorBindingMetaData getInterceptorBinding()
{
- return ensureOverride().isCMT();
+ org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getInterceptorBindingByEjbName(getEjbName());
}
- public void merge(NamedMetaData merged, NamedMetaData original)
+ /**
+ * Get the exclude list
+ *
+ * @return the exclude list or null for no result
+ */
+ public ExcludeListMetaData getExcludeList()
{
- ensureOverride().merge(merged, original);
+ org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getExcludeListByEjbName(getEjbName());
}
- public void setDescriptionGroup(DescriptionGroupMetaData descriptionGroup)
+ public String getMappedName()
{
- ensureOverride().setDescriptionGroup(descriptionGroup);
+ return mappedName;
}
public void setEjbClass(String ejbClass)
{
- ensureOverride().setEjbClass(ejbClass);
+ this.ejbClass = ejbClass;
}
public void setMappedName(String mappedName)
{
- ensureOverride().setMappedName(mappedName);
+ this.mappedName = mappedName;
}
public void setSecurityIdentity(SecurityIdentityMetaData securityIdentity)
{
- ensureOverride().setSecurityIdentity(securityIdentity);
+ this.securityIdentity = securityIdentity;
}
/**
@@ -373,6 +461,40 @@
}
/**
+ * Is this container managed transactions
+ *
+ * @return true when CMT
+ */
+ public boolean isCMT()
+ {
+ TransactionType type = getTransactionType();
+ if (type == null)
+ return true;
+ else
+ return type == TransactionType.Container;
+ }
+
+ /**
+ * Is this bean managed transactions
+ *
+ * @return true when BMT
+ */
+ public boolean isBMT()
+ {
+ return isCMT() == false;
+ }
+
+ public TransactionType getTransactionType()
+ {
+ return transactionType;
+ }
+
+ public void setTransactionType(TransactionType transactionType)
+ {
+ this.transactionType = transactionType;
+ }
+
+ /**
* Get the localJndiName.
*
* @return the localJndiName.
@@ -740,40 +862,6 @@
try
{
- mergedEnvironment = JBossEnvironmentRefsGroupMetaData.merge(jndiEnvironmentRefsGroup,
- getOverridenMetaDataWithCheck().getJndiEnvironmentRefsGroup(),
- this.getJBossMetaData().getResourceManagers(),
- "ejb-jar.xml", "jboss.xml");
-
- // Fixup the invoker binding references on ejb refs
- InvokerBindingsMetaData invokerBindings = getInvokerBindings();
- if (invokerBindings != null && invokerBindings.isEmpty() == false)
- {
- for (InvokerBindingMetaData invokerBinding : invokerBindings)
- {
- String ejbRefName = invokerBinding.getEjbRefName();
- if (ejbRefName != null)
- {
- EJBReferenceMetaData ejbRef = mergedEnvironment.getEjbReferenceByName(ejbRefName);
- if (ejbRef == null)
- throw new IllegalStateException("ejb-ref " + ejbRefName + " found on invoker " + invokerBinding.getName() + " but it does not exist for ejb: " + getName());
- ejbRef.addInvokerBinding(invokerBinding.getName(), invokerBinding.getJndiName());
- }
- }
- }
-
- // Fixup the security identity
- SecurityIdentityMetaData jbossSecurityIdentity = null;
- if (jndiEnvironmentRefsGroup != null)
- jbossSecurityIdentity = jndiEnvironmentRefsGroup.getSecurityIdentity();
- SecurityIdentityMetaData originalSecurityIdentity = getOverridenMetaDataWithCheck().getSecurityIdentity();
- SecurityIdentityMetaData mergedSecurityIdentity = jbossSecurityIdentity;
- if (jbossSecurityIdentity == null)
- mergedSecurityIdentity = originalSecurityIdentity;
- else if (originalSecurityIdentity != null)
- mergedSecurityIdentity = jbossSecurityIdentity.merge(originalSecurityIdentity);
- if (mergedSecurityIdentity != null)
- mergedEnvironment.setSecurityIdentity(mergedSecurityIdentity);
}
catch (Exception e)
{
@@ -1024,8 +1112,21 @@
else
return assemblyDescriptor.getSecurityRolePrincipals(roleName);
}
-
+
/**
+ * Get the methods permissions
+ *
+ * @return the method permissions or null for no result
+ */
+ public MethodPermissionsMetaData getMethodPermissions()
+ {
+ org.jboss.metadata.common.javaee.ejb.IAssemblyDescriptorMetaData assemblyDescriptor = getAssemblyDescriptor();
+ if (assemblyDescriptor == null)
+ return null;
+ return assemblyDescriptor.getMethodPermissionsByEjbName(getEjbName());
+ }
+
+ /**
* A somewhat tedious method that builds a Set<Principal> of the roles
* that have been assigned permission to execute the indicated method. The
* work performed is tedious because of the wildcard style of declaring
@@ -1265,5 +1366,89 @@
return getMethodTransactionTimeout(method.getName());
}
- protected abstract IEnterpriseBeanMetaData ensureOverride();
+ public void merge(JBossEnterpriseBeanMetaData override, EnterpriseBeanMetaData original)
+ {
+ JBossEnterpriseBeanMetaData merged = this;
+ if(override != null && override.getEjbClass() != null)
+ merged.setEjbClass(override.getEjbClass());
+ else if(original.getEjbClass() != null)
+ merged.setEjbClass(original.getEjbClass());
+ if(override != null && override.getName() != null)
+ merged.setName(override.getName());
+ else if(original.getName() != null)
+ merged.setName(original.getName());
+
+ if(override != null)
+ {
+ merged.setAopDomainName(override.aopDomainName);
+ merged.setConfigurationName(override.configurationName);
+ merged.setAnnotations(override.annotations);
+ merged.setDepends(override.depends);
+ merged.setExceptionOnRollback(override.exceptionOnRollback);
+ merged.setIgnoreDependency(override.ignoreDependency);
+ merged.setInvokerBindings(override.invokers);
+ merged.setIorSecurityConfig(override.iorSecurityConfig);
+ merged.setSecurityProxy(override.securityProxy);
+ }
+ merged.setOverridenMetaData(original);
+
+ merged.setJndiEnvironmentRefsGroup(new JBossEnvironmentRefsGroupMetaData());
+ EnvironmentRefsGroupMetaData env = original != null ? original.getJndiEnvironmentRefsGroup() : null;
+ JBossEnvironmentRefsGroupMetaData jenv = null;
+ ResourceManagersMetaData resourceMgrs = null;
+ if( override != null )
+ {
+ resourceMgrs = override.getJBossMetaData().getResourceManagers();
+ jenv = override.jndiEnvironmentRefsGroup;
+ }
+ merged.jndiEnvironmentRefsGroup.merge(jenv, env, resourceMgrs);
+
+ // Fixup the invoker binding references on ejb refs
+ InvokerBindingsMetaData invokerBindings = getInvokerBindings();
+ if (invokerBindings != null && invokerBindings.isEmpty() == false)
+ {
+ for (InvokerBindingMetaData invokerBinding : invokerBindings)
+ {
+ String ejbRefName = invokerBinding.getEjbRefName();
+ if (ejbRefName != null)
+ {
+ EJBReferenceMetaData ejbRef = mergedEnvironment.getEjbReferenceByName(ejbRefName);
+ if (ejbRef == null)
+ throw new IllegalStateException("ejb-ref " + ejbRefName + " found on invoker " + invokerBinding.getName() + " but it does not exist for ejb: " + getName());
+ ejbRef.addInvokerBinding(invokerBinding.getName(), invokerBinding.getJndiName());
+ }
+ }
+ }
+
+ // Fixup the security identity
+ SecurityIdentityMetaData jbossSecurityIdentity = null;
+ if (jndiEnvironmentRefsGroup != null)
+ jbossSecurityIdentity = jndiEnvironmentRefsGroup.getSecurityIdentity();
+ SecurityIdentityMetaData originalSecurityIdentity = null;
+ if(original != null)
+ originalSecurityIdentity = original.getSecurityIdentity();
+ SecurityIdentityMetaData mergedSecurityIdentity = jbossSecurityIdentity;
+ if (jbossSecurityIdentity == null)
+ mergedSecurityIdentity = originalSecurityIdentity;
+ else if (originalSecurityIdentity != null)
+ mergedSecurityIdentity = jbossSecurityIdentity.merge(originalSecurityIdentity);
+ if (mergedSecurityIdentity != null)
+ mergedEnvironment.setSecurityIdentity(mergedSecurityIdentity);
+
+ // TODO, all fields
+ }
+
+ /**
+ * Get the assembly descriptor
+ *
+ * @return the ejbJarMetaData.
+ */
+ protected IAssemblyDescriptorMetaData getAssemblyDescriptor()
+ {
+ IEjbJarMetaData ejbJar = getEjbJarMetaData();
+ if (ejbJar == null)
+ return null;
+ return ejbJar.getAssemblyDescriptor();
+ }
+
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnterpriseBeansMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -111,4 +111,29 @@
{
jbossMetaData = (JBossMetaData) ejbJarMetaData;
}
+
+ /**
+ * Merge override + original into this
+ * @param override
+ * @param original
+ */
+ public void merge(JBossEnterpriseBeansMetaData override, IEnterpriseBeansMetaData<EnterpriseBeanMetaData> original)
+ {
+ if(original == null && override != null)
+ addAll(override);
+ else if(original != null)
+ {
+ for(EnterpriseBeanMetaData ejb : original)
+ {
+ JBossEnterpriseBeanMetaData jejb = null;
+ if( override != null )
+ jejb = override.get(ejb.getEjbName());
+ JBossEnterpriseBeanMetaData mergedEJB = JBossEnterpriseBeanMetaData.newBean(ejb);
+ mergedEJB.merge(jejb, ejb);
+ this.add(mergedEJB);
+ }
+ }
+ }
+
+
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEntityBeanMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -374,12 +374,5 @@
cacheInvalidationConfig.setEntityBean(this);
this.cacheInvalidationConfig = cacheInvalidationConfig;
}
-
- @Override
- protected IEnterpriseBeanMetaData ensureOverride()
- {
- return ensureOverride(EntityBeanMetaData.class);
- }
-
}
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-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossEnvironmentRefsGroupMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -168,6 +168,115 @@
}
/**
+ * Merge an environment
+ *
+ * @param jbossEnvironmentRefsGroup the override environment
+ * @param environmentRefsGroup the overriden environment
+ * @param overridenFile the overriden file name
+ * @param overrideFile the override file
+ * @return the merged environment
+ */
+ public void merge(JBossEnvironmentRefsGroupMetaData jbossEnvironmentRefsGroup,
+ EnvironmentRefsGroupMetaData environmentRefsGroup,
+ ResourceManagersMetaData resourceMgrs)
+ {
+ JBossEnvironmentRefsGroupMetaData merged = this;
+
+ if (jbossEnvironmentRefsGroup == null && environmentRefsGroup == null)
+ return;
+
+ EnvironmentEntriesMetaData envEntries = null;
+ EJBReferencesMetaData ejbRefs = null;
+ EJBReferencesMetaData jbossEjbRefs = null;
+ EJBLocalReferencesMetaData ejbLocalRefs = null;
+ EJBLocalReferencesMetaData jbossEjbLocalRefs = null;
+ ResourceReferencesMetaData resRefs = null;
+ ResourceReferencesMetaData jbossResRefs = null;
+ ResourceEnvironmentReferencesMetaData resEnvRefs = null;
+ ResourceEnvironmentReferencesMetaData jbossResEnvRefs = null;
+ MessageDestinationReferencesMetaData messageDestinationRefs = null;
+ MessageDestinationReferencesMetaData jbossMessageDestinationRefs = null;
+ PersistenceContextReferencesMetaData persistenceContextRefs = null;
+ PersistenceUnitReferencesMetaData persistenceUnitRefs = null;
+ LifecycleCallbacksMetaData postConstructs = null;
+ LifecycleCallbacksMetaData preDestroys = null;
+
+ if (environmentRefsGroup != null)
+ {
+ envEntries = environmentRefsGroup.getEnvironmentEntries();
+ ejbRefs = environmentRefsGroup.getEjbReferences();
+ ejbLocalRefs = environmentRefsGroup.getEjbLocalReferences();
+ // ServiceRefs
+ resRefs = environmentRefsGroup.getResourceReferences();
+ resEnvRefs = environmentRefsGroup.getResourceEnvironmentReferences();
+ messageDestinationRefs = environmentRefsGroup.getMessageDestinationReferences();
+ persistenceContextRefs = environmentRefsGroup.getPersistenceContextRefs();
+ persistenceUnitRefs = environmentRefsGroup.getPersistenceUnitRefs();
+ postConstructs = environmentRefsGroup.getPostConstructs();
+ preDestroys = environmentRefsGroup.getPreDestroys();
+ }
+
+ if (jbossEnvironmentRefsGroup != null)
+ {
+ jbossEjbRefs = jbossEnvironmentRefsGroup.getEjbReferences();
+ jbossEjbLocalRefs = jbossEnvironmentRefsGroup.getEjbLocalReferences();
+ jbossResRefs = jbossEnvironmentRefsGroup.getResourceReferences();
+ jbossResEnvRefs = jbossEnvironmentRefsGroup.getResourceEnvironmentReferences();
+ jbossMessageDestinationRefs = jbossEnvironmentRefsGroup.getMessageDestinationReferences();
+ }
+
+ EJBReferencesMetaData mergedEjbRefs = EJBReferencesMetaData.merge(jbossEjbRefs, ejbRefs, "ejb-jar.xml", "jboss.xml");
+ if (mergedEjbRefs != null)
+ merged.setEjbReferences(mergedEjbRefs);
+
+ EJBLocalReferencesMetaData mergedEjbLocalRefs = EJBLocalReferencesMetaData.merge(jbossEjbLocalRefs, ejbLocalRefs, "ejb-jar.xml", "jboss.xml");
+ if (mergedEjbLocalRefs != null)
+ merged.setEjbLocalReferences(mergedEjbLocalRefs);
+
+ // Need to set the jndi name from resource mgr if referenced
+ if(jbossResRefs != null && resourceMgrs != null)
+ {
+ for(ResourceReferenceMetaData ref : jbossResRefs)
+ {
+ ResourceManagerMetaData mgr = resourceMgrs.get(ref.getResourceName());
+ if(mgr != null)
+ {
+ if(mgr.getResJndiName() != null)
+ ref.setJndiName(mgr.getResJndiName());
+ else if(mgr.getResUrl() != null)
+ ref.setResUrl(mgr.getResUrl());
+ }
+ }
+ }
+ ResourceReferencesMetaData mergedResRefs = ResourceReferencesMetaData.merge(jbossResRefs, resRefs, "ejb-jar.xml", "jboss.xml");
+ if (mergedResRefs != null)
+ merged.setResourceReferences(mergedResRefs);
+
+ ResourceEnvironmentReferencesMetaData mergedResEnvRefs = ResourceEnvironmentReferencesMetaData.merge(jbossResEnvRefs, resEnvRefs, "ejb-jar.xml", "jboss.xml");
+ if (mergedResEnvRefs != null)
+ merged.setResourceEnvironmentReferences(mergedResEnvRefs);
+
+ MessageDestinationReferencesMetaData mergedMessageDestinationRefs = MessageDestinationReferencesMetaData.merge(jbossMessageDestinationRefs, messageDestinationRefs, "ejb-jar.xml", "jboss.xml");
+ if (mergedMessageDestinationRefs != null)
+ merged.setMessageDestinationReferences(mergedMessageDestinationRefs);
+
+ if (envEntries != null)
+ merged.setEnvironmentEntries(envEntries);
+
+ if (persistenceContextRefs != null)
+ merged.setPersistenceContextRefs(persistenceContextRefs);
+
+ if (persistenceUnitRefs != null)
+ merged.setPersistenceUnitRefs(persistenceUnitRefs);
+
+ if (postConstructs != null)
+ merged.setPostConstructs(postConstructs);
+
+ if (preDestroys != null)
+ merged.setPreDestroys(preDestroys);
+ }
+
+ /**
* Get the securityIdentity.
*
* @return the securityIdentity.
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -57,9 +57,4 @@
return null;
}
- @Override
- protected IEnterpriseBeanMetaData ensureOverride()
- {
- return new JBossGenericBeanMetaData();
- }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -295,11 +295,5 @@
throw new IllegalArgumentException("Null ejbTimeoutIdentity");
this.ejbTimeoutIdentity = ejbTimeoutIdentity;
}
-
- @Override
- protected IEnterpriseBeanMetaData ensureOverride()
- {
- return ensureOverride(MessageDrivenBeanMetaData.class);
- }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -26,6 +26,8 @@
import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeanMetaData;
import org.jboss.metadata.common.javaee.ejb.IEnterpriseBeansMetaData;
import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
+import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
import org.jboss.metadata.ejb.spec.RelationsMetaData;
import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptionGroupWithOverride;
import org.jboss.logging.Logger;
@@ -83,15 +85,9 @@
/** The enterprise beans */
private JBossEnterpriseBeansMetaData enterpriseBeans;
- /** The merged enterprise beans */
- private JBossEnterpriseBeansMetaData mergedEnterpriseBeans;
-
/** The assembly descriptor */
private JBossAssemblyDescriptorMetaData assemblyDescriptor;
- /** The merged assembly descriptor */
- private JBossAssemblyDescriptorMetaData mergedAssemblyDescriptor;
-
/** The resource manager */
private ResourceManagersMetaData resourceManagers;
@@ -561,4 +557,43 @@
throw new IllegalArgumentException("Null assemblyDescriptor");
this.assemblyDescriptor = assemblyDescriptor;
}
+
+
+ /**
+ * Merge the contents of override with original into this.
+ *
+ * @param override data which overrides original
+ * @param original the original data
+ */
+ public void merge(JBossMetaData override, EjbJarMetaData original)
+ {
+ super.merge(override, original);
+ setAssemblyDescriptor(new JBossAssemblyDescriptorMetaData());
+ if(override != null && override.assemblyDescriptor != null)
+ {
+ assemblyDescriptor.merge(override.assemblyDescriptor, original.getAssemblyDescriptor());
+ }
+ else if(original != null && original.getAssemblyDescriptor() != null)
+ {
+ assemblyDescriptor.merge(null, original);
+ }
+
+ setEnterpriseBeans(new JBossEnterpriseBeansMetaData());
+ JBossEnterpriseBeansMetaData jbeans = null;
+ if(override != null)
+ jbeans = override.enterpriseBeans;
+ IEnterpriseBeansMetaData<EnterpriseBeanMetaData> beans = null;
+ if(original != null)
+ beans = original.getEnterpriseBeans();
+ enterpriseBeans.merge(jbeans, beans);
+ }
+
+ /**
+ *
+ * @return
+ */
+ protected JBossEnterpriseBeanMetaData newBean()
+ {
+ return null;
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -364,10 +364,5 @@
throw new IllegalArgumentException("Null remoteBinding");
this.remoteBinding = remoteBinding;
}
-
- @Override
- protected IEnterpriseBeanMetaData ensureOverride()
- {
- return ensureOverride(SessionBeanMetaData.class);
- }
+
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/EnterpriseBeansMap.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -48,6 +48,9 @@
public boolean add(T o)
{
o.setEnterpriseBeansMetaData(this);
+ String key = o.getKey();
+ if(key == null)
+ throw new IllegalStateException("Null name for bean: "+o);
return map.put(o.getKey(), o) == null;
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -132,21 +132,21 @@
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(AbstractEJBReferenceMetaData merged, AbstractEJBReferenceMetaData original)
+ public void merge(AbstractEJBReferenceMetaData override, AbstractEJBReferenceMetaData original)
{
- super.merge(merged, original);
- if (type != null)
- merged.setEjbRefType(type);
+ super.merge(override, original);
+ if (override.type != null)
+ setEjbRefType(override.type);
else if (original.type != null)
- merged.setEjbRefType(original.type);
- if (link != null)
- merged.setLink(link);
+ setEjbRefType(original.type);
+ if (override.link != null)
+ setLink(override.link);
else if (original.link != null)
- merged.setLink(original.link);
+ setLink(original.link);
}
}
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-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -105,21 +105,21 @@
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(EJBLocalReferenceMetaData merged, EJBLocalReferenceMetaData original)
+ public void merge(EJBLocalReferenceMetaData override, EJBLocalReferenceMetaData original)
{
- super.merge(merged, original);
- if (localHome != null)
- merged.setLocalHome(localHome);
+ super.merge(override, original);
+ if (override != null && override.localHome != null)
+ setLocalHome(override.localHome);
else if (original.localHome != null)
- merged.setLocalHome(original.localHome);
- if (local != null)
- merged.setLocal(local);
+ setLocalHome(original.localHome);
+ if (override != null && override.local != null)
+ setLocal(local);
else if (original.local != null)
- merged.setLocal(original.local);
+ setLocal(original.local);
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferenceMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferenceMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -134,26 +134,26 @@
public EJBReferenceMetaData merge(EJBReferenceMetaData original)
{
EJBReferenceMetaData merged = new EJBReferenceMetaData();
- merge(merged, original);
+ merged.merge(this, original);
return merged;
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(EJBReferenceMetaData merged, EJBReferenceMetaData original)
+ public void merge(EJBReferenceMetaData override, EJBReferenceMetaData original)
{
- super.merge(merged, original);
- if (home != null)
- merged.setHome(home);
+ super.merge(override, original);
+ if (override != null && override.home != null)
+ setHome(override.home);
else if (original.home != null)
- merged.setHome(original.home);
- if (remote != null)
- merged.setRemote(remote);
+ setHome(original.home);
+ if (override != null && override.remote != null)
+ setRemote(override.remote);
else if (original.remote != null)
- merged.setRemote(original.remote);
+ setRemote(original.remote);
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -122,22 +122,22 @@
public MessageDestinationMetaData merge(MessageDestinationMetaData original)
{
MessageDestinationMetaData merged = new MessageDestinationMetaData();
- merge(merged, original);
+ merged.merge(this, original);
return merged;
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(MessageDestinationMetaData merged, MessageDestinationMetaData original)
+ public void merge(MessageDestinationMetaData override, MessageDestinationMetaData original)
{
- super.merge(merged, original);
- if (mappedName != null)
- merged.setMappedName(mappedName);
+ super.merge(override, original);
+ if (override != null && override.mappedName != null)
+ setMappedName(override.mappedName);
else if (original.mappedName != null)
- merged.setMappedName(original.mappedName);
+ setMappedName(original.mappedName);
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -152,30 +152,30 @@
public MessageDestinationReferenceMetaData merge(MessageDestinationReferenceMetaData original)
{
MessageDestinationReferenceMetaData merged = new MessageDestinationReferenceMetaData();
- merge(merged, original);
+ merged.merge(this, original);
return merged;
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(MessageDestinationReferenceMetaData merged, MessageDestinationReferenceMetaData original)
+ public void merge(MessageDestinationReferenceMetaData override, MessageDestinationReferenceMetaData original)
{
- super.merge(merged, original);
- if (type != null)
- merged.setType(type);
+ super.merge(override, original);
+ if (override != null && override.type != null)
+ setType(override.type);
else if (original.type != null)
- merged.setType(original.type);
- if (usage != null)
- merged.setMessageDestinationUsage(usage);
+ setType(original.type);
+ if (override != null && usage != null)
+ setMessageDestinationUsage(override.usage);
else if (original.usage != null)
- merged.setMessageDestinationUsage(original.usage);
- if (link != null)
- merged.setLink(link);
+ setMessageDestinationUsage(original.usage);
+ if (override != null && link != null)
+ setLink(override.link);
else if (original.link != null)
- merged.setLink(original.link);
+ setLink(original.link);
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationsMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -41,4 +41,20 @@
{
super("message destination name");
}
+
+ public void merge(MessageDestinationsMetaData merged, MessageDestinationsMetaData original)
+ {
+ if(original == null || original.size() == 0)
+ merged.addAll(this);
+ else
+ {
+ for(MessageDestinationMetaData md : this)
+ {
+ MessageDestinationMetaData mergedMD = new MessageDestinationMetaData();
+ MessageDestinationMetaData mdOrig = original.get(md.getMessageDestinationName());
+ if(mdOrig != null)
+ md.merge(mergedMD, mdOrig);
+ }
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -101,22 +101,22 @@
public ResourceEnvironmentReferenceMetaData merge(ResourceEnvironmentReferenceMetaData original)
{
ResourceEnvironmentReferenceMetaData merged = new ResourceEnvironmentReferenceMetaData();
- merge(merged, original);
+ merged.merge(this, original);
return merged;
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(ResourceEnvironmentReferenceMetaData merged, ResourceEnvironmentReferenceMetaData original)
+ public void merge(ResourceEnvironmentReferenceMetaData override, ResourceEnvironmentReferenceMetaData original)
{
- super.merge(merged, original);
- if (type != null)
- merged.setType(type);
- else if (original.type != null)
- merged.setType(original.type);
+ super.merge(override, original);
+ if (override != null && override.type != null)
+ setType(override.type);
+ else if (original != null && original.type != null)
+ setType(original.type);
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -168,29 +168,27 @@
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
- * @throws IllegalArgumentException for a null merged or original
- * @throws IllegalStateException if neither have a name
*/
- public void merge(ResourceInjectionMetaData merged, ResourceInjectionMetaData original)
+ public void merge(ResourceInjectionMetaData override, ResourceInjectionMetaData original)
{
- super.merge(merged, original);
- if (mappedName != null)
- merged.setMappedName(mappedName);
+ super.merge(override, original);
+ if (override != null && override.mappedName != null)
+ setMappedName(override.mappedName);
else if (original.mappedName != null)
- merged.setMappedName(original.mappedName);
- if (ignoreDependency != null)
- merged.setIgnoreDependency(ignoreDependency);
+ setMappedName(original.mappedName);
+ if (override != null && override.ignoreDependency != null)
+ setIgnoreDependency(override.ignoreDependency);
else if (original.ignoreDependency != null)
- merged.setIgnoreDependency(original.ignoreDependency);
+ setIgnoreDependency(original.ignoreDependency);
// TODO proper merge
- if (injectionTargets != null)
- merged.setInjectionTargets(injectionTargets);
+ if (override != null && override.injectionTargets != null)
+ setInjectionTargets(override.injectionTargets);
else if (original.injectionTargets != null)
- merged.setInjectionTargets(original.injectionTargets);
+ setInjectionTargets(original.injectionTargets);
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceReferenceMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -184,35 +184,35 @@
public ResourceReferenceMetaData merge(ResourceReferenceMetaData original)
{
ResourceReferenceMetaData merged = new ResourceReferenceMetaData();
- merge(merged, original);
+ merged.merge(this, original);
return merged;
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(ResourceReferenceMetaData merged, ResourceReferenceMetaData original)
+ public void merge(ResourceReferenceMetaData override, ResourceReferenceMetaData original)
{
- super.merge(merged, original);
- if (type != null)
- merged.setType(type);
+ super.merge(override, original);
+ if (override != null && override.type != null)
+ setType(override.type);
else if (original.type != null)
- merged.setType(original.type);
- if (resourceName != null)
- merged.setResourceName(resourceName);
+ setType(original.type);
+ if (override != null && override.resourceName != null)
+ setResourceName(override.resourceName);
else if(original.resourceName != null)
- merged.setResourceName(original.resourceName);
- if (authority != null)
- merged.setResAuth(authority);
+ setResourceName(original.resourceName);
+ if (override != null && override.authority != null)
+ setResAuth(override.authority);
else if (original.authority != null)
- merged.setResAuth(original.authority);
- if (sharingScope != null)
- merged.setResSharingScope(sharingScope);
+ setResAuth(original.authority);
+ if (override != null && override.sharingScope != null)
+ setResSharingScope(override.sharingScope);
else if (original.sharingScope != null)
- merged.setResSharingScope(original.sharingScope);
+ setResSharingScope(original.sharingScope);
}
/**
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -77,51 +77,51 @@
public ServiceReferenceMetaData merge(ServiceReferenceMetaData original)
{
ServiceReferenceMetaData merged = new ServiceReferenceMetaData();
- merge(merged, original);
+ merged.merge(this, original);
return merged;
}
/**
- * Merge
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
*/
- public void merge(ServiceReferenceMetaData merged, ServiceReferenceMetaData original)
+ public void merge(ServiceReferenceMetaData override, ServiceReferenceMetaData original)
{
- super.merge(merged, original);
- if (serviceInterface != null)
- merged.setServiceInterface(serviceInterface);
+ super.merge(override, original);
+ if (override != null && override.serviceInterface != null)
+ setServiceInterface(override.serviceInterface);
else if (original.serviceInterface != null)
- merged.setServiceInterface(original.serviceInterface);
- if(serviceRefType != null)
- merged.setServiceRefType(serviceRefType);
+ setServiceInterface(original.serviceInterface);
+ if(override != null && override.serviceRefType != null)
+ setServiceRefType(override.serviceRefType);
else if (original.serviceRefType != null)
- merged.setServiceRefType(original.serviceRefType);
- if(wsdlFile != null)
- merged.setWsdlFile(wsdlFile);
+ setServiceRefType(original.serviceRefType);
+ if(override != null && override.wsdlFile != null)
+ setWsdlFile(override.wsdlFile);
else if (original.wsdlFile != null)
- merged.setWsdlFile(original.wsdlFile);
- if(jaxrpcMappingFile != null)
- merged.setJaxrpcMappingFile(jaxrpcMappingFile);
+ setWsdlFile(original.wsdlFile);
+ if(override != null && override.jaxrpcMappingFile != null)
+ setJaxrpcMappingFile(override.jaxrpcMappingFile);
else if (original.jaxrpcMappingFile != null)
- merged.setJaxrpcMappingFile(original.jaxrpcMappingFile);
- if(serviceQname != null)
- merged.setServiceQname(serviceQname);
+ setJaxrpcMappingFile(original.jaxrpcMappingFile);
+ if(override != null && override.serviceQname != null)
+ setServiceQname(override.serviceQname);
else if (original.serviceQname != null)
- merged.setServiceQname(original.serviceQname);
- if(portComponentRef != null)
- merged.setPortComponentRef(portComponentRef);
+ setServiceQname(original.serviceQname);
+ if(override != null && override.portComponentRef != null)
+ setPortComponentRef(override.portComponentRef);
else if (original.portComponentRef != null)
- merged.setPortComponentRef(original.portComponentRef);
- if(handlers != null)
- merged.setHandlers(handlers);
+ setPortComponentRef(original.portComponentRef);
+ if(override != null && override.handlers != null)
+ setHandlers(override.handlers);
else if (original.handlers != null)
- merged.setHandlers(original.handlers);
- if(handlerChains != null)
- merged.setHandlerChains(handlerChains);
+ setHandlers(original.handlers);
+ if(override != null && override.handlerChains != null)
+ setHandlerChains(override.handlerChains);
else if (original.handlers != null)
- merged.setHandlerChains(original.handlerChains);
+ setHandlerChains(original.handlerChains);
}
/**
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImpl.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -74,22 +74,17 @@
}
/**
- * Merge the contents of this with original to merged.
+ * Merge the contents of override with original into this.
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
- * @throws IllegalArgumentException for a null merged or original
*/
- public void merge(IdMetaDataImpl merged, IdMetaDataImpl original)
+ public void merge(IdMetaDataImpl override, IdMetaDataImpl original)
{
- if (merged == null)
- throw new IllegalArgumentException("Null merged");
- if (original == null)
- throw new IllegalArgumentException("Null original");
- if (id != null)
- merged.setId(id);
- else if (original.id != null)
- merged.setId(original.id);
+ if (override != null && override.id != null)
+ setId(override.id);
+ else if (original != null && original.id != null)
+ setId(original.id);
}
@Override
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -95,21 +95,21 @@
}
/**
- * Merge
+ * Merge override + original into this
*
- * @param merged the data to merge into
+ * @param override data which overrides original
* @param original the original data
* @throws IllegalArgumentException for a null merged or original
* @throws IllegalStateException if neither have a name
*/
- public void merge(NamedMetaData merged, NamedMetaData original)
+ public void merge(NamedMetaData override, NamedMetaData original)
{
- super.merge(merged, original);
- if (name != null)
- merged.setName(name);
+ super.merge(override, original);
+ if (override.name != null)
+ setName(override.name);
else if (original.name != null)
- merged.setName(original.name);
+ setName(original.name);
else
- throw new IllegalStateException("Neither the merged metadata " + merged + " or the original " + original + " have a name.");
+ throw new IllegalStateException("Neither the override metadata " + override + " or the original " + original + " have a name.");
}
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java 2007-10-22 20:36:35 UTC (rev 66336)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptions.java 2007-10-22 20:38:01 UTC (rev 66337)
@@ -65,12 +65,17 @@
this.descriptions = descriptions;
}
- public void merge(ResourceInjectionMetaDataWithDescriptions merged, ResourceInjectionMetaDataWithDescriptions original)
+ /**
+ * Merge override + original into this.
+ * @param override
+ * @param original
+ */
+ public void merge(ResourceInjectionMetaDataWithDescriptions override, ResourceInjectionMetaDataWithDescriptions original)
{
- super.merge(merged, original);
- if(descriptions != null)
- merged.setDescriptions(descriptions);
+ super.merge(override, original);
+ if(override.descriptions != null)
+ setDescriptions(override.descriptions);
else if(original.descriptions != null)
- merged.setDescriptions(original.descriptions);
+ setDescriptions(original.descriptions);
}
}
More information about the jboss-cvs-commits
mailing list