[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