[webbeans-commits] Webbeans SVN: r1432 - in tck/trunk/impl/src: main/java/org/jboss/webbeans/tck/impl/packaging/jsr299 and 8 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)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)
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1431 - in tck/trunk/impl: src/main/java/org/jboss/webbeans/tck/impl/packaging and 4 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-06 12:39:44 -0500 (Fri, 06 Feb 2009)
New Revision: 1431
Modified:
tck/trunk/impl/pom.xml
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/jsr299/TCKArtifactDescriptor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
Log:
Add support for artifacts which contain libraries
Modified: tck/trunk/impl/pom.xml
===================================================================
--- tck/trunk/impl/pom.xml 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/pom.xml 2009-02-06 17:39:44 UTC (rev 1431)
@@ -109,6 +109,35 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-in-container-dependencies</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
+ <stripVersion>true</stripVersion>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.jboss.webbeans.tck</groupId>
+ <artifactId>webbeans-tck-api</artifactId>
+ <overWrite>true</overWrite>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <classifier>jdk15</classifier>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
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:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -3,6 +3,7 @@
import static org.jboss.webbeans.tck.impl.util.Reflections.loadClass;
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResources;
+import static org.jboss.webbeans.tck.impl.util.Strings.isEmpty;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
@@ -16,6 +17,7 @@
import java.net.URL;
import java.net.URLClassLoader;
import java.net.URLDecoder;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Random;
@@ -233,14 +235,12 @@
}
for (ResourceDescriptor resourceDescriptor : getResources())
{
- String directoryName = resourceDescriptor.getName().substring(0, resourceDescriptor.getName().lastIndexOf("/"));
- String fileName = resourceDescriptor.getName().substring(resourceDescriptor.getName().lastIndexOf("/") + 1);
- File directory = makeDirectoryStructure(root, directoryName);
- File file = new File(directory, fileName);
- file.createNewFile();
- file.deleteOnExit();
- copy(resourceDescriptor.getSource().openStream(), file);
+ copyResource(resourceDescriptor, root);
}
+ for (ResourceDescriptor resourceDescriptor : getLibraries())
+ {
+ copyResource(resourceDescriptor, getLibraryRoot(root));
+ }
this.explodedJar = root;
}
@@ -249,6 +249,31 @@
copyClass(clazz.getName(), root);
}
+ private static void copyResource(ResourceDescriptor resourceDescriptor, File root) throws IOException
+ {
+ String directoryName;
+ String fileName;
+ if (resourceDescriptor.getName().lastIndexOf("/") > 0)
+ {
+ directoryName = resourceDescriptor.getName().substring(0, resourceDescriptor.getName().lastIndexOf("/"));
+ fileName = resourceDescriptor.getName().substring(resourceDescriptor.getName().lastIndexOf("/") + 1);
+ }
+ else
+ {
+ directoryName = "";
+ fileName = resourceDescriptor.getName();
+ }
+ if (isEmpty(fileName))
+ {
+ throw new IllegalArgumentException("Unable to determine source file name of " + resourceDescriptor);
+ }
+ File directory = makeDirectoryStructure(root, directoryName);
+ File file = new File(directory, fileName);
+ file.createNewFile();
+ file.deleteOnExit();
+ copy(resourceDescriptor.getSource().openStream(), file);
+ }
+
private static void copyClass(String className, File root) throws IOException
{
String classFilePathName = getClassFileName(className);
@@ -345,4 +370,19 @@
return ".jar";
}
+ public Set<ResourceDescriptor> getLibraries()
+ {
+ return Collections.emptySet();
+ }
+
+ public File getLibraryRoot(File archiveRoot)
+ {
+ return archiveRoot;
+ }
+
+ public boolean isLibrariesSupported()
+ {
+ return false;
+ }
+
}
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:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -1,6 +1,10 @@
package org.jboss.webbeans.tck.impl.packaging.jsr299;
+import java.util.HashSet;
+import java.util.Set;
+
import org.jboss.webbeans.tck.AbstractTest;
+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;
@@ -40,4 +44,13 @@
this.unit = unit;
}
+ @Override
+ public Set<ResourceDescriptor> getLibraries()
+ {
+ 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"));
+ 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:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -15,6 +15,7 @@
public static final String CUSTOM_WEB_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/war/default/custom-web.xml";
private File webInfClasses;
+ private File webInfLib;
public WarArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName)
{
@@ -49,4 +50,21 @@
{
return ".war";
}
+
+ @Override
+ public boolean isLibrariesSupported()
+ {
+ return true;
+ }
+
+ @Override
+ public File getLibraryRoot(File archiveRoot)
+ {
+ if (webInfLib == null)
+ {
+ webInfLib = new File(archiveRoot, "WEB-INF/lib");
+ webInfLib.mkdirs();
+ }
+ return webInfLib;
+ }
}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -20,7 +20,7 @@
File webInf = root.listFiles(WEB_INF_FILTER)[0];
assert webInf.getName().equals("WEB-INF");
assert webInf.isDirectory();
- assert webInf.listFiles().length == 2;
+ assert webInf.listFiles().length == 3;
assert webInf.listFiles(WEB_XML_FILTER).length == 1;
File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
assert webXml.isFile();
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -3,10 +3,12 @@
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
+import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.packaging.war.WarArtifactDescriptor;
import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
import org.testng.annotations.Test;
@@ -34,7 +36,7 @@
File webInf = root.listFiles(WEB_INF_FILTER)[0];
assert webInf.getName().equals("WEB-INF");
assert webInf.isDirectory();
- assert webInf.listFiles().length == 2;
+ assert webInf.listFiles().length == 3;
assert webInf.listFiles(WEB_XML_FILTER).length == 1;
File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
assert webXml.isFile();
@@ -53,6 +55,25 @@
assert cowClasses.length == 1;
assert cowClasses[0].getName().equals("Cow.class");
assert cowClasses[0].isFile();
+ File tckPackage = getPackageAsFile(AbstractTest.class.getPackage(), root);
+ File[] abstractTestClasses = tckPackage.listFiles(new FilenameFilter()
+ {
+
+ public boolean accept(File dir, String name)
+ {
+ return name.equals("AbstractTest.class");
+ }
+
+ });
+ assert abstractTestClasses.length == 1;
+ assert abstractTestClasses[0].getName().equals("AbstractTest.class");
+ assert abstractTestClasses[0].isFile();
+ File webInfLib = new File(webInf, "lib");
+ assert webInfLib.isDirectory();
+ assert webInfLib.list().length == 2;
+ List<String> libs = Arrays.asList(webInfLib.list());
+ assert libs.contains("jsr-299-tck-api.jar");
+ assert libs.contains("testng.jar");
}
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1429 - in tck/trunk/impl/src: main/java/org/jboss/webbeans/tck/impl/packaging/jsr299 and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-06 10:23:34 -0500 (Fri, 06 Feb 2009)
New Revision: 1429
Removed:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
Log:
Switch to allowing a porting package to specify a custom web.xml
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java 2009-02-06 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -13,7 +13,6 @@
import org.jboss.webbeans.tck.impl.packaging.jsr299.BeansXml;
import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
import org.jboss.webbeans.tck.impl.packaging.war.WarArtifactDescriptor;
-import org.jboss.webbeans.tck.impl.packaging.war.WebXml;
public class DeclarativeArtifactProcessor
{
@@ -22,7 +21,6 @@
private final boolean ejbs;
private final boolean addDeclaringPackage;
private final String beansXml;
- private final String webXml;
private final PackagingType packagingType;
private final Collection<ResourceDescriptor> resources;
private final Collection<Class<?>> classes;
@@ -82,22 +80,6 @@
throw new IllegalArgumentException("Cannot specify @Packaging(WAR) or @Packaging(EAR) if @Integration test is not present");
}
- if (declaringClass.isAnnotationPresent(WebXml.class))
- {
- if (packagingType == null)
- {
- throw new IllegalArgumentException("Cannot specify @WebXml for non-integration tests");
- }
- else
- {
- this.webXml = asAbsolutePath(declaringClass.getAnnotation(WebXml.class).value());
- }
- }
- else
- {
- this.webXml = null;
- }
-
if (declaringClass.isAnnotationPresent(Resources.class))
{
this.resources = asResourceDescriptors(declaringClass.getAnnotation(Resources.class).value());
@@ -122,7 +104,7 @@
final TCKArtifactDescriptor artifact;
if (packagingType.equals(WAR))
{
- artifact = new WarArtifactDescriptor(declaringClass, beansXml, webXml);
+ artifact = new WarArtifactDescriptor(declaringClass, beansXml);
}
else if (packagingType.equals(EAR))
{
@@ -134,7 +116,7 @@
}
else if (!standalone)
{
- artifact = new WarArtifactDescriptor(declaringClass, beansXml, null);
+ artifact = new WarArtifactDescriptor(declaringClass, beansXml);
}
else
{
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java 2009-02-06 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -8,13 +8,11 @@
import java.lang.annotation.Target;
import org.jboss.webbeans.tck.impl.packaging.jsr299.BeansXml;
-import org.jboss.webbeans.tck.impl.packaging.war.WebXml;
/**
* Specify an additional resource to be added to the artifact.
*
* @see Resources
- * @see WebXml
* @see BeansXml
*
* @author Pete Muir
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java 2009-02-06 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -8,13 +8,11 @@
import java.lang.annotation.Target;
import org.jboss.webbeans.tck.impl.packaging.Resource;
-import org.jboss.webbeans.tck.impl.packaging.war.WebXml;
/**
* Override the default (empty) META-INF/beans.xml
*
* @see Resource
- * @see WebXml
*
* @author Pete Muir
*
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 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -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.Strings.isEmpty;
-
import java.io.File;
+import java.net.URL;
import org.jboss.webbeans.tck.impl.packaging.ResourceDescriptor;
import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
@@ -12,17 +12,19 @@
public static final String WEB_XML_DESTINATION = "WEB-INF/web.xml";
public static final String STANDARD_WEB_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/war/default/web.xml";
+ public static final String CUSTOM_WEB_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/war/default/custom-web.xml";
private File webInfClasses;
- public WarArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName, String webXmlSourceFileName)
+ public WarArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName)
{
super(declaringClass, beansXmlSourceFileName);
- if (isEmpty(webXmlSourceFileName))
+ URL webXml = loadResource(CUSTOM_WEB_XML_FILE_NAME);
+ if (webXml == null)
{
- webXmlSourceFileName = STANDARD_WEB_XML_FILE_NAME;
+ webXml = loadResource(STANDARD_WEB_XML_FILE_NAME);
}
- getResources().add(new ResourceDescriptor(WEB_XML_DESTINATION, webXmlSourceFileName));
+ getResources().add(new ResourceDescriptor(WEB_XML_DESTINATION, webXml));
}
@Override
Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java 2009-02-06 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -1,34 +0,0 @@
-package org.jboss.webbeans.tck.impl.packaging.war;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import org.jboss.webbeans.tck.impl.packaging.Resource;
-import org.jboss.webbeans.tck.impl.packaging.jsr299.BeansXml;
-
-/**
- * Override the default WEB-INF/web.xml
- *
- * @see Resource
- * @see BeansXml
- * @author Pete Muir
- *
- */
-@Documented
-@Retention(RUNTIME)
-@Target(TYPE)
-public @interface WebXml
-{
-
- /**
- * Location of the overriding file, relative to the current location or the
- * root this classpath
- *
- */
- String value();
-
-}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -27,23 +27,5 @@
assert webXml.getName().equals("web.xml");
assert webXml.length() != 0;
}
-
- @Test
- public void testCustomWebXml() throws Exception
- {
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyCustomWebXmlTest.class, false);
- TCKArtifactDescriptor artifact = declarativeArtifactProcessor.getArtifact();
- File root = artifact.getExplodedJar();
- assert root.listFiles(WEB_INF_FILTER).length == 1;
- File webInf = root.listFiles(WEB_INF_FILTER)[0];
- assert webInf.getName().equals("WEB-INF");
- assert webInf.isDirectory();
- assert webInf.listFiles().length == 2;
- assert webInf.listFiles(WEB_XML_FILTER).length == 1;
- File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
- assert webXml.isFile();
- assert webXml.getName().equals("web.xml");
- assert readFile(webXml).startsWith("<web></web>");
- }
}
Deleted: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java 2009-02-06 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -1,22 +0,0 @@
-package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.war;
-
-import org.jboss.webbeans.tck.impl.packaging.Artifact;
-import org.jboss.webbeans.tck.impl.packaging.IntegrationTest;
-import org.jboss.webbeans.tck.impl.packaging.Packaging;
-import org.jboss.webbeans.tck.impl.packaging.PackagingType;
-import org.jboss.webbeans.tck.impl.packaging.war.WebXml;
-
-
-@Artifact
-@IntegrationTest
-(a)Packaging(PackagingType.WAR)
-@WebXml("my-web.xml")
-class DummyCustomWebXmlTest
-{
-
- public void test()
- {
- assert true;
- }
-
-}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 15:07:43 UTC (rev 1428)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 15:23:34 UTC (rev 1429)
@@ -16,7 +16,7 @@
@Test
public void testDefaultWar() throws Exception
{
- WarArtifactDescriptor war = new WarArtifactDescriptor(null, null, null);
+ WarArtifactDescriptor war = new WarArtifactDescriptor(null, null);
war.getClasses().add(Cow.class);
File root = war.getExplodedJar();
assert root.listFiles().length == 2;
@@ -59,7 +59,7 @@
@Test
public void testJarProduction() throws Exception
{
- WarArtifactDescriptor war = new WarArtifactDescriptor(null, null, null);
+ WarArtifactDescriptor war = new WarArtifactDescriptor(null, null);
war.getClasses().add(Cow.class);
JarInputStream is = new JarInputStream(war.getJar());
JarEntry entry;
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1428 - in tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition: binding and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-02-06 10:07:43 -0500 (Fri, 06 Feb 2009)
New Revision: 1428
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BeanWithTooManyDeploymentTypes_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BrokenDeploymentTypeTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/TooManyDeploymentTypesTest.java
Removed:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BrokenDeploymentTypeTest.java
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java
Log:
Changed some tests to use the new test deployment framework.
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java 2009-02-06 14:49:37 UTC (rev 1427)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -72,7 +72,6 @@
assert manager.resolveByType(RedSnapper.class).iterator().next().getDeploymentType().equals(Production.class);
}
- @SuppressWarnings("unchecked")
@Test(groups = "producerMethod")
@SpecAssertion(section = "5.2", id = "unknown")
public void testIsNullable() throws Exception
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java 2009-02-06 14:49:37 UTC (rev 1427)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/BindingDefinitionTest.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -11,12 +11,14 @@
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.SpecAssertion;
import org.jboss.webbeans.tck.SpecAssertions;
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
import org.jboss.webbeans.tck.literals.CurrentBinding;
import org.testng.annotations.Test;
/**
* Spec version: PRD2
*/
+@Artifact
public class BindingDefinitionTest extends AbstractTest
{
@@ -32,7 +34,6 @@
@SpecAssertions( { @SpecAssertion(section = "2.3.3", id = "unknown"), @SpecAssertion(section = "2.3.1", id = "unknown") })
public void testDefaultBindingDeclaredInJava()
{
- deployBeans(Order.class);
Bean<Order> order = manager.resolveByType(Order.class).iterator().next();
assert order.getBindings().size() == 1;
order.getBindings().iterator().next().annotationType().equals(Production.class);
@@ -62,7 +63,6 @@
@SpecAssertion(section = "2.3.2", id = "unknown")
public void testBindingDeclaresBindingAnnotation()
{
- deployBeans(SpiderProducer.class);
assert !manager.resolveByType(Tarantula.class, new TameBinding()).isEmpty();
}
@@ -70,7 +70,6 @@
@SpecAssertion(section = "2.3.3", id = "unknown")
public void testBindingsDeclaredInJava()
{
- deployBeans(Cat.class);
Bean<Cat> cat = manager.resolveByType(Cat.class, new SynchronousBinding()).iterator().next();
assert cat.getBindings().size() == 1;
assert cat.getBindings().contains(new SynchronousBinding());
@@ -80,7 +79,6 @@
@SpecAssertion(section = "2.3.3", id = "unknown")
public void testMultipleBindings()
{
- deployBeans(Cod.class);
Bean<?> model = manager.resolveByType(Cod.class, new ChunkyBinding(true), new WhitefishBinding()).iterator().next();
assert model.getBindings().size() == 2;
}
@@ -143,7 +141,6 @@
@SpecAssertions( { @SpecAssertion(section = "2.3.4", id = "unknown"), @SpecAssertion(section = "2.3.1", id = "unknown") })
public void testDefaultBindingDeclaredInXml()
{
- deployBeans(Tuna.class);
Bean<?> model = manager.resolveByType(Tuna.class).iterator().next();
assert model.getBindings().size() == 1;
assert model.getBindings().contains(new CurrentBinding());
@@ -154,7 +151,6 @@
@SpecAssertion(section = "2.3.5", id = "unknown")
public void testFieldInjectedFromProducerMethod() throws Exception
{
- deployBeans(SpiderProducer.class, Barn.class);
Barn barn = manager.resolveByType(Barn.class).iterator().next().create(new MockCreationalContext<Barn>());
assert barn.petSpider != null;
assert barn.petSpider instanceof DefangedTarantula;
@@ -177,7 +173,6 @@
@Test(groups = { "injection", "producerMethod" })
public void testMethodWithBindingAnnotationsOnParametersAreInjected() throws Exception
{
- deployBeans(SpiderProducer.class);
Spider spider = manager.resolveByType(Spider.class).iterator().next().create(new MockCreationalContext<Spider>());
assert spider != null;
assert spider instanceof DefangedTarantula;
@@ -201,7 +196,6 @@
@SpecAssertion(section = "4.1", id = "unknown")
public void testBindingDeclaredInheritedIsInherited() throws Exception
{
- deployBeans(BorderCollie.class);
Set<? extends Annotation> bindings = manager.resolveByType(BorderCollie.class, new HairyBinding(false)).iterator().next().getBindings();
assert bindings.size() == 1;
assert bindings.iterator().next().annotationType().equals(Hairy.class);
@@ -211,7 +205,6 @@
@SpecAssertion(section = "4.1", id = "unknown")
public void testBindingNotDeclaredInheritedIsNotInherited()
{
- deployBeans(ShetlandPony.class);
Set<? extends Annotation> bindings = manager.resolveByType(ShetlandPony.class).iterator().next().getBindings();
assert bindings.size() == 1;
assert bindings.iterator().next().annotationType().equals(Current.class);
@@ -221,7 +214,6 @@
@SpecAssertion(section = "4.1", id = "unknown")
public void testBindingDeclaredInheritedIsBlockedByIntermediateClass()
{
- deployBeans(ClippedBorderCollie.class);
Set<? extends Annotation> bindings = manager.resolveByType(ClippedBorderCollie.class, new HairyBinding(true)).iterator().next().getBindings();
assert bindings.size() == 1;
Annotation binding = bindings.iterator().next();
Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java 2009-02-06 14:49:37 UTC (rev 1427)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -1,10 +0,0 @@
-package org.jboss.webbeans.tck.unit.definition.deployment;
-
-import javax.inject.Production;
-
-@Production
-@AnotherDeploymentType
-class BeanWithTooManyDeploymentTypes_Broken
-{
-
-}
Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BrokenDeploymentTypeTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BrokenDeploymentTypeTest.java 2009-02-06 14:49:37 UTC (rev 1427)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BrokenDeploymentTypeTest.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -1,26 +0,0 @@
-package org.jboss.webbeans.tck.unit.definition.deployment;
-
-import javax.inject.DeploymentException;
-
-import org.jboss.webbeans.tck.AbstractTest;
-import org.jboss.webbeans.tck.SpecAssertion;
-import org.testng.annotations.Test;
-
-/**
- *
- * Spec version: PRD2
- */
-public class BrokenDeploymentTypeTest extends AbstractTest
-{
-
- @SuppressWarnings("unchecked")
- @Test(expectedExceptions=DeploymentException.class, groups="broken")
- @SpecAssertion(section="2.5.6", id = "unknown")
- public void testStandardMustBeDeclared()
- {
-
- //manager = configuration().getContainers().deploy(Arrays.asList(AnotherDeploymentType.class, HornedAnimalDeploymentType.class), Dog.class);
- }
-
-
-}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java 2009-02-06 14:49:37 UTC (rev 1427)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/DeploymentTypeDefinitionTest.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -12,6 +12,7 @@
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.SpecAssertion;
import org.jboss.webbeans.tck.SpecAssertions;
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
import org.testng.annotations.Test;
/**
@@ -19,6 +20,7 @@
* Spec version: Public Release Draft 2
*
*/
+//@Artifact
public class DeploymentTypeDefinitionTest extends AbstractTest
{
@@ -84,18 +86,6 @@
}
/**
- * An bean class or producer method or field may specify at most one
- * deployment type. If multiple deployment type annotations are specified, a
- * DefinitionException is thrown by the container at deployment time.
- */
- @Test(groups = { "deploymentType" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "2.5.3", id = "unknown")
- public void testTooManyDeploymentTypes()
- {
- deployBeans(BeanWithTooManyDeploymentTypes_Broken.class);
- }
-
- /**
* By default, if no deployment type annotation is explicitly specified, a
* producer method or field inherits the deployment type of the bean in which
* it is defined.
Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/AnotherDeploymentType.java (from rev 1425, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/AnotherDeploymentType.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/AnotherDeploymentType.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.deployment.broken;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@Inherited
+@interface AnotherDeploymentType
+{
+
+}
\ No newline at end of file
Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BeanWithTooManyDeploymentTypes_Broken.java (from rev 1425, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BeanWithTooManyDeploymentTypes_Broken.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BeanWithTooManyDeploymentTypes_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BeanWithTooManyDeploymentTypes_Broken.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.definition.deployment.broken;
+
+import javax.inject.Production;
+
+@Production
+@AnotherDeploymentType
+class BeanWithTooManyDeploymentTypes_Broken
+{
+
+}
Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BrokenDeploymentTypeTest.java (from rev 1425, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/BrokenDeploymentTypeTest.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BrokenDeploymentTypeTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BrokenDeploymentTypeTest.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -0,0 +1,26 @@
+package org.jboss.webbeans.tck.unit.definition.deployment.broken;
+
+import javax.inject.DeploymentException;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.SpecAssertion;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * Spec version: PRD2
+ */
+public class BrokenDeploymentTypeTest extends AbstractTest
+{
+
+ @SuppressWarnings("unchecked")
+ @Test(expectedExceptions=DeploymentException.class, groups="broken")
+ @SpecAssertion(section="2.5.6", id = "unknown")
+ public void testStandardMustBeDeclared()
+ {
+
+ //manager = configuration().getContainers().deploy(Arrays.asList(AnotherDeploymentType.class, HornedAnimalDeploymentType.class), Dog.class);
+ }
+
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/BrokenDeploymentTypeTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/TooManyDeploymentTypesTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/TooManyDeploymentTypesTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/TooManyDeploymentTypesTest.java 2009-02-06 15:07:43 UTC (rev 1428)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.webbeans.tck.unit.definition.deployment.broken;
+
+import javax.inject.DefinitionException;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.SpecAssertion;
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.Classes;
+import org.testng.annotations.Test;
+
+/**
+ * Single test for a bean with too many deployment types.
+ */
+//@Artifact(addCurrentPackage=false)
+//@Classes(value = { BeanWithTooManyDeploymentTypes_Broken.class })
+public class TooManyDeploymentTypesTest extends AbstractTest
+{
+ /**
+ * An bean class or producer method or field may specify at most one
+ * deployment type. If multiple deployment type annotations are specified, a
+ * DefinitionException is thrown by the container at deployment time.
+ */
+ @Test(groups = { "deploymentType", "broken" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "2.5.3", id = "unknown")
+ public void testTooManyDeploymentTypes()
+ {
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/deployment/broken/TooManyDeploymentTypesTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1427 - tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api and 16 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-06 09:49:37 -0500 (Fri, 06 Feb 2009)
New Revision: 1427
Added:
tck/trunk/impl/${project.build.dir}extory/
tck/trunk/impl/${project.build.dir}extory/jsr-299-artifacts/
tck/trunk/impl/${project.build.dir}extory/jsr-299-artifacts/org.jboss.webbeans.tck.unit.definition.bean.BeanDefinitionTest.war
Modified:
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/TCKConfiguration.java
tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java
tck/trunk/api/src/main/java/org/jboss/webbeans/tck/spi/Containers.java
tck/trunk/impl/pom.xml
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/InContainerTestRunner.java
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/ArtifactScanner.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.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/test/java/org/jboss/webbeans/tck/impl/test/InContainerTestRunnerTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
Log:
Easy way to dump artifacts
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-02-06 13:21:59 UTC (rev 1426)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/tck/ContainersImpl.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -3,7 +3,6 @@
import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.util.List;
-import java.util.jar.JarInputStream;
import javax.el.ELContext;
import javax.inject.manager.Manager;
@@ -40,7 +39,7 @@
throw new UnsupportedOperationException();
}
- public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, JarInputStream archive)
+ public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, InputStream archive)
{
throw new UnsupportedOperationException();
}
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TCKConfiguration.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TCKConfiguration.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TCKConfiguration.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -39,7 +39,7 @@
}
else
{
- this.testSuite = new TestSuite(null);
+ this.testSuite = new TestSuite();
}
}
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -5,17 +5,14 @@
public static final String PROPERTY_NAME = TestSuite.class.getName();
- private String outputDirectory;
+ private String outputDirectory = System.getProperty("java.io.tmpdir") + "/jsr-299-tck/";
private boolean standalone = true;
private int deploymentDelay = 5000;
private boolean writeDeployedArchivesToDisk;
- private String debugOutputDirectory = System.getProperty("java.io.tmpdir") + "/jsr-299-tck/";
-
- public TestSuite(String outputDirectory)
+ public TestSuite()
{
- super();
- this.outputDirectory = outputDirectory;
+
}
public String getOutputDirectory()
@@ -23,6 +20,11 @@
return outputDirectory;
}
+ public void setOutputDirectory(String outputDirectory)
+ {
+ this.outputDirectory = outputDirectory;
+ }
+
public boolean isStandalone()
{
return standalone;
@@ -43,16 +45,6 @@
this.deploymentDelay = deploymentDelay;
}
- public String getDebugOutputDirectory()
- {
- return debugOutputDirectory;
- }
-
- public void setDebugOutputDirectory(String debugOutputDirectory)
- {
- this.debugOutputDirectory = debugOutputDirectory;
- }
-
public boolean isWriteDeployedArchivesToDisk()
{
return writeDeployedArchivesToDisk;
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/spi/Containers.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/spi/Containers.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/spi/Containers.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -3,7 +3,6 @@
import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.util.List;
-import java.util.jar.JarInputStream;
import javax.inject.manager.Manager;
@@ -31,7 +30,7 @@
*/
public <T> T evaluateMethodExpression(String expression, Class<T> expectedType, Class<?>[] expectedParamTypes, Object[] expectedParams);
- public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, JarInputStream archive);
+ public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, InputStream archive);
/**
* The compressed archive, represented as an stream of bytes
Added: tck/trunk/impl/${project.build.dir}extory/jsr-299-artifacts/org.jboss.webbeans.tck.unit.definition.bean.BeanDefinitionTest.war
===================================================================
(Binary files differ)
Property changes on: tck/trunk/impl/${project.build.dir}extory/jsr-299-artifacts/org.jboss.webbeans.tck.unit.definition.bean.BeanDefinitionTest.war
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: tck/trunk/impl/pom.xml
===================================================================
--- tck/trunk/impl/pom.xml 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/pom.xml 2009-02-06 14:49:37 UTC (rev 1427)
@@ -159,6 +159,40 @@
</plugins>
</build>
</profile>
+ <profile>
+ <id>write-artifacts-to-disk</id>
+ <activation>
+ <property>
+ <name>dumpArtifacts</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>package</id>
+ <phase>package</phase>
+ <configuration>
+ <tasks>
+ <java classname="org.jboss.webbeans.tck.impl.InContainerTestRunner" classpathref="maven.compile.classpath" failonerror="true" fork="true">
+ <jvmarg line="-DcreateArtifacts=true"/>
+ <jvmarg line="-DoutputDirectory=${project.build.directory}/jsr-299-artifacts" />
+ </java>
+ <echo>Dumped artifacts to ${project.build.directory}/jsr-299-artifacts</echo>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
</project>
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -91,8 +91,8 @@
Class<?> declaringClass = testMethod.getDeclaringClass();
if (declaringClass.isAnnotationPresent(Artifact.class) || declaringClass.isAnnotationPresent(EjbArtifact.class))
{
- DeclarativeArtifactProcessor processor = new DeclarativeArtifactProcessor(declaringClass);
- ArtifactDescriptor artifact = processor.getArtifact(true);
+ DeclarativeArtifactProcessor processor = new DeclarativeArtifactProcessor(declaringClass, true);
+ ArtifactDescriptor artifact = processor.getArtifact();
Set<Class<?>> classes = artifact.getClasses();
if (getEnabledDeploymentTypes().size() > 0)
{
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/InContainerTestRunner.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/InContainerTestRunner.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/InContainerTestRunner.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -2,12 +2,9 @@
import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
-import java.io.BufferedOutputStream;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -18,7 +15,6 @@
import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
import org.jboss.webbeans.tck.impl.packaging.ArtifactScanner;
import org.jboss.webbeans.tck.impl.packaging.DeclarativeArtifactProcessor;
-import org.jboss.webbeans.tck.impl.util.Files;
import org.jboss.webbeans.tck.spi.Containers;
@@ -27,20 +23,53 @@
private static final Logger log = Logger.getLogger(ArtifactScanner.class);
+ private final TestSuite testSuite;
+ private final Containers containers;
+
public InContainerTestRunner()
{
+ testSuite = configuration().getTestSuite();
+ containers = configuration().getContainers();
+ }
+
+ protected InContainerTestRunner(TestSuite testSuite, Containers containers)
+ {
+ super();
+ this.testSuite = testSuite;
+ this.containers = containers;
+ }
+ public static void main(String[] args)
+ {
+ if (System.getProperty("createArtifacts") != null)
+ {
+ TestSuite testSuite = new TestSuite();
+ if (System.getProperty("outputDirectory") != null)
+ {
+ testSuite.setOutputDirectory(System.getProperty("outputDirectory"));
+ }
+ testSuite.setStandalone(false);
+ testSuite.setWriteDeployedArchivesToDisk(true);
+ InContainerTestRunner runner = new InContainerTestRunner(testSuite, null);
+ runner.writeArtifactsOutputDirectory(runner.createArtifacts());
+ }
}
public void run()
{
- run(configuration().getTestSuite(), configuration().getContainers());
+ List<ArtifactDescriptor> artifacts = createArtifacts();
+ if (testSuite.isWriteDeployedArchivesToDisk())
+ {
+ writeArtifactsOutputDirectory(artifacts);
+ }
+ deployArtifacts(artifacts);
}
- protected void run(TestSuite testSuite, Containers containers)
+ protected List<ArtifactDescriptor> createArtifacts()
{
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.addAll(new ArtifactScanner("org.jboss.webbeans.tck.integration").getClasses());
+
if (!testSuite.isStandalone())
{
classes.addAll(new ArtifactScanner("org.jboss.webbeans.tck.unit").getClasses());
@@ -48,42 +77,45 @@
List<ArtifactDescriptor> artifacts = new ArrayList<ArtifactDescriptor>();
for (Class<?> clazz : classes)
{
- artifacts.add(new DeclarativeArtifactProcessor(clazz).getArtifact());
+ artifacts.add(new DeclarativeArtifactProcessor(clazz, testSuite.isStandalone()).getArtifact());
}
- // We've now collected all the artifacts, so we can file them at the
- // container
- if (testSuite.isWriteDeployedArchivesToDisk())
+ return artifacts;
+ }
+
+ protected void writeArtifactsOutputDirectory(List<ArtifactDescriptor> artifacts)
+ {
+ File file = new File(testSuite.getOutputDirectory());
+ if (!file.exists())
{
- File file = new File(testSuite.getDebugOutputDirectory());
- if (!file.exists())
+ file.mkdirs();
+ }
+ else if (file.isFile())
+ {
+ throw new IllegalStateException("Cannot use debug directory " + testSuite.getOutputDirectory() + ", it already exists");
+ }
+ log.info("Writing artifacts to " + testSuite.getOutputDirectory());
+ for (ArtifactDescriptor artifact : artifacts)
+ {
+ try
{
- file.mkdirs();
+ artifact.writeArtifactToDisk(testSuite.getOutputDirectory());
+ log.info("Written artifact to disk " + artifact);
}
- else if (file.isFile())
+ catch (IOException e)
{
- throw new IllegalStateException("Cannot use debug directory " + testSuite.getDebugOutputDirectory() + ", it already exists");
+ log.warn("Error writing artifact to disk " + artifact, e);
}
}
+ }
+
+ protected void deployArtifacts(List<ArtifactDescriptor> artifacts)
+ {
for (ArtifactDescriptor artifact : artifacts)
{
try
{
- InputStream jar = artifact.asJar();
- if (testSuite.isWriteDeployedArchivesToDisk())
- {
- try
- {
- File file = new File(testSuite.getDebugOutputDirectory(), artifact.getDeclaringClass().getName() + artifact.getExtension());
- file.createNewFile();
- OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
- Files.copy(jar, os);
- os.close();
- }
- catch (IOException e)
- {
- log.error("Error writing artifact to disk " + artifact, e);
- }
- }
+ InputStream jar = artifact.getJar();
+
containers.deploy(jar);
jar.close();
try
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 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -4,6 +4,7 @@
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResources;
+import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -29,6 +30,8 @@
public class ArtifactDescriptor
{
+
+ private static final Logger log = Logger.getLogger(ArtifactScanner.class);
/**
* Implementation of {@link Scanner} which can scan a {@link URLClassLoader}
@@ -187,6 +190,10 @@
private final Set<ResourceDescriptor> resources;
private final Class<?> declaringClass;
+ // Cache
+ private InputStream jar;
+ private File explodedJar;
+
public ArtifactDescriptor(Class<?> declaringClass)
{
classes = new HashSet<Class<?>>();
@@ -194,13 +201,29 @@
this.declaringClass = declaringClass;
}
- public InputStream asJar() throws IOException
+ public InputStream getJar() throws IOException
{
- return new Zipper(create()).zip();
+ if (jar == null)
+ {
+ jar = new Zipper(getExplodedJar()).zip();
+ }
+ return jar;
}
- public File create() throws IOException
+ public File getExplodedJar() throws IOException
{
+ if (explodedJar == null)
+ {
+ create();
+ }
+ return explodedJar;
+ }
+
+ public void create() throws IOException
+ {
+ explodedJar = null;
+ jar = null;
+
File root = new File(System.getProperty("java.io.tmpdir") + "/" + getClass().getName() + "." + random.nextInt());
root.mkdir();
root.deleteOnExit();
@@ -218,7 +241,7 @@
file.deleteOnExit();
copy(resourceDescriptor.getSource().openStream(), file);
}
- return root;
+ this.explodedJar = root;
}
private static void copyClass(Class<?> clazz, File root) throws IOException
@@ -249,6 +272,15 @@
return root;
}
+ public void writeArtifactToDisk(String outputDirectory) throws IOException
+ {
+ File file = new File(outputDirectory, getDeclaringClass().getName() + getExtension());
+ file.createNewFile();
+ OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
+ Files.copy(getJar(), os);
+ os.close();
+ }
+
private static String getClassFileName(String className)
{
return className.replace('.', '/') + ".class";
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactScanner.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactScanner.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactScanner.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -9,10 +9,15 @@
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;
+import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
import org.apache.log4j.Logger;
+import org.jboss.webbeans.tck.impl.util.Reflections;
public class ArtifactScanner
{
@@ -55,7 +60,7 @@
}
}
- private void handle(Set<String> paths)
+ private void handle(Set<String> paths) throws IOException
{
for ( String urlPath: paths )
{
@@ -65,8 +70,32 @@
}
}
- private void handle(File file, String packageName)
+ private void handleArchiveByFile(File file) throws IOException
{
+ try
+ {
+ log.trace("archive: " + file);
+ ZipFile zip = new ZipFile(file);
+ Enumeration<? extends ZipEntry> entries = zip.entries();
+ while ( entries.hasMoreElements() )
+ {
+ ZipEntry entry = entries.nextElement();
+ String name = entry.getName();
+ if (name.startsWith(packageName) && name.endsWith(".class"))
+ {
+ String className = name.replace("/", ".").replace(".class", "");
+ classes.add(Reflections.loadClass(className));
+ }
+ }
+ }
+ catch (ZipException e)
+ {
+ throw new RuntimeException("Error handling file " + file, e);
+ }
+ }
+
+ private void handle(File file, String packageName) throws IOException
+ {
if ( file.isDirectory() )
{
packageName = packageName + "." + file.getName();
@@ -78,19 +107,20 @@
else if (file.getName().endsWith(".class") && ! file.getName().contains("$"))
{
String className = packageName + "." + file.getName().substring(0, file.getName().length() - 6);
- try
+ Class<?> clazz = Reflections.loadClass(className);
+ if (clazz != null && clazz.isAnnotationPresent(Artifact.class) || clazz.isAnnotationPresent(EjbArtifact.class))
{
- Class<?> clazz = Class.forName(className);
- if (clazz.isAnnotationPresent(Artifact.class) || clazz.isAnnotationPresent(EjbArtifact.class))
- {
- classes.add(clazz);
- }
+ classes.add(clazz);
}
- catch (ClassNotFoundException e)
+ else if (clazz == null)
{
- log.warn("Unable to load class " + className, e);
+ log.warn("Unable to load class " + className);
}
}
+ else if (file.getName().endsWith(".jar"))
+ {
+ handleArchiveByFile(file);
+ }
}
public Set<Class<?>> getClasses()
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -27,10 +27,12 @@
private final Collection<ResourceDescriptor> resources;
private final Collection<Class<?>> classes;
- private Class<?> declaringClass;
+ private final Class<?> declaringClass;
+ private final boolean standalone;
- public DeclarativeArtifactProcessor(Class<?> declaringClass)
+ public DeclarativeArtifactProcessor(Class<?> declaringClass, boolean standalone)
{
+ this.standalone = standalone;
this.declaringClass = declaringClass;
if (declaringClass.isAnnotationPresent(Artifact.class))
@@ -117,11 +119,6 @@
public TCKArtifactDescriptor getArtifact()
{
- return getArtifact(true);
- }
-
- public TCKArtifactDescriptor getArtifact(boolean standalone)
- {
final TCKArtifactDescriptor artifact;
if (packagingType.equals(WAR))
{
@@ -131,18 +128,19 @@
{
throw new UnsupportedOperationException();
}
- else if (ejbs && standalone)
+ else if (!standalone && ejbs)
{
throw new UnsupportedOperationException();
}
- else if (standalone)
+ else if (!standalone)
{
- artifact = new TCKArtifactDescriptor(declaringClass, beansXml);
+ artifact = new WarArtifactDescriptor(declaringClass, beansXml, null);
}
else
{
- artifact = new WarArtifactDescriptor(declaringClass, beansXml, null);
+ artifact = new TCKArtifactDescriptor(declaringClass, beansXml);
}
+
if (addDeclaringPackage)
{
artifact.addPackage(declaringClass.getPackage());
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 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -40,10 +40,4 @@
this.unit = unit;
}
- @Override
- public String getExtension()
- {
- return ".war";
- }
-
}
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 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -42,4 +42,9 @@
return "war, " + super.toString();
}
+ @Override
+ public String getExtension()
+ {
+ return ".war";
+ }
}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/InContainerTestRunnerTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/InContainerTestRunnerTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/InContainerTestRunnerTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -3,7 +3,6 @@
import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.util.List;
-import java.util.jar.JarInputStream;
import javax.inject.manager.Manager;
@@ -16,11 +15,11 @@
private static class MockInContainerTestRunner extends InContainerTestRunner
{
-
- @Override
- public void run(TestSuite testSuite, Containers containers)
+
+ public MockInContainerTestRunner(TestSuite testSuite, Containers containers)
{
- super.run(testSuite, containers);
+ super(testSuite, containers);
+ // TODO Auto-generated constructor stub
}
}
@@ -28,7 +27,7 @@
private static class MockContainers implements Containers
{
- public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, JarInputStream archive)
+ public Manager deploy(List<Class<? extends Annotation>> enabledDeploymentTypes, InputStream archive)
{
// TODO Auto-generated method stub
return null;
@@ -57,11 +56,11 @@
//@Test
public void testRunner()
{
- TestSuite testSuite = new TestSuite(null);
+ TestSuite testSuite = new TestSuite();
testSuite.setWriteDeployedArchivesToDisk(true);
testSuite.setDeploymentDelay(0);
- MockInContainerTestRunner runner = new MockInContainerTestRunner();
- runner.run(testSuite, new MockContainers());
+ MockInContainerTestRunner runner = new MockInContainerTestRunner(testSuite, new MockContainers());
+ runner.run();
}
}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -16,7 +16,7 @@
public void testDefaultTCKArtifact() throws Exception
{
ArtifactDescriptor artifactDescriptor = new TCKArtifactDescriptor(null, null);
- File root = artifactDescriptor.create();
+ File root = artifactDescriptor.getExplodedJar();
assert getPackageAsFile(Reflections.class.getPackage(), root).listFiles().length > 0;
assert getPackageAsFile(NewLiteral.class.getPackage(), root).listFiles().length > 0;
assert getPackageAsFile(AbstractTest.class.getPackage(), root).listFiles().length > 0;
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -15,7 +15,7 @@
{
ArtifactDescriptor artifactDescriptor = new ArtifactDescriptor(null);
artifactDescriptor.addPackage(ArtifactTest.class.getPackage());
- File root = artifactDescriptor.create();
+ File root = artifactDescriptor.getExplodedJar();
File currentPackage = getCurrentPackageAsFile(root);
assert currentPackage.listFiles().length == 6;
File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -14,11 +14,11 @@
@Test
public void testDefaultDeclartiveArtifact() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyTest.class, true);
TCKArtifactDescriptor artifact = declarativeArtifactProcessor.getArtifact();
assert !artifact.isEjbs();
assert artifact.isUnit();
- File root = artifact.create();
+ File root = artifact.getExplodedJar();
File currentPackage = getCurrentPackageAsFile(root);
File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
{
@@ -66,9 +66,9 @@
@Test
public void testClassesSpecifiedArtifact() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyClassesSpecifiedTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyClassesSpecifiedTest.class, true);
TCKArtifactDescriptor artifact = declarativeArtifactProcessor.getArtifact();
- File root = artifact.create();
+ File root = artifact.getExplodedJar();
File currentPackage = getCurrentPackageAsFile(root);
assert currentPackage.listFiles().length == 1;
File[] pestPackages = currentPackage.listFiles(new FilenameFilter()
@@ -89,9 +89,9 @@
@Test
public void testResourcesSpecifiedArtifact() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyResourcesSpecifiedTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyResourcesSpecifiedTest.class, false);
TCKArtifactDescriptor artifact = declarativeArtifactProcessor.getArtifact();
- File root = artifact.create();
+ File root = artifact.getExplodedJar();
assert root.listFiles(META_INF_FILTER).length == 1;
File metaInf = root.listFiles(META_INF_FILTER)[0];
assert metaInf.listFiles().length == 2;
@@ -109,16 +109,16 @@
@Test
public void testIntegrationTestDeclartiveArtifact() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyIntegrationTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyIntegrationTest.class, false);
assert !declarativeArtifactProcessor.getArtifact().isUnit();
}
@Test
public void testCustomBeansXml() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyCustomBeansXmlTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyCustomBeansXmlTest.class, false);
TCKArtifactDescriptor artifact = declarativeArtifactProcessor.getArtifact();
- File root = artifact.create();
+ File root = artifact.getExplodedJar();
assert root.listFiles(META_INF_FILTER).length == 1;
File metaInf = root.listFiles(META_INF_FILTER)[0];
assert metaInf.listFiles().length == 1;
@@ -131,14 +131,14 @@
//@Test
public void testEjbTestDeclartiveArtifact() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyEjbTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyEjbTest.class, false);
assert declarativeArtifactProcessor.getArtifact().isEjbs();
}
@Test(expectedExceptions=IllegalArgumentException.class)
public void testWrongPackaging()
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyWarUnitTest_Broken.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyWarUnitTest_Broken.class, false);
}
}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -13,9 +13,9 @@
@Test
public void testDefaultWebXml() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyTest.class, false);
TCKArtifactDescriptor artifact = declarativeArtifactProcessor.getArtifact();
- File root = artifact.create();
+ File root = artifact.getExplodedJar();
assert root.listFiles(WEB_INF_FILTER).length == 1;
File webInf = root.listFiles(WEB_INF_FILTER)[0];
assert webInf.getName().equals("WEB-INF");
@@ -31,9 +31,9 @@
@Test
public void testCustomWebXml() throws Exception
{
- DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyCustomWebXmlTest.class);
+ DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyCustomWebXmlTest.class, false);
TCKArtifactDescriptor artifact = declarativeArtifactProcessor.getArtifact();
- File root = artifact.create();
+ File root = artifact.getExplodedJar();
assert root.listFiles(WEB_INF_FILTER).length == 1;
File webInf = root.listFiles(WEB_INF_FILTER)[0];
assert webInf.getName().equals("WEB-INF");
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -15,7 +15,7 @@
{
ArtifactDescriptor artifactDescriptor = new ArtifactDescriptor(null);
artifactDescriptor.addPackage(ArtifactTest.class.getPackage());
- File root = artifactDescriptor.create();
+ File root = artifactDescriptor.getExplodedJar();
File currentPackage = getCurrentPackageAsFile(root);
assert currentPackage.listFiles().length == 4;
File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 13:21:59 UTC (rev 1426)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 14:49:37 UTC (rev 1427)
@@ -18,7 +18,7 @@
{
WarArtifactDescriptor war = new WarArtifactDescriptor(null, null, null);
war.getClasses().add(Cow.class);
- File root = war.create();
+ File root = war.getExplodedJar();
assert root.listFiles().length == 2;
assert root.isDirectory();
assert root.listFiles(WEB_INF_FILTER).length == 1;
@@ -61,7 +61,7 @@
{
WarArtifactDescriptor war = new WarArtifactDescriptor(null, null, null);
war.getClasses().add(Cow.class);
- JarInputStream is = new JarInputStream(war.asJar());
+ JarInputStream is = new JarInputStream(war.getJar());
JarEntry entry;
List<String> fileNames = new ArrayList<String>();
while ((entry = is.getNextJarEntry()) != null)
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1426 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-02-06 08:21:59 -0500 (Fri, 06 Feb 2009)
New Revision: 1426
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kajaani.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/context/passivating/PassivatingContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java
Log:
Fixed validation on passivating beans and tests for passivating contexts.
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java 2009-02-06 00:16:52 UTC (rev 1425)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java 2009-02-06 13:21:59 UTC (rev 1426)
@@ -40,6 +40,8 @@
import org.jboss.webbeans.bean.NewSimpleBean;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bean.RIBean;
+import org.jboss.webbeans.introspector.AnnotatedField;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
import org.jboss.webbeans.metadata.MetaDataCache;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.ListComparator;
@@ -112,6 +114,21 @@
}
}
}
+ if (MetaDataCache.instance().getScopeModel(bean.getScopeType()).isPassivating())
+ {
+ if (resolvedBean instanceof AbstractProducerBean)
+ {
+ AbstractProducerBean producerBean = (AbstractProducerBean) resolvedBean;
+ if ((injectionPoint instanceof AnnotatedField) && ((AnnotatedField<?>) injectionPoint).isTransient())
+ {
+ injectionPoint.getBean();
+ }
+ else if (producerBean.getScopeType().equals(Dependent.class) && !Reflections.isSerializable(producerBean.getType()))
+ {
+ throw new IllegalProductException("Cannot inject @Depedent non-serializable type into " + injectionPoint);
+ }
+ }
+ }
}
else
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-02-06 00:16:52 UTC (rev 1425)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-02-06 13:21:59 UTC (rev 1426)
@@ -37,12 +37,15 @@
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
+import org.jboss.webbeans.introspector.AnnotatedField;
import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.introspector.AnnotatedParameter;
import org.jboss.webbeans.introspector.AnnotationStore.AnnotationMap;
import org.jboss.webbeans.literal.CurrentLiteral;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.metadata.MergedStereotypes;
+import org.jboss.webbeans.metadata.MetaDataCache;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.Reflections;
@@ -119,7 +122,7 @@
{
super(manager);
this.manager = manager;
- injectionPoints = new HashSet<AnnotatedInjectionPoint<?,?>>();
+ injectionPoints = new HashSet<AnnotatedInjectionPoint<?, ?>>();
}
/**
@@ -167,7 +170,7 @@
this.bindings = new HashSet<Annotation>();
this.bindings.addAll(getAnnotatedItem().getMetaAnnotations(BindingType.class));
}
-
+
protected void initDefaultBindings()
{
if (bindings.size() == 0)
@@ -228,7 +231,7 @@
return;
}
}
-
+
if (beanNameDefaulted || getMergedStereotypes().isBeanNameDefaulted())
{
this.name = getDefaultName();
@@ -258,9 +261,12 @@
{
Annotation[] bindings = injectionPoint.getMetaAnnotationsAsArray(BindingType.class);
Bean<?> resolvedBean = manager.resolveByType(injectionPoint.getType(), bindings).iterator().next();
- if (Dependent.class.equals(resolvedBean.getScopeType()) && !resolvedBean.isSerializable())
+ if (MetaDataCache.instance().getScopeModel(this.getScopeType()).isPassivating())
{
- return false;
+ if (Dependent.class.equals(resolvedBean.getScopeType()) && !resolvedBean.isSerializable() && (((injectionPoint instanceof AnnotatedField) && !((AnnotatedField<?>) injectionPoint).isTransient()) || (injectionPoint instanceof AnnotatedParameter)) )
+ {
+ return false;
+ }
}
}
return true;
@@ -326,7 +332,7 @@
}
}
}
-
+
protected void postSpecialize()
{
if (getAnnotatedItem().isAnnotationPresent(Named.class) && getSpecializedBean().getAnnotatedItem().isAnnotationPresent(Named.class))
@@ -341,15 +347,15 @@
}
manager.getSpecializedBeans().put(getSpecializedBean(), this);
}
-
+
protected void preSpecialize()
{
-
+
}
-
+
protected void specialize()
{
-
+
}
/**
@@ -377,7 +383,7 @@
* @return The default name
*/
protected abstract String getDefaultName();
-
+
public abstract AbstractBean<?, ?> getSpecializedBean();
/**
@@ -494,7 +500,7 @@
{
return _serializable;
}
-
+
protected void initSerializable()
{
_serializable = isPrimitive() || getTypes().contains(Serializable.class);
@@ -525,7 +531,7 @@
{
return getAnnotatedItem().isAnnotationPresent(Specializes.class);
}
-
+
@Override
// TODO Fix this!!!
public boolean equals(Object other)
@@ -541,7 +547,7 @@
return false;
}
}
-
+
@Override
public int hashCode()
{
@@ -550,5 +556,5 @@
result = 31 * result + getBindings().hashCode();
return result;
}
-
+
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/context/passivating/PassivatingContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/context/passivating/PassivatingContextTest.java 2009-02-06 00:16:52 UTC (rev 1425)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/context/passivating/PassivatingContextTest.java 2009-02-06 13:21:59 UTC (rev 1426)
@@ -1,5 +1,7 @@
package org.jboss.webbeans.tck.integration.context.passivating;
+import java.io.IOException;
+
import javax.inject.IllegalProductException;
import org.jboss.webbeans.tck.AbstractTest;
@@ -56,4 +58,32 @@
manager.getInstanceByType(Maarianhamina_Broken.class);
}
+ /**
+ * the Web Bean is an EJB stateful session bean, and it is passivated by the
+ * EJB container.
+ */
+ // TODO requires an EJB instance
+ @Test(groups = { "contexts", "passivation", "stub", "integration" })
+ @SpecAssertion(section = "8.4", id = "unknown")
+ public void testStatefulEJBIsSerializedWhenPassivatedByEJBContainer() throws IOException, ClassNotFoundException
+ {
+ assert false;
+ }
+
+ /**
+ * If a producer method or field of scope @Dependent returns a
+ * non-serializable object for injection into a stateful session bean, into a
+ * non-transient field, Web Bean constructor parameter or initializer method
+ * parameter of a Web Bean which declares a passivating scope type, or into a
+ * parameter of a producer method which declares a passivating scope type, an
+ * IllegalProductException is thrown by the Web Bean manager.
+ *
+ */
+ @Test(groups = { "contexts", "passivation", "stub", "integration" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = "8.4", id = "unknown")
+ public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBeanFails() throws Exception
+ {
+ assert false;
+ }
+
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kajaani.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kajaani.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kajaani.java 2009-02-06 13:21:59 UTC (rev 1426)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.context.passivating;
+
+import java.io.Serializable;
+
+import javax.context.SessionScoped;
+
+@SessionScoped
+public class Kajaani implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+ private Integer theNumber = 0;
+
+ public int getTheNumber()
+ {
+ return theNumber;
+ }
+
+ public void setTheNumber(int theNumber)
+ {
+ this.theNumber = theNumber;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/Kajaani.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java 2009-02-06 00:16:52 UTC (rev 1425)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/passivating/PassivatingContextTest.java 2009-02-06 13:21:59 UTC (rev 1426)
@@ -3,6 +3,8 @@
import java.io.IOException;
import java.util.Set;
+import javax.context.Context;
+import javax.context.SessionScoped;
import javax.inject.DefinitionException;
import javax.inject.IllegalProductException;
import javax.inject.UnserializableDependencyException;
@@ -67,15 +69,19 @@
/**
* the Web Bean declares a passivating scope type, and context passivation
* occurs, or
- *
- * @throws IOException
- * @throws ClassNotFoundException
*/
- @Test(groups = { "contexts", "passivation", "stub" })
+ @Test(groups = { "contexts", "passivation" })
@SpecAssertion(section = "8.4", id = "unknown")
public void testSimpleWebBeanDeclaringPassivatingScopeIsSerializedWhenContextIsPassivated() throws IOException, ClassNotFoundException
{
- assert false;
+ deployBeans(Kajaani.class);
+ Kajaani instance = manager.getInstanceByType(Kajaani.class);
+ instance.setTheNumber(100);
+ Context sessionContext = manager.getContext(SessionScoped.class);
+ setContextInactive(sessionContext);
+ setContextActive(sessionContext);
+ instance = manager.getInstanceByType(Kajaani.class);
+ assert instance.getTheNumber() == 100;
}
@SuppressWarnings("unchecked")
@@ -89,21 +95,6 @@
}
/**
- * the Web Bean is an EJB stateful session bean, and it is passivated by the
- * EJB container.
- *
- * @throws ClassNotFoundException
- * @throws IOException
- */
- // TODO requires an EJB instance
- @Test(groups = { "contexts", "passivation", "broken", "stub" })
- @SpecAssertion(section = "8.4", id = "unknown")
- public void testStatefulEJBIsSerializedWhenPassivatedByEJBContainer() throws IOException, ClassNotFoundException
- {
- assert false;
- }
-
- /**
* On the other hand, dependent objects (including interceptors and
* decorators with scope @Dependent) of a stateful session bean or of a Web
* Bean with a passivating scope must be serialized and deserialized along
@@ -218,7 +209,7 @@
* UnserializableDependencyException must be thrown by the Web Bean manager
* at initialization time.
*/
- @Test(groups = { "contexts", "passivation", "broken" })
+ @Test(groups = { "contexts", "passivation" })
@SpecAssertion(section = "8.4", id = "unknown")
public void testSimpleDependentWebBeanWithNonSerializableImplementationInjectedIntoTransientFieldOK()
{
@@ -363,26 +354,7 @@
* parameter of a Web Bean which declares a passivating scope type, or into a
* parameter of a producer method which declares a passivating scope type, an
* IllegalProductException is thrown by the Web Bean manager.
- *
*/
- @Test(groups = { "contexts", "passivation", "stub" }, expectedExceptions = IllegalProductException.class)
- @SpecAssertion(section = "8.4", id = "unknown")
- public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBeanFails() throws Exception
- {
- // TODO This doesn't test injction in a SFSB, but into a Enterprise bean
- // deployBeans(CityProducer.class, Pietarsaari_Broken.class);
- // manager.getInstanceByType(Pietarsaari_Broken.class);
- assert false;
- }
-
- /**
- * If a producer method or field of scope @Dependent returns a
- * non-serializable object for injection into a stateful session bean, into a
- * non-transient field, Web Bean constructor parameter or initializer method
- * parameter of a Web Bean which declares a passivating scope type, or into a
- * parameter of a producer method which declares a passivating scope type, an
- * IllegalProductException is thrown by the Web Bean manager.
- */
@Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
@SpecAssertion(section = "8.4", id = "unknown")
public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoNonTransientFieldOfWebBeanWithPassivatingScopeFails()
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1425 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb and 15 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-05 19:16:52 -0500 (Thu, 05 Feb 2009)
New Revision: 1425
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/
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/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/servlet/ServletTestRunner.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tame.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJBApiAbstraction.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/jsf/JSFApiAbstraction.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletApiAbstraction.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java
tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TCKConfiguration.java
tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java
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/DeclarativeArtifactProcessor.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/util/Reflections.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
Log:
Work on runner for in container tests, support for @Artifact for standalone mode
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/BeanDeployer.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -1,7 +1,6 @@
package org.jboss.webbeans.bootstrap;
import java.lang.annotation.Annotation;
-import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Set;
@@ -39,7 +38,6 @@
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.servlet.ServletApiAbstraction;
-import org.jboss.webbeans.util.Reflections;
public class BeanDeployer
{
@@ -65,7 +63,10 @@
public void addClass(Class<?> clazz)
{
- deferredClasses.add(AnnotatedClassImpl.of(clazz));
+ if (!clazz.isAnnotation())
+ {
+ deferredClasses.add(AnnotatedClassImpl.of(clazz));
+ }
}
public void addClasses(Iterable<Class<?>> classes)
@@ -84,7 +85,7 @@
{
createEnterpriseBean(clazz);
}
- else if (isTypeSimpleWebBean(clazz.getType()))
+ else if (isTypeSimpleWebBean(clazz))
{
createSimpleBean(clazz);
}
@@ -245,33 +246,20 @@
* @param type The type to inspect
* @return True if simple Web Bean, false otherwise
*/
- private boolean isTypeSimpleWebBean(Class<?> type)
+ private boolean isTypeSimpleWebBean(AnnotatedClass<?> clazz)
{
EJBApiAbstraction ejbApiAbstraction = new EJBApiAbstraction(manager.getResourceLoader());
JSFApiAbstraction jsfApiAbstraction = new JSFApiAbstraction(manager.getResourceLoader());
ServletApiAbstraction servletApiAbstraction = new ServletApiAbstraction(manager.getResourceLoader());
// TODO: check 3.2.1 for more rules!!!!!!
- return !type.isAnnotation() && !Reflections.isAbstract(type) && !servletApiAbstraction.SERVLET_CLASS.isAssignableFrom(type) && !servletApiAbstraction.FILTER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.SERVLET_CONTEXT_LISTENER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.HTTP_SESSION_LISTENER_CLASS.isAssignableFrom(type) && !servletApiAbstraction.SERVLET_REQUEST_LISTENER_CLASS.isAssignableFrom(type) && !ejbApiAbstraction.ENTERPRISE_BEAN_CLASS.isAssignableFrom(type) && !jsfApiAbstraction.UICOMPONENT_CLASS.isAssignableFrom(type) && hasSimpleWebBeanConstructor(type);
+ return !clazz.isAbstract() && !clazz.isParameterizedType() && !servletApiAbstraction.SERVLET_CLASS.isAssignableFrom(clazz) && !servletApiAbstraction.FILTER_CLASS.isAssignableFrom(clazz) && !servletApiAbstraction.SERVLET_CONTEXT_LISTENER_CLASS.isAssignableFrom(clazz) && !servletApiAbstraction.HTTP_SESSION_LISTENER_CLASS.isAssignableFrom(clazz) && !servletApiAbstraction.SERVLET_REQUEST_LISTENER_CLASS.isAssignableFrom(clazz) && !ejbApiAbstraction.ENTERPRISE_BEAN_CLASS.isAssignableFrom(clazz) && !jsfApiAbstraction.UICOMPONENT_CLASS.isAssignableFrom(clazz) && hasSimpleWebBeanConstructor(clazz);
}
- private static boolean hasSimpleWebBeanConstructor(Class<?> type)
+ private static boolean hasSimpleWebBeanConstructor(AnnotatedClass<?> type)
{
- try
- {
- type.getDeclaredConstructor();
- return true;
- }
- catch (NoSuchMethodException nsme)
- {
- for (Constructor<?> c : type.getDeclaredConstructors())
- {
- if (c.isAnnotationPresent(Initializer.class))
- return true;
- }
- return false;
- }
+ return type.getConstructor() != null || type.getAnnotatedConstructors(Initializer.class).size() > 0;
}
private static <T> AnnotatedMethod<T> realizeProducerMethod(final AnnotatedMethod<T> method, final AnnotatedClass<?> realizingClass)
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJBApiAbstraction.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJBApiAbstraction.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/EJBApiAbstraction.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -17,6 +17,7 @@
package org.jboss.webbeans.ejb;
+import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.resources.spi.ResourceLoader;
import org.jboss.webbeans.util.ApiAbstraction;
@@ -34,6 +35,6 @@
ENTERPRISE_BEAN_CLASS = classForName("javax.ejb.EnterpriseBean");
}
- public final Class<?> ENTERPRISE_BEAN_CLASS;
+ public final AnnotatedClass<?> ENTERPRISE_BEAN_CLASS;
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -91,6 +91,8 @@
* an empty set if there are no matches
*/
public AnnotatedConstructor<T> getConstructor(List<Class<?>> arguments);
+
+ public AnnotatedConstructor<T> getConstructor(Class<?>... arguments);
/**
* Gets all methods annotated with annotationType
@@ -153,5 +155,7 @@
public boolean isNonStaticMemberClass();
public boolean isParameterizedType();
+
+ public boolean isAbstract();
}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -45,6 +45,11 @@
{
return delegate().getConstructor(arguments);
}
+
+ public AnnotatedConstructor<T> getConstructor(Class<?>... arguments)
+ {
+ return delegate().getConstructor(arguments);
+ }
public Set<AnnotatedConstructor<T>> getConstructors()
{
@@ -101,6 +106,11 @@
return delegate().isParameterizedType();
}
+ public boolean isAbstract()
+ {
+ return delegate().isAbstract();
+ }
+
public AnnotatedMethod<?> getDeclaredMethod(Method method)
{
return delegate().getDeclaredMethod(method);
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedAnnotationImpl.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -97,6 +97,11 @@
// Cached string representation
private String toString;
+
+ public static <A extends Annotation> AnnotatedAnnotation<A> of(Class<A> annotationType)
+ {
+ return new AnnotatedAnnotationImpl<A>(annotationType);
+ }
/**
* Constructor
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -259,6 +259,7 @@
private final boolean _nonStaticMemberClass;
private final boolean _parameterizedType;
+ private final boolean _abstract;
public static <T> AnnotatedClass<T> of(Class<T> clazz)
{
@@ -300,6 +301,7 @@
this.declaredMetaAnnotatedFields = new AnnotatedFieldMap();
this._nonStaticMemberClass = Reflections.isNonMemberInnerClass(rawType);
this._parameterizedType = Reflections.isParameterizedType(rawType);
+ this._abstract = Reflections.isAbstract(rawType);
for (Class<?> c = clazz; c != Object.class && c != null; c = c.getSuperclass())
{
for (Field field : c.getDeclaredFields())
@@ -510,6 +512,11 @@
return _parameterizedType;
}
+ public boolean isAbstract()
+ {
+ return _abstract;
+ }
+
/**
* Gets the actual type arguments
*
@@ -575,6 +582,11 @@
return constructorsByArgumentMap.get(arguments);
}
+ public AnnotatedConstructor<T> getConstructor(Class<?>... arguments)
+ {
+ return getConstructor(Arrays.asList(arguments));
+ }
+
public Set<AnnotatedMethod<?>> getMethodsWithAnnotatedParameters(Class<? extends Annotation> annotationType)
{
return Collections.unmodifiableSet(methodsByAnnotatedParameters.get(annotationType));
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/jsf/JSFApiAbstraction.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/jsf/JSFApiAbstraction.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/jsf/JSFApiAbstraction.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -17,6 +17,7 @@
package org.jboss.webbeans.jsf;
+import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.resources.spi.ResourceLoader;
import org.jboss.webbeans.util.ApiAbstraction;
@@ -30,7 +31,7 @@
{
// An UI component
- public final Class<?> UICOMPONENT_CLASS;
+ public final AnnotatedClass<?> UICOMPONENT_CLASS;
public JSFApiAbstraction(ResourceLoader resourceLoader)
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletApiAbstraction.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletApiAbstraction.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/servlet/ServletApiAbstraction.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -17,6 +17,7 @@
package org.jboss.webbeans.servlet;
+import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.resources.spi.ResourceLoader;
import org.jboss.webbeans.util.ApiAbstraction;
@@ -28,11 +29,11 @@
public class ServletApiAbstraction extends ApiAbstraction
{
- public final Class<?> SERVLET_CLASS;
- public final Class<?> FILTER_CLASS;
- public final Class<?> SERVLET_CONTEXT_LISTENER_CLASS;
- public final Class<?> HTTP_SESSION_LISTENER_CLASS;
- public final Class<?> SERVLET_REQUEST_LISTENER_CLASS;
+ public final AnnotatedClass<?> SERVLET_CLASS;
+ public final AnnotatedClass<?> FILTER_CLASS;
+ public final AnnotatedClass<?> SERVLET_CONTEXT_LISTENER_CLASS;
+ public final AnnotatedClass<?> HTTP_SESSION_LISTENER_CLASS;
+ public final AnnotatedClass<?> SERVLET_REQUEST_LISTENER_CLASS;
/**
* Constructor
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -19,6 +19,10 @@
import java.lang.annotation.Annotation;
+import org.jboss.webbeans.introspector.AnnotatedAnnotation;
+import org.jboss.webbeans.introspector.AnnotatedClass;
+import org.jboss.webbeans.introspector.jlr.AnnotatedAnnotationImpl;
+import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
import org.jboss.webbeans.resources.spi.ResourceLoader;
import org.jboss.webbeans.resources.spi.ResourceLoadingException;
@@ -30,6 +34,10 @@
public class ApiAbstraction
{
+ private static final AnnotatedAnnotation<DummyAnnotation> DUMMY_ANNOTATION = AnnotatedAnnotationImpl.of(DummyAnnotation.class);
+
+ private static final AnnotatedClass<Dummy> DUMMY_CLASS = AnnotatedClassImpl.of(Dummy.class);
+
private ResourceLoader resourceLoader;
/**
@@ -65,15 +73,15 @@
* not found
*/
@SuppressWarnings("unchecked")
- protected Class<? extends Annotation> annotationTypeForName(String name)
+ protected AnnotatedAnnotation<?> annotationTypeForName(String name)
{
try
{
- return (Class<? extends Annotation>) resourceLoader.classForName(name);
+ return AnnotatedAnnotationImpl.of((Class<? extends Annotation>) resourceLoader.classForName(name));
}
catch (ResourceLoadingException cnfe)
{
- return DummyAnnotation.class;
+ return DUMMY_ANNOTATION;
}
}
@@ -85,15 +93,15 @@
* found.
*/
@SuppressWarnings("unchecked")
- protected Class<?> classForName(String name)
+ protected AnnotatedClass<?> classForName(String name)
{
try
{
- return (Class<? extends Annotation>) resourceLoader.classForName(name);
+ return AnnotatedClassImpl.of(resourceLoader.classForName(name));
}
catch (ResourceLoadingException cnfe)
{
- return Dummy.class;
+ return DUMMY_CLASS;
}
}
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TCKConfiguration.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TCKConfiguration.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TCKConfiguration.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -33,7 +33,7 @@
this.contexts = contexts;
this.managers = managers;
this.containers = containers;
- if (testSuite == null)
+ if (testSuite != null)
{
this.testSuite = testSuite;
}
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/TestSuite.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -6,7 +6,7 @@
public static final String PROPERTY_NAME = TestSuite.class.getName();
private String outputDirectory;
- private boolean standalone;
+ private boolean standalone = true;
private int deploymentDelay = 5000;
private boolean writeDeployedArchivesToDisk;
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/AbstractTest.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -14,6 +14,7 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
import javax.context.Context;
import javax.context.CreationalContext;
@@ -22,6 +23,10 @@
import javax.inject.manager.Bean;
import javax.inject.manager.Manager;
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.packaging.DeclarativeArtifactProcessor;
+import org.jboss.webbeans.tck.impl.packaging.EjbArtifact;
import org.jboss.webbeans.tck.impl.util.MockCreationalContext;
import org.jboss.webbeans.tck.spi.StandaloneContainers;
import org.testng.annotations.AfterMethod;
@@ -36,12 +41,12 @@
protected void setup()
{
- AbstractTest.activateDependentContext();
+ configuration().getContexts().setActive(configuration().getContexts().getDependentContext());
}
protected void cleanup()
{
- AbstractTest.deactivateDependentContext();
+ configuration().getContexts().setInactive(configuration().getContexts().getDependentContext());
}
public final void run() throws Exception
@@ -62,16 +67,15 @@
}
private static final List<Class<? extends Annotation>> STANDARD_DEPLOYMENT_TYPES = Collections.unmodifiableList(Arrays.asList(Standard.class, Production.class));
+ private static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];
- protected static final int BUILT_IN_BEANS = 3;
-
protected Manager manager;
private StandaloneContainers containers;
public static boolean visited = false;
@BeforeMethod
- public final void before()
+ public final void before(Method testMethod)
{
if (getEnabledDeploymentTypes().size() > 0)
{
@@ -82,6 +86,24 @@
manager = configuration().getManagers().createManager();
}
containers = (StandaloneContainers) configuration().getContainers();
+ if (configuration().getTestSuite().isStandalone())
+ {
+ Class<?> declaringClass = testMethod.getDeclaringClass();
+ if (declaringClass.isAnnotationPresent(Artifact.class) || declaringClass.isAnnotationPresent(EjbArtifact.class))
+ {
+ DeclarativeArtifactProcessor processor = new DeclarativeArtifactProcessor(declaringClass);
+ ArtifactDescriptor artifact = processor.getArtifact(true);
+ Set<Class<?>> classes = artifact.getClasses();
+ if (getEnabledDeploymentTypes().size() > 0)
+ {
+ manager = containers.deploy(getEnabledDeploymentTypes(), classes.toArray(EMPTY_CLASS_ARRAY));
+ }
+ else
+ {
+ manager = containers.deploy(classes.toArray(EMPTY_CLASS_ARRAY));
+ }
+ }
+ }
}
@AfterMethod
@@ -119,6 +141,7 @@
*
* @param classes A list of classes representing the beans to deploy
*/
+ @Deprecated
protected void deployBeans(Class<?>... classes)
{
if (getEnabledDeploymentTypes().size() > 0)
@@ -131,17 +154,6 @@
}
}
- /**
- * Used to deploy any EJB 3.1 beans to the appropriate container. TODO This
- * needs to use a different container in EE 5 for deployment.
- *
- * @param classes A list of classes representing the beans to deploy
- */
- protected void deployEjbBeans(Class<?>... classes)
- {
- deployBeans(classes);
- }
-
protected final List<Class<? extends Annotation>> getStandardDeploymentTypes()
{
return new ArrayList<Class<? extends Annotation>>(STANDARD_DEPLOYMENT_TYPES);
@@ -172,11 +184,19 @@
return in.readObject();
}
+ /**
+ * @see RunInDependentContext
+ */
+ @Deprecated
protected static void activateDependentContext()
{
configuration().getContexts().setActive(configuration().getContexts().getDependentContext());
}
+ /**
+ * @see RunInDependentContext
+ */
+ @Deprecated
protected static void deactivateDependentContext()
{
configuration().getContexts().setInactive(configuration().getContexts().getDependentContext());
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 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -1,5 +1,6 @@
package org.jboss.webbeans.tck.impl.packaging;
+import static org.jboss.webbeans.tck.impl.util.Reflections.loadClass;
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResources;
@@ -14,10 +15,13 @@
import java.net.URL;
import java.net.URLClassLoader;
import java.net.URLDecoder;
+import java.util.Enumeration;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;
import org.apache.log4j.Logger;
@@ -41,11 +45,14 @@
private final Package pkg;
+ private final String packageNamePath;
+
private final Set<String> classes = new HashSet<String>();
public URLPackageScanner(Package pkg)
{
this.pkg = pkg;
+ this.packageNamePath = pkg.getName().replace(".", "/");
}
private void scanPackage()
@@ -53,8 +60,8 @@
try
{
Set<String> paths = new HashSet<String>();
- String packageName = pkg.getName().replace(".", "/");
- for (URL url : loadResources(packageName))
+
+ for (URL url : loadResources(packageNamePath))
{
String urlPath = url.getFile();
urlPath = URLDecoder.decode(urlPath, "UTF-8");
@@ -76,8 +83,32 @@
}
}
- private void handle(Set<String> paths)
+ private void handleArchiveByFile(File file) throws IOException
{
+ try
+ {
+ log.trace("archive: " + file);
+ ZipFile zip = new ZipFile(file);
+ Enumeration<? extends ZipEntry> entries = zip.entries();
+ while ( entries.hasMoreElements() )
+ {
+ ZipEntry entry = entries.nextElement();
+ String name = entry.getName();
+ if (name.startsWith(packageNamePath) && !name.substring(packageNamePath.length() + 1).contains("/") && name.endsWith(".class"))
+ {
+ String className = name.replace("/", ".").replace(".class", "");
+ classes.add(className);
+ }
+ }
+ }
+ catch (ZipException e)
+ {
+ throw new RuntimeException("Error handling file " + file, e);
+ }
+ }
+
+ private void handle(Set<String> paths) throws IOException
+ {
for ( String urlPath: paths )
{
log.trace("scanning: " + urlPath);
@@ -92,6 +123,10 @@
}
}
}
+ else
+ {
+ handleArchiveByFile(file);
+ }
}
}
@@ -149,7 +184,6 @@
public static final Random random = new Random(System.currentTimeMillis());
private final Set<Class<?>> classes;
- private final Set<Package> packages;
private final Set<ResourceDescriptor> resources;
private final Class<?> declaringClass;
@@ -157,7 +191,6 @@
{
classes = new HashSet<Class<?>>();
resources = new HashSet<ResourceDescriptor>();
- packages = new HashSet<Package>();
this.declaringClass = declaringClass;
}
@@ -175,14 +208,6 @@
{
copyClass(clazz, getClassesRoot(root));
}
- for (Package pkg : getPackages())
- {
- URLPackageScanner packageScanner = new URLPackageScanner(pkg);
- for (String className : packageScanner.getClassNames())
- {
- copyClass(className, getClassesRoot(root));
- }
- }
for (ResourceDescriptor resourceDescriptor : getResources())
{
String directoryName = resourceDescriptor.getName().substring(0, resourceDescriptor.getName().lastIndexOf("/"));
@@ -258,9 +283,13 @@
return resources;
}
- public Set<Package> getPackages()
+ public void addPackage(Package pkg)
{
- return packages;
+ URLPackageScanner packageScanner = new URLPackageScanner(pkg);
+ for (String className : packageScanner.getClassNames())
+ {
+ getClasses().add(loadClass(className));
+ }
}
public File getClassesRoot(File archiveRoot)
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -145,7 +145,7 @@
}
if (addDeclaringPackage)
{
- artifact.getPackages().add(declaringClass.getPackage());
+ artifact.addPackage(declaringClass.getPackage());
}
artifact.setEjbs(ejbs);
artifact.setUnit(unit);
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 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -3,6 +3,7 @@
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.util.Reflections;
import org.jboss.webbeans.tck.literals.NewLiteral;
+import org.jboss.webbeans.tck.runner.TestRunner;
public class TCKArtifactDescriptor extends JSR299ArtifactDescriptor
{
@@ -13,9 +14,10 @@
public TCKArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName)
{
super(declaringClass, beansXmlSourceFileName);
- getPackages().add(AbstractTest.class.getPackage());
- getPackages().add(NewLiteral.class.getPackage());
- getPackages().add(Reflections.class.getPackage());
+ addPackage(AbstractTest.class.getPackage());
+ addPackage(NewLiteral.class.getPackage());
+ addPackage(Reflections.class.getPackage());
+ addPackage(TestRunner.class.getPackage());
}
public boolean isEjbs()
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -73,6 +73,34 @@
return url;
}
+ public static Class<?> loadClass(String name)
+ {
+ Class<?> clazz = null;
+ if (Thread.currentThread().getContextClassLoader() != null)
+ {
+ try
+ {
+ clazz = Thread.currentThread().getContextClassLoader().loadClass(name);
+ }
+ catch (ClassNotFoundException e)
+ {
+ // no-op
+ }
+ }
+ if (clazz == null)
+ {
+ try
+ {
+ clazz = Class.forName(name);
+ }
+ catch (ClassNotFoundException e)
+ {
+ // No-op
+ }
+ }
+ return clazz;
+ }
+
public static Iterable<URL> loadResources(String name) throws IOException
{
Enumeration<URL> urls = null;
Added: 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 (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/BufferedListener.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -0,0 +1,60 @@
+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;
+
+public class BufferedListener implements ITestListener
+{
+
+ private final List<ITestResult> results;
+
+ public BufferedListener()
+ {
+ results = new ArrayList<ITestResult>();
+ }
+
+ public void onFinish(ITestContext context)
+ {
+ // No-op
+ }
+
+ public void onStart(ITestContext context)
+ {
+ // No-op
+ }
+
+ public void onTestFailedButWithinSuccessPercentage(ITestResult result)
+ {
+ // No-op
+ }
+
+ public void onTestFailure(ITestResult result)
+ {
+ results.add(result);
+ }
+
+ public void onTestSkipped(ITestResult result)
+ {
+ results.add(result);
+
+ }
+
+ public void onTestStart(ITestResult result)
+ {
+ // No-op
+ }
+
+ public void onTestSuccess(ITestResult result)
+ {
+ results.add(result);
+ }
+
+ public List<ITestResult> getResults()
+ {
+ return results;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/BufferedListener.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: 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 (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/TestRunner.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -0,0 +1,46 @@
+package org.jboss.webbeans.tck.runner;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.testng.ITestResult;
+import org.testng.TestNG;
+import org.testng.xml.XmlClass;
+import org.testng.xml.XmlSuite;
+import org.testng.xml.XmlTest;
+
+public class TestRunner
+{
+
+ private String className;
+
+ public TestRunner(String className)
+ {
+ this.className = className;
+ }
+
+ public List<ITestResult> run()
+ {
+ TestNG testNG = new TestNG(false);
+ BufferedListener listener = new BufferedListener();
+ testNG.addListener(listener);
+ List<XmlSuite> suites = new ArrayList<XmlSuite>();
+ testNG.setXmlSuites(suites);
+ suites.add(createSuite());
+ testNG.run();
+ return listener.getResults();
+ }
+
+ private XmlSuite createSuite()
+ {
+ XmlSuite suite = new XmlSuite();
+ 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);
+ return suite;
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/TestRunner.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: 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 (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/servlet/ServletTestRunner.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -0,0 +1,44 @@
+package org.jboss.webbeans.tck.runner.servlet;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+
+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;
+
+public class ServletTestRunner extends HttpServlet
+{
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
+ {
+ super.doGet(req, resp);
+ String className = req.getParameter("className");
+ if (Strings.isEmpty(className))
+ {
+ System.err.println("Class name cannot be null");
+ resp.sendError(500);
+ }
+ 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);
+ }
+
+ protected byte[] serialize(Object instance) throws IOException
+ {
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(bytes);
+ out.writeObject(instance);
+ return bytes.toByteArray();
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/runner/servlet/ServletTestRunner.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/BeanDefinitionTest.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -1,8 +1,11 @@
package org.jboss.webbeans.tck.unit.definition.bean;
-import java.lang.reflect.Method;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.List;
import javax.context.RequestScoped;
+import javax.inject.AnnotationLiteral;
import javax.inject.Production;
import javax.inject.manager.Bean;
@@ -23,39 +26,50 @@
public class BeanDefinitionTest extends AbstractTest
{
- // TODO This should actually somehow test the reverse - that the container
+ private static Annotation TAME_LITERAL = new AnnotationLiteral<Tame>() {};
+
+ @Override
+ protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
+ {
+ List<Class<? extends Annotation>> deploymentTypes = new ArrayList<Class<? extends Annotation>>();
+ deploymentTypes.addAll(super.getStandardDeploymentTypes());
+ deploymentTypes.add(AnotherDeploymentType.class);
+ return deploymentTypes;
+ }
+
+ // TODO This should actually somehow test the reverse as well - that the container
// throws a definition exception if any of these occur
@Test
@SpecAssertion(section = "2", id = "unknown")
public void testApiTypesNonEmpty()
{
- Bean<?> model = createSimpleBean(RedSnapper.class);
- assert model.getTypes().size() > 0;
+ assert manager.resolveByType(RedSnapper.class).size() == 1;
+ assert manager.resolveByType(RedSnapper.class).iterator().next().getTypes().size() > 0;
}
@Test
@SpecAssertion(section = "2", id = "unknown")
public void testBindingTypesNonEmpty()
{
- Bean<?> model = createSimpleBean(RedSnapper.class);
- assert model.getBindings().size() > 0;
+ assert manager.resolveByType(RedSnapper.class).size() == 1;
+ assert manager.resolveByType(RedSnapper.class).iterator().next().getBindings().size() > 0;
}
@Test
@SpecAssertion(section = "2", id = "unknown")
public void testHasScopeType()
{
- Bean<?> model = createSimpleBean(RedSnapper.class);
- assert model.getScopeType().equals(RequestScoped.class);
+ assert manager.resolveByType(RedSnapper.class).size() == 1;
+ assert manager.resolveByType(RedSnapper.class).iterator().next().getScopeType().equals(RequestScoped.class);
}
@Test
@SpecAssertion(section = "2", id = "unknown")
public void testHasDeploymentType()
{
- Bean<?> model = createSimpleBean(RedSnapper.class);
- assert model.getDeploymentType().equals(Production.class);
+ assert manager.resolveByType(RedSnapper.class).size() == 1;
+ assert manager.resolveByType(RedSnapper.class).iterator().next().getDeploymentType().equals(Production.class);
}
@SuppressWarnings("unchecked")
@@ -63,14 +77,12 @@
@SpecAssertion(section = "5.2", id = "unknown")
public void testIsNullable() throws Exception
{
- Bean<SpiderProducer> spiderProducerBean = createSimpleBean(SpiderProducer.class);
- manager.addBean(spiderProducerBean);
- Method method = SpiderProducer.class.getMethod("getWolfSpiderSize");
- Bean<Integer> bean = createProducerMethodBean(method, spiderProducerBean);
+ assert manager.resolveByType(Integer.class).size() == 1;
+ Bean<Integer> bean = manager.resolveByType(Integer.class).iterator().next();
assert !bean.isNullable();
- method = SpiderProducer.class.getMethod("makeASpider");
- Bean<Spider> spiderBean = createProducerMethodBean(method, spiderProducerBean);
- assert spiderBean.isNullable();
+ assert manager.resolveByType(Animal.class, TAME_LITERAL).size() == 1;
+ Bean<Animal> animalBean = manager.resolveByType(Animal.class, TAME_LITERAL).iterator().next();
+ assert animalBean.isNullable();
}
@Test
@@ -80,7 +92,8 @@
})
public void testBeanTypes()
{
- Bean<Tarantula> bean = createSimpleBean(Tarantula.class);
+ assert manager.resolveByType(Tarantula.class).size() == 1;
+ Bean<Tarantula> bean = manager.resolveByType(Tarantula.class).iterator().next();
assert bean.getTypes().size() == 6;
assert bean.getTypes().contains(Tarantula.class);
assert bean.getTypes().contains(Spider.class);
@@ -94,7 +107,7 @@
@SpecAssertion(section = "2.2", id = "unknown")
public void testFinalApiType()
{
- createSimpleBean(DependentFinalTuna.class);
+ manager.resolveByType(DependentFinalTuna.class);
}
}
\ No newline at end of file
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/SpiderProducer.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -11,7 +11,7 @@
return new WolfSpider();
}
- @Produces public Animal makeASpider()
+ @Produces @Tame public Animal makeASpider()
{
return new WolfSpider();
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tame.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.definition.bean;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/bean/Tame.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -14,7 +14,7 @@
public void testAllClassesInPackage() throws Exception
{
ArtifactDescriptor artifactDescriptor = new ArtifactDescriptor(null);
- artifactDescriptor.getPackages().add(ArtifactTest.class.getPackage());
+ artifactDescriptor.addPackage(ArtifactTest.class.getPackage());
File root = artifactDescriptor.create();
File currentPackage = getCurrentPackageAsFile(root);
assert currentPackage.listFiles().length == 6;
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java 2009-02-06 00:01:26 UTC (rev 1424)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java 2009-02-06 00:16:52 UTC (rev 1425)
@@ -14,7 +14,7 @@
public void testAllClassesInPackageAndNotSubPackages() throws Exception
{
ArtifactDescriptor artifactDescriptor = new ArtifactDescriptor(null);
- artifactDescriptor.getPackages().add(ArtifactTest.class.getPackage());
+ artifactDescriptor.addPackage(ArtifactTest.class.getPackage());
File root = artifactDescriptor.create();
File currentPackage = getCurrentPackageAsFile(root);
assert currentPackage.listFiles().length == 4;
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1423 - tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-02-05 13:33:40 -0500 (Thu, 05 Feb 2009)
New Revision: 1423
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SensitiveFox.java
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java
Log:
Implemented more of the dependent context tests.
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-02-05 13:45:36 UTC (rev 1422)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/DependentContextTest.java 2009-02-05 18:33:40 UTC (rev 1423)
@@ -29,11 +29,9 @@
deployBeans(Fox.class, FoxRun.class);
Set<Bean<Fox>> foxBeans = manager.resolveByType(Fox.class);
assert foxBeans.size() == 1;
- Bean<Fox> foxBean = foxBeans.iterator().next();
Set<Bean<FoxRun>> foxRunBeans = manager.resolveByType(FoxRun.class);
assert foxRunBeans.size() == 1;
Bean<FoxRun> foxRunBean = foxRunBeans.iterator().next();
- manager.addBean(foxBean);
FoxRun foxRun = foxRunBean.create(new MyCreationalContext<FoxRun>());
assert !foxRun.fox.equals(foxRun.anotherFox);
}
@@ -41,12 +39,17 @@
/**
* Any injected instance of the (@Dependent scoped) bean is bound to the
* lifecycle of the bean, servlet or EJB into which it is injected.
+ *
+ * @throws Exception
*/
- @Test(groups = { "contexts", "stub" })
+ @Test(groups = { "contexts" })
@SpecAssertion(section = "8.3", id = "unknown")
- public void testDependentBeansBoundToLifecycleOfContainingBean()
+ public void testDependentBeansBoundToLifecycleOfContainingBean() throws Exception
{
- assert false;
+ // Once injected, dependent beans will be destroyed when the
+ // containing bean is destroyed. This other test should
+ // satisfy this assertion.
+ testDestroyingParentDestroysDependents();
}
/**
@@ -65,8 +68,6 @@
{
Set<Bean<Fox>> foxBeans = manager.resolveByType(Fox.class);
assert foxBeans.size() == 1;
- 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);
@@ -250,10 +251,12 @@
* container to receive a producer method, producer field, disposal method or
* observer method invocation, or
*/
- @Test(groups = { "stub", "contexts", "producerField" })
+ @Test(groups = { "stub", "contexts", "producerField", "underInvestigation" })
@SpecAssertion(section = "8.3", id = "unknown")
public void testContextIsActiveWhenInvokingProducerField()
{
+ // TODO Rather difficult to detect anything when a producer field is
+ // accessed
assert false;
}
@@ -291,12 +294,24 @@
/**
* while a Unified EL expression is evaluated, or
+ * @throws Exception
*/
- @Test(groups = { "stub", "contexts", "el" })
+ @Test(groups = { "contexts", "el" })
@SpecAssertion(section = "8.3", id = "unknown")
- public void testContextIsActiveWhenEvaluatingElExpression()
+ public void testContextIsActiveWhenEvaluatingElExpression() throws Exception
{
- assert false;
+ deployBeans(SensitiveFox.class);
+ SensitiveFox.setManager(manager);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ String foxName = configuration().getContainers().evaluateMethodExpression("#{sensitiveFox.getName}", String.class, new Class[0], new Object[0]);
+ assert foxName != null;
+ assert SensitiveFox.isDependentContextActiveDuringEval();
+ }
+ }.run();
}
/**
@@ -314,24 +329,41 @@
/**
* when the container is creating or destroying a contextual instance of a
* bean or injecting its dependencies, or
+ *
+ * @throws Exception
*/
- @Test(groups = { "stub", "contexts", "beanLifecycle" })
+ @Test(groups = { "contexts", "beanLifecycle" })
@SpecAssertion(section = "8.3", id = "unknown")
- public void testContextIsActiveDuringBeanCreation()
+ public void testContextIsActiveDuringBeanCreation() throws Exception
{
- //TODO Previous test was not testing that context was active precisely
- assert false;
+ deployBeans(SensitiveFox.class);
+ SensitiveFox.setManager(manager);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ SensitiveFox fox1 = manager.getInstanceByType(SensitiveFox.class);
+ assert fox1 != null;
+ assert fox1.isDependentContextActiveDuringCreate();
+ }
+
+ }.run();
}
/**
* when the container is creating or destroying a contextual instance of a
* bean or injecting its dependencies, or
*/
- @Test(groups = { "stub", "contexts", "beanDestruction" })
+ @Test(groups = { "broken", "contexts", "beanDestruction" })
@SpecAssertion(section = "8.3", id = "unknown")
public void testContextIsActiveDuringBeanDestruction()
{
- assert false;
+ // Since the only way to check the context during bean
+ // destruction is to have a disposal method, we'll use
+ // that test to verify this behavior.
+ this.testContextIsActiveWhenInvokingDisposalMethod();
}
/**
@@ -351,79 +383,185 @@
/**
* destroy all dependent objects of a contextual bean instance when the
* instance is destroyed,
+ *
+ * @throws Exception
*/
- @Test(groups = { "broken", "contexts", "beanDestruction" })
+ @Test(groups = { "contexts", "beanDestruction" })
@SpecAssertion(section = "8.3.2", id = "unknown")
- public void testDestroyingParentDestroysDependents()
+ public void testDestroyingParentDestroysDependents() throws Exception
{
deployBeans(Farm.class, Horse.class, Stable.class);
- assert manager.resolveByType(Farm.class).size() == 1;
- Bean<Farm> farmBean = manager.resolveByType(Farm.class).iterator().next();
- Farm farm = manager.getInstanceByType(Farm.class);
- Stable.destroyed = false;
- Horse.destroyed = false;
- farmBean.destroy(farm);
- assert Stable.destroyed;
- assert Horse.destroyed;
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ assert manager.resolveByType(Farm.class).size() == 1;
+ Bean<Farm> farmBean = manager.resolveByType(Farm.class).iterator().next();
+ Farm farm = manager.getInstanceByType(Farm.class);
+ Stable.destroyed = false;
+ Horse.destroyed = false;
+ farmBean.destroy(farm);
+ assert Stable.destroyed;
+ assert Horse.destroyed;
+ }
+
+ }.run();
}
/**
* destroy all @Dependent scoped contextual instances created during an EL
* expression evaluation when the evaluation completes, and
+ *
+ * @throws Exception
*/
- @Test(groups = { "stub", "contexts", "el" })
+ @Test(groups = { "contexts", "el" })
@SpecAssertion(section = "8.3.2", id = "unknown")
- public void testDependentsDestroyedWhenElEvaluationCompletes()
+ public void testDependentsDestroyedWhenElEvaluationCompletes() throws Exception
{
- assert false;
+ deployBeans(Fox.class);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ Set<Bean<Fox>> foxBeans = manager.resolveByType(Fox.class);
+ assert foxBeans.size() == 1;
+ Bean<Fox> foxBean = foxBeans.iterator().next();
+
+ Fox fox1 = configuration().getContainers().evaluateValueExpression("#{fox}", Fox.class);
+ assert fox1 != null;
+ assert manager.getContext(Dependent.class).get(foxBean) == null;
+ }
+ }.run();
}
/**
* destroy any @Dependent scoped contextual instance created to receive a
* producer method, producer field, disposal method or observer method
* invocation when the invocation completes
+ *
+ * @throws Exception
*/
- @Test(groups = { "stub", "contexts", "producerMethod" })
+ @Test(groups = { "contexts", "producerMethod" })
@SpecAssertion(section = "8.3.2", id = "unknown")
- public void testDependentsDestroyedWhenProducerMethodCompletes()
+ public void testDependentsDestroyedWhenProducerMethodCompletes() throws Exception
{
- assert false;
+ deployBeans(SpiderProducer.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducer = manager.resolveByType(SpiderProducer.class).iterator().next();
+ Context dependentContext = manager.getContext(Dependent.class);
+ SpiderProducer currentSpiderProducerInstance = dependentContext.get(spiderProducer);
+ // Should not have any instance of this bean yet
+ assert currentSpiderProducerInstance == null;
+ Tarantula spiderInstance = manager.getInstanceByType(Tarantula.class);
+ assert spiderInstance != null;
+ currentSpiderProducerInstance = dependentContext.get(spiderProducer);
+ // Still should not have any instance of this bean (already
+ // destroyed)
+ assert currentSpiderProducerInstance == null;
+ }
+
+ }.run();
}
/**
* destroy any @Dependent scoped contextual instance created to receive a
* producer method, producer field, disposal method or observer method
* invocation when the invocation completes
+ *
+ * @throws Exception
*/
- @Test(groups = { "stub", "contexts", "producerField" })
+ @Test(groups = { "contexts", "producerField" })
@SpecAssertion(section = "8.3.2", id = "unknown")
- public void testDependentsDestroyedWhenProducerFieldCompletes()
+ public void testDependentsDestroyedWhenProducerFieldCompletes() throws Exception
{
- assert false;
+ deployBeans(OtherSpiderProducer.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<OtherSpiderProducer> spiderProducer = manager.resolveByType(OtherSpiderProducer.class).iterator().next();
+ Context dependentContext = manager.getContext(Dependent.class);
+ OtherSpiderProducer currentSpiderProducerInstance = dependentContext.get(spiderProducer);
+ // Should not have any instance of this bean yet
+ assert currentSpiderProducerInstance == null;
+ Tarantula spiderInstance = manager.getInstanceByType(Tarantula.class);
+ assert spiderInstance != null;
+ currentSpiderProducerInstance = dependentContext.get(spiderProducer);
+ // Still should not have any instance of this bean (already
+ // destroyed)
+ assert currentSpiderProducerInstance == null;
+ }
+
+ }.run();
}
/**
* destroy any @Dependent scoped contextual instance created to receive a
* producer method, producer field, disposal method or observer method
* invocation when the invocation completes
+ *
+ * @throws Exception
*/
- @Test(groups = { "stub", "contexts", "disposalMethod" })
+ @Test(groups = { "contexts", "disposalMethod" })
@SpecAssertion(section = "8.3.2", id = "unknown")
- public void testDependentsDestroyedWhenDisposalMethodCompletes()
+ public void testDependentsDestroyedWhenDisposalMethodCompletes() throws Exception
{
- assert false;
+ deployBeans(SpiderProducer.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<SpiderProducer> spiderProducerBean = manager.resolveByType(SpiderProducer.class).iterator().next();
+ Bean<Tarantula> tarantulaBean = manager.resolveByType(Tarantula.class).iterator().next();
+ Tarantula tarantula = tarantulaBean.create(new MyCreationalContext<Tarantula>());
+ assert tarantula != null;
+ tarantulaBean.destroy(tarantula);
+ // No instance of this bean should exist
+ assert manager.getContext(Dependent.class).get(spiderProducerBean) == null;
+ }
+
+ }.run();
}
/**
* destroy any @Dependent scoped contextual instance created to receive a
* producer method, producer field, disposal method or observer method
* invocation when the invocation completes
+ *
+ * @throws Exception
*/
- @Test(groups = { "stub", "contexts", "observerMethod" })
+ @Test(groups = { "contexts", "observerMethod" })
@SpecAssertion(section = "8.3", id = "unknown")
- public void testDependentsDestroyedWhenObserverMethodEvaluationCompletes()
+ public void testDependentsDestroyedWhenObserverMethodEvaluationCompletes() throws Exception
{
- assert false;
+ deployBeans(HorseStable.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Bean<HorseStable> horseStableBean = manager.resolveByType(HorseStable.class).iterator().next();
+ manager.fireEvent(new HorseInStableEvent());
+ assert HorseStable.getInstanceThatObservedEvent() != null;
+ HorseStable stableInstance = manager.getContext(Dependent.class).get(horseStableBean);
+ // The instance used for the event should be destroyed
+ assert stableInstance == null;
+ }
+
+ }.run();
}
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SensitiveFox.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SensitiveFox.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SensitiveFox.java 2009-02-05 18:33:40 UTC (rev 1423)
@@ -0,0 +1,49 @@
+package org.jboss.webbeans.tck.unit.context.dependent;
+
+import javax.annotation.Named;
+import javax.context.Dependent;
+import javax.inject.manager.Manager;
+
+@Dependent
+@Named
+public class SensitiveFox
+{
+ private static Manager manager;
+
+ private boolean dependentContextActiveDuringCreate = false;
+
+ private static boolean dependentContextActiveDuringEval = false;
+
+ public SensitiveFox()
+ {
+ if (manager.getContext(Dependent.class).isActive())
+ {
+ dependentContextActiveDuringCreate = true;
+ }
+ }
+
+ public String getName()
+ {
+ if (manager.getContext(Dependent.class).isActive())
+ {
+ dependentContextActiveDuringEval = true;
+ }
+ return "gavin";
+ }
+
+ public boolean isDependentContextActiveDuringCreate()
+ {
+ return dependentContextActiveDuringCreate;
+ }
+
+ public static boolean isDependentContextActiveDuringEval()
+ {
+ return dependentContextActiveDuringEval;
+ }
+
+ public static void setManager(Manager manager)
+ {
+ SensitiveFox.manager = manager;
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/context/dependent/SensitiveFox.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
17 years, 2 months
[webbeans-commits] Webbeans SVN: r1422 - tck/trunk/impl.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-02-05 08:45:36 -0500 (Thu, 05 Feb 2009)
New Revision: 1422
Modified:
tck/trunk/impl/pom.xml
Log:
FOrce use of java6
Modified: tck/trunk/impl/pom.xml
===================================================================
--- tck/trunk/impl/pom.xml 2009-02-05 13:37:17 UTC (rev 1421)
+++ tck/trunk/impl/pom.xml 2009-02-05 13:45:36 UTC (rev 1422)
@@ -137,6 +137,25 @@
</compileArguments>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>enforce-versions</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireJavaVersion>
+ <version>1.6</version>
+ </requireJavaVersion>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</profile>
17 years, 2 months