Author: djencks Date: Thu Oct 28 00:57:36 2010 New Revision: 1028155 URL: http://svn.apache.org/viewvc?rev=1028155&view=rev Log: Copy openwebbean's ELImpl Modified: geronimo/tck/branches/3.0/geronimo-porting/pom.xml geronimo/tck/branches/3.0/geronimo-porting/src/main/java/org/apache/geronimo/test/tck/ELImpl.java Modified: geronimo/tck/branches/3.0/geronimo-porting/pom.xml URL: http://svn.apache.org/viewvc/geronimo/tck/branches/3.0/geronimo-porting/pom.xml?rev=1028155&r1=1028154&r2=1028155&view=diff ============================================================================== --- geronimo/tck/branches/3.0/geronimo-porting/pom.xml (original) +++ geronimo/tck/branches/3.0/geronimo-porting/pom.xml Thu Oct 28 00:57:36 2010 @@ -63,6 +63,11 @@ org.apache.openwebbeans openwebbeans-impl + + org.apache.geronimo.ext.tomcat + jasper-el + 7.0.0.2-SNAPSHOT + Modified: geronimo/tck/branches/3.0/geronimo-porting/src/main/java/org/apache/geronimo/test/tck/ELImpl.java URL: http://svn.apache.org/viewvc/geronimo/tck/branches/3.0/geronimo-porting/src/main/java/org/apache/geronimo/test/tck/ELImpl.java?rev=1028155&r1=1028154&r2=1028155&view=diff ============================================================================== --- geronimo/tck/branches/3.0/geronimo-porting/src/main/java/org/apache/geronimo/test/tck/ELImpl.java (original) +++ geronimo/tck/branches/3.0/geronimo-porting/src/main/java/org/apache/geronimo/test/tck/ELImpl.java Thu Oct 28 00:57:36 2010 @@ -18,25 +18,98 @@ */ package org.apache.geronimo.test.tck; +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; + +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.jboss.jsr299.tck.spi.EL; +/** + * this is a copy of openwebbean's ELImpl from webbeans-porting + */ public class ELImpl implements EL { - public ELContext createELContext() { - System.out.println("createELContext"); - return null; + private static final ExpressionFactory EXPRESSION_FACTORY = new WrappedExpressionFactory(new ExpressionFactoryImpl()); + + public ELImpl() + { + } + + 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 T evaluateMethodExpression(String arg0, Class arg1, Class[] arg2, Object[] arg3) { - System.out.println("evaluateMethodExpression"); - return null; + 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(); + } + } - public T evaluateValueExpression(String arg0, Class arg1) { - System.out.println("evaluateValueExpression"); - return null; + @SuppressWarnings("unchecked") + public T evaluateMethodExpression(String expression, Class expectedType, Class[] expectedParamTypes, Object[] expectedParams) + { + ELContext context = createELContext(); + Object object = EXPRESSION_FACTORY.createMethodExpression(context, expression, expectedType, expectedParamTypes).invoke(context, expectedParams); + + return (T)object; + } + + @SuppressWarnings("unchecked") + public T evaluateValueExpression(String expression, Class expectedType) + { + ELContext context = createELContext(); + Object object = EXPRESSION_FACTORY.createValueExpression(context, expression, expectedType).getValue(context); + + return (T)object; + } + + @Override + public ELContext createELContext() + { + ELContext context = new ELContextImpl(); + ELContextEvent event = new ELContextEvent(context); + + return context; } }