[jboss-cvs] JBossAS SVN: r76430 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/web and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 29 14:25:46 EDT 2008
Author: emuckenhuber
Date: 2008-07-29 14:25:46 -0400 (Tue, 29 Jul 2008)
New Revision: 76430
Added:
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/SimpleServlet.java
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebComponentProcessor.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java
Log:
[JBMETA-85]
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebComponentProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebComponentProcessor.java 2008-07-29 17:46:34 UTC (rev 76429)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebComponentProcessor.java 2008-07-29 18:25:46 UTC (rev 76430)
@@ -55,10 +55,15 @@
{
super.process(metaData, type);
- EnvironmentRefsGroupMetaData env = new EnvironmentRefsGroupMetaData();
+ //
+ EnvironmentRefsGroupMetaData env = metaData.getJndiEnvironmentRefsGroup();
+ if(env == null)
+ {
+ env = new EnvironmentRefsGroupMetaData();
+ metaData.setJndiEnvironmentRefsGroup(env);
+ }
super.process(env, type);
- metaData.setJndiEnvironmentRefsGroup(env);
-
+
// @RunAs
ServletsMetaData servlets = metaData.getServlets();
if(servlets == null)
@@ -67,6 +72,7 @@
metaData.setServlets(servlets);
}
super.processClass(servlets, type);
+
// @DeclareRoles
SecurityRolesMetaData securityRoles = metaData.getSecurityRoles();
if(securityRoles == null)
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java 2008-07-29 17:46:34 UTC (rev 76429)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java 2008-07-29 18:25:46 UTC (rev 76430)
@@ -70,6 +70,7 @@
import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.metadata.web.spec.Web25MetaData;
import org.jboss.metadata.web.spec.WebMetaData;
+import org.jboss.test.metadata.annotation.ejb3.MyStateful21;
import org.jboss.test.metadata.annotation.ejb3.MyStatelessLocal;
import org.jboss.test.metadata.annotation.ws.TestEndpoint;
import org.jboss.test.metadata.annotation.ws.TestEndpointService;
@@ -93,7 +94,7 @@
{
super(name);
}
-
+
public static SchemaBindingResolver initResolver()
{
DefaultSchemaResolver resolver = new DefaultSchemaResolver();
@@ -171,28 +172,29 @@
MessageDestinationReferenceMetaData mailQueue = msgRefs.get("mailQueue");
assertNotNull(mailQueue);
assertEquals("javax.jms.Queue", mailQueue.getType());
-
+
// WebServiceRef(s)
ServiceReferencesMetaData serviceRefs = env.getServiceReferences();
assertNotNull(serviceRefs);
assertEquals(5, serviceRefs.size());
-
+
ServiceReferenceMetaData serviceRef1 = serviceRefs.get("service2");
assertNotNull(serviceRef1);
assertEquals(TestEndpointService.class.getName(), serviceRef1.getServiceInterface());
assertEquals(MyServlet.class.getName(), serviceRef1.getServiceRefType());
assertNull(serviceRef1.getInjectionTargets());
-
+
ServiceReferenceMetaData serviceRef2 = serviceRefs.get("port1");
assertNotNull(serviceRef2);
assertEquals(TestEndpointService.class.getName(), serviceRef2.getServiceInterface());
assertEquals(TestEndpoint.class.getName(), serviceRef2.getServiceRefType());
assertNull(serviceRef2.getInjectionTargets());
-
- ServiceReferenceMetaData serviceRef3 = serviceRefs.get("org.jboss.test.metadata.annotation.web.MyServlet/service");
+
+ ServiceReferenceMetaData serviceRef3 = serviceRefs
+ .get("org.jboss.test.metadata.annotation.web.MyServlet/service");
assertNotNull(serviceRef3);
assertEquals(MyServlet.class.getDeclaredField("service"), serviceRef3.getAnnotatedElement());
-
+
assertNull(serviceRef3.getServiceInterface());
assertEquals(TestEndpointService.class.getName(), serviceRef3.getServiceRefType());
//InjectionTarget on a FIELD
@@ -203,7 +205,7 @@
injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
injectionTarget.setInjectionTargetName("service");
assertTrue(injectionTargets3.contains(injectionTarget));
-
+
ServiceReferenceMetaData serviceRef4 = serviceRefs.get(MyServlet.class.getName() + "/endpoint");
assertNotNull(serviceRef4);
assertEquals(MyServlet.class.getDeclaredField("endpoint"), serviceRef4.getAnnotatedElement());
@@ -217,7 +219,7 @@
injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
injectionTarget.setInjectionTargetName("endpoint");
assertTrue(injectionTargets4.contains(injectionTarget));
-
+
ServiceReferenceMetaData serviceRef5 = serviceRefs.get(MyServlet.class.getName() + "/anotherWebRef");
assertNotNull(serviceRef5);
assertNull(serviceRef5.getServiceInterface());
@@ -230,19 +232,15 @@
injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
injectionTarget.setInjectionTargetName("setAnotherWebRef");
assertTrue(injectionTargets5.contains(injectionTarget));
-
-
-
+
}
- public void testAnnotationMergedViewWithNoXml()
- throws Exception
+ public void testAnnotationMergedViewWithNoXml() throws Exception
{
- Class<?>[] webClasses = {
- MyServlet.class
- };
+ Class<?>[] webClasses =
+ {MyServlet.class};
List<Class<?>> classes = Arrays.asList(webClasses);
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
Web25MetaDataCreator creator = new Web25MetaDataCreator(finder);
@@ -279,22 +277,21 @@
// @PreDestroy
assertEquals("tearDown", metaData.getPreDestroys().get(0).getMethodName());
}
-
+
public void testAnnotationRead() throws Exception
{
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
-
- Class<?>[] webClasses = {
- MyServlet.class
- };
+
+ Class<?>[] webClasses =
+ {MyServlet.class};
List<Class<?>> classes = Arrays.asList(webClasses);
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
enableTrace("org.jboss.metadata.annotation.creator");
Web25MetaDataCreator creator = new Web25MetaDataCreator(finder);
-
+
Web25MetaData metaData = creator.create(classes);
-
+
assertTrue(metaData.is25());
assertEquals("2.5", metaData.getVersion());
@@ -318,7 +315,7 @@
assertNotNull(role2);
assertEquals("Role2", role2.getRoleName());
}
-
+
/**
* Annotation metadata merged into web spec meta data and then
* JBoss Meta Data is merged
@@ -328,49 +325,47 @@
{
//Create the annotation web metadata
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
- Class<?>[] webClasses = {
- MyServlet.class
- };
+ Class<?>[] webClasses =
+ {MyServlet.class};
List<Class<?>> classes = Arrays.asList(webClasses);
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
enableTrace("org.jboss.metadata.annotation.creator");
Web25MetaDataCreator creator = new Web25MetaDataCreator(finder);
-
+
Web25MetaData annotation = creator.create(classes);
-
- assertTrue(annotation.is25());
-
+
+ assertTrue(annotation.is25());
+
//Now create the web meta data
WebMetaData xml = unmarshal(WebMetaData.class);
-
+
WebMetaData merged = new WebMetaData();
//Merge the annotation and xml
AnnotationMergedView.merge(merged, xml, annotation);
-
+
//Assert the run as role
ServletMetaData servletMetaData = merged.getServlets().get("MyServlet");
assertEquals("InternalUser", servletMetaData.getRunAs().getRoleName());
-
+
//Create the JBossWebMetaData
- JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml",
- JBossWebMetaData.class, null);
-
+ JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml", JBossWebMetaData.class, null);
+
//Let us merge the merged spec metadata with the jbossweb metadata
JBossWebMetaData mergedJBossWebMD = new JBossWebMetaData();
mergedJBossWebMD.merge(jbossWMD, merged);
-
+
//Assert the run as role
JBossServletMetaData jbossServletMetaData = mergedJBossWebMD.getServlets().get("MyServlet");
assertEquals("InternalUser", jbossServletMetaData.getRunAs().getRoleName());
- assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
-
+ assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
+
// @PostConstruct
assertEquals("setUp", merged.getPostConstructs().get(0).getMethodName());
// @PreDestroy
assertEquals("tearDown", merged.getPreDestroys().get(0).getMethodName());
- }
-
+ }
+
/**
* Web Meta Data is merged into JBossWebMetaData. Finally
* AnnotationMetaData is merged with these to yield a final
@@ -381,55 +376,75 @@
{
//Create the annotation web metadata
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
- Class<?>[] webClasses = {
- MyServlet.class
- };
+ Class<?>[] webClasses =
+ {MyServlet.class};
List<Class<?>> classes = Arrays.asList(webClasses);
- System.out.println("Processing classes: "+classes);
+ System.out.println("Processing classes: " + classes);
enableTrace("org.jboss.metadata.annotation.creator");
Web25MetaDataCreator creator = new Web25MetaDataCreator(finder);
-
+
Web25MetaData annotation = creator.create(classes);
-
- assertTrue(annotation.is25());
-
+
+ assertTrue(annotation.is25());
+
//Now create the web meta data
- WebMetaData xml = unmarshal("AnnotationWeb_testAnnotationXML.xml",
- WebMetaData.class);
-
+ WebMetaData xml = unmarshal("AnnotationWeb_testAnnotationXML.xml", WebMetaData.class);
+
//Create the JBossWebMetaData
- JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml",
- JBossWebMetaData.class);
-
+ JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml", JBossWebMetaData.class);
+
//Let us merge the merged spec metadata with the jbossweb metadata
JBossWebMetaData mergedJBossWebMD = new JBossWebMetaData();
mergedJBossWebMD.merge(jbossWMD, xml);
-
-
+
//Assert the run as role
assertTrue(mergedJBossWebMD.getRunAsIdentity("MyServlet").getRoleName().startsWith("PLACEHOLDER"));
-
+
WebMetaData merged = new WebMetaData();
//Merge the annotation and xml
AnnotationMergedView.merge(merged, xml, annotation);
-
+
JBossWebMetaData newMerged = new JBossWebMetaData();
newMerged.merge(mergedJBossWebMD, merged);
-
+
//Assert the run as role
JBossServletMetaData jbossServletMetaData = newMerged.getServlets().get("MyServlet");
assertEquals("InternalUser", jbossServletMetaData.getRunAs().getRoleName());
- assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
-
+ assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
+
// @PostConstruct
assertEquals("setUp", merged.getPostConstructs().get(0).getMethodName());
// @PreDestroy
assertEquals("tearDown", merged.getPreDestroys().get(0).getMethodName());
-
+
assertAnnotationContext(creator.getAnnotationContext());
}
-
+
+ public void testSimpleServlet()
+ {
+ AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+ Class<?>[] webClasses = {SimpleServlet.class, MyServlet.class};
+ List<Class<?>> classes = Arrays.asList(webClasses);
+
+ enableTrace("org.jboss.metadata.annotation.creator");
+ Web25MetaDataCreator creator = new Web25MetaDataCreator(finder);
+
+ Web25MetaData annotation = creator.create(classes);
+
+ assertTrue(annotation.is25());
+ EnvironmentRefsGroupMetaData envRefs = annotation.getJndiEnvironmentRefsGroup();
+ assertNotNull(envRefs);
+
+ AnnotatedEJBReferencesMetaData annotatedEnvRefs = envRefs.getAnnotatedEjbReferences();
+ assertNotNull(annotatedEnvRefs);
+ assertEquals(6, annotatedEnvRefs.size());
+
+ assertNotNull(envRefs.getResourceEnvironmentReferences());
+ assertEquals(2, envRefs.getResourceEnvironmentReferences().size());
+
+ }
+
private void assertAnnotationContext(AnnotationContext context)
{
Collection<Class<? extends Annotation>> typeAnnotations = new HashSet<Class<? extends Annotation>>();
@@ -442,10 +457,10 @@
typeAnnotations.add(PersistenceContext.class);
typeAnnotations.add(WebServiceRef.class);
typeAnnotations.add(WebServiceRefs.class);
-
+
// Assert Type annotations
assertAnnotations(typeAnnotations, context.getTypeAnnotations());
-
+
Collection<Class<? extends Annotation>> methodAnnotations = new HashSet<Class<? extends Annotation>>();
methodAnnotations.add(PreDestroy.class);
methodAnnotations.add(PostConstruct.class);
@@ -453,21 +468,22 @@
methodAnnotations.add(EJB.class);
methodAnnotations.add(PersistenceContext.class);
methodAnnotations.add(WebServiceRef.class);
-
+
// Assert Method annotations
assertAnnotations(methodAnnotations, context.getMethodAnnotations());
-
+
Collection<Class<? extends Annotation>> fieldAnnotations = new HashSet<Class<? extends Annotation>>();
fieldAnnotations.add(Resource.class);
fieldAnnotations.add(EJB.class);
fieldAnnotations.add(PersistenceContext.class);
fieldAnnotations.add(WebServiceRef.class);
-
+
// Assert Field Annotations
assertAnnotations(fieldAnnotations, context.getFieldAnnotations());
}
-
- private void assertAnnotations(Collection<Class<? extends Annotation>> expected, Collection<Class<? extends Annotation>> actual)
+
+ private void assertAnnotations(Collection<Class<? extends Annotation>> expected,
+ Collection<Class<? extends Annotation>> actual)
{
assertEquals(expected.size(), actual.size());
assertTrue(actual.containsAll(expected));
Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/SimpleServlet.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/SimpleServlet.java (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/web/SimpleServlet.java 2008-07-29 18:25:46 UTC (rev 76430)
@@ -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.web;
+
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.transaction.UserTransaction;
+
+import org.jboss.test.metadata.annotation.ejb3.MyStatelessLocal;
+import org.jboss.test.metadata.jbmeta42.MyStatelessRemote;
+
+/**
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public class SimpleServlet
+{
+ @Resource(name="ut")
+ private UserTransaction ut;
+
+ @EJB(name="localBean")
+ private MyStatelessLocal localBean;
+
+ @EJB(name="remoteBean")
+ private MyStatelessRemote remoteBean;
+
+
+}
+
More information about the jboss-cvs-commits
mailing list