You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2010/07/11 13:06:48 UTC
svn commit: r963046 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
jms/JMSManager.java jms/JMSModel.java lifecycle/AbstractLifeCycle.java
proxy/JavassistProxyFactory.java util/ClassUtil.java util/SecurityUtil.java
Author: gerdogdu
Date: Sun Jul 11 11:06:47 2010
New Revision: 963046
URL: http://svn.apache.org/viewvc?rev=963046&view=rev
Log:
Improvement, no functional change
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSManager.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSModel.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSManager.java?rev=963046&r1=963045&r2=963046&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSManager.java Sun Jul 11 11:06:47 2010
@@ -30,13 +30,18 @@ import org.apache.webbeans.util.Asserts;
public class JMSManager
{
- private Set<JMSModel> jmsModels = new CopyOnWriteArraySet<JMSModel>();
+ private final Set<JMSModel> jmsModels = new CopyOnWriteArraySet<JMSModel>();
public JMSManager()
{
}
+ public void clear()
+ {
+ this.jmsModels.clear();
+ }
+
public static JMSManager getInstance()
{
return (JMSManager)WebBeansFinder.getSingletonInstance(JMSManager.class.getName());
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSModel.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSModel.java?rev=963046&r1=963045&r2=963046&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSModel.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/jms/JMSModel.java Sun Jul 11 11:06:47 2010
@@ -30,15 +30,11 @@ public class JMSModel
TOPIC
}
- private JMSType jmsType;
-
- private String jndiName;
-
- private String mappedName;
-
- private boolean isJndiNameDefined;
-
- private Set<Annotation> bindings = new HashSet<Annotation>();
+ private final JMSType jmsType;
+ private String jndiName;
+ private final String mappedName;
+ private boolean isJndiNameDefined;
+ private final Set<Annotation> bindings = new HashSet<Annotation>();
public JMSModel(JMSType jmsType, String jndiName, String mappedName)
@@ -155,7 +151,5 @@ public class JMSModel
}
return true;
}
-
-
-
+
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java?rev=963046&r1=963045&r2=963046&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/lifecycle/AbstractLifeCycle.java Sun Jul 11 11:06:47 2010
@@ -29,6 +29,7 @@ import org.apache.webbeans.config.WebBea
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.container.InjectionResolver;
import org.apache.webbeans.corespi.ServiceLoader;
+import org.apache.webbeans.jms.JMSManager;
import org.apache.webbeans.logger.WebBeansLogger;
import org.apache.webbeans.plugins.PluginLoader;
import org.apache.webbeans.portable.AnnotatedElementFactory;
@@ -162,6 +163,9 @@ public abstract class AbstractLifeCycle
//Delete AnnotateTypeCache
AnnotatedElementFactory.getInstance().clear();
+ //Delete JMS Model Cache
+ JMSManager.getInstance().clear();
+
//After Stop
afterStopApplication(endObject);
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=963046&r1=963045&r2=963046&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 Sun Jul 11 11:06:47 2010
@@ -59,13 +59,10 @@ public final class JavassistProxyFactory
}
- private Map<OwbBean<?>, Class<?>> normalScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
-
- private Map<OwbBean<?>, Class<?>> dependentScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
-
- private Map<OwbBean<?>, Class<?>> interceptorProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
-
- private Map<OwbBean<?>, Class<?>> ejbProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
+ private Map<OwbBean<?>, Class<?>> normalScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
+ private Map<OwbBean<?>, Class<?>> dependentScopedBeanProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
+ private Map<OwbBean<?>, Class<?>> interceptorProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
+ private Map<OwbBean<?>, Class<?>> ejbProxyClasses = new ConcurrentHashMap<OwbBean<?>, Class<?>>();
public Map<OwbBean<?>, Class<?>> getInterceptorProxyClasses()
{
@@ -92,6 +89,7 @@ public final class JavassistProxyFactory
return ejbProxyClasses.get(bean);
}
+
public Class<?> defineEjbBeanProxyClass(OwbBean<?> bean, ProxyFactory factory)
{
Class<?> clazz = ejbProxyClasses.get(bean);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java?rev=963046&r1=963045&r2=963046&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/ClassUtil.java Sun Jul 11 11:06:47 2010
@@ -30,6 +30,7 @@ import java.lang.reflect.TypeVariable;
import java.lang.reflect.WildcardType;
import java.math.BigDecimal;
import java.math.BigInteger;
+import java.security.PrivilegedActionException;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.DateFormat;
@@ -168,18 +169,26 @@ public final class ClassUtil
{
try
{
+ if(System.getSecurityManager() != null)
+ {
+ return SecurityUtil.doPrivilegedObjectCreate(clazz);
+ }
+
return clazz.newInstance();
- }
- catch (InstantiationException e)
- {
- logger.error(e);
- }
- catch (IllegalAccessException e)
+
+ }catch(Exception e)
{
- logger.error(e);
- }
+ Throwable cause = e;
+ if(e instanceof PrivilegedActionException)
+ {
+ cause = ((PrivilegedActionException)e).getCause();
+ }
+
+ String error = "Error is occured while creating an instance of class : " + clazz.getName();
+ logger.error(error, cause);
+ throw new WebBeansException(error,cause);
- return null;
+ }
}
public static Class<?> getClassFromName(String name)
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java?rev=963046&r1=963045&r2=963046&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/SecurityUtil.java Sun Jul 11 11:06:47 2010
@@ -24,6 +24,8 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.Properties;
import javassist.util.proxy.ProxyFactory;
@@ -189,6 +191,11 @@ public class SecurityUtil
return value;
}
+
+ public static Object doPrivilegedObjectCreate(Class<?> clazz) throws PrivilegedActionException
+ {
+ return AccessController.doPrivileged(new PrivilegedActionForObjectCreation(clazz));
+ }
public static void doPrivilegedSetSystemProperty(String propertyName, String value)
{
@@ -251,6 +258,34 @@ public class SecurityUtil
}
}
+
+ protected static class PrivilegedActionForObjectCreation implements PrivilegedExceptionAction<Object>
+ {
+ Class<?> clazz;
+
+ protected PrivilegedActionForObjectCreation(Class<?> clazz)
+ {
+ this.clazz = clazz;
+ }
+
+ @Override
+ public Object run() throws Exception
+ {
+ try
+ {
+ return clazz.newInstance();
+ }
+ catch (InstantiationException e)
+ {
+ throw e;
+ }
+ catch (IllegalAccessException e)
+ {
+ throw e;
+ }
+ }
+
+ }
protected static class PrivilegedActionForProxyFactory implements PrivilegedAction<Object>
{