[jboss-cvs] JBossAS SVN: r67548 - in projects/metadata/trunk/src: test/java/org/jboss/test/metadata/annotation/ejb3/runas and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 28 03:50:38 EST 2007


Author: scott.stark at jboss.org
Date: 2007-11-28 03:50:38 -0500 (Wed, 28 Nov 2007)
New Revision: 67548

Added:
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediateBean.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/Target.java
Removed:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java
Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediate.java
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/RunAsUnitTestCase.java
   projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml
Log:
Separate the resource name from the injection target name

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/AbstractResourceProcessor.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -22,7 +22,6 @@
 package org.jboss.metadata.annotation.creator;
 
 import java.lang.reflect.AnnotatedElement;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -33,8 +32,6 @@
 import org.jboss.logging.Logger;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
 import org.jboss.metadata.javaee.spec.DescriptionGroupMetaData;
-import org.jboss.metadata.javaee.spec.DescriptionImpl;
-import org.jboss.metadata.javaee.spec.DescriptionsImpl;
 import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
 import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
@@ -241,6 +238,7 @@
     * @return
     */
    protected abstract String getName(E element);
+   protected abstract String getInjectionName(E element);
    protected abstract String getType(E element);
    protected abstract String getDeclaringClass(E element);
 
@@ -273,7 +271,8 @@
       else
          ref.setType(getType(element));
 
-      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element);
+      String injectionName = getInjectionName(element);
+      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(injectionName, element);
       if(injectionTargets != null)
          ref.setInjectionTargets(injectionTargets);
 
@@ -296,7 +295,8 @@
          entry.setType(getType(element));
       if(annotation.mappedName().length() > 0)
          entry.setValue(annotation.mappedName());
-      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element);
+      String injectionName = getInjectionName(element);
+      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(injectionName, element);
       if(injectionTargets != null)
          entry.setInjectionTargets(injectionTargets);
 
@@ -320,7 +320,8 @@
          ref.setServiceRefType(annotation.type().getName());
       else
          ref.setServiceRefType(getType(element));
-      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element);
+      String injectionName = getInjectionName(element);
+      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(injectionName, element);
       if(injectionTargets != null)
          ref.setInjectionTargets(injectionTargets);
 
@@ -343,7 +344,8 @@
       Descriptions descriptions = ProcessorUtils.getDescription(annotation.description());
       if(descriptions != null)
          ref.setDescriptions(descriptions);
-      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element);
+      String injectionName = getInjectionName(element);
+      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(injectionName, element);
       if(injectionTargets != null)
          ref.setInjectionTargets(injectionTargets);
 
@@ -366,7 +368,9 @@
       Descriptions descriptions = ProcessorUtils.getDescription(annotation.description());
       if(descriptions != null)
          ref.setDescriptions(descriptions);
-      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(name, element);
+
+      String injectionName = getInjectionName(element);
+      Set<ResourceInjectionTargetMetaData> injectionTargets = ProcessorUtils.getInjectionTargets(injectionName, element);
       if(injectionTargets != null)
          ref.setInjectionTargets(injectionTargets);
 

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceClassProcessor.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -59,6 +59,11 @@
       return name;
    }
    @Override
+   protected String getInjectionName(Class element)
+   {
+      return null;
+   }
+   @Override
    protected String getType(Class element)
    {
       return element.getName();

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceFieldProcessor.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -51,6 +51,11 @@
       return name;
    }
    @Override
+   protected String getInjectionName(Field element)
+   {
+      return element.getName();
+   }
+   @Override
    protected String getType(Field element)
    {
       return element.getType().getName();

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceMethodProcessor.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -59,6 +59,11 @@
       return name;
    }
    @Override
+   protected String getInjectionName(Method element)
+   {
+      return element.getName();
+   }
+   @Override
    protected String getType(Method element)
    {
       return element.getParameterTypes()[0].getName();

Deleted: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ResourceProcessor.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -1,31 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt 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.metadata.annotation.creator;
-
-/**
- * @author Scott.Stark at jboss.org
- * @version $Revision$
- */
-public class ResourceProcessor
-{
-
-}

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediate.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediate.java	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediate.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -28,9 +28,16 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
- at Stateless
- at RunAs("InternalUser")
-public class InterMediate
+public interface InterMediate
 {
+   public void initLogging(java.util.Properties p);
+   public boolean IsCallerB1(String caller);
+   public boolean IsCallerB2(String caller, java.util.Properties p);
+   public boolean InRole(String role,java.util.Properties p);
+   public boolean EjbNotAuthz(java.util.Properties p);
+   public boolean EjbIsAuthz(java.util.Properties p);
+   public boolean EjbSecRoleRef(String role, java.util.Properties p);
+   public boolean uncheckedTest(java.util.Properties p);
+   public boolean excludeTest(java.util.Properties p);
+}
 
-}

Copied: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediateBean.java (from rev 67530, projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediate.java)
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediateBean.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/InterMediateBean.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -0,0 +1,134 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.ejb3.runas;
+
+import javax.annotation.security.DeclareRoles;
+import javax.annotation.security.RolesAllowed;
+import javax.annotation.security.RunAs;
+import javax.ejb.TransactionManagement;
+import javax.ejb.TransactionManagementType;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import javax.ejb.EJBs;
+import javax.ejb.EJB;
+import javax.annotation.Resource;
+import javax.ejb.Stateless;
+import javax.ejb.SessionContext;
+import javax.ejb.Remote;
+
+ at Stateless(name="InterMediateBean")
+ at Remote({InterMediate.class})
+// Set EJB References
+ at EJBs(
+{
+   @EJB(name="TargetBean", beanName="TargetBean",
+          beanInterface=Target.class)
+})
+ at TransactionManagement(TransactionManagementType.CONTAINER)
+ at DeclareRoles({"Administrator", "Employee", "Manager"})
+ at RunAs("InternalUser")
+ at RolesAllowed({"Administrator", "Employee", "Manager"})
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class InterMediateBean implements InterMediate
+{
+    // Lookup TargetBean and save the reference in ejb1
+    @EJB(beanName="TargetBean")
+    private Target ejb1=null;
+
+    private SessionContext sctx = null;
+
+    private static final String UserNameProp     = "user";
+    private static final String UserPasswordProp = "password";
+    private String username = "";
+    private String password = "";
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public void initLogging(java.util.Properties p)
+    {
+    }
+
+    @Resource
+    public void setSessionContext(SessionContext sc) 
+    {
+        sctx = sc;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean IsCallerB1(String caller)
+    {
+       return true;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean IsCallerB2(String caller, java.util.Properties p)
+    {
+       return true;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean InRole(String role, java.util.Properties p)
+    {
+       return true;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean EjbNotAuthz(java.util.Properties p)
+    {
+       return true;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean EjbIsAuthz(java.util.Properties p)
+    {
+         return false;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean EjbSecRoleRef(String role, java.util.Properties p)
+    {
+         return false;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean uncheckedTest(java.util.Properties p)
+    {
+       return false;
+    }
+
+    @RolesAllowed({"Administrator", "Employee", "Manager"})
+    @TransactionAttribute(TransactionAttributeType.NEVER)
+    public boolean excludeTest(java.util.Properties p)
+    {
+       return false;
+    }
+}

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/RunAsUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/RunAsUnitTestCase.java	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/RunAsUnitTestCase.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -25,6 +25,7 @@
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.Set;
 
 import org.jboss.metadata.annotation.creator.ejb.EjbJar30Creator;
 import org.jboss.metadata.annotation.finder.AnnotationFinder;
@@ -38,6 +39,11 @@
 import org.jboss.metadata.ejb.spec.EjbJar21MetaData;
 import org.jboss.metadata.ejb.spec.EjbJar30MetaData;
 import org.jboss.metadata.ejb.spec.EjbJarMetaData;
+import org.jboss.metadata.ejb.spec.SecurityIdentityMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
 import org.jboss.metadata.plugins.loader.memory.MemoryMetaDataLoader;
 import org.jboss.metadata.plugins.repository.basic.BasicMetaDataRepository;
 import org.jboss.metadata.spi.MetaData;
@@ -86,7 +92,8 @@
       throws Exception
    {
       Class<?>[] beanClasses = {
-            InterMediate.class
+            InterMediateBean.class,
+            TargetBean.class
       };
       List<Class<?>> classes = Arrays.asList(beanClasses);
       AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
@@ -107,6 +114,17 @@
       // Validate the proxy view
       JBossEnterpriseBeanMetaData InterMediateBean = mergedData.getEnterpriseBean("InterMediateBean");
       assertNotNull(InterMediateBean);
+      SecurityIdentityMetaData runAs = InterMediateBean.getSecurityIdentity();
+      assertEquals("InternalUser", runAs.getRunAs().getRoleName());
+
+      ResourceEnvironmentReferencesMetaData resRefs = InterMediateBean.getResourceEnvironmentReferences();
+      assertNotNull(resRefs);
+      ResourceEnvironmentReferenceMetaData ref = resRefs.get("sessionContext");
+      assertNotNull(ref);
+      Set<ResourceInjectionTargetMetaData> targets = ref.getInjectionTargets();
+      assertNotNull(targets);
+      ResourceInjectionTargetMetaData target = targets.iterator().next();
+      assertEquals("setSessionContext", target.getInjectionTargetName());
    }
 
 }

Added: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/Target.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/Target.java	                        (rev 0)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/Target.java	2007-11-28 08:50:38 UTC (rev 67548)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt 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.ejb3.runas;
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface Target
+{
+   public void initLogging(java.util.Properties p);
+   public boolean IsCaller(String caller);
+   public boolean EjbNotAuthz();
+   public boolean EjbIsAuthz();
+   public boolean EjbSecRoleRef(String role);
+   public boolean uncheckedTest();
+   public boolean excludeTest();
+}


Property changes on: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/ejb3/runas/Target.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + native

Modified: projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml
===================================================================
--- projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml	2007-11-28 08:46:29 UTC (rev 67547)
+++ projects/metadata/trunk/src/test/resources/org/jboss/test/metadata/annotation/ejb3/runas/ejb-jar.xml	2007-11-28 08:50:38 UTC (rev 67548)
@@ -6,7 +6,7 @@
     <enterprise-beans>
         <session>
             <ejb-name>InterMediateBean</ejb-name>
-            <ejb-class>org.jboss.test.metadata.annotation.ejb3.runas.InterMediate</ejb-class>
+            <ejb-class>org.jboss.test.metadata.annotation.ejb3.runas.InterMediateBean</ejb-class>
         </session>
         <session>
             <ejb-name>TargetBean</ejb-name>




More information about the jboss-cvs-commits mailing list