[webbeans-commits] Webbeans SVN: r1167 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el and 5 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Thu Jan 22 08:48:13 EST 2009


Author: pete.muir at jboss.org
Date: 2009-01-22 08:48:13 -0500 (Thu, 22 Jan 2009)
New Revision: 1167

Added:
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/el/
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/el/EL.java
Modified:
   ri/trunk/webbeans-ri/pom.xml
   ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContainersImpl.java
   tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Containers.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java
Log:
Fix broken EL test

Modified: ri/trunk/webbeans-ri/pom.xml
===================================================================
--- ri/trunk/webbeans-ri/pom.xml	2009-01-22 13:01:09 UTC (rev 1166)
+++ ri/trunk/webbeans-ri/pom.xml	2009-01-22 13:48:13 UTC (rev 1167)
@@ -96,6 +96,11 @@
       </dependency>
       
       <dependency>
+         <groupId>javax.el</groupId>
+         <artifactId>el-ri</artifactId>
+      </dependency>
+      
+      <dependency>
          <groupId>javax.faces</groupId>
          <artifactId>jsf-api</artifactId>
       </dependency>

Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java	2009-01-22 13:48:13 UTC (rev 1167)
@@ -0,0 +1,88 @@
+package org.jboss.webbeans.el;
+
+import java.util.Locale;
+
+import javax.el.ELContext;
+import javax.el.ELResolver;
+import javax.el.FunctionMapper;
+import javax.el.VariableMapper;
+
+public abstract class ForwardingELContext extends ELContext
+{
+   
+   protected abstract ELContext delgate();
+   
+   @Override
+   public ELResolver getELResolver()
+   {
+      return delgate().getELResolver();
+   }
+   
+   @Override
+   public FunctionMapper getFunctionMapper()
+   {
+      return delgate().getFunctionMapper();
+   }
+   
+   @Override
+   public VariableMapper getVariableMapper()
+   {
+      return delgate().getVariableMapper();
+   }
+   
+   @Override
+   public boolean equals(Object obj)
+   {
+      return delgate().equals(obj);
+   }
+   
+   @SuppressWarnings("unchecked")
+   @Override
+   public Object getContext(Class key)
+   {
+      return delgate().getContext(key);
+   }
+   
+   @Override
+   public Locale getLocale()
+   {
+      return delgate().getLocale();
+   }
+   
+   @Override
+   public int hashCode()
+   {
+      return delgate().hashCode();
+   }
+   
+   @Override
+   public boolean isPropertyResolved()
+   {
+      return delgate().isPropertyResolved();
+   }
+   
+   @SuppressWarnings("unchecked")
+   @Override
+   public void putContext(Class key, Object contextObject)
+   {
+      delgate().putContext(key, contextObject);
+   }
+   
+   @Override
+   public void setLocale(Locale locale)
+   {
+      delgate().setLocale(locale);
+   }
+   
+   @Override
+   public void setPropertyResolved(boolean resolved)
+   {
+      delgate().setPropertyResolved(resolved);
+   }
+   
+   @Override
+   public String toString()
+   {
+      return delgate().toString();
+   }
+}


Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/el/EL.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/el/EL.java	                        (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/el/EL.java	2009-01-22 13:48:13 UTC (rev 1167)
@@ -0,0 +1,76 @@
+package org.jboss.webbeans.test.mock.el;
+
+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;
+
+import org.jboss.webbeans.el.WebBeansELResolver;
+
+import com.sun.el.ExpressionFactoryImpl;
+import com.sun.el.lang.FunctionMapperImpl;
+import com.sun.el.lang.VariableMapperImpl;
+
+/**
+ * An instance of JBoss EL.
+ * 
+ * @author Gavin King
+ *
+ */
+public class EL
+{
+   public static final ELResolver EL_RESOLVER = createELResolver();
+   
+   public static final ExpressionFactory EXPRESSION_FACTORY = new ExpressionFactoryImpl();
+   
+   private static ELResolver createELResolver()
+   {
+      CompositeELResolver resolver = new CompositeELResolver();
+      resolver.add( new WebBeansELResolver() );
+      resolver.add( new MapELResolver() );
+      resolver.add( new ListELResolver() );
+      resolver.add( new ArrayELResolver() );
+      resolver.add( new ResourceBundleELResolver() );
+      resolver.add( new BeanELResolver() );
+      return resolver;
+   }
+
+   public static ELContext createELContext() {
+       return createELContext( EL_RESOLVER, new FunctionMapperImpl() );
+   }
+   
+   public static ELContext createELContext(final ELResolver resolver, final FunctionMapper functionMapper)
+   {
+      return new ELContext()
+      {
+         final VariableMapperImpl variableMapper = new VariableMapperImpl();
+
+         @Override
+         public ELResolver getELResolver()
+         {
+            return resolver;
+         }
+
+         @Override
+         public FunctionMapper getFunctionMapper()
+         {
+            return functionMapper;
+         }
+
+         @Override
+         public VariableMapper getVariableMapper()
+         {
+            return variableMapper;
+         }
+         
+      };
+   }
+   
+}


Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/mock/el/EL.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContainersImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContainersImpl.java	2009-01-22 13:01:09 UTC (rev 1166)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContainersImpl.java	2009-01-22 13:48:13 UTC (rev 1167)
@@ -3,12 +3,14 @@
 import java.lang.annotation.Annotation;
 import java.util.List;
 
+import javax.el.ELContext;
 import javax.webbeans.manager.Manager;
 
 import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.tck.api.Containers;
 import org.jboss.webbeans.test.mock.MockBootstrap;
 import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
+import org.jboss.webbeans.test.mock.el.EL;
 
 public class ContainersImpl implements Containers
 {
@@ -31,15 +33,17 @@
       return deploy(null, classes);
    }
    
+   @SuppressWarnings("unchecked")
    public <T> T evaluateValueExpression(String expression, Class<T> expectedType)
    {
-      // TODO implement
-      throw new UnsupportedOperationException();
+      ELContext elContext = EL.createELContext();
+      return (T) EL.EXPRESSION_FACTORY.createValueExpression(elContext, expression, expectedType).getValue(elContext);
    }
  
-   public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes)
+   @SuppressWarnings("unchecked")
+   public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams)
    {
-      // TODO implement
-      throw new UnsupportedOperationException();
+      ELContext elContext = EL.createELContext();
+      return (T) EL.EXPRESSION_FACTORY.createMethodExpression(elContext, expression, expectedType, expectedParamTypes).invoke(elContext, expectedParams);
    }
 }

Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Containers.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Containers.java	2009-01-22 13:01:09 UTC (rev 1166)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Containers.java	2009-01-22 13:48:13 UTC (rev 1167)
@@ -58,5 +58,5 @@
     * @param expectedParamTypes
     * @return
     */
-   <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes);
+   <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams);
 }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java	2009-01-22 13:01:09 UTC (rev 1166)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java	2009-01-22 13:48:13 UTC (rev 1167)
@@ -43,7 +43,7 @@
     * Any instance of the (@Dependent-scoped) Web Bean that is used to evaluate a Unified EL
     * expression exists to service that evaluation only.
     */
-   @Test(groups = { "contexts", "el", "broken" })
+   @Test(groups = { "contexts", "el"})
    @SpecAssertion(section = "9.3")
    public void testInstanceUsedForElEvaluationNotShared() throws Exception
    {     
@@ -58,8 +58,8 @@
             Bean<Fox> foxBean = foxBeans.iterator().next();
             manager.addBean(foxBean);
 
-            Fox fox1 = configuration().getContainers().evaluateValueExpression("fox", Fox.class);
-            Fox fox2 = configuration().getContainers().evaluateValueExpression("fox", Fox.class);
+            Fox fox1 = configuration().getContainers().evaluateValueExpression("#{fox}", Fox.class);
+            Fox fox2 = configuration().getContainers().evaluateValueExpression("#{fox}", Fox.class);
             assert !fox1.equals(fox2);
          }
       }.run();      




More information about the weld-commits mailing list