[jboss-cvs] JBossAS SVN: r114764 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/annotation/creator/ejb and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Mar 21 13:52:45 EDT 2014
Author: wolfc
Date: 2014-03-21 13:52:45 -0400 (Fri, 21 Mar 2014)
New Revision: 114764
Added:
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java
projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java
projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java
Log:
JBMETA-374: process @DeclareRoles into security-role-ref
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java 2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/DeclareRolesProcessor.java 2014-03-21 17:52:45 UTC (rev 114764)
@@ -37,7 +37,9 @@
*
* @author Scott.Stark at jboss.org
* @version $Revision$
+ * @deprecated see JBPAPP-11037
*/
+ at Deprecated
public class DeclareRolesProcessor
extends AbstractFinderUser
implements Processor<SecurityRolesMetaData, Class<?>>
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractDeclareRolesProcessor.java 2014-03-21 17:52:45 UTC (rev 114764)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright (c) 2014, Red Hat, Inc., 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.metadata.annotation.creator.ejb;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+
+import javax.annotation.security.DeclareRoles;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+/**
+ * EJB 3.0 17.2.5.3
+ *
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public abstract class AbstractDeclareRolesProcessor extends AbstractFinderUser
+{
+ public AbstractDeclareRolesProcessor(final AnnotationFinder<AnnotatedElement> finder)
+ {
+ super(finder);
+ }
+
+ protected void process(final SecurityRoleRefsMetaData metaData, final DeclareRoles declareRoles)
+ {
+ for (String roleName : declareRoles.value())
+ {
+ SecurityRoleRefMetaData securityRoleRef = new SecurityRoleRefMetaData();
+ securityRoleRef.setRoleName(roleName);
+ metaData.add(securityRoleRef);
+ }
+ }
+
+ public Collection<Class<? extends Annotation>> getAnnotationTypes()
+ {
+ return ProcessorUtils.createAnnotationSet(DeclareRoles.class);
+ }
+}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java 2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/AbstractSessionBeanProcessor.java 2014-03-21 17:52:45 UTC (rev 114764)
@@ -40,7 +40,7 @@
* session bean meta data.
*
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
- * @version $Revision: $
+ * @version $Revision$
*/
public abstract class AbstractSessionBeanProcessor extends AbstractEnterpriseBeanProcessor<SessionBeanMetaData> implements Creator<Class<?>, SessionBeanMetaData>, Processor<EjbJar3xMetaData, Class<?>>
{
@@ -49,6 +49,7 @@
{
super(finder);
//
+ addTypeProcessor(new DeclareRolesProcessor(finder));
addTypeProcessor(new LocalProcessor(finder));
addTypeProcessor(new LocalHomeProcessor(finder));
addTypeProcessor(new RemoteProcessor(finder));
@@ -93,5 +94,5 @@
return bean;
}
-
+
}
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/DeclareRolesProcessor.java 2014-03-21 17:52:45 UTC (rev 114764)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright (c) 2014, Red Hat, Inc., 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.metadata.annotation.creator.ejb;
+
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.spec.SessionBeanMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+
+import javax.annotation.security.DeclareRoles;
+import java.lang.reflect.AnnotatedElement;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class DeclareRolesProcessor extends AbstractDeclareRolesProcessor
+ implements Processor<SessionBeanMetaData, Class<?>>
+{
+ public DeclareRolesProcessor(final AnnotationFinder<AnnotatedElement> finder)
+ {
+ super(finder);
+ }
+
+ public void process(final SessionBeanMetaData metaData, final Class<?> type)
+ {
+ DeclareRoles declareRoles = finder.getAnnotation(type, DeclareRoles.class);
+ if(declareRoles == null)
+ return;
+ SecurityRoleRefsMetaData securityRoleRefs = new SecurityRoleRefsMetaData();
+ super.process(securityRoleRefs, declareRoles);
+ metaData.setSecurityRoleRefs(securityRoleRefs);
+ }
+}
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java 2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/AbstractSessionBeanProcessor.java 2014-03-21 17:52:45 UTC (rev 114764)
@@ -28,6 +28,7 @@
import org.jboss.metadata.annotation.creator.Creator;
import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ejb.AbstractDeclareRolesProcessor;
import org.jboss.metadata.annotation.finder.AnnotationFinder;
import org.jboss.metadata.ejb.jboss.JBossMetaData;
import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
@@ -51,6 +52,7 @@
{
super(finder);
+ addTypeProcessor(new DeclareRolesProcessor(finder));
addTypeProcessor(new LocalProcessor(finder));
addTypeProcessor(new LocalHomeProcessor(finder));
addTypeProcessor(new RemoteProcessor(finder));
Added: projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java (rev 0)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/annotation/creator/ejb/jboss/DeclareRolesProcessor.java 2014-03-21 17:52:45 UTC (rev 114764)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright (c) 2014, Red Hat, Inc., 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.metadata.annotation.creator.ejb.jboss;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ejb.AbstractDeclareRolesProcessor;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+
+import javax.annotation.security.DeclareRoles;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.Collection;
+
+/**
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class DeclareRolesProcessor extends AbstractDeclareRolesProcessor
+ implements Processor<JBossSessionBeanMetaData, Class<?>>
+{
+ protected DeclareRolesProcessor(final AnnotationFinder<AnnotatedElement> finder)
+ {
+ super(finder);
+ }
+
+ public void process(final JBossSessionBeanMetaData metaData, final Class<?> type)
+ {
+ DeclareRoles declareRoles = finder.getAnnotation(type, DeclareRoles.class);
+ if(declareRoles == null)
+ return;
+ SecurityRoleRefsMetaData securityRoleRefs = new SecurityRoleRefsMetaData();
+ super.process(securityRoleRefs, declareRoles);
+ metaData.setSecurityRoleRefs(securityRoleRefs);
+ }
+}
Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java 2014-03-21 11:30:38 UTC (rev 114763)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/annotation/jbmeta99/PostXmlProcessingUnitTestCase.java 2014-03-21 17:52:45 UTC (rev 114764)
@@ -74,6 +74,7 @@
import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
import org.jboss.metadata.javaee.spec.RunAsMetaData;
import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
@@ -461,6 +462,11 @@
assertEquals("stack", remoteBinding.getInterceptorStack());
assertEquals("factory", remoteBinding.getProxyFactory());
assertEquals("RemoteBinding", remoteBinding.getJndiName());
+
+ // JBMETA-374
+ assertEquals(2, bean.getSecurityRoleRefs().size());
+ assertNotNull(bean.getSecurityRoleRefs().get("Role1"));
+ assertNotNull(bean.getSecurityRoleRefs().get("Role2"));
}
private void assertMyMDB(IEnterpriseBeanMetaData enterpriseBean)
More information about the jboss-cvs-commits
mailing list