[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