[jboss-cvs] JBossAS SVN: r77599 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/ejb/spec and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 28 10:13:03 EDT 2008
Author: emuckenhuber
Date: 2008-08-28 10:13:03 -0400 (Thu, 28 Aug 2008)
New Revision: 77599
Added:
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/jboss.xml
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/TargetBean.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossSessionBeanOverrideUnitTestCase.java
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml
Log:
[JBMETA-98] - merge removeMethod
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 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -895,11 +895,6 @@
initMethods = joverride.getInitMethods();
else if(soriginal != null && soriginal.getInitMethods() != null)
initMethods = soriginal.getInitMethods();
- // removeMethods
- if(joverride != null && joverride.getRemoveMethods() != null)
- removeMethods = joverride.getRemoveMethods();
- else if(soriginal != null && soriginal.getRemoveMethods() != null)
- removeMethods = soriginal.getRemoveMethods();
// aroundInvokes
if(joverride != null && joverride.getAroundInvokes() != null)
aroundInvokes = joverride.getAroundInvokes();
@@ -921,6 +916,17 @@
else if(soriginal != null && soriginal.getSecurityRoleRefs() != null)
securityRoleRefs = soriginal.getSecurityRoleRefs();
+ // removeMethods
+ RemoveMethodsMetaData originalMethods = null;
+ RemoveMethodsMetaData overrideMethods = null;
+ if(joverride != null && joverride.getRemoveMethods() != null)
+ overrideMethods = joverride.getRemoveMethods();
+ if(soriginal != null && soriginal.getRemoveMethods() != null)
+ originalMethods = soriginal.getRemoveMethods();
+
+ this.removeMethods = new RemoveMethodsMetaData();
+ removeMethods.merge(overrideMethods, originalMethods);
+
if(joverride != null)
{
// jndiName
@@ -1024,11 +1030,6 @@
initMethods = joverride.getInitMethods();
else if(soriginal != null && soriginal.getInitMethods() != null)
initMethods = soriginal.getInitMethods();
- // removeMethods
- if(joverride != null && joverride.getRemoveMethods() != null)
- removeMethods = joverride.getRemoveMethods();
- else if(soriginal != null && soriginal.getRemoveMethods() != null)
- removeMethods = soriginal.getRemoveMethods();
// postActivates
if(joverride != null && joverride.getPostActivates() != null)
postActivates = joverride.getPostActivates();
@@ -1070,6 +1071,18 @@
else if(soriginal != null && soriginal.isConcurrent() != null)
concurrent = soriginal.isConcurrent();
+
+ // removeMethods
+ RemoveMethodsMetaData originalMethods = null;
+ RemoveMethodsMetaData overrideMethods = null;
+ if(joverride != null && joverride.getRemoveMethods() != null)
+ overrideMethods = joverride.getRemoveMethods();
+ if(soriginal != null && soriginal.getRemoveMethods() != null)
+ originalMethods = soriginal.getRemoveMethods();
+
+ this.removeMethods = new RemoveMethodsMetaData();
+ removeMethods.merge(overrideMethods, originalMethods);
+
// CallByValue
if(joverride != null)
callByValue = joverride.isCallByValue();
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodMetaData.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -37,11 +37,14 @@
/** The serialVersionUID */
private static final long serialVersionUID = 1830841714074832930L;
+ /** The ratainIfExeption default value */
+ private static final boolean retainIfExceptionDefault = false;
+
/** The bean method */
private NamedMethodMetaData beanMethod;
/** Retain if exception */
- private boolean retainIfException = false;
+ private Boolean retainIfException = null;
/**
* Create a new RemoveMethodMetaData.
@@ -81,7 +84,8 @@
*/
public boolean isRetainIfException()
{
- return retainIfException;
+ if(retainIfException == null) return retainIfExceptionDefault;
+ return retainIfException.booleanValue();
}
/**
@@ -91,6 +95,32 @@
*/
public void setRetainIfException(boolean retainIfException)
{
- this.retainIfException = retainIfException;
+ this.retainIfException = new Boolean(retainIfException);
}
+
+ public void mergeRetainifException(RemoveMethodMetaData override, RemoveMethodMetaData original)
+ {
+ // JBMETA-98 - merge retainIfException
+ if(original != null && override != null)
+ {
+ if(override.retainIfException == null)
+ {
+ this.retainIfException = original.retainIfException;
+ }
+ else
+ {
+ this.retainIfException = override.retainIfException;
+ }
+ return;
+ }
+
+ if(original != null)
+ {
+ this.retainIfException = original.retainIfException;
+ }
+ if(override != null)
+ {
+ this.retainIfException = override.retainIfException;
+ }
+ }
}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/RemoveMethodsMetaData.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -22,6 +22,8 @@
package org.jboss.metadata.ejb.spec;
import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
/**
* RemoveMethodsMetaData.
@@ -41,4 +43,43 @@
{
// For serialization
}
+
+ public void merge(RemoveMethodsMetaData override, RemoveMethodsMetaData original)
+ {
+ Map<String, RemoveMethodMetaData> tmp = new HashMap<String, RemoveMethodMetaData>();
+ if(original != null)
+ {
+ for(RemoveMethodMetaData remove : original)
+ tmp.put(remove.getBeanMethod().getMethodName(), remove);
+ }
+
+ if(override != null)
+ {
+ if(original != null)
+ {
+ for(RemoveMethodMetaData overrideMethod : override)
+ {
+ RemoveMethodMetaData merged = new RemoveMethodMetaData();
+ RemoveMethodMetaData originalMethod = tmp.get(overrideMethod.getBeanMethod().getMethodName());
+ if(overrideMethod.getId() != null)
+ merged.setId(overrideMethod.getId());
+ else if(originalMethod != null && originalMethod.getId() != null)
+ merged.setId(originalMethod.getId());
+
+ merged.setBeanMethod(overrideMethod.getBeanMethod());
+ // JBMETA-98 - merge retainIfException
+ merged.mergeRetainifException(overrideMethod, originalMethod);
+ this.add(merged);
+ }
+ }
+ else
+ {
+ addAll(override);
+ }
+ }
+ else if(original != null)
+ {
+ addAll(original);
+ }
+ }
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3UnitTestCase.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -269,13 +269,14 @@
assertNotNull("bean has no container transactions", bean.getContainerTransactions());
Iterator<ContainerTransactionMetaData> it = bean.getContainerTransactions().iterator();
- String[] params = {};
+ String[] params =
+ {};
ContainerTransactionMetaData tx1 = it.next();
assertEquals(TransactionAttributeType.NEVER, tx1.getTransAttribute());
MethodsMetaData tx1Methods = tx1.getMethods();
assertNotNull(tx1Methods);
assertTrue(tx1Methods.matches("*", params, null));
-
+
ContainerTransactionMetaData tx2 = it.next();
assertEquals(TransactionAttributeType.MANDATORY, tx2.getTransAttribute());
MethodsMetaData tx2Methods = tx2.getMethods();
@@ -319,7 +320,7 @@
AroundInvokeMetaData aroundInvoke = invokes.get(0);
assertEquals(MyStatelessBean.class.getName(), aroundInvoke.getClassName());
assertEquals("intercept", aroundInvoke.getMethodName());
-
+
// @Timeout
NamedMethodMetaData timeoutMethod = bean.getTimeoutMethod();
assertNotNull(timeoutMethod);
@@ -328,7 +329,7 @@
assertEquals(1, parameters.size());
assertEquals(Timer.class.getName(), parameters.get(0));
}
-
+
private void assertMyMDB(IEnterpriseBeanMetaData enterpriseBean)
{
assertTrue(enterpriseBean instanceof MessageDrivenBeanMetaData);
@@ -372,26 +373,28 @@
{
throw new RuntimeException(e);
}
- String classFileNames[] = currentDir.list(new FilenameFilter() {
+ String classFileNames[] = currentDir.list(new FilenameFilter()
+ {
public boolean accept(File dir, String name)
{
return name.endsWith(".class");
}
});
- if(classFileNames == null)
+ if (classFileNames == null)
throw new RuntimeException("list failed");
Arrays.sort(classFileNames);
String packageName;
- if(dir.indexOf('/') != -1)
+ if (dir.indexOf('/') != -1)
packageName = dir.replaceAll("\\/", "") + ".";
else
packageName = ".";
- for(String classFileName : classFileNames)
+ for (String classFileName : classFileNames)
{
- String className = getClass().getPackage().getName() + packageName + classFileName.substring(0, classFileName.length() - 6);
+ String className = getClass().getPackage().getName() + packageName
+ + classFileName.substring(0, classFileName.length() - 6);
try
{
classes.add(Class.forName(className));
@@ -409,7 +412,7 @@
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
Collection<Class<?>> classes = loadClassesFromCurrentClassDir();
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
//enableTrace("org.jboss.metadata.annotation.creator");
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -423,7 +426,7 @@
assertNotNull("no assembly descriptor defined", metaData.getAssemblyDescriptor());
// There is a bug in IdMetaDataImpl.hashCode which isn't unique when id is not set.
- for(ContainerTransactionMetaData transaction : metaData.getAssemblyDescriptor().getContainerTransactions())
+ for (ContainerTransactionMetaData transaction : metaData.getAssemblyDescriptor().getContainerTransactions())
{
System.out.println(transaction);
}
@@ -474,11 +477,11 @@
assertEquals(2, perms.size());
MethodPermissionMetaData permitAll = null;
MethodPermissionMetaData rolesAllowed = null;
- for(MethodPermissionMetaData mp : perms)
+ for (MethodPermissionMetaData mp : perms)
{
- if(mp.matches("permitAll", null, null))
+ if (mp.matches("permitAll", null, null))
permitAll = mp;
- if(mp.matches("rolesAllowed", null, null))
+ if (mp.matches("rolesAllowed", null, null))
rolesAllowed = mp;
}
assertNotNull(permitAll);
@@ -497,40 +500,36 @@
InterceptorBindingMetaData ib1 = interceptorBindings.get(1);
assertEquals("MyStatelessBean", ib0.getEjbName());
NamedMethodMetaData ib0Method = ib0.getMethod();
- if(ib0Method == null)
+ if (ib0Method == null)
{
// The class level @Interceptors
assertFalse(ib0.isExcludeClassInterceptors());
assertTrue(ib0.isExcludeDefaultInterceptors());
- assertEquals(TestClassInterceptor.class.getName(),
- ib0.getInterceptorClasses().iterator().next());
+ assertEquals(TestClassInterceptor.class.getName(), ib0.getInterceptorClasses().iterator().next());
}
else
{
// The method level @Interceptors
assertTrue(ib0.isExcludeClassInterceptors());
assertTrue(ib0.isExcludeDefaultInterceptors());
- assertEquals(TestMethodInterceptor.class.getName(),
- ib0.getInterceptorClasses().iterator().next());
+ assertEquals(TestMethodInterceptor.class.getName(), ib0.getInterceptorClasses().iterator().next());
assertEquals("intercept2", ib0Method.getMethodName());
}
assertEquals("MyStatelessBean", ib1.getEjbName());
NamedMethodMetaData ib1Method = ib1.getMethod();
- if(ib1Method == null)
+ if (ib1Method == null)
{
// The class level @Interceptors
assertFalse(ib1.isExcludeClassInterceptors());
assertTrue(ib1.isExcludeDefaultInterceptors());
- assertEquals(TestClassInterceptor.class.getName(),
- ib1.getInterceptorClasses().iterator().next());
+ assertEquals(TestClassInterceptor.class.getName(), ib1.getInterceptorClasses().iterator().next());
}
else
{
// The method level @Interceptors
assertTrue(ib1.isExcludeClassInterceptors());
assertTrue(ib1.isExcludeDefaultInterceptors());
- assertEquals(TestMethodInterceptor.class.getName(),
- ib1.getInterceptorClasses().iterator().next());
+ assertEquals(TestMethodInterceptor.class.getName(), ib1.getInterceptorClasses().iterator().next());
assertEquals("intercept2", ib1Method.getMethodName());
}
}
@@ -539,12 +538,10 @@
* Test merging annotation and xml based metadata
* @throws Exception
*/
- public void testXmlMerge()
- throws Exception
+ public void testXmlMerge() throws Exception
{
- Class<?>[] beanClasses = {
- InterMediateBean.class
- };
+ Class<?>[] beanClasses =
+ {InterMediateBean.class};
List<Class<?>> classes = Arrays.asList(beanClasses);
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -556,19 +553,18 @@
EnterpriseBeanMetaData enterpriseBean = merged.getEnterpriseBean("InterMediateBean");
assertNotNull(enterpriseBean);
assertInterMediateBean(enterpriseBean);
+ SessionBeanMetaData sb = (SessionBeanMetaData) merged.getEnterpriseBean("TargetBean");
+ assertNotNull(sb);
}
/**
*
* @throws Exception
*/
- public void testAnnotationMergedViewWithPartialXml()
- throws Exception
+ public void testAnnotationMergedViewWithPartialXml() throws Exception
{
- Class<?>[] beanClasses = {
- EjbLink2Bean.class,
- EjbLink3Bean.class
- };
+ Class<?>[] beanClasses =
+ {EjbLink2Bean.class, EjbLink3Bean.class};
List<Class<?>> classes = Arrays.asList(beanClasses);
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -577,7 +573,8 @@
EjbJar3xMetaData merged = new EjbJar30MetaData();
AnnotationMergedView.merge(merged, specMetaData, metaData);
- JBoss50MetaData jbossMetaData = unmarshal("AnnotationEjb3_testAnnotationMergedViewWithPartialXml-jboss.xml", JBoss50MetaData.class, null);
+ JBoss50MetaData jbossMetaData = unmarshal("AnnotationEjb3_testAnnotationMergedViewWithPartialXml-jboss.xml",
+ JBoss50MetaData.class, null);
// Create a merged view
JBossMetaData jbossMergedMetaData = new JBossMetaData();
jbossMergedMetaData.merge(jbossMetaData, merged);
@@ -602,12 +599,10 @@
* Test merging annotation based metadata without xml
* @throws Exception
*/
- public void testAnnotationMergedViewWithNoXml()
- throws Exception
+ public void testAnnotationMergedViewWithNoXml() throws Exception
{
- Class<?>[] beanClasses = {
- MyStatelessBean.class
- };
+ Class<?>[] beanClasses =
+ {MyStatelessBean.class};
List<Class<?>> classes = Arrays.asList(beanClasses);
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -631,7 +626,7 @@
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
Collection<Class<?>> classes = PackageScanner.loadClasses();
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
//enableTrace("org.jboss.metadata.annotation.creator");
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -659,12 +654,10 @@
* Test merging annotation and xml based metadata
* @throws Exception
*/
- public void testPostConstruct()
- throws Exception
+ public void testPostConstruct() throws Exception
{
- Class<?>[] beanClasses = {
- MetaDataStatelessBean.class
- };
+ Class<?>[] beanClasses =
+ {MetaDataStatelessBean.class};
List<Class<?>> classes = Arrays.asList(beanClasses);
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -690,7 +683,8 @@
public void testEjbJar3xEverything() throws Exception
{
EjbJar3xEverythingUnitTestCase ejbJar = new EjbJar3xEverythingUnitTestCase("ejb-jar");
- EjbJar3xMetaData specMetaData = unmarshal("/org/jboss/test/metadata/ejb/EjbJar3xEverything_testEverything.xml", EjbJar30MetaData.class);
+ EjbJar3xMetaData specMetaData = unmarshal("/org/jboss/test/metadata/ejb/EjbJar3xEverything_testEverything.xml",
+ EjbJar30MetaData.class);
//ejbJar.assertEverythingWithAppMetaData(specMetaData, Mode.SPEC);
EjbJar3xMetaData metaData = new EjbJar30MetaData();
@@ -711,7 +705,7 @@
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
Collection<Class<?>> classes = PackageScanner.loadClasses();
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -723,9 +717,11 @@
EjbJar3xMetaData merged = new EjbJar30MetaData();
AnnotationMergedView.merge(merged, specMetaData, metaData);
- MessageDrivenBeanMetaData result = (MessageDrivenBeanMetaData) merged.getEnterpriseBean("UnknownMessageListenerInterfaceMDB");
+ MessageDrivenBeanMetaData result = (MessageDrivenBeanMetaData) merged
+ .getEnterpriseBean("UnknownMessageListenerInterfaceMDB");
assertEquals("javax.jms.MessageListener", result.getMessagingType());
- ActivationConfigPropertiesMetaData activationConfigProperties = result.getActivationConfig().getActivationConfigProperties();
+ ActivationConfigPropertiesMetaData activationConfigProperties = result.getActivationConfig()
+ .getActivationConfigProperties();
assertEquals(3, activationConfigProperties.size());
assertEquals("none", activationConfigProperties.get("dummy").getValue());
assertEquals("Auto-acknowledge", activationConfigProperties.get("acknowledgeMode").getValue());
@@ -754,7 +750,7 @@
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
Collection<Class<?>> classes = PackageScanner.loadClasses();
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -772,13 +768,12 @@
}
@ScanPackage("org.jboss.test.metadata.annotation.ejb3.jbmeta30")
- public void testMergeGenericMDBMetaData()
- throws Exception
+ public void testMergeGenericMDBMetaData() throws Exception
{
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
Collection<Class<?>> classes = PackageScanner.loadClasses();
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -787,19 +782,19 @@
JBossMetaData mergedMetaData = new JBossMetaData();
JBossMetaData metaData = unmarshal(JBossMetaData.class);
mergedMetaData.merge(metaData, specMetaData);
-
- JBossMessageDrivenBeanMetaData mdb = (JBossMessageDrivenBeanMetaData) mergedMetaData.getEnterpriseBean("MessageDrivenBean");
+
+ JBossMessageDrivenBeanMetaData mdb = (JBossMessageDrivenBeanMetaData) mergedMetaData
+ .getEnterpriseBean("MessageDrivenBean");
assertEquals("MDB_QUEUE", mdb.getDestinationJndiName());
}
-
+
@ScanPackage("org.jboss.test.metadata.annotation.ejb3.jbas5124")
- public void testMergeGenericMetaData()
- throws Exception
+ public void testMergeGenericMetaData() throws Exception
{
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
Collection<Class<?>> classes = PackageScanner.loadClasses();
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
EjbJar30Creator creator = new EjbJar30Creator(finder);
@@ -835,25 +830,25 @@
assertNotNull(runAs);
assertEquals("InternalUser", runAs.getRoleName());
}
-
+
public void testEjbJar30CreatorAnnotationContext()
{
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
EjbJar30Creator creator = new EjbJar30Creator(finder);
-
+
assertNotNull(creator);
assertNotNull(creator.getAnnotationContext());
-
+
Collection<Class<? extends Annotation>> expected = new HashSet<Class<? extends Annotation>>();
expected.add(Stateless.class);
expected.add(Stateful.class);
expected.add(MessageDriven.class);
expected.add(ApplicationException.class);
-
+
// Check Type annotations, others must be empty
assertEquals(expected.size(), creator.getAnnotationContext().getTypeAnnotations().size());
assertTrue(creator.getAnnotationContext().getTypeAnnotations().containsAll(expected));
-
+
assertTrue(creator.getAnnotationContext().getFieldAnnotations().isEmpty());
assertTrue(creator.getAnnotationContext().getMethodAnnotations().isEmpty());
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/JBossAnnotationEjb3UnitTestCase.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -111,6 +111,7 @@
import org.jboss.test.metadata.annotation.ejb3.partialxml.EjbLink2Bean;
import org.jboss.test.metadata.annotation.ejb3.partialxml.EjbLink3Bean;
import org.jboss.test.metadata.annotation.ejb3.runas.InterMediateBean;
+import org.jboss.test.metadata.annotation.ejb3.runas.TargetBean;
import org.jboss.test.metadata.common.PackageScanner;
import org.jboss.test.metadata.common.ScanPackage;
import org.jboss.test.metadata.common.SetHelper;
@@ -295,24 +296,32 @@
throws Exception
{
Class<?>[] beanClasses = {
- InterMediateBean.class
+ InterMediateBean.class,
+ TargetBean.class
};
List<Class<?>> classes = Arrays.asList(beanClasses);
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
JBoss50Creator creator = new JBoss50Creator(finder);
JBoss50MetaData annotations = creator.create(classes);
- EjbJar3xMetaData specMetaData = unmarshal("AnnotationEjb3_testXmlMerge.xml", EjbJar3xMetaData.class, null);
- JBoss50MetaData dd = new JBoss50MetaData();
- dd.merge(null, specMetaData);
- JBossEnterpriseBeanMetaData eb = dd.getEnterpriseBean("InterMediateBean");
+ EjbJar3xMetaData ejbJarMetaData = unmarshal("AnnotationEjb3_testXmlMerge.xml", EjbJar3xMetaData.class, null);
+ JBoss50MetaData specMetaData = new JBoss50MetaData();
+ specMetaData.merge(null, ejbJarMetaData);
+ JBossEnterpriseBeanMetaData eb = specMetaData.getEnterpriseBean("InterMediateBean");
assertNotNull(eb);
- JBoss50MetaData merged = new JBoss50MetaData();
- merged.merge(dd, annotations);
+ JBoss50MetaData specMerged = new JBoss50MetaData();
+ specMerged.merge(specMetaData, annotations);
- JBossEnterpriseBeanMetaData enterpriseBean = merged.getEnterpriseBean("InterMediateBean");
+ JBossEnterpriseBeanMetaData enterpriseBean = specMerged.getEnterpriseBean("InterMediateBean");
assertNotNull(enterpriseBean);
assertInterMediateBean(enterpriseBean);
+ JBossSessionBeanMetaData sb = (JBossSessionBeanMetaData) specMerged.getEnterpriseBean("TargetBean");
+ assertNotNull(sb);
+ RemoveMethodsMetaData removeMethods = sb.getRemoveMethods();
+ assertNotNull(removeMethods);
+ assertEquals(1, removeMethods.size());
+ RemoveMethodMetaData removeMethod = removeMethods.get(0);
+ assertTrue(removeMethod.isRetainIfException());
}
public void testAnnotationMergedViewWithPartialXml() throws Exception
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/TargetBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/TargetBean.java 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/TargetBean.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -21,11 +21,22 @@
*/
package org.jboss.test.metadata.annotation.ejb3.runas;
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+
/**
* @author Scott.Stark at jboss.org
* @version $Revision$
*/
+ at Stateful
public class TargetBean
{
+
+ @Remove(retainIfException=true)
+ public void remove()
+ {
+
+ }
+
}
Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/OverrideRemoveMethodUnitTestCase.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.test.metadata.annotation.jbmeta98;
+
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+import org.jboss.metadata.annotation.creator.ejb.jboss.JBoss50Creator;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
+import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
+import org.jboss.metadata.ejb.spec.EjbJar3xMetaData;
+import org.jboss.metadata.ejb.spec.RemoveMethodMetaData;
+import org.jboss.test.metadata.common.PackageScanner;
+import org.jboss.test.metadata.common.ScanPackage;
+import org.jboss.test.metadata.javaee.AbstractJavaEEMetaDataTest;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public class OverrideRemoveMethodUnitTestCase extends AbstractJavaEEMetaDataTest
+{
+ public static SchemaBindingResolver initResolver()
+ {
+ DefaultSchemaResolver resolver = new DefaultSchemaResolver();
+
+ resolver.addClassBindingForLocation("ejb-jar_3_0.xsd", EjbJar30MetaData.class);
+ resolver.addClassBindingForLocation("jboss_5_0.xsd", JBoss50MetaData.class);
+ // Workaround wildard resolution slowness
+ resolver.addClassBinding("http://www.jboss.com/xml/ns/javaee", JBoss50MetaData.class);
+ return resolver;
+ }
+
+ public OverrideRemoveMethodUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ @ScanPackage("org.jboss.test.metadata.annotation.jbmeta98")
+ public void testMerge() throws Exception
+ {
+ Collection<Class<?>> classes = PackageScanner.loadClasses();
+ AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+ JBoss50Creator creator = new JBoss50Creator(finder);
+ JBoss50MetaData annotations = creator.create(classes);
+
+ EjbJar3xMetaData ejbJarMetaData = unmarshal("ejb-jar.xml", EjbJar3xMetaData.class, null);
+ JBossMetaData jbossMetaData = unmarshal("jboss.xml", JBoss50MetaData.class, null);
+
+ JBoss50MetaData specMetaData = new JBoss50MetaData();
+ specMetaData.merge(null, ejbJarMetaData);
+
+ JBoss50MetaData specMerged = new JBoss50MetaData();
+ specMerged.merge(specMetaData, annotations);
+
+ JBoss50MetaData mergedMetaData = new JBoss50MetaData();
+ mergedMetaData.merge(jbossMetaData, specMerged);
+
+ JBossSessionBeanMetaData sb = (JBossSessionBeanMetaData) mergedMetaData.getEnterpriseBean("RemoveBean");
+ assertNotNull(sb.getRemoveMethods());
+ assertEquals(2, sb.getRemoveMethods().size());
+ RemoveMethodMetaData removeMethod = sb.getRemoveMethods().get(0);
+ assertNotNull(removeMethod);
+ assertTrue(removeMethod.isRetainIfException());
+ removeMethod = sb.getRemoveMethods().get(1);
+ assertFalse(removeMethod.isRetainIfException());
+ }
+
+
+
+}
+
Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta98/RemoveBean.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.test.metadata.annotation.jbmeta98;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+ at Stateful
+public class RemoveBean
+{
+
+ @Remove
+ public void remove()
+ {
+ //
+ }
+
+ @Remove(retainIfException = true)
+ public void retain()
+ {
+ //
+ }
+
+}
+
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossSessionBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossSessionBeanOverrideUnitTestCase.java 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossSessionBeanOverrideUnitTestCase.java 2008-08-28 14:13:03 UTC (rev 77599)
@@ -1,492 +1,536 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.test.metadata.ejb;
-
-
-import org.jboss.metadata.ejb.jboss.CacheConfigMetaData;
-import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.spec.AroundInvokeMetaData;
-import org.jboss.metadata.ejb.spec.AroundInvokesMetaData;
-import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
-import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
-import org.jboss.metadata.ejb.spec.InitMethodMetaData;
-import org.jboss.metadata.ejb.spec.InitMethodsMetaData;
-import org.jboss.metadata.ejb.spec.MethodParametersMetaData;
-import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
-import org.jboss.metadata.ejb.spec.RemoveMethodMetaData;
-import org.jboss.metadata.ejb.spec.RemoveMethodsMetaData;
-import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
-import org.jboss.metadata.javaee.spec.DescriptionsImpl;
-import org.jboss.metadata.javaee.spec.EmptyMetaData;
-import org.jboss.metadata.javaee.spec.PortComponent;
-import org.jboss.metadata.javaee.spec.RunAsMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
-
-
-/**
- * A JBossSessionBeanOverrideUnitTestCase.
- *
- * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
- * @version $Revision: 1.1 $
- */
-public class JBossSessionBeanOverrideUnitTestCase
- extends AbstractJBossEnterpriseBeanOverrideTest
-{
- public void testSimpleProperties() throws Exception
- {
- simplePropertiesTest(JBossSessionBeanMetaData.class, JBossEnterpriseBeanMetaData.class, null);
- }
-
- public void testBusinessLocals()
- {
- // Override
- BusinessLocalsMetaData overrideBusinessLocal = new BusinessLocalsMetaData();
- overrideBusinessLocal.add("override1");
- overrideBusinessLocal.add("override2");
- overrideBusinessLocal.add("override3");
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setBusinessLocals(overrideBusinessLocal);
- override.setName("overrideName");
-
- //Original
- BusinessLocalsMetaData originalBusinessLocal = new BusinessLocalsMetaData();
- originalBusinessLocal.add("original1");
- originalBusinessLocal.add("original2");
- originalBusinessLocal.add("original3");
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setBusinessLocals(originalBusinessLocal);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- BusinessLocalsMetaData businessLocals = merged.getBusinessLocals();
- assertNotNull(businessLocals);
- assertEquals(3, businessLocals.size());
- assertTrue(businessLocals.contains("override1"));
- assertTrue(businessLocals.contains("override2"));
- assertTrue(businessLocals.contains("override3"));
- }
-
- public void testBusinessRemotes()
- {
- // Override
- BusinessRemotesMetaData overrideBusinessRemotes = new BusinessRemotesMetaData();
- overrideBusinessRemotes.add("override1");
- overrideBusinessRemotes.add("override2");
- overrideBusinessRemotes.add("override3");
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setBusinessRemotes(overrideBusinessRemotes);
- override.setName("overrideName");
-
- // Original
- BusinessRemotesMetaData originalBusinessRemotes = new BusinessRemotesMetaData();
- originalBusinessRemotes.add("original1");
- originalBusinessRemotes.add("original2");
- originalBusinessRemotes.add("original3");
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setBusinessRemotes(originalBusinessRemotes);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- BusinessRemotesMetaData businessRemotes = merged.getBusinessRemotes();
- assertNotNull(businessRemotes);
- assertEquals(3, businessRemotes.size());
- assertTrue(businessRemotes.contains("override1"));
- assertTrue(businessRemotes.contains("override2"));
- assertTrue(businessRemotes.contains("override3"));
- }
-
- public void testTimeoutMethod()
- {
- // Override
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- NamedMethodMetaData overrideTimeoutMethod = new NamedMethodMetaData();
- overrideTimeoutMethod.setId("override");
- overrideTimeoutMethod.setMethodName("override");
- MethodParametersMetaData parameter2 = new MethodParametersMetaData();
- parameter2.add("override");
- parameter2.add("parameter");
- overrideTimeoutMethod.setMethodParams(parameter2);
- overrideTimeoutMethod.setName("override");
- override.setTimeoutMethod(overrideTimeoutMethod);
- override.setName("override");
-
- // Original
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- NamedMethodMetaData originalTimeoutMethod = new NamedMethodMetaData();
- originalTimeoutMethod.setId("id");
- originalTimeoutMethod.setMethodName("methodName");
- MethodParametersMetaData parameter = new MethodParametersMetaData();
- parameter.add("originalParameter");
- originalTimeoutMethod.setMethodParams(parameter);
- originalTimeoutMethod.setName("name");
- original.setTimeoutMethod(originalTimeoutMethod);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- NamedMethodMetaData namedMethod = merged.getTimeoutMethod();
- assertEquals("override", merged.getName());
- assertNotNull(namedMethod);
- assertEquals("method id", "override", namedMethod.getId());
- assertEquals("method name", "override", namedMethod.getMethodName());
- assertEquals("override", namedMethod.getName());
- MethodParametersMetaData methodParameters = namedMethod.getMethodParams();
- assertEquals("override", methodParameters.get(0));
- assertEquals("parameter", methodParameters.get(1));
- }
-
- public void testInitMethods()
- {
- // Override
- InitMethodsMetaData overrideInitMethods = new InitMethodsMetaData();
- InitMethodMetaData overrideInitMethod = new InitMethodMetaData();
- NamedMethodMetaData overrideNamedMethod = new NamedMethodMetaData();
- overrideNamedMethod.setMethodName("overrideMethodName");
- overrideInitMethod.setId("overrideId");
- overrideInitMethods.add(overrideInitMethod);
-
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setInitMethods(overrideInitMethods);
- override.setName("name");
-
- // Original
- InitMethodsMetaData originalInitMethods = new InitMethodsMetaData();
- InitMethodMetaData originalInitMethod = new InitMethodMetaData();
- NamedMethodMetaData originalNamedMethod = new NamedMethodMetaData();
- originalNamedMethod.setMethodName("originalMethodName");
- originalInitMethod.setId("originalId");
- originalInitMethods.add(originalInitMethod);
-
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setInitMethods(originalInitMethods);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- InitMethodsMetaData initMethods = merged.getInitMethods();
- assertNotNull(initMethods);
- InitMethodMetaData initMethod = initMethods.get(0);
- assertNotNull(initMethod);
- assertEquals("overrideId", initMethod.getId());
- }
-
- public void testRemoveMethods()
- {
- // Override
- RemoveMethodsMetaData overrideRemoveMethods = new RemoveMethodsMetaData();
- RemoveMethodMetaData overrideRemoveMethod = new RemoveMethodMetaData();
- overrideRemoveMethod.setId("overrideId");
- overrideRemoveMethod.setRetainIfException(true);
- NamedMethodMetaData overrideNamedMethod = new NamedMethodMetaData();
- overrideNamedMethod.setMethodName("overrideMethodName");
- overrideRemoveMethod.setBeanMethod(overrideNamedMethod);
- overrideRemoveMethods.add(overrideRemoveMethod);
-
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setRemoveMethods(overrideRemoveMethods);
- override.setName("overrideName");
-
- // Original
- RemoveMethodsMetaData originalRemoveMethods = new RemoveMethodsMetaData();
- RemoveMethodMetaData originalRemoveMethod = new RemoveMethodMetaData();
- originalRemoveMethod.setId("originalId");
- originalRemoveMethod.setRetainIfException(false);
- NamedMethodMetaData originalNamedMethod = new NamedMethodMetaData();
- originalNamedMethod.setId("originalId");
- originalRemoveMethod.setBeanMethod(originalNamedMethod);
- originalRemoveMethods.add(originalRemoveMethod);
-
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setRemoveMethods(originalRemoveMethods);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- RemoveMethodsMetaData removeMethods = merged.getRemoveMethods();
- assertNotNull(removeMethods);
- RemoveMethodMetaData removeMethod = removeMethods.get(0);
- assertNotNull(removeMethod);
- assertEquals("overrideId", removeMethod.getId());
- assertTrue(removeMethod.isRetainIfException());
- NamedMethodMetaData namedMethod = removeMethod.getBeanMethod();
- assertNotNull(namedMethod);
- assertEquals("overrideMethodName", namedMethod.getMethodName());
-
- }
-
- public void testAroundInvokes()
- {
- // Override
- AroundInvokesMetaData overrideInvokes = new AroundInvokesMetaData();
- AroundInvokeMetaData overrideInvoke = new AroundInvokeMetaData();
- overrideInvoke.setClassName("overrideClassName");
- overrideInvoke.setMethodName("overrideMethodName");
- overrideInvokes.add(overrideInvoke);
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setAroundInvokes(overrideInvokes);
- override.setName("sbmd");
-
- // Original
- AroundInvokesMetaData originalInvokes = new AroundInvokesMetaData();
- AroundInvokeMetaData originalInvoke = new AroundInvokeMetaData();
- originalInvoke.setClassName("originalClassName");
- originalInvoke.setMethodName("originalMethodName");
- originalInvokes.add(originalInvoke);
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setAroundInvokes(originalInvokes);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- AroundInvokesMetaData aroundInvokes = merged.getAroundInvokes();
- assertNotNull(aroundInvokes);
- assertEquals(2, aroundInvokes.size());
- AroundInvokeMetaData aroundInvoke = aroundInvokes.get(0);
- assertNotNull(aroundInvoke);
- assertEquals("originalClassName", aroundInvoke.getClassName());
- assertEquals("originalMethodName", aroundInvoke.getMethodName());
- aroundInvoke = aroundInvokes.get(1);
- assertNotNull(aroundInvoke);
- assertEquals("overrideClassName", aroundInvoke.getClassName());
- assertEquals("overrideMethodName", aroundInvoke.getMethodName());
-
- }
-
- public void testSecurityRoleRefs()
- {
- // Override
- SecurityRoleRefsMetaData overrideSecurity = new SecurityRoleRefsMetaData();
- overrideSecurity.setId("override");
- SecurityRoleRefMetaData overrideSecurityRoleRef = new SecurityRoleRefMetaData();
- overrideSecurityRoleRef.setDescriptions(new DescriptionsImpl());
- overrideSecurityRoleRef.setId("overrideId");
- overrideSecurityRoleRef.setRoleLink("overrideLink");
- overrideSecurityRoleRef.setRoleName("overrideRoleName");
- overrideSecurity.add(overrideSecurityRoleRef);
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setSecurityRoleRefs(overrideSecurity);
-
- // Original
- SecurityRoleRefMetaData originalSecurityRoleRef = new SecurityRoleRefMetaData();
- originalSecurityRoleRef.setDescriptions(new DescriptionsImpl());
- originalSecurityRoleRef.setId("originalId");
- originalSecurityRoleRef.setName("originalName");
- originalSecurityRoleRef.setRoleLink("originalLink");
- originalSecurityRoleRef.setRoleName("originalRoleName");
- SecurityRoleRefsMetaData originalSecurityRoleRefsMetaData = new SecurityRoleRefsMetaData();
- originalSecurityRoleRefsMetaData.setId("originalId");
- originalSecurityRoleRefsMetaData.add(originalSecurityRoleRef);
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setSecurityRoleRefs(originalSecurityRoleRefsMetaData);
- original.setName("original");
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- SecurityRoleRefsMetaData securityRoleRefs = merged.getSecurityRoleRefs();
- assertNotNull(securityRoleRefs);
- assertEquals(1, securityRoleRefs.size());
- assertEquals("override", securityRoleRefs.getId());
- SecurityRoleRefMetaData securityRoleRef = securityRoleRefs.get(overrideSecurityRoleRef.getKey());
- assertNotNull(securityRoleRef);
- assertEquals("overrideId", securityRoleRef.getId());
- assertEquals("overrideLink", securityRoleRef.getRoleLink());
- assertEquals("overrideRoleName", securityRoleRef.getRoleName());
- }
-
- public void testClusterConfig()
- {
- // Override
- ClusterConfigMetaData overrideClusterConfig = new ClusterConfigMetaData();
- overrideClusterConfig.setBeanLoadBalancePolicy("overrideBeanLoadBalancePolicy");
- overrideClusterConfig.setDescriptions(new DescriptionsImpl());
- overrideClusterConfig.setHomeLoadBalancePolicy("overrideHomeLoadBalancePolicy");
- overrideClusterConfig.setId("overrideId");
- overrideClusterConfig.setPartitionName("overridePartitionName");
- overrideClusterConfig.setSessionStateManagerJndiName("overrideSessionStateManagerJndiName");
-
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setClusterConfig(overrideClusterConfig);
- override.setName("override");
-
- // Original
- ClusterConfigMetaData originalClusterConfig = new ClusterConfigMetaData();
- originalClusterConfig.setBeanLoadBalancePolicy("originalBeanLoadBalancePolicy");
- originalClusterConfig.setDescriptions(new DescriptionsImpl());
- originalClusterConfig.setHomeLoadBalancePolicy("originalHomeLoadBalancePolicy");
- originalClusterConfig.setId("originalId");
- originalClusterConfig.setPartitionName("originalPartitionName");
- originalClusterConfig.setSessionStateManagerJndiName("originalSessionStateManagerJndiName");
-
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setClusterConfig(originalClusterConfig);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- ClusterConfigMetaData clusterConfig = merged.getClusterConfig();
- assertNotNull(clusterConfig);
- assertEquals("overrideBeanLoadBalancePolicy", clusterConfig.getBeanLoadBalancePolicy());
- assertEquals("overrideHomeLoadBalancePolicy", clusterConfig.getHomeLoadBalancePolicy());
- assertEquals("overridePartitionName", clusterConfig.getPartitionName());
- assertEquals("overrideSessionStateManagerJndiName", clusterConfig.getSessionStateManagerJndiName());
- assertEquals("overrideId", clusterConfig.getId());
-
- }
-
- public void testPortComponent()
- {
- // Override
- PortComponent overridePortComponent = new PortComponent();
- overridePortComponent.setAuthMethod("overrideauthMethod");
- overridePortComponent.setId("overrideId");
- overridePortComponent.setPortComponentName("overridePortComponentName");
- overridePortComponent.setPortComponentURI("overridePortComponentURI");
- overridePortComponent.setSecureWSDLAccess(true);
- overridePortComponent.setTransportGuarantee("overrideTransportGuarantee");
-
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setPortComponent(overridePortComponent);
- override.setName("overrideName");
-
- // Original
- PortComponent originalPortComponent = new PortComponent();
- originalPortComponent.setAuthMethod("originalAuthMethod");
- originalPortComponent.setPortComponentName("originalPortComponentName");
- originalPortComponent.setPortComponentURI("originalPortComponentURI");
- originalPortComponent.setSecureWSDLAccess(false);
- originalPortComponent.setTransportGuarantee("originalTransportGuarantee");
-
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setPortComponent(originalPortComponent);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- PortComponent portComponent = merged.getPortComponent();
- assertEquals("overrideauthMethod", portComponent.getAuthMethod());
- assertEquals("overridePortComponentName", portComponent.getPortComponentName());
- assertEquals("overridePortComponentURI", portComponent.getPortComponentURI());
- assertEquals("overrideTransportGuarantee", portComponent.getTransportGuarantee());
- assertEquals(true, portComponent.getSecureWSDLAccess());
-
- }
-
- public void testEjbTimeout()
- {
- // Override
- SecurityIdentityMetaData overrideEjbTimeout = new SecurityIdentityMetaData();
- overrideEjbTimeout.setDescriptions(new DescriptionsImpl());
- overrideEjbTimeout.setRunAsPrincipal("overrideRunAsPrincipal");
-
- RunAsMetaData overrideRunAs = new RunAsMetaData();
- overrideRunAs.setDescriptions(new DescriptionsImpl());
- overrideRunAs.setRoleName("overrideRoleName");
- overrideRunAs.setId("overrideId");
-
- EmptyMetaData overrideEmpty = new EmptyMetaData();
- overrideEmpty.setId("overrideId");
-
- overrideEjbTimeout.setRunAs(overrideRunAs);
- overrideEjbTimeout.setUseCallerIdentity(overrideEmpty);
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setEjbTimeoutIdentity(overrideEjbTimeout);
- override.setName("overrideName");
-
- // Original
- SecurityIdentityMetaData originalEjbTimeout = new SecurityIdentityMetaData();
- originalEjbTimeout.setRunAsPrincipal("originalRunAsPrincipal");
-
- RunAsMetaData originalRunAs = new RunAsMetaData();
- originalRunAs.setDescriptions(new DescriptionsImpl());
- originalRunAs.setRoleName("originalRoleName");
- originalRunAs.setId("originalId");
-
- EmptyMetaData originalEmpty = new EmptyMetaData();
- originalEmpty.setId("originalId");
-
- originalEjbTimeout.setRunAs(originalRunAs);
- originalEjbTimeout.setUseCallerIdentity(originalEmpty);
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setEjbTimeoutIdentity(originalEjbTimeout);
- original.setName("originalName");
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- SecurityIdentityMetaData ejbTimeout = merged.getEjbTimeoutIdentity();
- assertNotNull(ejbTimeout);
- assertNotNull(ejbTimeout.getDescriptions());
- assertEquals("overrideRunAsPrincipal", ejbTimeout.getRunAsPrincipal());
- assertEquals("overrideRoleName", ejbTimeout.getRunAs().getRoleName());
- assertEquals("overrideId", ejbTimeout.getRunAs().getId());
- assertEquals("overrideId", ejbTimeout.getUseCallerIdentity().getId());
- }
-
- public void todotestCacheConfig()
- {
- // Override
- CacheConfigMetaData overrideCacheConfig = new CacheConfigMetaData();
- overrideCacheConfig.setIdleTimeoutSeconds(Integer.valueOf(5));
- overrideCacheConfig.setMaxSize(Integer.valueOf(5));
- overrideCacheConfig.setRemoveTimeoutSeconds(Integer.valueOf(5));
- overrideCacheConfig.setName("overrideName");
- overrideCacheConfig.setPersistenceManager("overridePersistenceManager");
- overrideCacheConfig.setReplicationIsPassivation("overrideReplicationIsPassivation");
- overrideCacheConfig.setValue("overrideValue");
-
- JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
- override.setCacheConfig(overrideCacheConfig);
- override.setName("overrideName");
-
- // Original
- CacheConfigMetaData originalCacheConfig = new CacheConfigMetaData();
- originalCacheConfig.setIdleTimeoutSeconds(Integer.valueOf(6));
- originalCacheConfig.setMaxSize(Integer.valueOf(6));
- originalCacheConfig.setRemoveTimeoutSeconds(Integer.valueOf(6));
- originalCacheConfig.setName("originalName");
- originalCacheConfig.setPersistenceManager("originalPersistenceManager");
- originalCacheConfig.setReplicationIsPassivation("originalReplicationIsPassivation");
- originalCacheConfig.setValue("originalValue");
-
- JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
- original.setCacheConfig(originalCacheConfig);
-
- // Merged
- JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
- merged.merge(override, original);
- CacheConfigMetaData cacheConfig = merged.getCacheConfig();
- assertNotNull(cacheConfig);
- assertEquals(Integer.valueOf(5), cacheConfig.getIdleTimeoutSeconds());
- assertEquals(Integer.valueOf(5), cacheConfig.getMaxSize());
- assertEquals(Integer.valueOf(5), cacheConfig.getRemoveTimeoutSeconds());
- assertEquals("overrideName", cacheConfig.getName());
- assertEquals("overridePersistenceManager", cacheConfig.getPersistenceManager());
- assertEquals("overrideReplicationIsPassivation", cacheConfig.getReplicationIsPassivation());
- assertEquals("overrideValue", cacheConfig.getValue());
- }
-}
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.test.metadata.ejb;
+
+
+import org.jboss.metadata.ejb.jboss.CacheConfigMetaData;
+import org.jboss.metadata.ejb.jboss.ClusterConfigMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.spec.AroundInvokeMetaData;
+import org.jboss.metadata.ejb.spec.AroundInvokesMetaData;
+import org.jboss.metadata.ejb.spec.BusinessLocalsMetaData;
+import org.jboss.metadata.ejb.spec.BusinessRemotesMetaData;
+import org.jboss.metadata.ejb.spec.InitMethodMetaData;
+import org.jboss.metadata.ejb.spec.InitMethodsMetaData;
+import org.jboss.metadata.ejb.spec.MethodParametersMetaData;
+import org.jboss.metadata.ejb.spec.NamedMethodMetaData;
+import org.jboss.metadata.ejb.spec.RemoveMethodMetaData;
+import org.jboss.metadata.ejb.spec.RemoveMethodsMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
+import org.jboss.metadata.javaee.spec.DescriptionsImpl;
+import org.jboss.metadata.javaee.spec.EmptyMetaData;
+import org.jboss.metadata.javaee.spec.PortComponent;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+
+
+/**
+ * A JBossSessionBeanOverrideUnitTestCase.
+ *
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class JBossSessionBeanOverrideUnitTestCase
+ extends AbstractJBossEnterpriseBeanOverrideTest
+{
+ public void testSimpleProperties() throws Exception
+ {
+ simplePropertiesTest(JBossSessionBeanMetaData.class, JBossEnterpriseBeanMetaData.class, null);
+ }
+
+ public void testBusinessLocals()
+ {
+ // Override
+ BusinessLocalsMetaData overrideBusinessLocal = new BusinessLocalsMetaData();
+ overrideBusinessLocal.add("override1");
+ overrideBusinessLocal.add("override2");
+ overrideBusinessLocal.add("override3");
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setBusinessLocals(overrideBusinessLocal);
+ override.setName("overrideName");
+
+ //Original
+ BusinessLocalsMetaData originalBusinessLocal = new BusinessLocalsMetaData();
+ originalBusinessLocal.add("original1");
+ originalBusinessLocal.add("original2");
+ originalBusinessLocal.add("original3");
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setBusinessLocals(originalBusinessLocal);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ BusinessLocalsMetaData businessLocals = merged.getBusinessLocals();
+ assertNotNull(businessLocals);
+ assertEquals(3, businessLocals.size());
+ assertTrue(businessLocals.contains("override1"));
+ assertTrue(businessLocals.contains("override2"));
+ assertTrue(businessLocals.contains("override3"));
+ }
+
+ public void testBusinessRemotes()
+ {
+ // Override
+ BusinessRemotesMetaData overrideBusinessRemotes = new BusinessRemotesMetaData();
+ overrideBusinessRemotes.add("override1");
+ overrideBusinessRemotes.add("override2");
+ overrideBusinessRemotes.add("override3");
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setBusinessRemotes(overrideBusinessRemotes);
+ override.setName("overrideName");
+
+ // Original
+ BusinessRemotesMetaData originalBusinessRemotes = new BusinessRemotesMetaData();
+ originalBusinessRemotes.add("original1");
+ originalBusinessRemotes.add("original2");
+ originalBusinessRemotes.add("original3");
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setBusinessRemotes(originalBusinessRemotes);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ BusinessRemotesMetaData businessRemotes = merged.getBusinessRemotes();
+ assertNotNull(businessRemotes);
+ assertEquals(3, businessRemotes.size());
+ assertTrue(businessRemotes.contains("override1"));
+ assertTrue(businessRemotes.contains("override2"));
+ assertTrue(businessRemotes.contains("override3"));
+ }
+
+ public void testTimeoutMethod()
+ {
+ // Override
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ NamedMethodMetaData overrideTimeoutMethod = new NamedMethodMetaData();
+ overrideTimeoutMethod.setId("override");
+ overrideTimeoutMethod.setMethodName("override");
+ MethodParametersMetaData parameter2 = new MethodParametersMetaData();
+ parameter2.add("override");
+ parameter2.add("parameter");
+ overrideTimeoutMethod.setMethodParams(parameter2);
+ overrideTimeoutMethod.setName("override");
+ override.setTimeoutMethod(overrideTimeoutMethod);
+ override.setName("override");
+
+ // Original
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ NamedMethodMetaData originalTimeoutMethod = new NamedMethodMetaData();
+ originalTimeoutMethod.setId("id");
+ originalTimeoutMethod.setMethodName("methodName");
+ MethodParametersMetaData parameter = new MethodParametersMetaData();
+ parameter.add("originalParameter");
+ originalTimeoutMethod.setMethodParams(parameter);
+ originalTimeoutMethod.setName("name");
+ original.setTimeoutMethod(originalTimeoutMethod);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ NamedMethodMetaData namedMethod = merged.getTimeoutMethod();
+ assertEquals("override", merged.getName());
+ assertNotNull(namedMethod);
+ assertEquals("method id", "override", namedMethod.getId());
+ assertEquals("method name", "override", namedMethod.getMethodName());
+ assertEquals("override", namedMethod.getName());
+ MethodParametersMetaData methodParameters = namedMethod.getMethodParams();
+ assertEquals("override", methodParameters.get(0));
+ assertEquals("parameter", methodParameters.get(1));
+ }
+
+ public void testInitMethods()
+ {
+ // Override
+ InitMethodsMetaData overrideInitMethods = new InitMethodsMetaData();
+ InitMethodMetaData overrideInitMethod = new InitMethodMetaData();
+ NamedMethodMetaData overrideNamedMethod = new NamedMethodMetaData();
+ overrideNamedMethod.setMethodName("overrideMethodName");
+ overrideInitMethod.setId("overrideId");
+ overrideInitMethods.add(overrideInitMethod);
+
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setInitMethods(overrideInitMethods);
+ override.setName("name");
+
+ // Original
+ InitMethodsMetaData originalInitMethods = new InitMethodsMetaData();
+ InitMethodMetaData originalInitMethod = new InitMethodMetaData();
+ NamedMethodMetaData originalNamedMethod = new NamedMethodMetaData();
+ originalNamedMethod.setMethodName("originalMethodName");
+ originalInitMethod.setId("originalId");
+ originalInitMethods.add(originalInitMethod);
+
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setInitMethods(originalInitMethods);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ InitMethodsMetaData initMethods = merged.getInitMethods();
+ assertNotNull(initMethods);
+ InitMethodMetaData initMethod = initMethods.get(0);
+ assertNotNull(initMethod);
+ assertEquals("overrideId", initMethod.getId());
+ }
+
+ public void testRemoveMethods()
+ {
+ // Override
+ RemoveMethodsMetaData overrideRemoveMethods = new RemoveMethodsMetaData();
+ RemoveMethodMetaData overrideRemoveMethod = new RemoveMethodMetaData();
+ overrideRemoveMethod.setId("overrideId");
+ overrideRemoveMethod.setRetainIfException(true);
+ NamedMethodMetaData overrideNamedMethod = new NamedMethodMetaData();
+ overrideNamedMethod.setMethodName("overrideMethodName");
+ overrideRemoveMethod.setBeanMethod(overrideNamedMethod);
+ overrideRemoveMethods.add(overrideRemoveMethod);
+
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setRemoveMethods(overrideRemoveMethods);
+ override.setName("overrideName");
+
+ // Original
+ RemoveMethodsMetaData originalRemoveMethods = new RemoveMethodsMetaData();
+ RemoveMethodMetaData originalRemoveMethod = new RemoveMethodMetaData();
+ originalRemoveMethod.setId("originalId");
+ originalRemoveMethod.setRetainIfException(false);
+ NamedMethodMetaData originalNamedMethod = new NamedMethodMetaData();
+ originalNamedMethod.setId("originalId");
+ originalRemoveMethod.setBeanMethod(originalNamedMethod);
+ originalRemoveMethods.add(originalRemoveMethod);
+
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setRemoveMethods(originalRemoveMethods);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ RemoveMethodsMetaData removeMethods = merged.getRemoveMethods();
+ assertNotNull(removeMethods);
+ RemoveMethodMetaData removeMethod = removeMethods.get(0);
+ assertNotNull(removeMethod);
+ assertEquals("overrideId", removeMethod.getId());
+ assertTrue(removeMethod.isRetainIfException());
+ NamedMethodMetaData namedMethod = removeMethod.getBeanMethod();
+ assertNotNull(namedMethod);
+ assertEquals("overrideMethodName", namedMethod.getMethodName());
+
+ }
+
+ public void testRemoveMethodsRetainOverrideIsNull()
+ {
+ // Override
+ RemoveMethodsMetaData overrideRemoveMethods = new RemoveMethodsMetaData();
+ RemoveMethodMetaData overrideRemoveMethod = new RemoveMethodMetaData();
+ overrideRemoveMethod.setId("overrideId");
+ NamedMethodMetaData overrideNamedMethod = new NamedMethodMetaData();
+ overrideNamedMethod.setMethodName("overrideMethodName");
+ overrideRemoveMethod.setBeanMethod(overrideNamedMethod);
+ overrideRemoveMethods.add(overrideRemoveMethod);
+
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setRemoveMethods(overrideRemoveMethods);
+ override.setName("overrideName");
+
+ // Original
+ RemoveMethodsMetaData originalRemoveMethods = new RemoveMethodsMetaData();
+ RemoveMethodMetaData originalRemoveMethod = new RemoveMethodMetaData();
+ originalRemoveMethod.setId("originalId");
+ originalRemoveMethod.setRetainIfException(true);
+ NamedMethodMetaData originalNamedMethod = new NamedMethodMetaData();
+ originalNamedMethod.setMethodName("overrideMethodName");
+ originalNamedMethod.setId("originalId");
+ originalRemoveMethod.setBeanMethod(originalNamedMethod);
+ originalRemoveMethods.add(originalRemoveMethod);
+
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setRemoveMethods(originalRemoveMethods);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ RemoveMethodsMetaData removeMethods = merged.getRemoveMethods();
+ assertNotNull(removeMethods);
+ RemoveMethodMetaData removeMethod = removeMethods.get(0);
+ assertNotNull(removeMethod);
+ assertEquals("overrideId", removeMethod.getId());
+ assertTrue(removeMethod.isRetainIfException());
+ NamedMethodMetaData namedMethod = removeMethod.getBeanMethod();
+ assertNotNull(namedMethod);
+ assertEquals("overrideMethodName", namedMethod.getMethodName());
+
+ }
+
+ public void testAroundInvokes()
+ {
+ // Override
+ AroundInvokesMetaData overrideInvokes = new AroundInvokesMetaData();
+ AroundInvokeMetaData overrideInvoke = new AroundInvokeMetaData();
+ overrideInvoke.setClassName("overrideClassName");
+ overrideInvoke.setMethodName("overrideMethodName");
+ overrideInvokes.add(overrideInvoke);
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setAroundInvokes(overrideInvokes);
+ override.setName("sbmd");
+
+ // Original
+ AroundInvokesMetaData originalInvokes = new AroundInvokesMetaData();
+ AroundInvokeMetaData originalInvoke = new AroundInvokeMetaData();
+ originalInvoke.setClassName("originalClassName");
+ originalInvoke.setMethodName("originalMethodName");
+ originalInvokes.add(originalInvoke);
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setAroundInvokes(originalInvokes);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ AroundInvokesMetaData aroundInvokes = merged.getAroundInvokes();
+ assertNotNull(aroundInvokes);
+ assertEquals(2, aroundInvokes.size());
+ AroundInvokeMetaData aroundInvoke = aroundInvokes.get(0);
+ assertNotNull(aroundInvoke);
+ assertEquals("originalClassName", aroundInvoke.getClassName());
+ assertEquals("originalMethodName", aroundInvoke.getMethodName());
+ aroundInvoke = aroundInvokes.get(1);
+ assertNotNull(aroundInvoke);
+ assertEquals("overrideClassName", aroundInvoke.getClassName());
+ assertEquals("overrideMethodName", aroundInvoke.getMethodName());
+
+ }
+
+ public void testSecurityRoleRefs()
+ {
+ // Override
+ SecurityRoleRefsMetaData overrideSecurity = new SecurityRoleRefsMetaData();
+ overrideSecurity.setId("override");
+ SecurityRoleRefMetaData overrideSecurityRoleRef = new SecurityRoleRefMetaData();
+ overrideSecurityRoleRef.setDescriptions(new DescriptionsImpl());
+ overrideSecurityRoleRef.setId("overrideId");
+ overrideSecurityRoleRef.setRoleLink("overrideLink");
+ overrideSecurityRoleRef.setRoleName("overrideRoleName");
+ overrideSecurity.add(overrideSecurityRoleRef);
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setSecurityRoleRefs(overrideSecurity);
+
+ // Original
+ SecurityRoleRefMetaData originalSecurityRoleRef = new SecurityRoleRefMetaData();
+ originalSecurityRoleRef.setDescriptions(new DescriptionsImpl());
+ originalSecurityRoleRef.setId("originalId");
+ originalSecurityRoleRef.setName("originalName");
+ originalSecurityRoleRef.setRoleLink("originalLink");
+ originalSecurityRoleRef.setRoleName("originalRoleName");
+ SecurityRoleRefsMetaData originalSecurityRoleRefsMetaData = new SecurityRoleRefsMetaData();
+ originalSecurityRoleRefsMetaData.setId("originalId");
+ originalSecurityRoleRefsMetaData.add(originalSecurityRoleRef);
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setSecurityRoleRefs(originalSecurityRoleRefsMetaData);
+ original.setName("original");
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ SecurityRoleRefsMetaData securityRoleRefs = merged.getSecurityRoleRefs();
+ assertNotNull(securityRoleRefs);
+ assertEquals(1, securityRoleRefs.size());
+ assertEquals("override", securityRoleRefs.getId());
+ SecurityRoleRefMetaData securityRoleRef = securityRoleRefs.get(overrideSecurityRoleRef.getKey());
+ assertNotNull(securityRoleRef);
+ assertEquals("overrideId", securityRoleRef.getId());
+ assertEquals("overrideLink", securityRoleRef.getRoleLink());
+ assertEquals("overrideRoleName", securityRoleRef.getRoleName());
+ }
+
+ public void testClusterConfig()
+ {
+ // Override
+ ClusterConfigMetaData overrideClusterConfig = new ClusterConfigMetaData();
+ overrideClusterConfig.setBeanLoadBalancePolicy("overrideBeanLoadBalancePolicy");
+ overrideClusterConfig.setDescriptions(new DescriptionsImpl());
+ overrideClusterConfig.setHomeLoadBalancePolicy("overrideHomeLoadBalancePolicy");
+ overrideClusterConfig.setId("overrideId");
+ overrideClusterConfig.setPartitionName("overridePartitionName");
+ overrideClusterConfig.setSessionStateManagerJndiName("overrideSessionStateManagerJndiName");
+
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setClusterConfig(overrideClusterConfig);
+ override.setName("override");
+
+ // Original
+ ClusterConfigMetaData originalClusterConfig = new ClusterConfigMetaData();
+ originalClusterConfig.setBeanLoadBalancePolicy("originalBeanLoadBalancePolicy");
+ originalClusterConfig.setDescriptions(new DescriptionsImpl());
+ originalClusterConfig.setHomeLoadBalancePolicy("originalHomeLoadBalancePolicy");
+ originalClusterConfig.setId("originalId");
+ originalClusterConfig.setPartitionName("originalPartitionName");
+ originalClusterConfig.setSessionStateManagerJndiName("originalSessionStateManagerJndiName");
+
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setClusterConfig(originalClusterConfig);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ ClusterConfigMetaData clusterConfig = merged.getClusterConfig();
+ assertNotNull(clusterConfig);
+ assertEquals("overrideBeanLoadBalancePolicy", clusterConfig.getBeanLoadBalancePolicy());
+ assertEquals("overrideHomeLoadBalancePolicy", clusterConfig.getHomeLoadBalancePolicy());
+ assertEquals("overridePartitionName", clusterConfig.getPartitionName());
+ assertEquals("overrideSessionStateManagerJndiName", clusterConfig.getSessionStateManagerJndiName());
+ assertEquals("overrideId", clusterConfig.getId());
+
+ }
+
+ public void testPortComponent()
+ {
+ // Override
+ PortComponent overridePortComponent = new PortComponent();
+ overridePortComponent.setAuthMethod("overrideauthMethod");
+ overridePortComponent.setId("overrideId");
+ overridePortComponent.setPortComponentName("overridePortComponentName");
+ overridePortComponent.setPortComponentURI("overridePortComponentURI");
+ overridePortComponent.setSecureWSDLAccess(true);
+ overridePortComponent.setTransportGuarantee("overrideTransportGuarantee");
+
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setPortComponent(overridePortComponent);
+ override.setName("overrideName");
+
+ // Original
+ PortComponent originalPortComponent = new PortComponent();
+ originalPortComponent.setAuthMethod("originalAuthMethod");
+ originalPortComponent.setPortComponentName("originalPortComponentName");
+ originalPortComponent.setPortComponentURI("originalPortComponentURI");
+ originalPortComponent.setSecureWSDLAccess(false);
+ originalPortComponent.setTransportGuarantee("originalTransportGuarantee");
+
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setPortComponent(originalPortComponent);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ PortComponent portComponent = merged.getPortComponent();
+ assertEquals("overrideauthMethod", portComponent.getAuthMethod());
+ assertEquals("overridePortComponentName", portComponent.getPortComponentName());
+ assertEquals("overridePortComponentURI", portComponent.getPortComponentURI());
+ assertEquals("overrideTransportGuarantee", portComponent.getTransportGuarantee());
+ assertEquals(true, portComponent.getSecureWSDLAccess());
+
+ }
+
+ public void testEjbTimeout()
+ {
+ // Override
+ SecurityIdentityMetaData overrideEjbTimeout = new SecurityIdentityMetaData();
+ overrideEjbTimeout.setDescriptions(new DescriptionsImpl());
+ overrideEjbTimeout.setRunAsPrincipal("overrideRunAsPrincipal");
+
+ RunAsMetaData overrideRunAs = new RunAsMetaData();
+ overrideRunAs.setDescriptions(new DescriptionsImpl());
+ overrideRunAs.setRoleName("overrideRoleName");
+ overrideRunAs.setId("overrideId");
+
+ EmptyMetaData overrideEmpty = new EmptyMetaData();
+ overrideEmpty.setId("overrideId");
+
+ overrideEjbTimeout.setRunAs(overrideRunAs);
+ overrideEjbTimeout.setUseCallerIdentity(overrideEmpty);
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setEjbTimeoutIdentity(overrideEjbTimeout);
+ override.setName("overrideName");
+
+ // Original
+ SecurityIdentityMetaData originalEjbTimeout = new SecurityIdentityMetaData();
+ originalEjbTimeout.setRunAsPrincipal("originalRunAsPrincipal");
+
+ RunAsMetaData originalRunAs = new RunAsMetaData();
+ originalRunAs.setDescriptions(new DescriptionsImpl());
+ originalRunAs.setRoleName("originalRoleName");
+ originalRunAs.setId("originalId");
+
+ EmptyMetaData originalEmpty = new EmptyMetaData();
+ originalEmpty.setId("originalId");
+
+ originalEjbTimeout.setRunAs(originalRunAs);
+ originalEjbTimeout.setUseCallerIdentity(originalEmpty);
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setEjbTimeoutIdentity(originalEjbTimeout);
+ original.setName("originalName");
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ SecurityIdentityMetaData ejbTimeout = merged.getEjbTimeoutIdentity();
+ assertNotNull(ejbTimeout);
+ assertNotNull(ejbTimeout.getDescriptions());
+ assertEquals("overrideRunAsPrincipal", ejbTimeout.getRunAsPrincipal());
+ assertEquals("overrideRoleName", ejbTimeout.getRunAs().getRoleName());
+ assertEquals("overrideId", ejbTimeout.getRunAs().getId());
+ assertEquals("overrideId", ejbTimeout.getUseCallerIdentity().getId());
+ }
+
+ public void todotestCacheConfig()
+ {
+ // Override
+ CacheConfigMetaData overrideCacheConfig = new CacheConfigMetaData();
+ overrideCacheConfig.setIdleTimeoutSeconds(Integer.valueOf(5));
+ overrideCacheConfig.setMaxSize(Integer.valueOf(5));
+ overrideCacheConfig.setRemoveTimeoutSeconds(Integer.valueOf(5));
+ overrideCacheConfig.setName("overrideName");
+ overrideCacheConfig.setPersistenceManager("overridePersistenceManager");
+ overrideCacheConfig.setReplicationIsPassivation("overrideReplicationIsPassivation");
+ overrideCacheConfig.setValue("overrideValue");
+
+ JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
+ override.setCacheConfig(overrideCacheConfig);
+ override.setName("overrideName");
+
+ // Original
+ CacheConfigMetaData originalCacheConfig = new CacheConfigMetaData();
+ originalCacheConfig.setIdleTimeoutSeconds(Integer.valueOf(6));
+ originalCacheConfig.setMaxSize(Integer.valueOf(6));
+ originalCacheConfig.setRemoveTimeoutSeconds(Integer.valueOf(6));
+ originalCacheConfig.setName("originalName");
+ originalCacheConfig.setPersistenceManager("originalPersistenceManager");
+ originalCacheConfig.setReplicationIsPassivation("originalReplicationIsPassivation");
+ originalCacheConfig.setValue("originalValue");
+
+ JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
+ original.setCacheConfig(originalCacheConfig);
+
+ // Merged
+ JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
+ merged.merge(override, original);
+ CacheConfigMetaData cacheConfig = merged.getCacheConfig();
+ assertNotNull(cacheConfig);
+ assertEquals(Integer.valueOf(5), cacheConfig.getIdleTimeoutSeconds());
+ assertEquals(Integer.valueOf(5), cacheConfig.getMaxSize());
+ assertEquals(Integer.valueOf(5), cacheConfig.getRemoveTimeoutSeconds());
+ assertEquals("overrideName", cacheConfig.getName());
+ assertEquals("overridePersistenceManager", cacheConfig.getPersistenceManager());
+ assertEquals("overrideReplicationIsPassivation", cacheConfig.getReplicationIsPassivation());
+ assertEquals("overrideValue", cacheConfig.getValue());
+ }
+}
Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml 2008-08-28 13:54:35 UTC (rev 77598)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/AnnotationEjb3_testXmlMerge.xml 2008-08-28 14:13:03 UTC (rev 77599)
@@ -11,6 +11,14 @@
<session>
<ejb-name>TargetBean</ejb-name>
<ejb-class>org.jboss.test.metadata.annotation.ejb3.runas.TargetBean</ejb-class>
+ <remove-method>
+ <bean-method>
+ <method-name>remove</method-name>
+ </bean-method>
+ <!-- specify it in annotation
+ <retain-if-exception>true</retain-if-exception>
+ -->
+ </remove-method>
</session>
</enterprise-beans>
</ejb-jar>
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/ejb-jar.xml 2008-08-28 14:13:03 UTC (rev 77599)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ metadata-complete="false"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+ version="3.0">
+ <enterprise-beans>
+ <session>
+ <ejb-name>RemoveBean</ejb-name>
+ <session-type>Stateful</session-type>
+ <remove-method>
+ <bean-method>
+ <method-name>retain</method-name>
+ </bean-method>
+ <!-- specify it in annotation
+ <retain-if-exception>true</retain-if-exception>
+ -->
+ </remove-method>
+ <remove-method>
+ <bean-method>
+ <method-name>remove2</method-name>
+ </bean-method>
+ <retain-if-exception>false</retain-if-exception>
+ </remove-method>
+ <transaction-type>Container</transaction-type>
+ <security-identity>
+ <use-caller-identity/>
+ </security-identity>
+ </session>
+ </enterprise-beans>
+</ejb-jar>
\ No newline at end of file
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/jboss.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/jboss.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/jbmeta98/jboss.xml 2008-08-28 14:13:03 UTC (rev 77599)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee
+ http://www.jboss.org/j2ee/schema/jboss_5_0.xsd" version="3.0">
+ <unauthenticated-principal>guest</unauthenticated-principal>
+ <enterprise-beans>
+ <session>
+ <ejb-name>RemoveBean</ejb-name>
+ <jndi-name>stateful_remove_override_RemoveBean</jndi-name>
+ <home-jndi-name>stateful_remove_override_RemoveBean</home-jndi-name>
+ <call-by-value>true</call-by-value>
+ </session>
+ </enterprise-beans>
+</jboss>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list