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/03/25 17:05:43 UTC

svn commit: r927466 - in /openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/context/ test/java/org/apache/webbeans/newtests/contexts/ test/java/org/apache/webbeans/newtests/contexts/session/common/ test/java/org/apache/webbeans/newtes...

Author: struberg
Date: Thu Mar 25 16:05:43 2010
New Revision: 927466

URL: http://svn.apache.org/viewvc?rev=927466&view=rev
Log:
OWB-6 further test cases and a bit code cleanup

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/SessionContext.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/SerializationTest.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/session/common/PersonalDataBean.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/circular/beans/CircularDependenScopeBean.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java?rev=927466&r1=927465&r2=927466&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/ContextFactory.java Thu Mar 25 16:05:43 2010
@@ -158,34 +158,34 @@ public final class ContextFactory
      * @throws ContextNotActiveException if context is not active
      * @throws IllegalArgumentException if the type is not a standard context
      */
-    public static Context getStandartContext(ContextTypes type) throws ContextNotActiveException
+    public static Context getStandardContext(ContextTypes type) throws ContextNotActiveException
     {
         Context context = null;
 
         switch (type.getCardinal())
         {
             case 0:
-                context = (Context)contextService.getCurrentContext(RequestScoped.class);
+                context = contextService.getCurrentContext(RequestScoped.class);
                 break;
     
             case 1:
-                context = (Context)contextService.getCurrentContext(SessionScoped.class);
+                context = contextService.getCurrentContext(SessionScoped.class);
                 break;
     
             case 2:
-                context = (Context)contextService.getCurrentContext(ApplicationScoped.class);
+                context = contextService.getCurrentContext(ApplicationScoped.class);
                 break;
     
             case 3:
-                context = (Context)contextService.getCurrentContext(ConversationScoped.class);
+                context = contextService.getCurrentContext(ConversationScoped.class);
                 break;
                 
             case 4:
-                context = (Context)contextService.getCurrentContext(Dependent.class);
+                context = contextService.getCurrentContext(Dependent.class);
                 break;
 
             case 5:
-                context = (Context)contextService.getCurrentContext(Singleton.class);
+                context = contextService.getCurrentContext(Singleton.class);
                 break;
                 
             default:
@@ -206,28 +206,28 @@ public final class ContextFactory
 
         if (scopeType.equals(RequestScoped.class))
         {
-            context = getStandartContext(ContextTypes.REQUEST);
+            context = getStandardContext(ContextTypes.REQUEST);
         }
         else if (scopeType.equals(SessionScoped.class))
         {
-            context = getStandartContext(ContextTypes.SESSION);
+            context = getStandardContext(ContextTypes.SESSION);
         }
         else if (scopeType.equals(ApplicationScoped.class))
         {
-            context = getStandartContext(ContextTypes.APPLICATION);
+            context = getStandardContext(ContextTypes.APPLICATION);
         }
         else if (scopeType.equals(ConversationScoped.class))
         {
-            context = getStandartContext(ContextTypes.CONVERSATION);
+            context = getStandardContext(ContextTypes.CONVERSATION);
 
         }
         else if (scopeType.equals(Dependent.class))
         {
-            context = getStandartContext(ContextTypes.DEPENDENT);
+            context = getStandardContext(ContextTypes.DEPENDENT);
         }
         else if (scopeType.equals(Singleton.class))
         {
-            context = getStandartContext(ContextTypes.SINGLETON);
+            context = getStandardContext(ContextTypes.SINGLETON);
         }
         
         return context;

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=927466&r1=927465&r2=927466&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 Thu Mar 25 16:05:43 2010
@@ -13,6 +13,7 @@
  */
 package org.apache.webbeans.context;
 
+import java.io.Serializable;
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.enterprise.context.spi.Contextual;
@@ -22,8 +23,10 @@ import org.apache.webbeans.context.type.
 /**
  * Session context implementation.
  */
-public class SessionContext extends AbstractContext
+public class SessionContext extends AbstractContext implements Serializable
 {
+    private static final long serialVersionUID = 1L;
+
     public SessionContext()
     {
         super(ContextTypes.SESSION);

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/SerializationTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/SerializationTest.java?rev=927466&r1=927465&r2=927466&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/SerializationTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/SerializationTest.java Thu Mar 25 16:05:43 2010
@@ -21,6 +21,8 @@ package org.apache.webbeans.newtests.con
 
 import org.apache.webbeans.container.SerializableBean;
 import org.apache.webbeans.container.SerializableBeanVault;
+import org.apache.webbeans.context.ContextFactory;
+import org.apache.webbeans.context.type.ContextTypes;
 import org.apache.webbeans.newtests.AbstractUnitTest;
 import org.apache.webbeans.newtests.contexts.serialize.AppScopedBean;
 import org.apache.webbeans.newtests.contexts.serialize.SessScopedBean;
@@ -46,6 +48,7 @@ import org.junit.Test;
 
 import javassist.util.proxy.ProxyObject;
 
+import javax.enterprise.context.spi.Context;
 import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
@@ -61,6 +64,7 @@ import java.util.Set;
 public class SerializationTest extends AbstractUnitTest
 {
 
+    @SuppressWarnings("unchecked")
     @Test
     public void testCreationalContextSerialization() throws Exception
     {
@@ -79,8 +83,8 @@ public class SerializationTest extends A
         Assert.assertNotNull(pdbCreational);
 
         // oki, now let's serializeBean the CreationalContext
-        byte[] serial = serializeCreationalContext(pdbCreational);
-        CreationalContext<?> cc2 = deSerializeCreationalContext(serial);
+        byte[] serial = serializeObject(pdbCreational);
+        CreationalContext<?> cc2 = (CreationalContext<?>) deSerializeObject(serial);
         Assert.assertNotNull(cc2);
     }
 
@@ -124,9 +128,21 @@ public class SerializationTest extends A
 
                 Assert.assertEquals(((SerializableBean<?>)bean).getBean(), ((SerializableBean<?>)b2).getBean());
                 
-            }            
+            }
         }
-
+        
+        // and now we are keen and try to serialize the whole passivatable Contexts!
+        PersonalDataBean pdb = getInstance(PersonalDataBean.class);
+        pdb.business();
+        
+        // first we need to actually create a few instances
+        
+        Context sessionContext = ContextFactory.getStandardContext(ContextTypes.SESSION);
+        Assert.assertNotNull(sessionContext);
+        byte[] ba = serializeObject(sessionContext);
+        Assert.assertNotNull(ba);
+        Context sessContext2 = (Context) deSerializeObject(ba);
+        Assert.assertNotNull(sessContext2);
     }
     
     //X TODO this will work after JASSIST-97 got fixed @Test
@@ -171,31 +187,27 @@ public class SerializationTest extends A
 
     private byte[] serializeBean(Bean<?> bean) throws IOException
     {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        ObjectOutputStream oos = new ObjectOutputStream(baos);
-        oos.writeObject(bean);
-        return baos.toByteArray();
-    }
-
-    private Bean<?> deSerializeBean(byte[] serial) throws IOException, ClassNotFoundException {
-        ByteArrayInputStream bais = new ByteArrayInputStream(serial);
-        ObjectInputStream ois = new ObjectInputStream(bais);
-        return (Bean<?>) ois.readObject();
+        return serializeObject(bean);
     }
-
-    private byte[] serializeCreationalContext(CreationalContext<?> cc) throws IOException
+    
+    private byte[] serializeObject(Object o) throws IOException
     {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         ObjectOutputStream oos = new ObjectOutputStream(baos);
-        oos.writeObject(cc);
+        oos.writeObject(o);
         return baos.toByteArray();
     }
 
-    private CreationalContext<?> deSerializeCreationalContext(byte[] serial) throws IOException, ClassNotFoundException {
+    private Bean<?> deSerializeBean(byte[] serial) throws IOException, ClassNotFoundException
+    {
+        return (Bean<?>) deSerializeObject(serial);
+    }
+    
+    private Object deSerializeObject(byte[] serial) throws IOException, ClassNotFoundException
+    {
         ByteArrayInputStream bais = new ByteArrayInputStream(serial);
         ObjectInputStream ois = new ObjectInputStream(bais);
-        return (CreationalContext<?>) ois.readObject();
+        return ois.readObject();
     }
 
-
 }

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/session/common/PersonalDataBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/session/common/PersonalDataBean.java?rev=927466&r1=927465&r2=927466&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/session/common/PersonalDataBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/contexts/session/common/PersonalDataBean.java Thu Mar 25 16:05:43 2010
@@ -20,10 +20,14 @@ import javax.annotation.PreDestroy;
 import javax.enterprise.context.SessionScoped;
 import javax.inject.Named;
 
+import org.apache.webbeans.test.component.event.normal.Transactional;
+
 @Named("org.apache.webbeans.newtests.contexts.session.common.PersonalDataBean")
 @SessionScoped
 public class PersonalDataBean implements Serializable
 {
+    private static final long serialVersionUID = 1L;
+
     public static boolean POST_CONSTRUCT = false;
     
     public static boolean PRE_DESTROY = false;
@@ -33,6 +37,8 @@ public class PersonalDataBean implements
         
     }
     
+    
+    @Transactional
     public void business(){}
     
     @PostConstruct

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/circular/beans/CircularDependenScopeBean.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/circular/beans/CircularDependenScopeBean.java?rev=927466&r1=927465&r2=927466&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/circular/beans/CircularDependenScopeBean.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/injection/circular/beans/CircularDependenScopeBean.java Thu Mar 25 16:05:43 2010
@@ -18,6 +18,8 @@
  */
 package org.apache.webbeans.newtests.injection.circular.beans;
 
+import java.io.Serializable;
+
 import javax.annotation.PostConstruct;
 import javax.enterprise.context.Dependent;
 import javax.inject.Inject;
@@ -27,7 +29,7 @@ import org.apache.webbeans.test.componen
 
 @Dependent
 @Named(value="org.apache.webbeans.newtests.injection.circular.beans.CircularDependenScopeBean")
-public class CircularDependenScopeBean
+public class CircularDependenScopeBean implements Serializable
 {
     @Inject CircularApplicationScopedBean app;