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();
}
}