You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by yi...@apache.org on 2010/04/21 20:52:17 UTC

svn commit: r936439 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: intercept/ intercept/ejb/ intercept/webbeans/ portable/ proxy/ xml/

Author: yingwang
Date: Wed Apr 21 18:52:16 2010
New Revision: 936439

URL: http://svn.apache.org/viewvc?rev=936439&view=rev
Log:
[OWB-312] Part 2 in core.

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLDefinitionUtil.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLUtil.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorUtil.java Wed Apr 21 18:52:16 2010
@@ -45,6 +45,7 @@ import org.apache.webbeans.exception.Web
 import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.SecurityUtil;
 
 public final class InterceptorUtil
 {
@@ -157,7 +158,7 @@ public final class InterceptorUtil
     public static boolean isBusinessMethodInterceptor(Class<?> clazz)
     {
         Asserts.nullCheckForClass(clazz);
-        Method[] methods = clazz.getDeclaredMethods();
+        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
         for (Method method : methods)
         {
             if (AnnotationUtil.hasMethodAnnotation(method, AroundInvoke.class))
@@ -189,7 +190,7 @@ public final class InterceptorUtil
     public static boolean isLifecycleMethodInterceptor(Class<?> clazz)
     {
         Asserts.nullCheckForClass(clazz);
-        Method[] methods = clazz.getDeclaredMethods();
+        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
         for (Method method : methods)
         {
             if (AnnotationUtil.hasMethodAnnotation(method, PostConstruct.class) || AnnotationUtil.hasMethodAnnotation(method, PreDestroy.class)
@@ -288,7 +289,7 @@ public final class InterceptorUtil
     {
         Asserts.nullCheckForClass(clazz);
         
-        Method[] methods = clazz.getDeclaredMethods();
+        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
         for(Method method : methods)
         {
             if(AnnotationUtil.hasMethodAnnotation(method, Produces.class))
@@ -377,7 +378,7 @@ public final class InterceptorUtil
             throw new WebBeansConfigurationException("Final Simple class with name : " + clazz.getName() + " can not define any InterceptorBindings");
         }
 
-        Method[] methods = clazz.getDeclaredMethods();
+        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
 
         for (Method method : methods)
         {

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InvocationContextImpl.java Wed Apr 21 18:52:16 2010
@@ -29,6 +29,7 @@ import org.apache.webbeans.component.Owb
 import org.apache.webbeans.container.BeanManagerImpl;
 import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.SecurityUtil;
 
 /**
  * Implementation of the {@link InvocationContext} interface.
@@ -197,7 +198,7 @@ public class InvocationContextImpl imple
             
             if (!method.isAccessible())
             {
-                method.setAccessible(true);
+                SecurityUtil.doPrivilegedSetAccessible(method, true);
             }
             
             Object t = intc.createNewInstance(this.target,(CreationalContextImpl<?>)this.creationalContext);
@@ -213,7 +214,7 @@ public class InvocationContextImpl imple
             
             if(!accessible)
             {
-                method.setAccessible(false);
+                SecurityUtil.doPrivilegedSetAccessible(method, false);
             }
 
         }
@@ -224,14 +225,14 @@ public class InvocationContextImpl imple
                 boolean accessible = this.method.isAccessible();
                 if(!accessible)
                 {                
-                    this.method.setAccessible(true);
+                    SecurityUtil.doPrivilegedSetAccessible(method, true);
                 }
                 
                 result = this.method.invoke(target, parameters);
                 
                 if(!accessible)
                 {
-                    this.method.setAccessible(false);   
+                    SecurityUtil.doPrivilegedSetAccessible(method, false);
                 }                
             }
         }
@@ -267,7 +268,7 @@ public class InvocationContextImpl imple
 
             if (!method.isAccessible())
             {
-                method.setAccessible(true);
+                SecurityUtil.doPrivilegedSetAccessible(method, true);                
             }
 
             currentMethod++;

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/WebBeansInterceptorConfig.java Wed Apr 21 18:52:16 2010
@@ -39,6 +39,7 @@ import org.apache.webbeans.exception.Web
 import org.apache.webbeans.intercept.webbeans.WebBeansInterceptor;
 import org.apache.webbeans.logger.WebBeansLogger;
 import org.apache.webbeans.util.AnnotationUtil;
+import org.apache.webbeans.util.SecurityUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
 /**
@@ -272,7 +273,7 @@ public final class WebBeansInterceptorCo
         
         //GE : I added for private, protected etc. methods.
         //Not just for public methods.
-        methods = clazz.getDeclaredMethods();
+        methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
         for(Method m : methods)
         {
             set.add(m);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/ejb/EJBInterceptorConfig.java Wed Apr 21 18:52:16 2010
@@ -28,6 +28,7 @@ import org.apache.webbeans.intercept.Int
 import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.SecurityUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 
 /**
@@ -221,7 +222,7 @@ public final class EJBInterceptorConfig
         // 3- Look bean around invoke
 
         // 1-
-        Method[] methods = clazz.getDeclaredMethods();
+        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(clazz);
 
         for (Method method : methods)
         {

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/webbeans/WebBeansInterceptor.java Wed Apr 21 18:52:16 2010
@@ -51,6 +51,7 @@ import org.apache.webbeans.intercept.Web
 import org.apache.webbeans.logger.WebBeansLogger;
 import org.apache.webbeans.proxy.JavassistProxyFactory;
 import org.apache.webbeans.util.AnnotationUtil;
+import org.apache.webbeans.util.SecurityUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 import org.apache.webbeans.xml.XMLAnnotationTypeManager;
 
@@ -107,7 +108,7 @@ public class WebBeansInterceptor<T> exte
      */
     public void addInterceptorBinding(Class<? extends Annotation> binding, Annotation annot)
     {
-        Method[] methods = binding.getDeclaredMethods();
+        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(binding);
 
         for (Method method : methods)
         {

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedElementFactory.java Wed Apr 21 18:52:16 2010
@@ -23,6 +23,8 @@ import javax.enterprise.inject.spi.Annot
 import javax.enterprise.inject.spi.AnnotatedMethod;
 import javax.enterprise.inject.spi.AnnotatedType;
 
+import org.apache.webbeans.util.SecurityUtil;
+
 /**
  * Factory for {@link Annotated} elements.
  * 
@@ -47,10 +49,9 @@ public final class AnnotatedElementFacto
     {
         AnnotatedTypeImpl<X> annotatedType = new AnnotatedTypeImpl<X>(annotatedClass);
         
-        Field[] fields = annotatedClass.getDeclaredFields();
-        Method[] methods = annotatedClass.getDeclaredMethods();
-        Constructor<X>[] ctxs = (Constructor<X>[])annotatedClass.getDeclaredConstructors();
-        
+        Field[] fields = SecurityUtil.doPrivilegedGetDeclaredFields(annotatedClass);
+        Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(annotatedClass);
+        Constructor<X>[] ctxs = (Constructor<X>[])SecurityUtil.doPrivilegedGetDeclaredConstructors(annotatedClass);
         for(Field f : fields)
         {
             AnnotatedField<X> af = new AnnotatedFieldImpl<X>(f, annotatedType);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java Wed Apr 21 18:52:16 2010
@@ -42,6 +42,7 @@ import org.apache.webbeans.intercept.Int
 import org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler;
 import org.apache.webbeans.intercept.webbeans.WebBeansInterceptor;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.SecurityUtil;
 
 public final class JavassistProxyFactory
 {
@@ -199,7 +200,7 @@ public final class JavassistProxyFactory
     	Class<?> proxyClass = null;
         try
         {
-        	proxyClass = factory.createClass();
+        	proxyClass = SecurityUtil.doPrivilegedCreateClass(factory);
         	
         }catch(Exception e)
         {
@@ -213,7 +214,7 @@ public final class JavassistProxyFactory
             	
             };
             
-            proxyClass = factory.createClass();        	
+            proxyClass = SecurityUtil.doPrivilegedCreateClass(factory);       	
         }                
             	
         return proxyClass;

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLDefinitionUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLDefinitionUtil.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLDefinitionUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLDefinitionUtil.java Wed Apr 21 18:52:16 2010
@@ -60,6 +60,7 @@ import org.apache.webbeans.proxy.Javassi
 import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.SecurityUtil;
 import org.apache.webbeans.util.WebBeansUtil;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -195,7 +196,7 @@ public final class XMLDefinitionUtil
             Class<? extends Annotation> temp = it.next();
             if (AnnotationUtil.isQualifierAnnotation(temp))
             {
-                Method[] methods = temp.getDeclaredMethods();
+                Method[] methods = SecurityUtil.doPrivilegedGetDeclaredMethods(temp);
 
                 for (Method method : methods)
                 {

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLUtil.java?rev=936439&r1=936438&r2=936439&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/xml/XMLUtil.java Wed Apr 21 18:52:16 2010
@@ -39,6 +39,7 @@ import org.apache.webbeans.proxy.Javassi
 import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.Asserts;
 import org.apache.webbeans.util.ClassUtil;
+import org.apache.webbeans.util.SecurityUtil;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -735,7 +736,7 @@ public class XMLUtil {
                 try
                 {
                     /* Contains value member method */
-                    annotClazz.getDeclaredMethod("value", new Class[] {});
+                    SecurityUtil.doPrivilegedGetDeclaredMethod(annotClazz, "value", new Class[] {});
 
                 }
                 catch (SecurityException e)
@@ -755,8 +756,7 @@ public class XMLUtil {
         {
             try
             {
-                annotClazz.getDeclaredMethod(attrName, new Class[] {});
-
+                SecurityUtil.doPrivilegedGetDeclaredMethod(annotClazz, attrName, new Class[] {});
             }
             catch (SecurityException e)
             {
@@ -770,7 +770,7 @@ public class XMLUtil {
         }
 
         /* Non-default members must defined in the xml */
-        Method[] members = annotClazz.getDeclaredMethods();
+        Method[] members = ClassUtil.getDeclaredMethods(annotClazz);
         for (Method member : members)
         {
             if (member.getDefaultValue() == null && value == null)
@@ -814,7 +814,7 @@ public class XMLUtil {
             Class returnType = null;
             try
             {
-                returnType = annotClazz.getDeclaredMethod(attrName, new Class[] {}).getReturnType();
+                returnType = SecurityUtil.doPrivilegedGetDeclaredMethod(annotClazz, attrName, new Class[] {}).getReturnType();
                 Object value = null;
                 if (returnType.isPrimitive())
                 {