You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/03/04 00:44:09 UTC

svn commit: r749845 - in /incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck: ELImpl.java ManagersImpl.java StandaloneContainersImpl.java mock/TCKManager.java mock/TCKWebBeansContainerDeployer.java

Author: gerdogdu
Date: Tue Mar  3 23:44:09 2009
New Revision: 749845

URL: http://svn.apache.org/viewvc?rev=749845&view=rev
Log:
Update TCK SPI implementations.

Modified:
    incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ELImpl.java
    incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ManagersImpl.java
    incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java
    incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKManager.java
    incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKWebBeansContainerDeployer.java

Modified: incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ELImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ELImpl.java?rev=749845&r1=749844&r2=749845&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ELImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ELImpl.java Tue Mar  3 23:44:09 2009
@@ -13,20 +13,99 @@
  */
 package org.apache.webbeans.test.tck;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.el.ELContext;
+import javax.el.ELResolver;
+import javax.el.FunctionMapper;
+import javax.el.ValueExpression;
+import javax.el.VariableMapper;
+
+import org.apache.webbeans.el.WebBeansELResolver;
 import org.jboss.jsr299.tck.spi.EL;
 
 public class ELImpl implements EL
 {
+    private WebBeansELResolver resolver = new WebBeansELResolver();
+    
+    public static class ELContextImpl extends ELContext
+    {
 
+        @Override
+        public ELResolver getELResolver()
+        {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        @Override
+        public FunctionMapper getFunctionMapper()
+        {
+            // TODO Auto-generated method stub
+            return null;
+        }
+
+        @Override
+        public VariableMapper getVariableMapper()
+        {
+            // TODO Auto-generated method stub
+            return null;
+        }
+        
+    }
+    
+    @SuppressWarnings("unchecked")
     public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams)
     {
+        int firstDot = expression.indexOf('.');
+        String property = expression.substring(expression.indexOf("#"),firstDot) + "}"; //object name
+        String methodName = expression.substring(firstDot+1,expression.length()-1);
+        
+        Object object = evaluateValueExpression(property, expectedType);
+        
+        try
+        {
+            Method method = object.getClass().getMethod(methodName, expectedParamTypes);
+            return (T)method.invoke(object, expectedParams);
+        }
+        catch (SecurityException e)
+        {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        catch (NoSuchMethodException e)
+        {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        catch (IllegalArgumentException e)
+        {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        catch (IllegalAccessException e)
+        {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        catch (InvocationTargetException e)
+        {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
         
         return null;
     }
 
+    @SuppressWarnings("unchecked")
     public <T> T evaluateValueExpression(String expression, Class<T> expectedType)
     {
-        return null;
+        String property = expression.substring(expression.indexOf("#")+2,expression.length()-1);
+        
+        T object = (T) resolver.getValue(new ELContextImpl() , null, property);
+        
+        return object;
     }
 
 }

Modified: incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ManagersImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ManagersImpl.java?rev=749845&r1=749844&r2=749845&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ManagersImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/ManagersImpl.java Tue Mar  3 23:44:09 2009
@@ -18,6 +18,7 @@
 
 import javax.inject.manager.Manager;
 
+import org.apache.webbeans.config.WebBeansFinder;
 import org.apache.webbeans.context.ContextFactory;
 import org.apache.webbeans.deployment.DeploymentTypeManager;
 import org.apache.webbeans.test.mock.MockHttpSession;
@@ -32,13 +33,14 @@
         return DeploymentTypeManager.getInstance().getEnabledDeploymentTypes();
     }
 
-    public Manager getManager() {
-        
+    public Manager getManager()
+    {
+
         ContextFactory.initApplicationContext(null);
         ContextFactory.initRequestContext(null);
         ContextFactory.initSessionContext(new MockHttpSession());
         ContextFactory.initConversationContext(null);
-        
+
         return TCKManager.getInstance();
     }
 

Modified: incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java?rev=749845&r1=749844&r2=749845&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java (original)
+++ incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/StandaloneContainersImpl.java Tue Mar  3 23:44:09 2009
@@ -18,6 +18,7 @@
 
 import javax.inject.Production;
 
+import org.apache.webbeans.config.WebBeansFinder;
 import org.apache.webbeans.deployment.DeploymentTypeManager;
 import org.apache.webbeans.test.tck.mock.TCKManager;
 import org.apache.webbeans.test.tck.mock.TCKWebBeansContainerDeployer;
@@ -28,12 +29,11 @@
 public class StandaloneContainersImpl implements StandaloneContainers
 {
     private TCKWebBeansContainerDeployer tckContainerDeployer = null;
-    private TCKManager tckManager = null;
+    private WebBeansXMLConfigurator xmlConfigurator = null;
 
     public void cleanup()
     {
         this.tckContainerDeployer = null;
-        tckManager = null;
     }
 
     public void deploy(Iterable<Class<?>> classes) throws DeploymentException
@@ -67,17 +67,15 @@
 
     public void setup()
     {
-        this.tckContainerDeployer = new TCKWebBeansContainerDeployer(new WebBeansXMLConfigurator());
-        this.tckManager = TCKManager.getInstance();
-        
+        this.xmlConfigurator = new WebBeansXMLConfigurator();
+        this.tckContainerDeployer = new TCKWebBeansContainerDeployer(this.xmlConfigurator);    
+        TCKManager.getInstance().setXMLConfigurator(this.xmlConfigurator);
         DeploymentTypeManager.getInstance().addNewDeploymentType(Production.class, 1);
     }
 
     public void undeploy()
     {
-        this.tckManager.clear();
-        this.tckContainerDeployer.clear();
-        
+        TCKManager.getInstance().clear();
     }
 
 }

Modified: incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKManager.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKManager.java?rev=749845&r1=749844&r2=749845&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKManager.java (original)
+++ incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKManager.java Tue Mar  3 23:44:09 2009
@@ -33,6 +33,7 @@
 import javax.inject.manager.Manager;
 
 import org.apache.webbeans.container.ManagerImpl;
+import org.apache.webbeans.xml.WebBeansXMLConfigurator;
 
 public class TCKManager implements Manager
 {
@@ -190,4 +191,9 @@
     {
         this.manager.clear();
     }
+    
+    public void setXMLConfigurator(WebBeansXMLConfigurator xmlConfigurator)
+    {
+        this.manager.setXMLConfigurator(xmlConfigurator);
+    }
 }

Modified: incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKWebBeansContainerDeployer.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKWebBeansContainerDeployer.java?rev=749845&r1=749844&r2=749845&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKWebBeansContainerDeployer.java (original)
+++ incubator/openwebbeans/trunk/webbeans-tck/src/test/java/org/apache/webbeans/test/tck/mock/TCKWebBeansContainerDeployer.java Tue Mar  3 23:44:09 2009
@@ -17,6 +17,8 @@
 package org.apache.webbeans.test.tck.mock;
 
 import java.io.IOException;
+import java.io.InputStream;
+import java.lang.annotation.Annotation;
 import java.net.URL;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -26,8 +28,13 @@
 import org.apache.webbeans.config.SimpleWebBeansConfigurator;
 import org.apache.webbeans.config.WebBeansContainerDeployer;
 import org.apache.webbeans.config.WebBeansScanner;
+import org.apache.webbeans.deployment.StereoTypeManager;
+import org.apache.webbeans.deployment.StereoTypeModel;
+import org.apache.webbeans.util.AnnotationUtil;
 import org.apache.webbeans.util.Asserts;
+import org.apache.webbeans.util.WebBeansUtil;
 import org.apache.webbeans.xml.WebBeansXMLConfigurator;
+import org.apache.webbeans.xml.XMLAnnotationTypeManager;
 
 public class TCKWebBeansContainerDeployer extends WebBeansContainerDeployer
 {
@@ -68,7 +75,12 @@
                 URL url = urlIt.next();
                 try
                 {
-                    this.xmlConfigurator.configure(url.openStream(), url.getFile());
+                    InputStream stream = url.openStream();
+                    if(stream.available() > 0)
+                    {
+                        this.xmlConfigurator.configure(url.openStream(), url.getFile());    
+                    }
+                    
                 }
                 catch (IOException e)
                 {
@@ -109,9 +121,33 @@
         }
     }    
 
-    
+    @SuppressWarnings("unchecked")
     protected void checkStereoTypes(WebBeansScanner scanner)
     {
+        if(scanner == null)
+        {
+            Iterator<Class<?>> it = classes.iterator();
+            while(it.hasNext())
+            {
+                Class<? extends Annotation> stereoClass = (Class<Annotation>)it.next();
+                
+                if (AnnotationUtil.isStereoTypeAnnotation(stereoClass))
+                {
+                    if (!XMLAnnotationTypeManager.getInstance().isStereoTypeExist(stereoClass))
+                    {
+                        WebBeansUtil.checkStereoTypeClass(stereoClass);
+                        StereoTypeModel model = new StereoTypeModel(stereoClass);
+                        StereoTypeManager.getInstance().addStereoTypeModel(model);
+                    }
+                }
+                
+                
+            }
+        }
+        else
+        {
+            super.checkSpecializations(scanner);
+        }
         
     }