You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2010/02/21 22:10:45 UTC
svn commit: r912404 - in
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
component/ container/ context/creational/ intercept/ intercept/webbeans/
proxy/ util/
Author: struberg
Date: Sun Feb 21 21:10:44 2010
New Revision: 912404
URL: http://svn.apache.org/viewvc?rev=912404&view=rev
Log:
OWB-6 further passiation and CreationalContext fixes
Added:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.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/proxy/JavassistProxyFactory.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java?rev=912404&r1=912403&r2=912404&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java Sun Feb 21 21:10:44 2010
@@ -16,6 +16,7 @@
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.BeanManager;
+import org.apache.webbeans.annotation.ApplicationScopeLiteral;
import org.apache.webbeans.container.BeanManagerImpl;
public class BeanManagerBean extends AbstractOwbBean<BeanManager>
@@ -34,6 +35,7 @@
{
manager = BeanManagerImpl.getManager();
}
+ setImplScopeType(new ApplicationScopeLiteral());
return manager;
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java?rev=912404&r1=912403&r2=912404&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java Sun Feb 21 21:10:44 2010
@@ -16,6 +16,7 @@
import javax.enterprise.context.Conversation;
import javax.enterprise.context.spi.CreationalContext;
+import org.apache.webbeans.annotation.ApplicationScopeLiteral;
import org.apache.webbeans.conversation.ConversationImpl;
import org.apache.webbeans.conversation.ConversationManager;
import org.apache.webbeans.spi.ConversationService;
@@ -34,6 +35,7 @@
public ConversationBean()
{
super(WebBeansType.CONVERSATION, Conversation.class);
+ setImplScopeType(new ApplicationScopeLiteral());
}
/**
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java?rev=912404&r1=912403&r2=912404&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java Sun Feb 21 21:10:44 2010
@@ -15,6 +15,7 @@
import javax.enterprise.context.spi.CreationalContext;
+import org.apache.webbeans.annotation.ApplicationScopeLiteral;
import org.apache.webbeans.portable.events.ExtensionLoader;
/**
@@ -34,6 +35,7 @@
public ExtensionBean(Class<T> returnType)
{
super(WebBeansType.EXTENSION,returnType);
+ setImplScopeType(new ApplicationScopeLiteral());
}
/**
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=912404&r1=912403&r2=912404&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java Sun Feb 21 21:10:44 2010
@@ -650,19 +650,23 @@
{
ownerCreationalContextImpl = (CreationalContextImpl<?>)ownerCreationalContext;
}
-
+
//Find the injection point Bean
Bean<Object> injectedBean = (Bean<Object>)injectionResolver.getInjectionPointBean(injectionPoint);
CreationalContextImpl<Object> injectedCreational = (CreationalContextImpl<Object>)createCreationalContext(injectedBean);
if(WebBeansUtil.isDependent(injectedBean))
{
- injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
+ injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
//Creating a new creational context for target bean instance
instance = getReference(injectedBean, injectionPoint.getType(), injectedCreational);
- //Add this dependent into bean dependent list
- ownerCreationalContextImpl.addDependent(injectedBean, instance, injectedCreational);
+ // add this dependent into bean dependent list
+ // only if the member is not static and not already a proxy
+ if (!WebBeansUtil.isStaticInjection(injectionPoint) && !JavassistProxyFactory.isProxyInstance(instance))
+ {
+ ownerCreationalContextImpl.addDependent(injectedBean, instance, injectedCreational);
+ }
}
else
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java?rev=912404&r1=912403&r2=912404&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java Sun Feb 21 21:10:44 2010
@@ -42,54 +42,6 @@
private CreationalContextImpl<?> ownerCreational = null;
- private static class DependentCreationalContext<S> implements Serializable
- {
- private static final long serialVersionUID = 7107949019995422165L;
-
- private CreationalContext<S> creationalContext;
-
- private Contextual<S> contextual;
-
- /**
- * @return the creationalContext
- */
- public CreationalContext<S> getCreationalContext()
- {
- return creationalContext;
- }
-
- /**
- * @param creationalContext the creationalContext to set
- */
- public void setCreationalContext(CreationalContext<S> creationalContext)
- {
- this.creationalContext = creationalContext;
- }
-
- /**
- * @return the contextual
- */
- public Contextual<S> getContextual()
- {
- return contextual;
- }
-
- /**
- * @param contextual the contextual to set
- */
- public void setContextual(Contextual<S> contextual)
- {
- this.contextual = contextual;
- }
-
- public DependentCreationalContext(CreationalContext<S> cc, Contextual<S> contextual)
- {
- this.contextual = contextual;
- this.creationalContext = cc;
- }
- }
-
-
/**
* Package private
*/
@@ -168,7 +120,7 @@
{
T instance = (T)iterator.next();
DependentCreationalContext<T> dependent = (DependentCreationalContext<T>)this.dependentObjects.get(instance);
- dependent.getContextual().destroy(instance, (CreationalContext<T>)dependent.getCreationalContext());
+ dependent.getContextual().destroy(instance, dependent.getCreationalContext());
}
this.dependentObjects.clear();
@@ -180,7 +132,7 @@
@Override
public void release()
{
- removeDependents();
+ removeDependents();
}
Added: 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=912404&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java Sun Feb 21 21:10:44 2010
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.webbeans.context.creational;
+
+import java.io.IOException;
+import java.io.InvalidClassException;
+import java.io.NotSerializableException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+
+import javax.enterprise.context.spi.Contextual;
+import javax.enterprise.context.spi.CreationalContext;
+
+import org.apache.webbeans.container.BeanManagerImpl;
+import org.apache.webbeans.util.WebBeansUtil;
+
+class DependentCreationalContext<S> implements Serializable
+{
+ private static final long serialVersionUID = 7107949019995422165L;
+
+ private CreationalContext<S> creationalContext;
+
+ private Contextual<S> contextual;
+
+ /**
+ * @return the creationalContext
+ */
+ public CreationalContext<S> getCreationalContext()
+ {
+ return creationalContext;
+ }
+
+ /**
+ * @param creationalContext the creationalContext to set
+ */
+ public void setCreationalContext(CreationalContext<S> creationalContext)
+ {
+ this.creationalContext = creationalContext;
+ }
+
+ /**
+ * @return the contextual
+ */
+ public Contextual<S> getContextual()
+ {
+ return contextual;
+ }
+
+ /**
+ * @param contextual the contextual to set
+ */
+ public void setContextual(Contextual<S> contextual)
+ {
+ this.contextual = contextual;
+ }
+
+ public DependentCreationalContext(CreationalContext<S> cc, Contextual<S> contextual)
+ {
+ this.contextual = contextual;
+ this.creationalContext = cc;
+ }
+
+ private synchronized void writeObject(ObjectOutputStream s)
+ throws IOException
+ {
+ s.writeLong(serialVersionUID);
+
+ s.writeObject(creationalContext);
+
+ String id = null;
+ if (contextual != null)
+ {
+ if ((id = WebBeansUtil.isPassivationCapable(contextual)) != null)
+ {
+ s.writeObject(id);
+ }
+ else
+ {
+ throw new NotSerializableException("cannot serialize " + contextual.toString());
+ }
+
+ }
+ else
+ {
+ s.writeObject(null);
+ }
+ }
+
+
+ @SuppressWarnings("unchecked")
+ private synchronized void readObject(ObjectInputStream s)
+ throws IOException, ClassNotFoundException
+ {
+ long svId = s.readLong();
+ if (svId != serialVersionUID)
+ {
+ throw new InvalidClassException(this.getClass().getSimpleName());
+ }
+
+ creationalContext = (CreationalContext<S>) s.readObject();
+
+ String id = (String) s.readObject();
+ if (id != null)
+ {
+ contextual = (Contextual<S>) BeanManagerImpl.getManager().getPassivationCapableBean(id);
+ }
+ }
+
+}
\ No newline at end of file
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=912404&r1=912403&r2=912404&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 Sun Feb 21 21:10:44 2010
@@ -372,23 +372,26 @@
private void writeObject(ObjectOutputStream s) throws IOException
{
+ s.writeLong(serialVersionUID);
if(WebBeansUtil.isPassivationCapable(this.bean) != null)
{
- s.writeByte(1);
s.writeUTF(this.bean.getId());
}
else
{
logger.warn("Trying to serialize not passivated capable bean proxy : " + this.bean);
- s.writeByte(0);
}
}
private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException
{
- if( s.readByte() == 1)
+ if( s.readLong() == serialVersionUID)
{
- this.bean = (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(s.readUTF());
+ String passivationId = s.readUTF();
+ if (passivationId != null)
+ {
+ this.bean = (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(passivationId);
+ }
}
else
{
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=912404&r1=912403&r2=912404&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 Sun Feb 21 21:10:44 2010
@@ -456,5 +456,10 @@
{
return this.delegateBean.isAlternative();
}
-
+
+ @Override
+ public boolean isPassivationCapable()
+ {
+ return true;
+ }
}
\ No newline at end of file
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=912404&r1=912403&r2=912404&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 Feb 21 21:10:44 2010
@@ -205,5 +205,14 @@
return result;
}
+
+ /**
+ * @param o the object to check
+ * @return <code>true</code> if the given object is a proxy
+ */
+ public static boolean isProxyInstance(Object o)
+ {
+ return o instanceof ProxyObject;
+ }
}
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=912404&r1=912403&r2=912404&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java Sun Feb 21 21:10:44 2010
@@ -22,6 +22,7 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
@@ -2731,5 +2732,25 @@
return managedBean;
}
+
+ /**
+ * Determines if the injection is to be performed into a static field.
+ *
+ * @param injectionPoint
+ * @return <code>true</code> if the injection is into a static field
+ */
+ public static boolean isStaticInjection(InjectionPoint injectionPoint)
+ {
+ if (injectionPoint != null)
+ {
+ Member member = injectionPoint.getMember();
+ if (member != null && Modifier.isStatic(member.getModifiers()))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
}
\ No newline at end of file
Re: AW: svn commit: r912404 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/ intercept/ intercept/webbeans/ proxy/ util/
Posted by Mark Struberg <st...@yahoo.de>.
oh thanks, yup, will do that.
LieGrue,
strub
--- Gurkan Erdogdu <gu...@yahoo.com> schrieb am So, 21.2.2010:
> Von: Gurkan Erdogdu <gu...@yahoo.com>
> Betreff: Re: AW: svn commit: r912404 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/ intercept/ intercept/webbeans/ proxy/ util/
> An: dev@openwebbeans.apache.org
> Datum: Sonntag, 21. Februar, 2010 23:00 Uhr
> Mark;
>
>
> testProxySerialization(org.apache.webbeans.newtests.contexts.SerializationTest)
>
>
> This test is failed!. Could you add it to ignore list until
> new version of Javassist?
>
>
> --Gurkan
>
>
> ________________________________
> From: Mark Struberg <st...@yahoo.de>
> To: dev@openwebbeans.apache.org
> Sent: Sun, February 21, 2010 11:25:11 PM
> Subject: AW: svn commit: r912404 - in
> /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
> component/ container/ context/creational/ intercept/
> intercept/webbeans/ proxy/ util/
>
> please note that you use the patched javassist version [1]
> to make the serialisation work.
>
> The patch has already been submitted to JBoss [2].
>
> LieGrue,
> strub
>
> [1] http://github.com/struberg/javassist
> [2] https://jira.jboss.org/jira/browse/JASSIST-97
>
> --- struberg@apache.org
> <st...@apache.org>
> schrieb am So, 21.2.2010:
>
> > Von: struberg@apache.org
> <st...@apache.org>
> > Betreff: svn commit: r912404 - in
> /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
> component/ container/ context/creational/ intercept/
> intercept/webbeans/ proxy/ util/
> > An: commits@openwebbeans.apache.org
> > Datum: Sonntag, 21. Februar, 2010 22:10 Uhr
> > Author: struberg
> > Date: Sun Feb 21 21:10:44 2010
> > New Revision: 912404
> >
> > URL: http://svn.apache.org/viewvc?rev=912404&view=rev
> > Log:
> > OWB-6 further passiation and CreationalContext fixes
> >
> > Added:
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> > Modified:
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.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/proxy/JavassistProxyFactory.java
> >
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> >
> > Modified:
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> > URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java?rev=912404&r1=912403&r2=912404&view=diff
> >
> ==============================================================================
> > ---
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> > (original)
> > +++
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> > Sun Feb 21 21:10:44 2010
> > @@ -16,6 +16,7 @@
> > import
> javax.enterprise.context.spi.CreationalContext;
> > import javax.enterprise.inject.spi.BeanManager;
> >
> > +import
> >
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> > import
> org.apache.webbeans.container.BeanManagerImpl;
> >
> > public class BeanManagerBean extends
> > AbstractOwbBean<BeanManager>
> > @@ -34,6 +35,7 @@
> > {
> >
> > manager = BeanManagerImpl.getManager();
> > }
> > + setImplScopeType(new
> > ApplicationScopeLiteral());
> >
> > return manager;
> > }
> >
> > Modified:
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> > URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java?rev=912404&r1=912403&r2=912404&view=diff
> >
> ==============================================================================
> > ---
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> > (original)
> > +++
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> > Sun Feb 21 21:10:44 2010
> > @@ -16,6 +16,7 @@
> > import javax.enterprise.context.Conversation;
> > import
> javax.enterprise.context.spi.CreationalContext;
> >
> > +import
> >
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> > import
> org.apache.webbeans.conversation.ConversationImpl;
> > import
> > org.apache.webbeans.conversation.ConversationManager;
> > import
> org.apache.webbeans.spi.ConversationService;
> > @@ -34,6 +35,7 @@
> > public ConversationBean()
> > {
> >
> > super(WebBeansType.CONVERSATION,
> > Conversation.class);
> > + setImplScopeType(new
> > ApplicationScopeLiteral());
> > }
> >
> > /**
> >
> > Modified:
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> > URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java?rev=912404&r1=912403&r2=912404&view=diff
> >
> ==============================================================================
> > ---
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> > (original)
> > +++
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> > Sun Feb 21 21:10:44 2010
> > @@ -15,6 +15,7 @@
> >
> > import
> javax.enterprise.context.spi.CreationalContext;
> >
> > +import
> >
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> > import
> > org.apache.webbeans.portable.events.ExtensionLoader;
> >
> > /**
> > @@ -34,6 +35,7 @@
> > public
> > ExtensionBean(Class<T> returnType)
> > {
> >
> >
> super(WebBeansType.EXTENSION,returnType);
> > + setImplScopeType(new
> > ApplicationScopeLiteral());
> > }
> >
> > /**
> >
> > Modified:
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> > URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=912404&r1=912403&r2=912404&view=diff
> >
> ==============================================================================
> > ---
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> > (original)
> > +++
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> > Sun Feb 21 21:10:44 2010
> > @@ -650,19 +650,23 @@
> > {
> >
> > ownerCreationalContextImpl =
> >
> (CreationalContextImpl<?>)ownerCreationalContext;
> > }
> > -
>
> >
>
> > +
> > //Find the
> injection
> > point Bean
> > Bean<Object>
> > injectedBean =
> >
> (Bean<Object>)injectionResolver.getInjectionPointBean(injectionPoint);
> >
> > CreationalContextImpl<Object>
> > injectedCreational =
> >
> (CreationalContextImpl<Object>)createCreationalContext(injectedBean);
> >
> >
> >
> if(WebBeansUtil.isDependent(injectedBean))
> > {
> >
> > -
> >
> injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
>
> >
> > +
> >
> injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
> >
> > //Creating a new creational context for
> > target bean instance
> >
> > instance = getReference(injectedBean,
> > injectionPoint.getType(), injectedCreational);
> >
> > - //Add this
> > dependent into bean dependent list
> > -
> > ownerCreationalContextImpl.addDependent(injectedBean,
> > instance, injectedCreational);
> > + // add
> this
> > dependent into bean dependent list
> > + // only if
> the
> > member is not static and not already a proxy
> > + if
> > (!WebBeansUtil.isStaticInjection(injectionPoint)
> &&
> > !JavassistProxyFactory.isProxyInstance(instance))
> > + {
> > +
>
> > ownerCreationalContextImpl.addDependent(injectedBean,
> > instance, injectedCreational);
> > + }
> > }
> >
> > else
> >
> > Modified:
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> > URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java?rev=912404&r1=912403&r2=912404&view=diff
> >
> ==============================================================================
> > ---
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> > (original)
> > +++
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> > Sun Feb 21 21:10:44 2010
> > @@ -42,54 +42,6 @@
> >
> > private
> > CreationalContextImpl<?> ownerCreational =
> null;
> >
> > - private static class
> > DependentCreationalContext<S> implements
> Serializable
> > - {
> > - private static final
> long
> > serialVersionUID = 7107949019995422165L;
> > -
> > - private
> > CreationalContext<S> creationalContext;
> > -
> > - private
> Contextual<S>
> > contextual;
> > -
> > - /**
> > - * @return the
> > creationalContext
> > - */
> > - public
> > CreationalContext<S> getCreationalContext()
> > - {
> > - return
> > creationalContext;
> > - }
> > -
> > - /**
> > - * @param
> > creationalContext the creationalContext to set
> > - */
> > - public void
> > setCreationalContext(CreationalContext<S>
> > creationalContext)
> > - {
> > -
> > this.creationalContext = creationalContext;
> > - }
> > -
> > - /**
> > - * @return the
> > contextual
> > - */
> > - public
> Contextual<S>
> > getContextual()
> > - {
> > - return
> > contextual;
> > - }
> > -
> > - /**
> > - * @param
> contextual
> > the contextual to set
> > - */
> > - public void
> > setContextual(Contextual<S> contextual)
> > - {
> > -
> this.contextual
> > = contextual;
> > - }
> > -
> > - public
> > DependentCreationalContext(CreationalContext<S>
> cc,
> > Contextual<S> contextual)
> > - {
> > -
> this.contextual
> > = contextual;
> > -
> > this.creationalContext = cc;
> > - }
> > - }
> > -
> > -
> > /**
> > * Package private
> > */
> > @@ -168,7 +120,7 @@
> > {
> > T
> > instance = (T)iterator.next();
> >
> > DependentCreationalContext<T>
> > dependent =
> >
> (DependentCreationalContext<T>)this.dependentObjects.get(instance);
> > -
> > dependent.getContextual().destroy(instance,
> >
> (CreationalContext<T>)dependent.getCreationalContext());
>
> >
>
> > +
> > dependent.getContextual().destroy(instance,
> > dependent.getCreationalContext());
> > }
> >
> >
> > this.dependentObjects.clear();
> > @@ -180,7 +132,7 @@
> > @Override
> > public void release()
> > {
> > - removeDependents();
> >
> > + removeDependents();
> >
> > }
> >
> >
> > Added:
> >
> 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=912404&view=auto
> >
> ==============================================================================
> > ---
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> > (added)
> > +++
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> > Sun Feb 21 21:10:44 2010
> > @@ -0,0 +1,124 @@
> > +/*
> > + * Licensed to the Apache Software Foundation
> (ASF)
> > under one or more
> > + * contributor license agreements. See
> the
> > NOTICE file distributed with
> > + * this work for additional information
> regarding
> > copyright ownership.
> > + * The ASF licenses this file to You under the
> > Apache License, Version 2.0
> > + * (the "License"); you may not use this file
> except
> > in compliance with
> > + * the License. You may obtain a copy of
> the
> > License at
> > + *
> > + * http://www.apache.org/licenses/LICENSE-2.0
> > + *
> > + * Unless required by applicable law or agreed
> to in
> > writing, software
> > + * distributed under the License is distributed
> on
> > an "AS IS" BASIS,
> > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY
> KIND,
> > either express or implied.
> > + * See the License for the specific language
> > governing permissions and
> > + * limitations under the License.
> > + */
> > +package org.apache.webbeans.context.creational;
> > +
> > +import java.io.IOException;
> > +import java.io.InvalidClassException;
> > +import java.io.NotSerializableException;
> > +import java.io.ObjectInputStream;
> > +import java.io.ObjectOutputStream;
> > +import java.io.Serializable;
> > +
> > +import javax.enterprise.context.spi.Contextual;
> > +import
> javax.enterprise.context.spi.CreationalContext;
> > +
> > +import
> org.apache.webbeans.container.BeanManagerImpl;
> > +import org.apache.webbeans.util.WebBeansUtil;
> > +
> > +class DependentCreationalContext<S> implements
> > Serializable
> > +{
> > + private static final long
> serialVersionUID =
> > 7107949019995422165L;
> > +
> > + private CreationalContext<S>
> > creationalContext;
> > +
> > + private Contextual<S>
> contextual;
> > +
> > + /**
> > + * @return the
> creationalContext
> > + */
> > + public CreationalContext<S>
> > getCreationalContext()
> > + {
> > + return
> creationalContext;
> > + }
> > +
> > + /**
> > + * @param creationalContext
> the
> > creationalContext to set
> > + */
> > + public void
> > setCreationalContext(CreationalContext<S>
> > creationalContext)
> > + {
> > + this.creationalContext =
> > creationalContext;
> > + }
> > +
> > + /**
> > + * @return the contextual
> > + */
> > + public Contextual<S>
> getContextual()
> > + {
> > + return contextual;
> > + }
> > +
> > + /**
> > + * @param contextual the
> > contextual to set
> > + */
> > + public void
> > setContextual(Contextual<S> contextual)
> > + {
> > + this.contextual =
> contextual;
> > + }
> > +
> > + public
> > DependentCreationalContext(CreationalContext<S>
> cc,
> > Contextual<S> contextual)
> > + {
> > + this.contextual =
> contextual;
> > + this.creationalContext =
> cc;
> > + }
> > +
> > + private synchronized void
> > writeObject(ObjectOutputStream s)
> > + throws IOException
> > + {
> > +
> > s.writeLong(serialVersionUID);
> > +
> > +
> > s.writeObject(creationalContext);
> > +
> > + String id = null;
> > + if (contextual != null)
> > + {
> > + if ((id =
> > WebBeansUtil.isPassivationCapable(contextual)) !=
> null)
> > + {
> > +
>
> > s.writeObject(id);
> > + }
> > + else
> > + {
> > +
>
> > throw new NotSerializableException("cannot serialize "
> +
> > contextual.toString());
> > + }
> > +
> > + }
> > + else
> > + {
> > +
> > s.writeObject(null);
> > + }
> > + }
> > +
> > +
> > + @SuppressWarnings("unchecked")
> > + private synchronized void
> > readObject(ObjectInputStream s)
> > + throws IOException,
> ClassNotFoundException
> > + {
> > + long svId =
> s.readLong();
> > + if (svId !=
> serialVersionUID)
> > + {
> > + throw new
> >
> InvalidClassException(this.getClass().getSimpleName());
> > + }
> > +
> > + creationalContext =
> > (CreationalContext<S>) s.readObject();
> > +
> > + String id = (String)
> > s.readObject();
> > + if (id != null)
> > + {
> > + contextual
> =
> > (Contextual<S>)
> >
> BeanManagerImpl.getManager().getPassivationCapableBean(id);
> > + }
> > + }
> > +
> > +}
> > \ No newline at end of file
> >
> > 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=912404&r1=912403&r2=912404&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
> > Sun Feb 21 21:10:44 2010
> > @@ -372,23 +372,26 @@
> >
> > private void
> > writeObject(ObjectOutputStream s) throws IOException
> > {
> > +
> > s.writeLong(serialVersionUID);
> >
> >
> if(WebBeansUtil.isPassivationCapable(this.bean)
> > != null)
> > {
> > -
> s.writeByte(1);
> >
> >
> s.writeUTF(this.bean.getId());
> > }
> > else
> > {
> >
> > logger.warn("Trying to serialize not
> > passivated capable bean proxy : " + this.bean);
> > -
> s.writeByte(0);
> > }
> > }
> >
> > private void
> > readObject(ObjectInputStream s) throws IOException,
> > ClassNotFoundException
> > {
> > - if( s.readByte() == 1)
> > + if( s.readLong() ==
> > serialVersionUID)
> > {
> > - this.bean
> =
> >
> (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(s.readUTF());
> > + String
> > passivationId = s.readUTF();
> > + if
> > (passivationId != null)
> > + {
> > +
>
> > this.bean =
> >
> (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(passivationId);
> > + }
> > }
> > else
> > {
> >
> > 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=912404&r1=912403&r2=912404&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
> > Sun Feb 21 21:10:44 2010
> > @@ -456,5 +456,10 @@
> > {
> > return
> > this.delegateBean.isAlternative();
> > }
> > -
> > +
> > + @Override
> > + public boolean isPassivationCapable()
> > + {
> > + return true;
> > + }
> > }
> > \ No newline at end of file
> >
> > 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=912404&r1=912403&r2=912404&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 Feb 21 21:10:44 2010
> > @@ -205,5 +205,14 @@
> >
> > return result;
> > }
> > +
> > + /**
> > + * @param o the object to
> check
> > + * @return
> > <code>true</code> if the given object is
> a
> > proxy
> > + */
> > + public static boolean
> isProxyInstance(Object
> > o)
> > + {
> > + return o instanceof
> > ProxyObject;
> > + }
> >
> > }
> >
> > Modified:
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> > URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=912404&r1=912403&r2=912404&view=diff
> >
> ==============================================================================
> > ---
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> > (original)
> > +++
> >
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> > Sun Feb 21 21:10:44 2010
> > @@ -22,6 +22,7 @@
> > import
> java.lang.reflect.InvocationTargetException;
> > import java.lang.reflect.Member;
> > import java.lang.reflect.Method;
> > +import java.lang.reflect.Modifier;
> > import java.lang.reflect.ParameterizedType;
> > import java.lang.reflect.Type;
> > import java.lang.reflect.TypeVariable;
> > @@ -2731,5 +2732,25 @@
> >
> > return managedBean;
> > }
> > +
> > + /**
> > + * Determines if the
> injection is
> > to be performed into a static field.
> > + *
> > + * @param injectionPoint
> > + * @return
> > <code>true</code> if the injection is into
> a
> > static field
> > + */
> > + public static boolean
> > isStaticInjection(InjectionPoint injectionPoint)
> > + {
> > + if (injectionPoint !=
> null)
> > + {
> > + Member
> member =
> > injectionPoint.getMember();
> > + if (member
> !=
> > null &&
> Modifier.isStatic(member.getModifiers()))
> > + {
> > +
>
> > return true;
> > + }
> > + }
> > +
> > + return false;
> > + }
> >
> > }
> > \ No newline at end of file
> >
> >
> >
>
> __________________________________________________
> Do You Yahoo!?
> Sie sind Spam leid? Yahoo! Mail verfügt über einen
> herausragenden Schutz gegen Massenmails.
> http://mail.yahoo.com
>
>
>
>
> ___________________________________________________________________
> Yahoo! Türkiye açıldı! http://yahoo.com.tr
> İnternet üzerindeki en iyi içeriği Yahoo! Türkiye
> sizlere sunuyor!
__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails.
http://mail.yahoo.com
Re: AW: svn commit: r912404 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/ intercept/ intercept/webbeans/ proxy/ util/
Posted by Gurkan Erdogdu <gu...@yahoo.com>.
Mark;
testProxySerialization(org.apache.webbeans.newtests.contexts.SerializationTest)
This test is failed!. Could you add it to ignore list until new version of Javassist?
--Gurkan
________________________________
From: Mark Struberg <st...@yahoo.de>
To: dev@openwebbeans.apache.org
Sent: Sun, February 21, 2010 11:25:11 PM
Subject: AW: svn commit: r912404 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/ intercept/ intercept/webbeans/ proxy/ util/
please note that you use the patched javassist version [1] to make the serialisation work.
The patch has already been submitted to JBoss [2].
LieGrue,
strub
[1] http://github.com/struberg/javassist
[2] https://jira.jboss.org/jira/browse/JASSIST-97
--- struberg@apache.org <st...@apache.org> schrieb am So, 21.2.2010:
> Von: struberg@apache.org <st...@apache.org>
> Betreff: svn commit: r912404 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/ intercept/ intercept/webbeans/ proxy/ util/
> An: commits@openwebbeans.apache.org
> Datum: Sonntag, 21. Februar, 2010 22:10 Uhr
> Author: struberg
> Date: Sun Feb 21 21:10:44 2010
> New Revision: 912404
>
> URL: http://svn.apache.org/viewvc?rev=912404&view=rev
> Log:
> OWB-6 further passiation and CreationalContext fixes
>
> Added:
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> Modified:
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.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/proxy/JavassistProxyFactory.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> Sun Feb 21 21:10:44 2010
> @@ -16,6 +16,7 @@
> import javax.enterprise.context.spi.CreationalContext;
> import javax.enterprise.inject.spi.BeanManager;
>
> +import
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> import org.apache.webbeans.container.BeanManagerImpl;
>
> public class BeanManagerBean extends
> AbstractOwbBean<BeanManager>
> @@ -34,6 +35,7 @@
> {
>
> manager = BeanManagerImpl.getManager();
> }
> + setImplScopeType(new
> ApplicationScopeLiteral());
>
> return manager;
> }
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> Sun Feb 21 21:10:44 2010
> @@ -16,6 +16,7 @@
> import javax.enterprise.context.Conversation;
> import javax.enterprise.context.spi.CreationalContext;
>
> +import
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> import org.apache.webbeans.conversation.ConversationImpl;
> import
> org.apache.webbeans.conversation.ConversationManager;
> import org.apache.webbeans.spi.ConversationService;
> @@ -34,6 +35,7 @@
> public ConversationBean()
> {
>
> super(WebBeansType.CONVERSATION,
> Conversation.class);
> + setImplScopeType(new
> ApplicationScopeLiteral());
> }
>
> /**
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> Sun Feb 21 21:10:44 2010
> @@ -15,6 +15,7 @@
>
> import javax.enterprise.context.spi.CreationalContext;
>
> +import
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> import
> org.apache.webbeans.portable.events.ExtensionLoader;
>
> /**
> @@ -34,6 +35,7 @@
> public
> ExtensionBean(Class<T> returnType)
> {
>
> super(WebBeansType.EXTENSION,returnType);
> + setImplScopeType(new
> ApplicationScopeLiteral());
> }
>
> /**
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> Sun Feb 21 21:10:44 2010
> @@ -650,19 +650,23 @@
> {
>
> ownerCreationalContextImpl =
> (CreationalContextImpl<?>)ownerCreationalContext;
> }
> -
>
> +
> //Find the injection
> point Bean
> Bean<Object>
> injectedBean =
> (Bean<Object>)injectionResolver.getInjectionPointBean(injectionPoint);
>
> CreationalContextImpl<Object>
> injectedCreational =
> (CreationalContextImpl<Object>)createCreationalContext(injectedBean);
>
>
> if(WebBeansUtil.isDependent(injectedBean))
> {
>
> -
> injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
>
> +
> injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
>
> //Creating a new creational context for
> target bean instance
>
> instance = getReference(injectedBean,
> injectionPoint.getType(), injectedCreational);
>
> - //Add this
> dependent into bean dependent list
> -
> ownerCreationalContextImpl.addDependent(injectedBean,
> instance, injectedCreational);
> + // add this
> dependent into bean dependent list
> + // only if the
> member is not static and not already a proxy
> + if
> (!WebBeansUtil.isStaticInjection(injectionPoint) &&
> !JavassistProxyFactory.isProxyInstance(instance))
> + {
> +
> ownerCreationalContextImpl.addDependent(injectedBean,
> instance, injectedCreational);
> + }
> }
>
> else
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> Sun Feb 21 21:10:44 2010
> @@ -42,54 +42,6 @@
>
> private
> CreationalContextImpl<?> ownerCreational = null;
>
> - private static class
> DependentCreationalContext<S> implements Serializable
> - {
> - private static final long
> serialVersionUID = 7107949019995422165L;
> -
> - private
> CreationalContext<S> creationalContext;
> -
> - private Contextual<S>
> contextual;
> -
> - /**
> - * @return the
> creationalContext
> - */
> - public
> CreationalContext<S> getCreationalContext()
> - {
> - return
> creationalContext;
> - }
> -
> - /**
> - * @param
> creationalContext the creationalContext to set
> - */
> - public void
> setCreationalContext(CreationalContext<S>
> creationalContext)
> - {
> -
> this.creationalContext = creationalContext;
> - }
> -
> - /**
> - * @return the
> contextual
> - */
> - public Contextual<S>
> getContextual()
> - {
> - return
> contextual;
> - }
> -
> - /**
> - * @param contextual
> the contextual to set
> - */
> - public void
> setContextual(Contextual<S> contextual)
> - {
> - this.contextual
> = contextual;
> - }
> -
> - public
> DependentCreationalContext(CreationalContext<S> cc,
> Contextual<S> contextual)
> - {
> - this.contextual
> = contextual;
> -
> this.creationalContext = cc;
> - }
> - }
> -
> -
> /**
> * Package private
> */
> @@ -168,7 +120,7 @@
> {
> T
> instance = (T)iterator.next();
>
> DependentCreationalContext<T>
> dependent =
> (DependentCreationalContext<T>)this.dependentObjects.get(instance);
> -
> dependent.getContextual().destroy(instance,
> (CreationalContext<T>)dependent.getCreationalContext());
>
> +
> dependent.getContextual().destroy(instance,
> dependent.getCreationalContext());
> }
>
>
> this.dependentObjects.clear();
> @@ -180,7 +132,7 @@
> @Override
> public void release()
> {
> - removeDependents();
>
> + removeDependents();
>
> }
>
>
> Added:
> 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=912404&view=auto
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> (added)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> Sun Feb 21 21:10:44 2010
> @@ -0,0 +1,124 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF)
> under one or more
> + * contributor license agreements. See the
> NOTICE file distributed with
> + * this work for additional information regarding
> copyright ownership.
> + * The ASF licenses this file to You under the
> Apache License, Version 2.0
> + * (the "License"); you may not use this file except
> in compliance with
> + * the License. You may obtain a copy of the
> License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in
> writing, software
> + * distributed under the License is distributed on
> an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
> either express or implied.
> + * See the License for the specific language
> governing permissions and
> + * limitations under the License.
> + */
> +package org.apache.webbeans.context.creational;
> +
> +import java.io.IOException;
> +import java.io.InvalidClassException;
> +import java.io.NotSerializableException;
> +import java.io.ObjectInputStream;
> +import java.io.ObjectOutputStream;
> +import java.io.Serializable;
> +
> +import javax.enterprise.context.spi.Contextual;
> +import javax.enterprise.context.spi.CreationalContext;
> +
> +import org.apache.webbeans.container.BeanManagerImpl;
> +import org.apache.webbeans.util.WebBeansUtil;
> +
> +class DependentCreationalContext<S> implements
> Serializable
> +{
> + private static final long serialVersionUID =
> 7107949019995422165L;
> +
> + private CreationalContext<S>
> creationalContext;
> +
> + private Contextual<S> contextual;
> +
> + /**
> + * @return the creationalContext
> + */
> + public CreationalContext<S>
> getCreationalContext()
> + {
> + return creationalContext;
> + }
> +
> + /**
> + * @param creationalContext the
> creationalContext to set
> + */
> + public void
> setCreationalContext(CreationalContext<S>
> creationalContext)
> + {
> + this.creationalContext =
> creationalContext;
> + }
> +
> + /**
> + * @return the contextual
> + */
> + public Contextual<S> getContextual()
> + {
> + return contextual;
> + }
> +
> + /**
> + * @param contextual the
> contextual to set
> + */
> + public void
> setContextual(Contextual<S> contextual)
> + {
> + this.contextual = contextual;
> + }
> +
> + public
> DependentCreationalContext(CreationalContext<S> cc,
> Contextual<S> contextual)
> + {
> + this.contextual = contextual;
> + this.creationalContext = cc;
> + }
> +
> + private synchronized void
> writeObject(ObjectOutputStream s)
> + throws IOException
> + {
> +
> s.writeLong(serialVersionUID);
> +
> +
> s.writeObject(creationalContext);
> +
> + String id = null;
> + if (contextual != null)
> + {
> + if ((id =
> WebBeansUtil.isPassivationCapable(contextual)) != null)
> + {
> +
> s.writeObject(id);
> + }
> + else
> + {
> +
> throw new NotSerializableException("cannot serialize " +
> contextual.toString());
> + }
> +
> + }
> + else
> + {
> +
> s.writeObject(null);
> + }
> + }
> +
> +
> + @SuppressWarnings("unchecked")
> + private synchronized void
> readObject(ObjectInputStream s)
> + throws IOException, ClassNotFoundException
> + {
> + long svId = s.readLong();
> + if (svId != serialVersionUID)
> + {
> + throw new
> InvalidClassException(this.getClass().getSimpleName());
> + }
> +
> + creationalContext =
> (CreationalContext<S>) s.readObject();
> +
> + String id = (String)
> s.readObject();
> + if (id != null)
> + {
> + contextual =
> (Contextual<S>)
> BeanManagerImpl.getManager().getPassivationCapableBean(id);
> + }
> + }
> +
> +}
> \ No newline at end of file
>
> 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=912404&r1=912403&r2=912404&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
> Sun Feb 21 21:10:44 2010
> @@ -372,23 +372,26 @@
>
> private void
> writeObject(ObjectOutputStream s) throws IOException
> {
> +
> s.writeLong(serialVersionUID);
>
> if(WebBeansUtil.isPassivationCapable(this.bean)
> != null)
> {
> - s.writeByte(1);
>
> s.writeUTF(this.bean.getId());
> }
> else
> {
>
> logger.warn("Trying to serialize not
> passivated capable bean proxy : " + this.bean);
> - s.writeByte(0);
> }
> }
>
> private void
> readObject(ObjectInputStream s) throws IOException,
> ClassNotFoundException
> {
> - if( s.readByte() == 1)
> + if( s.readLong() ==
> serialVersionUID)
> {
> - this.bean =
> (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(s.readUTF());
> + String
> passivationId = s.readUTF();
> + if
> (passivationId != null)
> + {
> +
> this.bean =
> (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(passivationId);
> + }
> }
> else
> {
>
> 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=912404&r1=912403&r2=912404&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
> Sun Feb 21 21:10:44 2010
> @@ -456,5 +456,10 @@
> {
> return
> this.delegateBean.isAlternative();
> }
> -
> +
> + @Override
> + public boolean isPassivationCapable()
> + {
> + return true;
> + }
> }
> \ No newline at end of file
>
> 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=912404&r1=912403&r2=912404&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 Feb 21 21:10:44 2010
> @@ -205,5 +205,14 @@
>
> return result;
> }
> +
> + /**
> + * @param o the object to check
> + * @return
> <code>true</code> if the given object is a
> proxy
> + */
> + public static boolean isProxyInstance(Object
> o)
> + {
> + return o instanceof
> ProxyObject;
> + }
>
> }
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> Sun Feb 21 21:10:44 2010
> @@ -22,6 +22,7 @@
> import java.lang.reflect.InvocationTargetException;
> import java.lang.reflect.Member;
> import java.lang.reflect.Method;
> +import java.lang.reflect.Modifier;
> import java.lang.reflect.ParameterizedType;
> import java.lang.reflect.Type;
> import java.lang.reflect.TypeVariable;
> @@ -2731,5 +2732,25 @@
>
> return managedBean;
> }
> +
> + /**
> + * Determines if the injection is
> to be performed into a static field.
> + *
> + * @param injectionPoint
> + * @return
> <code>true</code> if the injection is into a
> static field
> + */
> + public static boolean
> isStaticInjection(InjectionPoint injectionPoint)
> + {
> + if (injectionPoint != null)
> + {
> + Member member =
> injectionPoint.getMember();
> + if (member !=
> null && Modifier.isStatic(member.getModifiers()))
> + {
> +
> return true;
> + }
> + }
> +
> + return false;
> + }
>
> }
> \ No newline at end of file
>
>
>
__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails.
http://mail.yahoo.com
___________________________________________________________________
Yahoo! Türkiye açıldı! http://yahoo.com.tr
İnternet üzerindeki en iyi içeriği Yahoo! Türkiye sizlere sunuyor!
AW: svn commit: r912404 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/ intercept/ intercept/webbeans/ proxy/ util/
Posted by Mark Struberg <st...@yahoo.de>.
please note that you use the patched javassist version [1] to make the serialisation work.
The patch has already been submitted to JBoss [2].
LieGrue,
strub
[1] http://github.com/struberg/javassist
[2] https://jira.jboss.org/jira/browse/JASSIST-97
--- struberg@apache.org <st...@apache.org> schrieb am So, 21.2.2010:
> Von: struberg@apache.org <st...@apache.org>
> Betreff: svn commit: r912404 - in /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans: component/ container/ context/creational/ intercept/ intercept/webbeans/ proxy/ util/
> An: commits@openwebbeans.apache.org
> Datum: Sonntag, 21. Februar, 2010 22:10 Uhr
> Author: struberg
> Date: Sun Feb 21 21:10:44 2010
> New Revision: 912404
>
> URL: http://svn.apache.org/viewvc?rev=912404&view=rev
> Log:
> OWB-6 further passiation and CreationalContext fixes
>
> Added:
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> Modified:
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.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/proxy/JavassistProxyFactory.java
>
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/BeanManagerBean.java
> Sun Feb 21 21:10:44 2010
> @@ -16,6 +16,7 @@
> import javax.enterprise.context.spi.CreationalContext;
> import javax.enterprise.inject.spi.BeanManager;
>
> +import
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> import org.apache.webbeans.container.BeanManagerImpl;
>
> public class BeanManagerBean extends
> AbstractOwbBean<BeanManager>
> @@ -34,6 +35,7 @@
> {
>
> manager = BeanManagerImpl.getManager();
> }
> + setImplScopeType(new
> ApplicationScopeLiteral());
>
> return manager;
> }
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ConversationBean.java
> Sun Feb 21 21:10:44 2010
> @@ -16,6 +16,7 @@
> import javax.enterprise.context.Conversation;
> import javax.enterprise.context.spi.CreationalContext;
>
> +import
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> import org.apache.webbeans.conversation.ConversationImpl;
> import
> org.apache.webbeans.conversation.ConversationManager;
> import org.apache.webbeans.spi.ConversationService;
> @@ -34,6 +35,7 @@
> public ConversationBean()
> {
>
> super(WebBeansType.CONVERSATION,
> Conversation.class);
> + setImplScopeType(new
> ApplicationScopeLiteral());
> }
>
> /**
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/ExtensionBean.java
> Sun Feb 21 21:10:44 2010
> @@ -15,6 +15,7 @@
>
> import javax.enterprise.context.spi.CreationalContext;
>
> +import
> org.apache.webbeans.annotation.ApplicationScopeLiteral;
> import
> org.apache.webbeans.portable.events.ExtensionLoader;
>
> /**
> @@ -34,6 +35,7 @@
> public
> ExtensionBean(Class<T> returnType)
> {
>
> super(WebBeansType.EXTENSION,returnType);
> + setImplScopeType(new
> ApplicationScopeLiteral());
> }
>
> /**
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/container/BeanManagerImpl.java
> Sun Feb 21 21:10:44 2010
> @@ -650,19 +650,23 @@
> {
>
> ownerCreationalContextImpl =
> (CreationalContextImpl<?>)ownerCreationalContext;
> }
> -
>
> +
> //Find the injection
> point Bean
> Bean<Object>
> injectedBean =
> (Bean<Object>)injectionResolver.getInjectionPointBean(injectionPoint);
>
> CreationalContextImpl<Object>
> injectedCreational =
> (CreationalContextImpl<Object>)createCreationalContext(injectedBean);
>
>
> if(WebBeansUtil.isDependent(injectedBean))
> {
>
> -
> injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
>
> +
> injectedCreational.setOwnerCreational(ownerCreationalContextImpl);
>
> //Creating a new creational context for
> target bean instance
>
> instance = getReference(injectedBean,
> injectionPoint.getType(), injectedCreational);
>
> - //Add this
> dependent into bean dependent list
> -
> ownerCreationalContextImpl.addDependent(injectedBean,
> instance, injectedCreational);
> + // add this
> dependent into bean dependent list
> + // only if the
> member is not static and not already a proxy
> + if
> (!WebBeansUtil.isStaticInjection(injectionPoint) &&
> !JavassistProxyFactory.isProxyInstance(instance))
> + {
> +
> ownerCreationalContextImpl.addDependent(injectedBean,
> instance, injectedCreational);
> + }
> }
>
> else
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/CreationalContextImpl.java
> Sun Feb 21 21:10:44 2010
> @@ -42,54 +42,6 @@
>
> private
> CreationalContextImpl<?> ownerCreational = null;
>
> - private static class
> DependentCreationalContext<S> implements Serializable
> - {
> - private static final long
> serialVersionUID = 7107949019995422165L;
> -
> - private
> CreationalContext<S> creationalContext;
> -
> - private Contextual<S>
> contextual;
> -
> - /**
> - * @return the
> creationalContext
> - */
> - public
> CreationalContext<S> getCreationalContext()
> - {
> - return
> creationalContext;
> - }
> -
> - /**
> - * @param
> creationalContext the creationalContext to set
> - */
> - public void
> setCreationalContext(CreationalContext<S>
> creationalContext)
> - {
> -
> this.creationalContext = creationalContext;
> - }
> -
> - /**
> - * @return the
> contextual
> - */
> - public Contextual<S>
> getContextual()
> - {
> - return
> contextual;
> - }
> -
> - /**
> - * @param contextual
> the contextual to set
> - */
> - public void
> setContextual(Contextual<S> contextual)
> - {
> - this.contextual
> = contextual;
> - }
> -
> - public
> DependentCreationalContext(CreationalContext<S> cc,
> Contextual<S> contextual)
> - {
> - this.contextual
> = contextual;
> -
> this.creationalContext = cc;
> - }
> - }
> -
> -
> /**
> * Package private
> */
> @@ -168,7 +120,7 @@
> {
> T
> instance = (T)iterator.next();
>
> DependentCreationalContext<T>
> dependent =
> (DependentCreationalContext<T>)this.dependentObjects.get(instance);
> -
> dependent.getContextual().destroy(instance,
> (CreationalContext<T>)dependent.getCreationalContext());
>
> +
> dependent.getContextual().destroy(instance,
> dependent.getCreationalContext());
> }
>
>
> this.dependentObjects.clear();
> @@ -180,7 +132,7 @@
> @Override
> public void release()
> {
> - removeDependents();
>
> + removeDependents();
>
> }
>
>
> Added:
> 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=912404&view=auto
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> (added)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/creational/DependentCreationalContext.java
> Sun Feb 21 21:10:44 2010
> @@ -0,0 +1,124 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF)
> under one or more
> + * contributor license agreements. See the
> NOTICE file distributed with
> + * this work for additional information regarding
> copyright ownership.
> + * The ASF licenses this file to You under the
> Apache License, Version 2.0
> + * (the "License"); you may not use this file except
> in compliance with
> + * the License. You may obtain a copy of the
> License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in
> writing, software
> + * distributed under the License is distributed on
> an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
> either express or implied.
> + * See the License for the specific language
> governing permissions and
> + * limitations under the License.
> + */
> +package org.apache.webbeans.context.creational;
> +
> +import java.io.IOException;
> +import java.io.InvalidClassException;
> +import java.io.NotSerializableException;
> +import java.io.ObjectInputStream;
> +import java.io.ObjectOutputStream;
> +import java.io.Serializable;
> +
> +import javax.enterprise.context.spi.Contextual;
> +import javax.enterprise.context.spi.CreationalContext;
> +
> +import org.apache.webbeans.container.BeanManagerImpl;
> +import org.apache.webbeans.util.WebBeansUtil;
> +
> +class DependentCreationalContext<S> implements
> Serializable
> +{
> + private static final long serialVersionUID =
> 7107949019995422165L;
> +
> + private CreationalContext<S>
> creationalContext;
> +
> + private Contextual<S> contextual;
> +
> + /**
> + * @return the creationalContext
> + */
> + public CreationalContext<S>
> getCreationalContext()
> + {
> + return creationalContext;
> + }
> +
> + /**
> + * @param creationalContext the
> creationalContext to set
> + */
> + public void
> setCreationalContext(CreationalContext<S>
> creationalContext)
> + {
> + this.creationalContext =
> creationalContext;
> + }
> +
> + /**
> + * @return the contextual
> + */
> + public Contextual<S> getContextual()
> + {
> + return contextual;
> + }
> +
> + /**
> + * @param contextual the
> contextual to set
> + */
> + public void
> setContextual(Contextual<S> contextual)
> + {
> + this.contextual = contextual;
> + }
> +
> + public
> DependentCreationalContext(CreationalContext<S> cc,
> Contextual<S> contextual)
> + {
> + this.contextual = contextual;
> + this.creationalContext = cc;
> + }
> +
> + private synchronized void
> writeObject(ObjectOutputStream s)
> + throws IOException
> + {
> +
> s.writeLong(serialVersionUID);
> +
> +
> s.writeObject(creationalContext);
> +
> + String id = null;
> + if (contextual != null)
> + {
> + if ((id =
> WebBeansUtil.isPassivationCapable(contextual)) != null)
> + {
> +
> s.writeObject(id);
> + }
> + else
> + {
> +
> throw new NotSerializableException("cannot serialize " +
> contextual.toString());
> + }
> +
> + }
> + else
> + {
> +
> s.writeObject(null);
> + }
> + }
> +
> +
> + @SuppressWarnings("unchecked")
> + private synchronized void
> readObject(ObjectInputStream s)
> + throws IOException, ClassNotFoundException
> + {
> + long svId = s.readLong();
> + if (svId != serialVersionUID)
> + {
> + throw new
> InvalidClassException(this.getClass().getSimpleName());
> + }
> +
> + creationalContext =
> (CreationalContext<S>) s.readObject();
> +
> + String id = (String)
> s.readObject();
> + if (id != null)
> + {
> + contextual =
> (Contextual<S>)
> BeanManagerImpl.getManager().getPassivationCapableBean(id);
> + }
> + }
> +
> +}
> \ No newline at end of file
>
> 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=912404&r1=912403&r2=912404&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
> Sun Feb 21 21:10:44 2010
> @@ -372,23 +372,26 @@
>
> private void
> writeObject(ObjectOutputStream s) throws IOException
> {
> +
> s.writeLong(serialVersionUID);
>
> if(WebBeansUtil.isPassivationCapable(this.bean)
> != null)
> {
> - s.writeByte(1);
>
> s.writeUTF(this.bean.getId());
> }
> else
> {
>
> logger.warn("Trying to serialize not
> passivated capable bean proxy : " + this.bean);
> - s.writeByte(0);
> }
> }
>
> private void
> readObject(ObjectInputStream s) throws IOException,
> ClassNotFoundException
> {
> - if( s.readByte() == 1)
> + if( s.readLong() ==
> serialVersionUID)
> {
> - this.bean =
> (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(s.readUTF());
> + String
> passivationId = s.readUTF();
> + if
> (passivationId != null)
> + {
> +
> this.bean =
> (OwbBean<?>)BeanManagerImpl.getManager().getPassivationCapableBean(passivationId);
> + }
> }
> else
> {
>
> 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=912404&r1=912403&r2=912404&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
> Sun Feb 21 21:10:44 2010
> @@ -456,5 +456,10 @@
> {
> return
> this.delegateBean.isAlternative();
> }
> -
> +
> + @Override
> + public boolean isPassivationCapable()
> + {
> + return true;
> + }
> }
> \ No newline at end of file
>
> 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=912404&r1=912403&r2=912404&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 Feb 21 21:10:44 2010
> @@ -205,5 +205,14 @@
>
> return result;
> }
> +
> + /**
> + * @param o the object to check
> + * @return
> <code>true</code> if the given object is a
> proxy
> + */
> + public static boolean isProxyInstance(Object
> o)
> + {
> + return o instanceof
> ProxyObject;
> + }
>
> }
>
> Modified:
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java?rev=912404&r1=912403&r2=912404&view=diff
> ==============================================================================
> ---
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> (original)
> +++
> openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
> Sun Feb 21 21:10:44 2010
> @@ -22,6 +22,7 @@
> import java.lang.reflect.InvocationTargetException;
> import java.lang.reflect.Member;
> import java.lang.reflect.Method;
> +import java.lang.reflect.Modifier;
> import java.lang.reflect.ParameterizedType;
> import java.lang.reflect.Type;
> import java.lang.reflect.TypeVariable;
> @@ -2731,5 +2732,25 @@
>
> return managedBean;
> }
> +
> + /**
> + * Determines if the injection is
> to be performed into a static field.
> + *
> + * @param injectionPoint
> + * @return
> <code>true</code> if the injection is into a
> static field
> + */
> + public static boolean
> isStaticInjection(InjectionPoint injectionPoint)
> + {
> + if (injectionPoint != null)
> + {
> + Member member =
> injectionPoint.getMember();
> + if (member !=
> null && Modifier.isStatic(member.getModifiers()))
> + {
> +
> return true;
> + }
> + }
> +
> + return false;
> + }
>
> }
> \ No newline at end of file
>
>
>
__________________________________________________
Do You Yahoo!?
Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails.
http://mail.yahoo.com