You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/04/19 16:05:03 UTC

svn commit: r1469836 [3/3] - in /tomee/tomee/trunk: ./ arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/enrichment/ arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/ container/o...

Modified: tomee/tomee/trunk/tck/cdi-embedded/pom.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-embedded/pom.xml?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-embedded/pom.xml (original)
+++ tomee/tomee/trunk/tck/cdi-embedded/pom.xml Fri Apr 19 14:05:02 2013
@@ -81,14 +81,6 @@
           <suiteXmlFiles>
             <suiteXmlFile>src/test/resources/passing.xml</suiteXmlFile>
           </suiteXmlFiles>
-          <systemPropertyVariables>
-            <!--<org.jboss.testharness.standalone>false</org.jboss.testharness.standalone>-->
-            <!--<org.jboss.testharness.runIntegrationTests>true</org.jboss.testharness.runIntegrationTests>-->
-            <!--<org.jboss.testharness.container.forceRestart>true</org.jboss.testharness.container.forceRestart>-->
-            <!--<org.jboss.testharness.libraryDirectory>${project.build.directory}/dependency/lib</org.jboss.testharness.libraryDirectory>-->
-            <!--<org.jboss.testharness.outputDirectory>target</org.jboss.testharness.outputDirectory>-->
-            <!--<deleteArtifacts>true</deleteArtifacts>-->
-          </systemPropertyVariables>
         </configuration>
       </plugin>
     </plugins>

Modified: tomee/tomee/trunk/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java (original)
+++ tomee/tomee/trunk/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/BeansImpl.java Fri Apr 19 14:05:02 2013
@@ -32,7 +32,7 @@ public class BeansImpl implements org.jb
 
     public boolean isProxy(Object instance) {
         System.out.println("isProxy: " + instance);
-        return instance instanceof IntraVmProxy || instance.getClass().getName().contains("$$");
+        return instance instanceof IntraVmProxy || instance.getClass().getName().contains("$Owb");
     }
 
     @Override

Modified: tomee/tomee/trunk/tck/cdi-embedded/src/test/resources/failing.xml
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-embedded/src/test/resources/failing.xml?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-embedded/src/test/resources/failing.xml (original)
+++ tomee/tomee/trunk/tck/cdi-embedded/src/test/resources/failing.xml Fri Apr 19 14:05:02 2013
@@ -16,21 +16,9 @@
   limitations under the License.
   -->
 <suite name="CDI TCK" verbose="0">
-  <listeners>
-    <listener class-name="org.apache.openejb.tck.cdi.embedded.RequestScopeTestListener" />
-  </listeners>
   <test name="CDI TCK">
-    <!--<packages>-->
-        <!--<package name="org.jboss.jsr299.tck.tests.*"/>-->
-        <!--<package name="org.jboss.jsr299.tck.interceptors.tests.*"/>-->
-    <!--</packages>-->
     <classes>
-      <!--<class name="org.jboss.jsr299.tck.tests.context.session.SessionContextTest"/>-->
-      <!--<class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>-->
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest"/>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest"/>
-      <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest"/>
-      <!--<class name="org.jboss.jsr299.tck.tests.lookup.el.integration.IntegrationWithUnifiedELTest"/>-->
+      <class name="org.jboss.jsr299.tck.tests.event.observer.enterprise.EnterpriseEventInheritenceTest"/>
     </classes>
   </test>
 </suite>

Modified: tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/BeansImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/BeansImpl.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/BeansImpl.java (original)
+++ tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/BeansImpl.java Fri Apr 19 14:05:02 2013
@@ -32,7 +32,7 @@ public class BeansImpl implements org.jb
 
     public boolean isProxy(Object instance) {
         System.out.println("isProxy: " + instance);
-        return instance instanceof IntraVmProxy || instance.getClass().getName().contains("$$");
+        return instance instanceof IntraVmProxy || instance.getClass().getName().contains("$Owb");
     }
 
     @Override

Modified: tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java (original)
+++ tomee/tomee/trunk/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java Fri Apr 19 14:05:02 2013
@@ -19,8 +19,8 @@ package org.apache.openejb.tck.cdi.tomee
 import org.apache.el.ExpressionFactoryImpl;
 import org.apache.el.lang.FunctionMapperImpl;
 import org.apache.el.lang.VariableMapperImpl;
-import org.apache.webbeans.el.WebBeansELResolver;
-import org.apache.webbeans.el.WrappedExpressionFactory;
+import org.apache.webbeans.el22.WebBeansELResolver;
+import org.apache.webbeans.el22.WrappedExpressionFactory;
 
 import javax.el.ArrayELResolver;
 import javax.el.BeanELResolver;

Modified: tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/BeansImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/BeansImpl.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/BeansImpl.java (original)
+++ tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/BeansImpl.java Fri Apr 19 14:05:02 2013
@@ -35,7 +35,7 @@ public class BeansImpl implements org.jb
 
     public boolean isProxy(Object instance) {
         System.out.println("isProxy: " + instance);
-        return instance instanceof IntraVmProxy || instance.getClass().getName().contains("$$");
+        return instance instanceof IntraVmProxy || instance.getClass().getName().contains("$Owb");
     }
 
     @Override

Modified: tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java (original)
+++ tomee/tomee/trunk/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java Fri Apr 19 14:05:02 2013
@@ -19,8 +19,8 @@ package org.apache.openejb.tck.cdi.tomee
 import org.apache.el.ExpressionFactoryImpl;
 import org.apache.el.lang.FunctionMapperImpl;
 import org.apache.el.lang.VariableMapperImpl;
-import org.apache.webbeans.el.WebBeansELResolver;
-import org.apache.webbeans.el.WrappedExpressionFactory;
+import org.apache.webbeans.el22.WrappedExpressionFactory;
+import org.apache.webbeans.el22.WebBeansELResolver;
 
 import javax.el.ArrayELResolver;
 import javax.el.BeanELResolver;

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Fri Apr 19 14:05:02 2013
@@ -48,6 +48,7 @@ import org.apache.catalina.ha.tcp.Simple
 import org.apache.catalina.loader.VirtualWebappLoader;
 import org.apache.catalina.loader.WebappClassLoader;
 import org.apache.catalina.loader.WebappLoader;
+import org.apache.catalina.session.StandardManager;
 import org.apache.catalina.startup.Constants;
 import org.apache.catalina.startup.ContextConfig;
 import org.apache.catalina.startup.HostConfig;
@@ -111,7 +112,6 @@ import org.apache.tomee.catalina.cluster
 import org.apache.tomee.catalina.cluster.TomEEClusterListener;
 import org.apache.tomee.catalina.event.AfterApplicationCreated;
 import org.apache.tomee.catalina.routing.RouterValve;
-import org.apache.tomee.catalina.session.OWBStandardManager;
 import org.apache.tomee.common.LegacyAnnotationProcessor;
 import org.apache.tomee.common.NamingUtil;
 import org.apache.tomee.common.TomcatVersion;
@@ -755,7 +755,7 @@ public class TomcatWebAppBuilder impleme
                     sessionManagerClass = TomcatHelper.getServer().getParentClassLoader().loadClass(sessionManager);
                 } catch (ClassNotFoundException e) {
                     logger.error("can't find '" + sessionManager + "', StandardManager will be used", e);
-                    sessionManagerClass = OWBStandardManager.class;
+                    sessionManagerClass = StandardManager.class;
                 }
             }
 
@@ -766,7 +766,7 @@ public class TomcatWebAppBuilder impleme
                 logger.error("can't instantiate '" + sessionManager + "', StandardManager will be used", e);
             }
         } else if (standardContext.getCluster() == null) { // else let it use the cluster to create the manager
-            standardContext.setManager(new OWBStandardManager());
+            standardContext.setManager(new StandardManager());
         }
 
         if (standardContext.getConfigFile() == null) {

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/cdi/SessionNormalScopeBeanHandler.java Fri Apr 19 14:05:02 2013
@@ -16,52 +16,103 @@
  */
 package org.apache.tomee.catalina.cdi;
 
-import org.apache.webbeans.component.OwbBean;
+import org.apache.openejb.server.httpd.EndWebBeansListener;
+import org.apache.tomee.catalina.TomEERuntimeException;
 import org.apache.webbeans.context.creational.BeanInstanceBag;
-import org.apache.webbeans.context.creational.CreationalContextImpl;
 import org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler;
 
 import javax.enterprise.context.SessionScoped;
 import javax.enterprise.context.spi.Context;
-import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.BeanManager;
 import javax.servlet.http.HttpSession;
-import java.lang.reflect.Method;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
 
 public class SessionNormalScopeBeanHandler extends NormalScopedBeanInterceptorHandler {
-    public SessionNormalScopeBeanHandler(final OwbBean<?> bean, final CreationalContext<?> creationalContext) {
-        super(bean, creationalContext);
+    private static final Field BAG_INSTANCE;
+    static {
+        try {
+            BAG_INSTANCE = BeanInstanceBag.class.getDeclaredField("beanInstance");
+            BAG_INSTANCE.setAccessible(true);
+        } catch (final NoSuchFieldException e) {
+            throw new TomEERuntimeException(e);
+        }
+    }
+
+    private final ThreadLocal<Map<Bean<?>, UpdateInfo>> objects = new ThreadLocal<Map<Bean<?>, UpdateInfo>>() {
+        @Override
+        protected Map<Bean<?>, UpdateInfo> initialValue() {
+            EndWebBeansListener.pushRequestReleasable(new Runnable() { // update in batch
+                @Override
+                public void run() {
+                    final Map<Bean<?>, UpdateInfo> values = objects.get();
+                    for (final UpdateInfo o : values.values()) {
+                        o.updateBean();
+                    }
+                    values.clear();
+                    objects.remove();
+                }
+            });
+            return new HashMap<Bean<?>, UpdateInfo>();
+        }
+    };
+
+    public SessionNormalScopeBeanHandler(final BeanManager beanManager, final Bean<?> bean) {
+        super(beanManager, bean);
     }
 
     @Override
-    public Object invoke(final Object instance, final Method method, final Object[] arguments) throws Throwable {
+    public Object get() {
         final Object webbeansInstance = getContextualInstance();
-        try {
-            return super.invoke(webbeansInstance, method, arguments, (CreationalContextImpl<?>) getContextualCreationalContext());
-        } finally {
-            updateBean(webbeansInstance);
+        final Map<Bean<?>, UpdateInfo> beanUpdateInfoMap = objects.get();
+
+        UpdateInfo info = beanUpdateInfoMap.get(this);
+        if (info == null) {
+            info = new UpdateInfo(bean, getBeanManager(), webbeansInstance);
+            beanUpdateInfoMap.put(bean, info);
         }
+
+        return webbeansInstance;
     }
 
-    private void updateBean(final Object value) {
-        final HttpSession session = session();
-        if (session == null) {
-            return;
+    protected static class UpdateInfo {
+        private Bean<?> bean;
+        private BeanManager bm;
+        private Object value;
+
+        protected UpdateInfo(final Bean<?> bean, final BeanManager bm, final Object value) {
+            this.bean = bean;
+            this.bm = bm;
+            this.value = value;
         }
 
-        // go through all listeners to be able to be replicated or do any processing which can be done
-        final String key = SessionContextBackedByHttpSession.key(bean);
-        final BeanInstanceBag<Object> bag = (BeanInstanceBag<Object>) session.getAttribute(key);
-        if (bag != null) {
-            bag.setBeanInstance(value);
-            session.setAttribute(key, bag);
+        protected void updateBean() {
+            final HttpSession session = session();
+            if (session == null) {
+                return;
+            }
+
+            // go through all listeners to be able to be replicated or do any processing which can be done
+            final String key = SessionContextBackedByHttpSession.key(bean);
+            final BeanInstanceBag<Object> bag = BeanInstanceBag.class.cast(session.getAttribute(key));
+            if (bag != null) {
+                try {
+                    BAG_INSTANCE.set(bag, value);
+                } catch (final IllegalAccessException e) {
+                    throw new TomEERuntimeException(e);
+                }
+                session.setAttribute(key, bag);
+            }
         }
-    }
 
-    private HttpSession session() {
-        final Context context = getBeanManager().getContext(SessionScoped.class);
-        if (!SessionContextBackedByHttpSession.class.isInstance(context)) {
-            return null;
+        private HttpSession session() {
+            final Context context = bm.getContext(SessionScoped.class);
+            if (!SessionContextBackedByHttpSession.class.isInstance(context)) {
+                return null;
+            }
+            return SessionContextBackedByHttpSession.class.cast(context).getSession();
         }
-        return ((SessionContextBackedByHttpSession) context).getSession();
     }
 }

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/session/QuickSessionManager.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/session/QuickSessionManager.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/session/QuickSessionManager.java (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/session/QuickSessionManager.java Fri Apr 19 14:05:02 2013
@@ -16,7 +16,9 @@
  */
 package org.apache.tomee.catalina.session;
 
-public class QuickSessionManager extends OWBStandardManager {
+import org.apache.catalina.session.StandardManager;
+
+public class QuickSessionManager extends StandardManager {
     public QuickSessionManager() {
         setSecureRandomClass("org.apache.tomee.catalina.session.FastNonSecureRandom");
     }

Modified: tomee/tomee/trunk/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java?rev=1469836&r1=1469835&r2=1469836&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java (original)
+++ tomee/tomee/trunk/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEMyFacesContainerInitializer.java Fri Apr 19 14:05:02 2013
@@ -163,7 +163,8 @@ public class TomEEMyFacesContainerInitia
             // remove our internal faces-config.xml
             final Iterator<URL> it = metaInfFacesConfigUrls.iterator();
             while (it.hasNext()) {
-                if (it.next().toExternalForm().replace(File.separator, "/").contains("/openwebbeans-jsf-")) {
+                final String next = it.next().toExternalForm().replace(File.separator, "/");
+                if (next.contains("/openwebbeans-jsf-") || next.contains("/openwebbeans-el22-")) {
                     it.remove();
                 }
             }