[webbeans-commits] Webbeans SVN: r1504 - ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas and 3 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Fri Feb 13 08:50:46 EST 2009
Author: pete.muir at jboss.org
Date: 2009-02-13 08:50:46 -0500 (Fri, 13 Feb 2009)
New Revision: 1504
Modified:
ri/trunk/jboss-tck-runner/pom.xml
ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/AbstractContainersImpl.java
ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/FileSystemContainersImpl.java
ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/JBossTestServicesContainersImpl.java
ri/trunk/jboss-tck-runner/src/test/resources/log4j.xml
tck/trunk/api/src/main/java/org/jboss/jsr299/tck/spi/Containers.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractTest.java
Log:
Start JBoss AS if it's not running...
Modified: ri/trunk/jboss-tck-runner/pom.xml
===================================================================
--- ri/trunk/jboss-tck-runner/pom.xml 2009-02-13 11:52:35 UTC (rev 1503)
+++ ri/trunk/jboss-tck-runner/pom.xml 2009-02-13 13:50:46 UTC (rev 1504)
@@ -140,8 +140,8 @@
<value>false</value>
</property>
<property>
- <name>jbossHome</name>
- <value>/Applications/jboss-5.0.0.GA</value>
+ <name>jboss-as.dir</name>
+ <value>../jboss-as</value>
</property>
<property>
<name>org.jboss.jsr299.tck.libraryDirectory</name>
Modified: ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/AbstractContainersImpl.java
===================================================================
--- ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/AbstractContainersImpl.java 2009-02-13 11:52:35 UTC (rev 1503)
+++ ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/AbstractContainersImpl.java 2009-02-13 13:50:46 UTC (rev 1504)
@@ -1,7 +1,11 @@
package org.jboss.webbeans.tck.integration.jbossas;
+import java.io.BufferedOutputStream;
+import java.io.DataOutputStream;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
+import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -14,13 +18,28 @@
import org.jboss.jsr299.tck.api.Configuration;
import org.jboss.jsr299.tck.spi.Containers;
+/**
+ *
+ * @author jeffgenender
+ * @author Pete Muir
+ *
+ */
public abstract class AbstractContainersImpl implements Configurable, Containers
{
+ public static String JAVA_OPTS = "\"-Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -ea\"";
+
+ public static final String JBOSS_HOME_PROPERTY_NAME = "jboss.home";
+ public static final String JBOSS_AS_DIR_PROPERTY_NAME = "jboss-as.dir";
+ public static final String JBOSS_BOOT_TIMEOUT_PROPERTY_NAME = "jboss.boot.timeout";
+
private static Logger log = Logger.getLogger(AbstractContainersImpl.class);
private Configuration configuration;
- protected boolean validated;
+ protected final String jbossHome;
+ private String jbossHttpUrl;
+ private boolean jbossWasStarted;
+ private final long bootTimeout;
protected static void copy(InputStream inputStream, File file) throws IOException
{
@@ -40,18 +59,50 @@
}
}
+
+ public AbstractContainersImpl() throws FileNotFoundException, IOException
+ {
+ if (System.getProperty(JBOSS_AS_DIR_PROPERTY_NAME) != null)
+ {
+ File jbossAsDir = new File(System.getProperty(JBOSS_AS_DIR_PROPERTY_NAME));
+ if (jbossAsDir.isDirectory())
+ {
+ File buildProperties = new File(jbossAsDir, "build.properties");
+ if (buildProperties.exists())
+ {
+ System.getProperties().load(new FileReader(buildProperties));
+ }
+ File localBuildProperties = new File(jbossAsDir, "local.build.properties");
+ if (buildProperties.exists())
+ {
+ System.getProperties().load(new FileReader(localBuildProperties));
+ }
+ }
+ }
+ jbossHome = System.getProperty(JBOSS_HOME_PROPERTY_NAME);
+ if (jbossHome == null)
+ {
+ throw new IllegalArgumentException("-D" + JBOSS_HOME_PROPERTY_NAME + " must be set");
+ }
+ else
+ {
+ log.info("JBoss Home set to " + jbossHome);
+ }
+ this.bootTimeout = Long.getLong(JBOSS_BOOT_TIMEOUT_PROPERTY_NAME, 60000);
+ }
+
public void setConfiguration(Configuration configuration)
{
this.configuration = configuration;
+ this.jbossHttpUrl = "http://" + configuration.getHost() + "/";
}
- protected void validate()
+ protected boolean checkJBossUp()
{
// Check that JBoss is up!
- String url = "http://" + configuration.getHost() + "/";
try
{
- URLConnection connection = new URL(url).openConnection();
+ URLConnection connection = new URL(jbossHttpUrl).openConnection();
if (!(connection instanceof HttpURLConnection))
{
throw new IllegalStateException("Not an http connection! " + connection);
@@ -60,20 +111,115 @@
httpConnection.connect();
if (httpConnection.getResponseCode() != HttpURLConnection.HTTP_OK)
{
- throw new IllegalStateException("Error connecting to JBoss AS at " + url);
+ return false;
}
}
catch (Exception e)
{
- throw new IllegalStateException("Cannot connect to JBoss AS", e);
+ return false;
}
- log.info("Successfully connected to JBoss AS at " + url);
-
+ log.info("Successfully connected to JBoss AS at " + jbossHttpUrl);
+ return true;
}
+
+ public void setup() throws IOException
+ {
+ if (!checkJBossUp())
+ {
+ jbossWasStarted = true;
+ launch(jbossHome, "run", "");
+ log.info("Starting JBoss AS");
+ // Wait for JBoss to come up
+ long timeoutTime = System.currentTimeMillis() + bootTimeout;
+ boolean interrupted = false;
+ while (timeoutTime > System.currentTimeMillis())
+ {
+ if (checkJBossUp())
+ {
+ log.info("Started JBoss AS");
+ return;
+ }
+ try
+ {
+ Thread.sleep(1000);
+ }
+ catch (InterruptedException e)
+ {
+ interrupted = true;
+ }
+ }
+ if (interrupted)
+ {
+ Thread.currentThread().interrupt();
+ }
+ }
+ // After trying to start automatically, try the connection again
+ if (!checkJBossUp())
+ {
+ throw new IllegalStateException("Error connecting to JBoss AS at " + jbossHttpUrl);
+ }
+ }
+
+ public void cleanup() throws IOException
+ {
+ if (jbossWasStarted)
+ {
+ launch(jbossHome, "shutdown", "-S");
+ }
+ }
+
+ private static void launch(String jbossHome, String scriptFileName, String params) throws IOException
+ {
+ String osName = System.getProperty("os.name");
+ Runtime runtime = Runtime.getRuntime();
- public AbstractContainersImpl()
+ Process p = null;
+ if (osName.startsWith("Windows"))
+ {
+ String command[] = {
+ "cmd.exe",
+ "/C",
+ "set JAVA_OPTS=" + JAVA_OPTS + " & cd " + jbossHome + "\\bin & " + scriptFileName + ".bat " + params
+ };
+ p = runtime.exec(command);
+ }
+ else
+ {
+ String command[] = {
+ "sh",
+ "-c",
+ "cd " + jbossHome + "/bin; JAVA_OPTS=" + JAVA_OPTS + " ./" + scriptFileName + ".sh " + params
+ };
+ p = runtime.exec(command);
+ }
+ dump(p.getErrorStream());
+ dump(p.getInputStream());
+ }
+
+ protected static void dump(final InputStream is)
{
- super();
+ new Thread(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("/tmp/jboss.log")));
+ int c;
+ while((c = is.read()) != -1)
+ {
+ out.writeByte(c);
+ }
+ is.close();
+ out.close();
+ }
+ catch(IOException e)
+ {
+ System.err.println("Error Writing/Reading Streams.");
+ }
+ }
+ }).start();
}
+
}
\ No newline at end of file
Modified: ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/FileSystemContainersImpl.java
===================================================================
--- ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/FileSystemContainersImpl.java 2009-02-13 11:52:35 UTC (rev 1503)
+++ ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/FileSystemContainersImpl.java 2009-02-13 13:50:46 UTC (rev 1504)
@@ -4,8 +4,6 @@
import java.io.InputStream;
import org.apache.log4j.Logger;
-import org.jboss.jsr299.tck.api.Configurable;
-import org.jboss.jsr299.tck.spi.Containers;
public class FileSystemContainersImpl extends AbstractContainersImpl
@@ -13,17 +11,10 @@
private static Logger log = Logger.getLogger(FileSystemContainersImpl.class);
- public static final String JBOSS_HOME_PROPERTY_NAME = "jbossHome";
-
private File deployDir;
public FileSystemContainersImpl() throws IOException
{
- String jbossHome = System.getProperty(JBOSS_HOME_PROPERTY_NAME);
- if (jbossHome == null)
- {
- throw new IllegalArgumentException("-DjbossHome must be set");
- }
deployDir = new File(jbossHome, "server/default/deploy");
if (!deployDir.isDirectory())
{
@@ -34,10 +25,6 @@
public void deploy(InputStream archive, String name) throws IOException
{
- if (!validated)
- {
- validate();
- }
File file = new File(deployDir, name);
log.info("Deploying test " + name);
file.createNewFile();
Modified: ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/JBossTestServicesContainersImpl.java
===================================================================
--- ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/JBossTestServicesContainersImpl.java 2009-02-13 11:52:35 UTC (rev 1503)
+++ ri/trunk/jboss-tck-runner/src/main/java/org/jboss/webbeans/tck/integration/jbossas/JBossTestServicesContainersImpl.java 2009-02-13 13:50:46 UTC (rev 1504)
@@ -26,10 +26,6 @@
public void deploy(InputStream archiveStream, String name) throws Exception
{
- if (!validated)
- {
- validate();
- }
File archive = new File(tmpdir, name);
archive.deleteOnExit();
copy(archiveStream, archive);
Modified: ri/trunk/jboss-tck-runner/src/test/resources/log4j.xml
===================================================================
--- ri/trunk/jboss-tck-runner/src/test/resources/log4j.xml 2009-02-13 11:52:35 UTC (rev 1503)
+++ ri/trunk/jboss-tck-runner/src/test/resources/log4j.xml 2009-02-13 13:50:46 UTC (rev 1504)
@@ -52,8 +52,12 @@
<priority value="WARN"/>
</category>
+ <category name="org.jboss.webbeans.tck">
+ <priority value="INFO"/>
+ </category>
+
<category name="org.jboss.jsr299">
- <priority value="WARN"/>
+ <priority value="INFO"/>
</category>
<root>
Modified: tck/trunk/api/src/main/java/org/jboss/jsr299/tck/spi/Containers.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/jsr299/tck/spi/Containers.java 2009-02-13 11:52:35 UTC (rev 1503)
+++ tck/trunk/api/src/main/java/org/jboss/jsr299/tck/spi/Containers.java 2009-02-13 13:50:46 UTC (rev 1504)
@@ -19,5 +19,9 @@
public void deploy(InputStream archive, String name) throws Exception, IOException;
public void undeploy(String name) throws Exception, IOException;
+
+ public void setup() throws IOException;
+
+ public void cleanup() throws IOException;
}
\ No newline at end of file
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractTest.java 2009-02-13 11:52:35 UTC (rev 1503)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/AbstractTest.java 2009-02-13 13:50:46 UTC (rev 1504)
@@ -33,6 +33,7 @@
import org.testng.ITestResult;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
@@ -88,11 +89,15 @@
protected Manager manager;
private TCKArtifactDescriptor artifact;
- private Configuration configuration;
@BeforeSuite
- public void beforeSuite()
+ public void beforeSuite() throws Exception
{
+ Configuration configuration = ConfigurationImpl.get();
+ if (!isInContainer() && (!configuration.isStandalone() || configuration.isRunIntegrationTests()))
+ {
+ configuration.getContainers().setup();
+ }
// Check that assertions are enabled!
boolean assertionsEnabled = false;
try
@@ -112,7 +117,7 @@
@BeforeClass
public final void beforeClass() throws Exception
{
- configuration = ConfigurationImpl.get();
+ Configuration configuration = ConfigurationImpl.get();
if (!isInContainer())
{
ArtifactGenerator generator = new ArtifactGenerator(configuration);
@@ -127,6 +132,7 @@
@BeforeMethod
public final void beforeMethod(Method method)
{
+ Configuration configuration = ConfigurationImpl.get();
if (configuration.isStandalone() && !isInContainer())
{
if (artifact != null)
@@ -166,12 +172,23 @@
@AfterClass
public void afterClass() throws Exception
{
+ Configuration configuration = ConfigurationImpl.get();
if (artifact != null&& !(configuration.isStandalone() && artifact.isUnit()) && !isInContainer())
{
configuration.getContainers().undeploy(artifact.getDefaultName());
}
this.artifact = null;
}
+
+ @AfterSuite
+ public void afterSuite() throws Exception
+ {
+ Configuration configuration = ConfigurationImpl.get();
+ if (!isInContainer() && (!configuration.isStandalone() || configuration.isRunIntegrationTests()))
+ {
+ configuration.getContainers().cleanup();
+ }
+ }
@Deprecated
public <T> Bean<T> createSimpleBean(Class<T> beanClass)
@@ -207,6 +224,7 @@
@Deprecated
protected void deployBeans(Class<?>... classes)
{
+ Configuration configuration = ConfigurationImpl.get();
if (getEnabledDeploymentTypes().size() > 0)
{
manager = configuration.getStandaloneContainers().deploy(getEnabledDeploymentTypes(), classes);
@@ -291,6 +309,7 @@
public void run(IHookCallBack callback, ITestResult testResult)
{
+ Configuration configuration = ConfigurationImpl.get();
if (artifact== null || isInContainer() || (artifact.isUnit() && configuration.isStandalone()))
{
callback.runTestMethod(testResult);
More information about the weld-commits
mailing list