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 2011/09/14 20:43:30 UTC
svn commit: r1170764 - in /openejb/trunk/openejb3:
assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/
tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/
tck/cdi-tomee/ tck/cdi-...
Author: rmannibucau
Date: Wed Sep 14 18:43:29 2011
New Revision: 1170764
URL: http://svn.apache.org/viewvc?rev=1170764&view=rev
Log:
implementing ELImpl for cdi tcks and refactoring a bit elresolver for tomcat
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
openejb/trunk/openejb3/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java
openejb/trunk/openejb3/tck/cdi-tomee/pom.xml
openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=1170764&r1=1170763&r2=1170764&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Wed Sep 14 18:43:29 2011
@@ -73,6 +73,7 @@ import org.omg.CORBA.ORB;
import javax.ejb.spi.HandleDelegate;
import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.persistence.EntityManagerFactory;
@@ -484,18 +485,15 @@ public class TomcatWebAppBuilder impleme
logger.error("Error merging OpenEJB JNDI entries in to war " + standardContext.getPath() + ": Exception: " + e.getMessage(), e);
}
- // CDI
- if (Thread.currentThread().getContextClassLoader().getResource("WEB-INF/beans.xml") != null) {
+ JspFactory factory = JspFactory.getDefaultFactory();
+ if (factory != null && Thread.currentThread().getContextClassLoader().getResource("WEB-INF/beans.xml") != null) {
+ JspApplicationContext applicationCtx = factory.getJspApplicationContext(standardContext.getServletContext());
WebBeansContext context = appContext.getWebBeansContext();
if (context != null) {
// Registering ELResolver with JSP container
ELAdaptor elAdaptor = context.getService(ELAdaptor.class);
ELResolver resolver = elAdaptor.getOwbELResolver();
- JspFactory factory = JspFactory.getDefaultFactory();
- if (factory != null) {
- JspApplicationContext applicationCtx = factory.getJspApplicationContext(standardContext.getServletContext());
- applicationCtx.addELResolver(resolver);
- }
+ applicationCtx.addELResolver(resolver);
}
}
}
Modified: openejb/trunk/openejb3/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java?rev=1170764&r1=1170763&r2=1170764&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee-embedded/src/main/java/org/apache/openejb/tck/cdi/tomee/embedded/ELImpl.java Wed Sep 14 18:43:29 2011
@@ -16,25 +16,86 @@
*/
package org.apache.openejb.tck.cdi.tomee.embedded;
+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 javax.el.ArrayELResolver;
+import javax.el.BeanELResolver;
+import javax.el.CompositeELResolver;
import javax.el.ELContext;
+import javax.el.ELContextEvent;
+import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
+import javax.el.FunctionMapper;
+import javax.el.ListELResolver;
+import javax.el.MapELResolver;
+import javax.el.ResourceBundleELResolver;
+import javax.el.VariableMapper;
/**
* @version $Rev$ $Date$
*/
public class ELImpl implements org.jboss.jsr299.tck.spi.EL {
- @Override
- public <T> T evaluateValueExpression(String expression, Class<T> expectedType) {
- return null;
+ private static final ExpressionFactory EXPRESSION_FACTORY = new WrappedExpressionFactory(new ExpressionFactoryImpl());
+
+ public ELImpl() {
}
- @Override
+ public static ELResolver getELResolver() {
+ CompositeELResolver composite = new CompositeELResolver();
+ composite.add(new BeanELResolver());
+ composite.add(new ArrayELResolver());
+ composite.add(new MapELResolver());
+ composite.add(new ListELResolver());
+ composite.add(new ResourceBundleELResolver());
+ composite.add(new WebBeansELResolver());
+
+ return composite;
+ }
+
+ public static class ELContextImpl extends ELContext {
+ @Override
+ public ELResolver getELResolver() {
+ return ELImpl.getELResolver();
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper() {
+ return new FunctionMapperImpl();
+ }
+
+ @Override
+ public VariableMapper getVariableMapper() {
+ return new VariableMapperImpl();
+ }
+
+ }
+
+ @SuppressWarnings("unchecked")
public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams) {
- return null;
+ ELContext context = createELContext();
+ Object object = EXPRESSION_FACTORY.createMethodExpression(context, expression, expectedType, expectedParamTypes).invoke(context, expectedParams);
+
+ return (T) object;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T> T evaluateValueExpression(String expression, Class<T> expectedType) {
+ ELContext context = createELContext();
+ Object object = EXPRESSION_FACTORY.createValueExpression(context, expression, expectedType).getValue(context);
+
+ return (T) object;
}
@Override
public ELContext createELContext() {
- return null;
+ ELContext context = new ELContextImpl();
+ ELContextEvent event = new ELContextEvent(context);
+
+ return context;
}
}
Modified: openejb/trunk/openejb3/tck/cdi-tomee/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/pom.xml?rev=1170764&r1=1170763&r2=1170764&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/pom.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/pom.xml Wed Sep 14 18:43:29 2011
@@ -48,6 +48,12 @@
<version>${project.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-jasper-el</artifactId>
+ <version>7.0.16</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>tck-common</artifactId>
<version>${project.version}</version>
Modified: openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java?rev=1170764&r1=1170763&r2=1170764&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java (original)
+++ openejb/trunk/openejb3/tck/cdi-tomee/src/main/java/org/apache/openejb/tck/cdi/tomee/ELImpl.java Wed Sep 14 18:43:29 2011
@@ -16,25 +16,82 @@
*/
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 javax.el.ArrayELResolver;
+import javax.el.BeanELResolver;
+import javax.el.CompositeELResolver;
import javax.el.ELContext;
+import javax.el.ELResolver;
+import javax.el.ExpressionFactory;
+import javax.el.FunctionMapper;
+import javax.el.ListELResolver;
+import javax.el.MapELResolver;
+import javax.el.ResourceBundleELResolver;
+import javax.el.VariableMapper;
/**
* @version $Rev$ $Date$
*/
public class ELImpl implements org.jboss.jsr299.tck.spi.EL {
- @Override
- public <T> T evaluateValueExpression(String expression, Class<T> expectedType) {
- return null;
+ private static final ExpressionFactory EXPRESSION_FACTORY = new WrappedExpressionFactory(new ExpressionFactoryImpl());
+
+ public ELImpl() {
}
- @Override
+ public static ELResolver getELResolver() {
+ CompositeELResolver composite = new CompositeELResolver();
+ composite.add(new BeanELResolver());
+ composite.add(new ArrayELResolver());
+ composite.add(new MapELResolver());
+ composite.add(new ListELResolver());
+ composite.add(new ResourceBundleELResolver());
+ composite.add(new WebBeansELResolver());
+
+ return composite;
+ }
+
+ public static class ELContextImpl extends ELContext {
+ @Override
+ public ELResolver getELResolver() {
+ return ELImpl.getELResolver();
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper() {
+ return new FunctionMapperImpl();
+ }
+
+ @Override
+ public VariableMapper getVariableMapper() {
+ return new VariableMapperImpl();
+ }
+
+ }
+
+ @SuppressWarnings("unchecked")
public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams) {
- return null;
+ ELContext context = createELContext();
+ Object object = EXPRESSION_FACTORY.createMethodExpression(context, expression, expectedType, expectedParamTypes).invoke(context, expectedParams);
+
+ return (T) object;
+ }
+
+ @SuppressWarnings("unchecked")
+ public <T> T evaluateValueExpression(String expression, Class<T> expectedType) {
+ ELContext context = createELContext();
+ Object object = EXPRESSION_FACTORY.createValueExpression(context, expression, expectedType).getValue(context);
+
+ return (T) object;
}
@Override
public ELContext createELContext() {
- return null;
+ return new ELContextImpl();
}
}