You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by db...@apache.org on 2011/01/26 00:53:05 UTC
svn commit: r1063529 - in /openwebbeans/trunk:
webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/
webbeans-impl/src/main/java/org/apache/webbeans/component/
webbeans-impl/src/main/java/org/apache/webbeans/config/
webbeans-impl/src/m...
Author: dblevins
Date: Tue Jan 25 23:53:04 2011
New Revision: 1063529
URL: http://svn.apache.org/viewvc?rev=1063529&view=rev
Log:
OWB-503: A WebBeansContext.currentInstance() method for serialization and truly static usage
Modified:
openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectableBeanManager.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/SerializableBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java Tue Jan 25 23:53:04 2011
@@ -679,7 +679,7 @@ public class OpenWebBeansEjbInterceptor
s.defaultReadObject();
/* restore transient BeanManager */
- this.webBeansContext = WebBeansContext.getInstance();
+ this.webBeansContext = WebBeansContext.currentInstance();
if (logger.wblWillLogDebug())
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BuildInOwbBean.java Tue Jan 25 23:53:04 2011
@@ -302,7 +302,7 @@ public abstract class BuildInOwbBean<T>
if(s.readLong() == serialVersionUID)
{
String id = (String)s.readObject();
- WebBeansContext webBeansContext = WebBeansContext.getInstance();
+ WebBeansContext webBeansContext = WebBeansContext.currentInstance();
bean = (BuildInOwbBean<T>)webBeansContext.getBeanManagerImpl().getPassivationCapableBean(id);
// create new real instance after deserialized.
actualObject = bean.createActualInstance(null);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansContext.java Tue Jan 25 23:53:04 2011
@@ -123,6 +123,22 @@ public class WebBeansContext
return webBeansContext;
}
+ /**
+ * Method to be used when static use is truely unavoidable, such as serialization
+ *
+ * Ideally this method would never lazily create a WebBeansContext and as we don't
+ * want to do any deployment of new apps during deserialization, we want to rehydrate
+ * objects from an existing WebBeansContext which should be the active context.
+ *
+ * This method could throw a runtime exception if no instance currently exists.
+ *
+ * @return
+ */
+ public static WebBeansContext currentInstance()
+ {
+ return getInstance();
+ }
+
public <T> T getService(Class<T> clazz)
{
T t = clazz.cast(serviceMap.get(clazz));
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectableBeanManager.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectableBeanManager.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectableBeanManager.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/InjectableBeanManager.java Tue Jan 25 23:53:04 2011
@@ -234,7 +234,7 @@ public class InjectableBeanManager imple
ClassNotFoundException
{
//static lookup required for bean manager
- this.bm = WebBeansContext.getInstance().getBeanManagerImpl();
+ this.bm = WebBeansContext.currentInstance().getBeanManagerImpl();
}
@Override
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/SerializableBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/SerializableBean.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/SerializableBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/SerializableBean.java Tue Jan 25 23:53:04 2011
@@ -159,7 +159,7 @@ public final class SerializableBean<T> i
throws IOException, ClassNotFoundException
{
String id = (String) s.readObject();
- Bean<T> b = (Bean<T>) WebBeansContext.getInstance().getBeanManagerImpl().getPassivationCapableBean(id);
+ Bean<T> b = (Bean<T>) WebBeansContext.currentInstance().getBeanManagerImpl().getPassivationCapableBean(id);
if (b == null)
{
throw new DeploymentException("cannot deserialize Bean with PassivationCapable id=" + id);
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ConversationContext.java Tue Jan 25 23:53:04 2011
@@ -68,7 +68,7 @@ public class ConversationContext extends
String id = (String)it.next();
if (id != null)
{
- contextual = (Contextual<?>) org.apache.webbeans.config.WebBeansContext.getInstance().getBeanManagerImpl().getPassivationCapableBean(id);
+ contextual = (Contextual<?>) org.apache.webbeans.config.WebBeansContext.currentInstance().getBeanManagerImpl().getPassivationCapableBean(id);
}
if (contextual != null)
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java Tue Jan 25 23:53:04 2011
@@ -32,6 +32,7 @@ import java.util.concurrent.ConcurrentHa
import javax.enterprise.context.spi.Contextual;
+import org.apache.webbeans.config.WebBeansContext;
import org.apache.webbeans.context.creational.BeanInstanceBag;
import org.apache.webbeans.context.type.ContextTypes;
import org.apache.webbeans.util.WebBeansUtil;
@@ -57,6 +58,8 @@ public class SessionContext extends Abst
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException
{
+ WebBeansContext webBeansContext = WebBeansContext.currentInstance();
+
this.type = (ContextTypes) in.readObject();
this.scopeType = (Class<? extends Annotation>) in.readObject();
Map<String, BeanInstanceBag<?>> map = (Map<String, BeanInstanceBag<?>>)in.readObject();
@@ -68,7 +71,7 @@ public class SessionContext extends Abst
String id = (String)it.next();
if (id != null)
{
- contextual = (Contextual<?>) org.apache.webbeans.config.WebBeansContext.getInstance().getBeanManagerImpl().getPassivationCapableBean(id);
+ contextual = (Contextual<?>) webBeansContext.getBeanManagerImpl().getPassivationCapableBean(id);
}
if (contextual != null)
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java Tue Jan 25 23:53:04 2011
@@ -142,7 +142,8 @@ public class DependentCreationalContext<
String id = (String) s.readObject();
if (id != null)
{
- contextual = (Contextual<S>) WebBeansContext.getInstance().getBeanManagerImpl().getPassivationCapableBean(id);
+ WebBeansContext webBeansContext = WebBeansContext.currentInstance();
+ contextual = (Contextual<S>) webBeansContext.getBeanManagerImpl().getPassivationCapableBean(id);
}
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/DelegateHandler.java Tue Jan 25 23:53:04 2011
@@ -230,7 +230,7 @@ public class DelegateHandler implements
{
return;
}
- bean = (OwbBean<?>) WebBeansContext.getInstance().getBeanManagerImpl().getPassivationCapableBean(id);
+ bean = (OwbBean<?>) WebBeansContext.currentInstance().getBeanManagerImpl().getPassivationCapableBean(id);
actualBean = in.readObject();
decorators = (List<Object>) in.readObject();
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointImpl.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/inject/impl/InjectionPointImpl.java Tue Jan 25 23:53:04 2011
@@ -208,7 +208,7 @@ class InjectionPointImpl implements Inje
Class<?> beanClass = (Class<?>)in.readObject();
Set<Annotation> anns = new HashSet<Annotation>();
- WebBeansContext webBeansContext = WebBeansContext.getInstance();
+ WebBeansContext webBeansContext = WebBeansContext.currentInstance();
AnnotatedElementFactory annotatedElementFactory = webBeansContext.getAnnotatedElementFactory();
while(!in.readObject().equals(new Character('~'))) // read throw-away '-' or '~' terminal delimiter.
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java Tue Jan 25 23:53:04 2011
@@ -365,7 +365,7 @@ public abstract class InterceptorHandler
{
if(s.readLong() == serialVersionUID)
{
- this.webBeansContext = WebBeansContext.getInstance();
+ this.webBeansContext = WebBeansContext.currentInstance();
String passivationId = (String) s.readObject();
if (passivationId != null)
{
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java?rev=1063529&r1=1063528&r2=1063529&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/ResourceProxyHandler.java Tue Jan 25 23:53:04 2011
@@ -94,7 +94,7 @@ public class ResourceProxyHandler implem
ClassNotFoundException
{
String id = (String)in.readObject();
- WebBeansContext webBeansContext = WebBeansContext.getInstance();
+ WebBeansContext webBeansContext = WebBeansContext.currentInstance();
bean = (ResourceBean) webBeansContext.getBeanManagerImpl().getPassivationCapableBean(id);
ResourceInjectionService resourceInjectionService = webBeansContext.getService(ResourceInjectionService.class);
actualResource = resourceInjectionService.readExternal(bean, in);