[jboss-cvs] JBossAS SVN: r76290 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/client and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jul 28 05:20:13 EDT 2008
Author: emuckenhuber
Date: 2008-07-28 05:20:13 -0400 (Mon, 28 Jul 2008)
New Revision: 76290
Added:
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml
projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
Log:
[JBMETA-84] merge annotated references.
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java 2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AnnotatedEJBReferencesMetaData.java 2008-07-28 09:20:13 UTC (rev 76290)
@@ -58,6 +58,42 @@
AnnotatedEJBReferencesMetaData merged = new AnnotatedEJBReferencesMetaData();
return JavaEEMetaDataUtil.merge(merged, overriden, override, "@EJB", overridenFile, overrideFile, false);
}
+
+ /**
+ * Merge the annotated ejb refs with a xml desriptor
+ *
+ * @param override the override references
+ * @param original the original references
+ * @return the merged references.
+ */
+ public static AnnotatedEJBReferencesMetaData merge(EJBReferencesMetaData override, AnnotatedEJBReferencesMetaData original)
+ {
+ if(override == null)
+ return original;
+
+ if(original == null)
+ return null;
+
+ AnnotatedEJBReferencesMetaData merged = new AnnotatedEJBReferencesMetaData();
+ for(AnnotatedEJBReferenceMetaData ref : original)
+ {
+ EJBReferenceMetaData ejbRef = override.get(ref.getKey());
+ if(ejbRef != null)
+ {
+ AnnotatedEJBReferenceMetaData newRef = new AnnotatedEJBReferenceMetaData();
+ newRef.merge(ejbRef, ref);
+ if(ref.getBeanInterface() != null)
+ newRef.setBeanInterface(ref.getBeanInterface());
+
+ merged.add(newRef);
+ }
+ else
+ {
+ merged.add(ref);
+ }
+ }
+ return merged;
+ }
/**
* Create a new EJBLocalReferencesMetaData.
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java 2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RemoteEnvironmentRefsGroupMetaData.java 2008-07-28 09:20:13 UTC (rev 76290)
@@ -492,8 +492,10 @@
this.persistenceUnitRefs = new PersistenceUnitReferencesMetaData();
this.persistenceUnitRefs.merge(jbossPersistenceUnitRefs, persistenceUnitRefs);
}
-
- if(annotatedEjbRefs != null)
- this.setAnnotatedEjbReferences(annotatedEjbRefs);
+
+ // Fill the annotated refs with the xml descriptor
+ AnnotatedEJBReferencesMetaData annotatedRefs = AnnotatedEJBReferencesMetaData.merge(this.getEjbReferences(), annotatedEjbRefs);
+ if(annotatedRefs != null)
+ this.setAnnotatedEjbReferences(annotatedRefs);
}
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java 2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/client/AnnotationClientUnitTestCase.java 2008-07-28 09:20:13 UTC (rev 76290)
@@ -32,8 +32,6 @@
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import javax.annotation.Resources;
-import javax.annotation.security.DeclareRoles;
-import javax.annotation.security.RunAs;
import javax.ejb.EJB;
import javax.ejb.EJBs;
import javax.persistence.PersistenceContext;
@@ -45,6 +43,7 @@
import org.jboss.metadata.annotation.finder.AnnotationFinder;
import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
import org.jboss.metadata.client.jboss.JBossClient5DTDMetaData;
+import org.jboss.metadata.client.jboss.JBossClient5MetaData;
import org.jboss.metadata.client.jboss.JBossClientMetaData;
import org.jboss.metadata.client.spec.AnnotationMergedView;
import org.jboss.metadata.client.spec.ApplicationClient14DTDMetaData;
@@ -53,6 +52,7 @@
import org.jboss.metadata.javaee.jboss.JBossServiceReferenceMetaData;
import org.jboss.metadata.javaee.jboss.JBossServiceReferencesMetaData;
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
@@ -90,6 +90,7 @@
resolver.addClassBindingForLocation("application-client_1_4.xsd", ApplicationClient14MetaData.class);
resolver.addClassBindingForLocation("application-client_5.xsd", ApplicationClient5MetaData.class);
resolver.addClassBindingForLocation("jboss-client_5_0.dtd", JBossClient5DTDMetaData.class);
+ resolver.addClassBindingForLocation("jboss-client_5_0.xsd", JBossClient5MetaData.class);
resolver.addClassBindingForLocation("jboss-client", JBossClient5DTDMetaData.class);
return resolver;
}
@@ -425,4 +426,34 @@
assertEquals(expected.size(), actual.size());
assertTrue(actual.containsAll(expected));
}
+
+ @ScanPackage("org.jboss.test.metadata.annotation.client.basic")
+ public void testAnnotatednEnv() throws Exception
+ {
+ AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+ Collection<Class<?>> classes = PackageScanner.loadClasses();
+ ApplicationClient5MetaDataCreator creator = new ApplicationClient5MetaDataCreator(finder);
+
+ ApplicationClient5MetaData annotatedMetaData = creator.create(classes);
+ ApplicationClient5MetaData specMetaData = super.unmarshal("AnnotationClient_testAnnotatedEnv.xml", ApplicationClient5MetaData.class);
+ JBossClientMetaData metaData = super.unmarshal("JBossAnnotationClient_testAnnotatedEnv.xml", JBossClient5MetaData.class);
+
+ // Create a merged view
+ ApplicationClient5MetaData specMerged = new ApplicationClient5MetaData();
+ AnnotationMergedView.merge(specMerged, specMetaData, annotatedMetaData);
+ specMetaData = specMerged;
+
+ JBossClientMetaData mergedMetaData = new JBossClientMetaData();
+ mergedMetaData.merge(metaData, specMetaData, false);
+
+ assertNotNull(mergedMetaData);
+ AnnotatedEJBReferencesMetaData annotatedRefs = mergedMetaData.getAnnotatedEjbReferences();
+ assertNotNull(annotatedRefs);
+ AnnotatedEJBReferenceMetaData annotatedRef = annotatedRefs.get("ejb/resourceClassBean");
+ assertNotNull(annotatedRef);
+ assertNotNull(annotatedRef.getIgnoreDependency());
+ // The same name for jndi / mappedname
+ assertEquals("test_resourceClasJndiName", annotatedRef.getJndiName());
+ assertEquals("test_resourceClasJndiName", annotatedRef.getMappedName());
+ }
}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java 2008-07-28 09:08:05 UTC (rev 76289)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/ejb/JBossEnterpriseBeanOverrideUnitTestCase.java 2008-07-28 09:20:13 UTC (rev 76290)
@@ -440,8 +440,9 @@
JBossEnvironmentRefsGroupMetaData mergedEnv = (JBossEnvironmentRefsGroupMetaData) merged.getJndiEnvironmentRefsGroup();
assertNotNull(mergedEnv);
- // I am not sure whether it makes sense
- assertTrue(originalEnv.getAnnotatedEjbReferences() == mergedEnv.getAnnotatedEjbReferences());
+ // Simple in here
+ assertNotNull(merged.getAnnotatedEjbReferences());
+
// local refs
localRefs = mergedEnv.getEjbLocalReferences();
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/AnnotationClient_testAnnotatedEnv.xml 2008-07-28 09:20:13 UTC (rev 76290)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application-client version="5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application-client_5.xsd">
+ <ejb-ref>
+ <ejb-ref-name>ejb/resourceClassBean</ejb-ref-name>
+ </ejb-ref>
+</application-client>
Added: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml (rev 0)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/client/JBossAnnotationClient_testAnnotatedEnv.xml 2008-07-28 09:20:13 UTC (rev 76290)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss-client 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.com/xml/ns/javaee/jboss-client_5_0.xsd"
+ version="5.0"
+ id="appclient-test">
+ <jndi-name>standaloneCclient</jndi-name>
+ <ejb-ref>
+ <ejb-ref-name>ejb/resourceClassBean</ejb-ref-name>
+ <jndi-name>test_resourceClasJndiName</jndi-name>
+ <ignore-dependency/>
+ </ejb-ref>
+</jboss-client>
More information about the jboss-cvs-commits
mailing list