[webbeans-commits] Webbeans SVN: r1432 - in tck/trunk/impl/src: main/java/org/jboss/webbeans/tck/impl/packaging/jsr299 and 8 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Fri Feb 6 16:25:39 EST 2009


Author: pete.muir at jboss.org
Date: 2009-02-06 16:25:39 -0500 (Fri, 06 Feb 2009)
New Revision: 1432

Added:
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/test/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/test/impl/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/test/impl/packaging/
Removed:
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/test/impl/test/packaging/
Modified:
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/BufferedListener.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/TestRunner.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/servlet/ServletTestRunner.java
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml
Log:
a variety of fixes to artifact generation, better servlet runner

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -48,18 +48,25 @@
    {
       private static final Logger log = Logger.getLogger(URLPackageScanner.class);
     
-      private final Package pkg;
+      private final String packageName;
       
       private final String packageNamePath;
+      private final boolean addRecursively; 
       
       private final Set<String> classes = new HashSet<String>();
       
-      public URLPackageScanner(Package pkg)
+      public URLPackageScanner(Package pkg, boolean addRecursively)
       {
-         this.pkg = pkg;
-         this.packageNamePath = pkg.getName().replace(".", "/");
+         this(pkg.getName(), addRecursively);
       }
       
+      public URLPackageScanner(String packageName, boolean addRecursively)
+      {
+         this.packageName = packageName;
+         this.packageNamePath = packageName.replace(".", "/");
+         this.addRecursively = addRecursively;
+      }
+      
       private void scanPackage()
       {
          try
@@ -84,7 +91,7 @@
          }
          catch (IOException ioe) 
          {
-            log.warn("could not read: " + pkg.getName(), ioe);
+            log.warn("could not read: " + packageName, ioe);
          }
       }
       
@@ -99,7 +106,7 @@
             {
                ZipEntry entry = entries.nextElement();
                String name = entry.getName();
-               if (name.startsWith(packageNamePath) && !name.substring(packageNamePath.length() + 1).contains("/") && name.endsWith(".class"))
+               if (name.startsWith(packageNamePath) && name.endsWith(".class") && (addRecursively || !name.substring(packageNamePath.length() + 1).contains("/")))
                {
                   String className = name.replace("/", ".").replace(".class", "");
                   classes.add(className);
@@ -120,13 +127,7 @@
             File file = new File(urlPath);
             if ( file.isDirectory() )
             {
-               for ( File child: file.listFiles() )
-               {
-                  if ( !child.isDirectory() && child.getName().endsWith(".class"))
-                  {
-                     classes.add(pkg.getName() + "." + child.getName().substring(0, child.getName().lastIndexOf(".class")));
-                  }
-               }
+               handle(file, packageName);
             }
             else
             {
@@ -135,6 +136,21 @@
          }
       }
       
+      private void handle(File file, String packageName)
+      {
+         for ( File child: file.listFiles() )
+         {
+            if ( !child.isDirectory() && child.getName().endsWith(".class"))
+            {
+               classes.add(packageName + "." + child.getName().substring(0, child.getName().lastIndexOf(".class")));
+            }
+            else if (child.isDirectory() && addRecursively)
+            {
+               handle(child, packageName + "." + child.getName());
+            }
+         }
+      }
+      
       public Set<String> getClassNames()
       {
          scanPackage();
@@ -196,6 +212,8 @@
    private InputStream jar;
    private File explodedJar;
    
+   private File classesRoot;
+   
    public ArtifactDescriptor(Class<?> declaringClass)
    {
       classes = new HashSet<Class<?>>();
@@ -271,7 +289,7 @@
       File file = new File(directory, fileName);
       file.createNewFile();
       file.deleteOnExit();
-      copy(resourceDescriptor.getSource().openStream(), file);
+      copy(resourceDescriptor.getSource(), file);
    }
    
    private static void copyClass(String className, File root) throws IOException
@@ -299,7 +317,12 @@
    
    public void writeArtifactToDisk(String outputDirectory) throws IOException
    {
-      File file = new File(outputDirectory, getDeclaringClass().getName() + getExtension());
+      writeArtifactToDisk(outputDirectory, declaringClass.getName());
+   }
+   
+   public void writeArtifactToDisk(String outputDirectory, String fileName) throws IOException
+   {
+      File file = new File(outputDirectory, fileName + getExtension());
       file.createNewFile();
       OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
       Files.copy(getJar(), os);
@@ -342,18 +365,39 @@
    
    public void addPackage(Package pkg)
    {
-      URLPackageScanner packageScanner = new URLPackageScanner(pkg);
+      addPackage(pkg.getName(), false);
+   }
+   
+   public void addPackage(String packageName, boolean addRecursively)
+   {
+      URLPackageScanner packageScanner = new URLPackageScanner(packageName, addRecursively);
       for (String className : packageScanner.getClassNames())
       {
-         getClasses().add(loadClass(className));
+         Class<?> clazz = loadClass(className);
+         if (clazz == null)
+         {
+            System.out.println("Class null: " + className);
+         }
+         getClasses().add(clazz);
       }
    }
    
    public File getClassesRoot(File archiveRoot)
    {
-      return archiveRoot;
+      if (classesRoot == null)
+      {
+         classesRoot = new File(archiveRoot, getClassesRoot());
+         classesRoot.mkdirs();
+         classesRoot.deleteOnExit();
+      }
+      return classesRoot;
    }
    
+   public String getClassesRoot()
+   {
+      return "/";
+   }
+   
    @Override
    public String toString()
    {

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -1,17 +1,24 @@
 package org.jboss.webbeans.tck.impl.packaging;
 
-import static org.jboss.webbeans.tck.impl.util.Reflections.loadResource;
+import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
 
 public class ResourceDescriptor
 {
    
    private String name;
-   private URL source;
+   private InputStream source;
    
-   public ResourceDescriptor(String name, URL source)
+   public ResourceDescriptor(String name, URL source) throws IOException
    {
+      this(name, source.openStream());
+   }
+   
+   public ResourceDescriptor(String name, InputStream source)
+   {
       this.name = name;
       this.source = source;
    }
@@ -23,7 +30,7 @@
       {
          throw new IllegalArgumentException("Unable to have a null resource");
       }
-      this.source = loadResource(source);
+      this.source = loadResourceAsStream(source);
       if (this.source == null)
       {
          throw new IllegalArgumentException("Unable to load file for " + source);
@@ -35,7 +42,7 @@
       return name;
    }
    
-   public URL getSource()
+   public InputStream getSource()
    {
       return source;
    }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -8,7 +8,7 @@
 public class JSR299ArtifactDescriptor extends ArtifactDescriptor
 {
    
-   public static final String BEANS_XML_DESTINATION = "META-INF/beans.xml";
+   public static final String BEANS_XML_DESTINATION = "META-INF/web-beans.xml";
    public static final String STANDARD_BEANS_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/jsr299/default/beans.xml";
    
    public JSR299ArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName)
@@ -18,7 +18,12 @@
       {
          beansXmlSourceFileName = STANDARD_BEANS_XML_FILE_NAME;
       }
-      getResources().add(new ResourceDescriptor(BEANS_XML_DESTINATION, beansXmlSourceFileName));
+      getResources().add(new ResourceDescriptor(getBeansDestination(), beansXmlSourceFileName));
    }
    
+   public String getBeansDestination()
+   {
+      return BEANS_XML_DESTINATION; 
+   }
+   
 }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -1,29 +1,73 @@
 package org.jboss.webbeans.tck.impl.packaging.jsr299;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.io.Writer;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.log4j.Logger;
 import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
 import org.jboss.webbeans.tck.impl.packaging.ResourceDescriptor;
-import org.jboss.webbeans.tck.impl.util.Reflections;
-import org.jboss.webbeans.tck.literals.NewLiteral;
-import org.jboss.webbeans.tck.runner.TestRunner;
+import org.jboss.webbeans.tck.impl.util.DeploymentProperties;
 
 public class TCKArtifactDescriptor extends JSR299ArtifactDescriptor
 {
    
+   private static ResourceDescriptor TCK_SUPPORT_JAR;
+   
+   static
+   {
+      ArtifactDescriptor descriptor = new ArtifactDescriptor(TCKArtifactDescriptor.class);
+      descriptor.addPackage(AbstractTest.class.getPackage());
+      descriptor.addPackage("org.jboss.webbeans.tck.impl", true);
+      descriptor.addPackage("org.jboss.webbeans.tck.literals", true);
+      descriptor.addPackage("org.jboss.webbeans.tck.runner", true);
+      String tmpdir = System.getProperty("java.io.tmpdir");
+      try
+      {
+         descriptor.writeArtifactToDisk(tmpdir, "tck-support");
+         TCK_SUPPORT_JAR = new ResourceDescriptor("tck-support.jar", new FileInputStream(tmpdir + "/" + "tck-support.jar"));
+      }
+      catch (IOException e)
+      {
+         throw new RuntimeException("Error building TCK support Jar", e);
+      }
+      
+   }
+   
+   private static final Logger log = Logger.getLogger(TCKArtifactDescriptor.class);
+   
    private boolean unit;
    private boolean ejbs;
    
    public TCKArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName)
    {
       super(declaringClass, beansXmlSourceFileName);
-      addPackage(AbstractTest.class.getPackage());
-      addPackage(NewLiteral.class.getPackage());
-      addPackage(Reflections.class.getPackage());
-      addPackage(TestRunner.class.getPackage());
+      try
+      {
+         getResources().add(new ResourceDescriptor(getClassesRoot() + DeploymentProperties.RESOURCE_BUNDLE, getDeploymentProperties(declaringClass)));
+      }
+      catch (IOException e)
+      {
+         log.warn("Error generating deployment properties", e);
+      }
    }
    
+   private static InputStream getDeploymentProperties(Class<?> declaringClass) throws IOException
+   {
+      ByteArrayOutputStream os = new ByteArrayOutputStream();
+      Writer writer = new PrintWriter(os);
+      writer.write("className=" + declaringClass.getName());
+      writer.flush();
+      return new ByteArrayInputStream(os.toByteArray());
+   }
+   
    public boolean isEjbs()
    {
       return ejbs;
@@ -50,6 +94,7 @@
       Set<ResourceDescriptor> libraries = new HashSet<ResourceDescriptor>(super.getLibraries());
       libraries.add(new ResourceDescriptor("testng.jar", "/lib/testng-jdk15.jar"));
       libraries.add(new ResourceDescriptor("jsr-299-tck-api.jar", "/lib/webbeans-tck-api.jar"));
+      libraries.add(TCK_SUPPORT_JAR);
       return libraries;
    }
    

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -1,8 +1,8 @@
 package org.jboss.webbeans.tck.impl.packaging.war;
-import static org.jboss.webbeans.tck.impl.util.Reflections.loadResource;
+import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
 
 import java.io.File;
-import java.net.URL;
+import java.io.InputStream;
 
 import org.jboss.webbeans.tck.impl.packaging.ResourceDescriptor;
 import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
@@ -20,23 +20,18 @@
    public WarArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName)
    {
       super(declaringClass, beansXmlSourceFileName);
-      URL webXml = loadResource(CUSTOM_WEB_XML_FILE_NAME);
+      InputStream webXml = loadResourceAsStream(CUSTOM_WEB_XML_FILE_NAME);
       if (webXml == null)
       {
-         webXml = loadResource(STANDARD_WEB_XML_FILE_NAME);
+         webXml = loadResourceAsStream(STANDARD_WEB_XML_FILE_NAME);
       }
       getResources().add(new ResourceDescriptor(WEB_XML_DESTINATION, webXml));
    }
    
    @Override
-   public File getClassesRoot(File archiveRoot)
+   public String getClassesRoot()
    {
-      if (webInfClasses == null)
-      {
-         webInfClasses = new File(archiveRoot, "WEB-INF/classes");
-         webInfClasses.mkdirs();
-      }
-      return webInfClasses;
+      return "WEB-INF/classes/";
    }
    
    @Override
@@ -62,9 +57,15 @@
    {
       if (webInfLib == null)
       {
-         webInfLib = new File(archiveRoot, "WEB-INF/lib");
+         webInfLib = new File(archiveRoot, "WEB-INF/lib/");
          webInfLib.mkdirs();
       }
       return webInfLib;
    }
+   
+   @Override
+   public String getBeansDestination()
+   {
+      return "WEB-INF/web-beans.xml";
+   }
 }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/BufferedListener.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/BufferedListener.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/BufferedListener.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -1,8 +1,5 @@
 package org.jboss.webbeans.tck.runner;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.testng.ITestContext;
 import org.testng.ITestListener;
 import org.testng.ITestResult;
@@ -10,16 +7,16 @@
 public class BufferedListener implements ITestListener
 {
    
-   private final List<ITestResult> results;
+   private ITestContext context;
    
+   
    public BufferedListener()
    {
-      results = new ArrayList<ITestResult>();
    }
    
    public void onFinish(ITestContext context)
    {
-      // No-op
+      this.context = context;
    }
    
    public void onStart(ITestContext context)
@@ -34,13 +31,12 @@
    
    public void onTestFailure(ITestResult result)
    {
-      results.add(result);
+      // No-op
    }
    
    public void onTestSkipped(ITestResult result)
    {
-      results.add(result);
-      
+      // No-op
    }
    
    public void onTestStart(ITestResult result)
@@ -50,11 +46,12 @@
    
    public void onTestSuccess(ITestResult result)
    {
-      results.add(result);
+      // No-op
    }
    
-   public List<ITestResult> getResults()
+   public ITestContext getContext()
    {
-      return results;
+      return context;
    }
+   
 }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/TestRunner.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/TestRunner.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/TestRunner.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -4,7 +4,8 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.testng.ITestResult;
+import org.jboss.webbeans.tck.impl.util.DeploymentProperties;
+import org.testng.ITestContext;
 import org.testng.TestNG;
 import org.testng.xml.XmlClass;
 import org.testng.xml.XmlSuite;
@@ -13,14 +14,21 @@
 public class TestRunner
 {
    
-   private String className;
+   private List<String> classNames;
 
    public TestRunner(String className)
    {
-      this.className = className;
+      this.classNames = new ArrayList<String>();
+      classNames.add(className);
    }
    
-   public List<ITestResult> run()
+   public TestRunner()
+   {   
+      DeploymentProperties deploymentProperties = new DeploymentProperties();
+      this.classNames = deploymentProperties.getPropertyValues("className");
+   }
+   
+   public ITestContext run()
    {
       TestNG testNG = new TestNG(false);
       BufferedListener listener = new BufferedListener();
@@ -29,17 +37,22 @@
       testNG.setXmlSuites(suites);
       suites.add(createSuite());
       testNG.run();
-      return listener.getResults();
+      return listener.getContext();
    }
    
    private XmlSuite createSuite()
    {
       XmlSuite suite = new XmlSuite();
+      suite.setVerbose(2);
       suite.setName("JSR-299 TCK");
-      XmlTest test = new XmlTest(suite);
-      test.setName("JSR-299 TCK " + className);
-      List<XmlClass> testClasses = Arrays.asList(new XmlClass(className));
-      test.setXmlClasses(testClasses);
+      
+      for (String className : classNames)
+      {
+         XmlTest test = new XmlTest(suite);
+         test.setName("JSR-299 TCK " + className);
+         List<XmlClass> testClasses = Arrays.asList(new XmlClass(className));
+         test.setXmlClasses(testClasses);
+      }
       return suite;
    }
    

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/servlet/ServletTestRunner.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/servlet/ServletTestRunner.java	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/servlet/ServletTestRunner.java	2009-02-06 21:25:39 UTC (rev 1432)
@@ -1,16 +1,17 @@
 package org.jboss.webbeans.tck.runner.servlet;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectOutputStream;
+import java.io.PrintWriter;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.jboss.webbeans.tck.impl.util.Strings;
 import org.jboss.webbeans.tck.runner.TestRunner;
+import org.testng.ITestContext;
+import org.testng.ITestResult;
 
 public class ServletTestRunner extends HttpServlet
 {
@@ -18,27 +19,100 @@
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    {
-      super.doGet(req, resp);
-      String className = req.getParameter("className");
-      if (Strings.isEmpty(className))
+      TestRunner runner = new TestRunner();
+      ITestContext context = runner.run();
+      String outputMode;
+      if (req.getAttribute("outputMode") != null)
       {
-         System.err.println("Class name cannot be null");
-         resp.sendError(500);
+         outputMode = (String) req.getAttribute("outputMode");
       }
-      TestRunner runner = new TestRunner(className);
-      byte[] result = serialize(runner.run());
-      resp.setContentLength(result.length);
-      resp.setContentType("application/octet-stream");
-      resp.setStatus(HttpServletResponse.SC_OK);
-      resp.getOutputStream().write(result);
+      else
+      {
+         outputMode = "html";
+      }
+      if (outputMode.equals("html"))
+      {
+         resp.setContentType("text/html");
+         resp.setStatus(HttpServletResponse.SC_OK);
+         PrintWriter writer = resp.getWriter();
+         writer.write("<html>\n");
+         writer.write("<head><title>TCK Report</title></head>\n");
+         writer.write("<body>\n");
+         writer.write("<h2>Configuration</h2>\n");
+         writer.write("<table>\n");
+         writer.write("<tr>\n");
+         writer.write("<td><b>Method</b></td><td><b>Status</b></td>\n");
+         writer.write("</tr>\n");
+         for (ITestResult result : context.getFailedConfigurations().getAllResults())
+         {
+            writeResult(writer, result);
+         }
+         for (ITestResult result : context.getSkippedConfigurations().getAllResults())
+         {
+            writeResult(writer, result);
+         }
+         writer.write("</table>\n");
+         writer.write("<h2>Tests</h2>\n");
+         writer.write("<table>\n");
+         writer.write("<tr>\n");
+         writer.write("<td><b>Method</b></td><td><b>Status</b></td>\n");
+         writer.write("</tr>\n");
+         for (ITestResult result : context.getFailedTests().getAllResults())
+         {
+            writeResult(writer, result);
+         }
+         for (ITestResult result : context.getPassedTests().getAllResults())
+         {
+            writeResult(writer, result);
+         }
+         for (ITestResult result : context.getSkippedTests().getAllResults())
+         {
+            writeResult(writer, result);
+         }
+         writer.write("</table>\n");
+         writer.write("</body>\n");
+      }
+      else if (outputMode.equals("serializedObject"))
+      {
+         resp.setContentType("application/octet-stream");
+         resp.setStatus(HttpServletResponse.SC_OK);
+         new ObjectOutputStream(resp.getOutputStream()).writeObject(context);
+      }
+      else
+      {
+         resp.sendError(500, "No report format specified");
+      }
    }
    
-   protected byte[] serialize(Object instance) throws IOException
+   private static void writeResult(PrintWriter writer, ITestResult result)
    {
-      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
-      ObjectOutputStream out = new ObjectOutputStream(bytes);
-      out.writeObject(instance);
-      return bytes.toByteArray();
+      writer.write("<tr>\n");
+      writer.write("<td>" + result.getMethod() + "</td>");
+      writer.write("<td>" + statusAsString(result.getStatus()) + "</td>");
+      writer.write("</tr>\n");
+      if (result.getStatus() == ITestResult.FAILURE)
+      {
+         writer.write("<tr>\n");
+         writer.write("<td colspan=\"2\"><pre>");
+         result.getThrowable().printStackTrace(writer);
+         writer.write("</pre></td>");
+         writer.write("</tr>\n");
+      }
    }
    
+   private static String statusAsString(int statusCode)
+   {
+      switch (statusCode)
+      {
+      case ITestResult.SUCCESS:
+         return "success";
+      case ITestResult.FAILURE:
+         return "failure";
+      case ITestResult.SKIP:
+         return "skipped";
+      default:
+         return "unknown";
+      }
+   }
+   
 }

Modified: tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml	2009-02-06 17:39:44 UTC (rev 1431)
+++ tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml	2009-02-06 21:25:39 UTC (rev 1432)
@@ -6,5 +6,15 @@
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    
    <display-name>JSR-299 TCK</display-name>
+   
+   <servlet>
+      <servlet-name>JSR-299 TCK Test Runner</servlet-name>
+      <servlet-class>org.jboss.webbeans.tck.runner.servlet.ServletTestRunner</servlet-class>
+   </servlet>
+   
+   <servlet-mapping>
+      <servlet-name>JSR-299 TCK Test Runner</servlet-name>
+      <url-pattern>*.tck</url-pattern>
+   </servlet-mapping>
 
 </web-app>

Copied: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/test/impl (from rev 1428, tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl)

Copied: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/test/impl/packaging (from rev 1428, tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging)




More information about the weld-commits mailing list