User: schulze
Date: 00/10/23 16:34:36
Modified: src/main/org/jboss/metadata BeanMetaData.java
Log:
method-permission in ejb-jar.xml fixed
(if one method was in more then one method-permission tags listed, only the rules of
the first method-permission section were applied)
could need some performance tuning - but the result is cached anyway.
Revision Changes Path
1.10 +14 -4 jboss/src/main/org/jboss/metadata/BeanMetaData.java
Index: BeanMetaData.java
===================================================================
RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/metadata/BeanMetaData.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- BeanMetaData.java 2000/09/09 02:46:21 1.9
+++ BeanMetaData.java 2000/10/23 23:34:36 1.10
@@ -9,8 +9,11 @@
import java.util.Iterator;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Set;
+import java.util.Collection;
+
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -21,7 +24,7 @@
*
* @see <related>
* @author <a href="mailto:[EMAIL PROTECTED]">Sebastien Alborini</a>
- * @version $Revision: 1.9 $
+ * @version $Revision: 1.10 $
*/
public abstract class BeanMetaData extends MetaData {
// Constants -----------------------------------------------------
@@ -132,14 +135,21 @@
return TX_UNKNOWN;
}
+ // d.s.> PERFORMANCE !!!
public Set getMethodPermissions(String methodName, Class[] params, boolean
remote) {
- Iterator iterator = getPermissionMethods();
+ Set result = new HashSet ();
+ Iterator iterator = getPermissionMethods();
while (iterator.hasNext()) {
MethodMetaData m = (MethodMetaData)iterator.next();
- if (m.patternMatches(methodName, params, remote)) return
m.getRoles();
+ if (m.patternMatches(methodName, params, remote))
+ {
+ Iterator i = m.getRoles().iterator ();
+ while (i.hasNext ())
+ result.add (i.next ());
+ }
}
// not found
- return null;
+ return result;
}
public void importEjbJarXml(Element element) throws DeploymentException {