[jboss-cvs] JBossAS SVN: r110532 - projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/accessor.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 4 09:35:00 EST 2011
Author: alesj
Date: 2011-02-04 09:35:00 -0500 (Fri, 04 Feb 2011)
New Revision: 110532
Modified:
projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/accessor/MemberAccessorFactory.java
Log:
Simple refactoring, and SM usage.
Modified: projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/accessor/MemberAccessorFactory.java
===================================================================
--- projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/accessor/MemberAccessorFactory.java 2011-02-04 14:32:44 UTC (rev 110531)
+++ projects/jboss-reflect/trunk/src/main/java/org/jboss/reflect/plugins/accessor/MemberAccessorFactory.java 2011-02-04 14:35:00 UTC (rev 110532)
@@ -25,6 +25,7 @@
import java.io.File;
import java.io.FileReader;
import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.HashSet;
@@ -35,6 +36,7 @@
import org.jboss.reflect.plugins.accessor.reflect.ReflectAccessorFactory;
import org.jboss.reflect.spi.ConstructorInfo;
import org.jboss.reflect.spi.FieldInfo;
+import org.jboss.reflect.spi.MemberInfo;
import org.jboss.reflect.spi.MethodInfo;
/**
@@ -68,7 +70,6 @@
{
FORCE_GENERATE = new CopyOnWriteArraySet<String>(initForceGenerate(MemberAccessorFactory.class.getName() + ".file"));
}
-
public void addForceGenerate(String s)
{
@@ -88,7 +89,7 @@
{
public Set<String> run() throws Exception
{
- String generateFile = System.getProperty(MemberAccessorFactory.class.getName() + ".file", null);
+ String generateFile = System.getProperty(name, null);
Set<String> forceGenerate = new HashSet<String>();
if (generateFile != null)
{
@@ -132,8 +133,6 @@
}
}
-
-
/**
* Create a new JavassistReflectionFactory.
*
@@ -156,11 +155,9 @@
*/
public MethodAccessor createMethod(MethodInfo info, String sig, SignatureKey key) throws Throwable
{
- MethodAccessor method = generateAccessor(sig) ?
- GeneratedMemberAccessorFactory.generateMethodAccessor(GeneratedMemberAccessorFactory.MAGIC_ACCESSOR_IMPL, info.getDeclaringClass().getClassLoader(), info, sig, key) :
+ return generateAccessor(sig) ?
+ GeneratedMemberAccessorFactory.generateMethodAccessor(GeneratedMemberAccessorFactory.MAGIC_ACCESSOR_IMPL, getClassLoader(info), info, sig, key) :
ReflectAccessorFactory.createMethodAccessor(info);
-
- return method;
}
/**
@@ -174,11 +171,9 @@
*/
public ConstructorAccessor createConstructor(ConstructorInfo info, String sig, SignatureKey key) throws Throwable
{
- ConstructorAccessor ctor = generateAccessor(sig) ?
- GeneratedMemberAccessorFactory.generateConstructorAccessor(GeneratedMemberAccessorFactory.MAGIC_ACCESSOR_IMPL, info.getDeclaringClass().getClassLoader(), info, sig, key) :
+ return generateAccessor(sig) ?
+ GeneratedMemberAccessorFactory.generateConstructorAccessor(GeneratedMemberAccessorFactory.MAGIC_ACCESSOR_IMPL, getClassLoader(info), info, sig, key) :
ReflectAccessorFactory.createConstructorAccessor(info);
-
- return ctor;
}
/**
@@ -191,17 +186,28 @@
*/
public FieldAccessor createField(FieldInfo info, String sig) throws Throwable
{
- FieldAccessor field = generateAccessor(sig) ?
- GeneratedMemberAccessorFactory.generateFieldAccessor(GeneratedMemberAccessorFactory.MAGIC_ACCESSOR_IMPL, info.getDeclaringClass().getClassLoader(), info, sig) :
+ return generateAccessor(sig) ?
+ GeneratedMemberAccessorFactory.generateFieldAccessor(GeneratedMemberAccessorFactory.MAGIC_ACCESSOR_IMPL, getClassLoader(info), info, sig) :
ReflectAccessorFactory.createFieldAccessor(info);
-
- return field;
}
-
+
private boolean generateAccessor(String signature)
{
- if (FORCE_GENERATE.isEmpty())
- return true;
- return FORCE_GENERATE.contains(signature);
+ return FORCE_GENERATE.isEmpty() || FORCE_GENERATE.contains(signature);
}
+
+ private ClassLoader getClassLoader(final MemberInfo mi)
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+ {
+ public ClassLoader run()
+ {
+ return mi.getDeclaringClass().getClassLoader();
+ }
+ });
+ else
+ return mi.getDeclaringClass().getClassLoader();
+ }
}
More information about the jboss-cvs-commits
mailing list