summaryrefslogtreecommitdiffstats
path: root/tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main')
-rw-r--r--tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitGeneratorMojo.java181
-rw-r--r--tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitMojo.java205
2 files changed, 0 insertions, 386 deletions
diff --git a/tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitGeneratorMojo.java b/tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitGeneratorMojo.java
deleted file mode 100644
index d1afe2c995..0000000000
--- a/tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitGeneratorMojo.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tuscany.tools.sca.web.junit.plugin;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-
-/**
- * @version $Rev$ $Date$
- * @goal generate
- * @phase process-resources
- * @requiresDependencyResolution runtime
- * @description Generate the web.xml and geronimo-web.xml
- */
-public class WebJUnitGeneratorMojo extends AbstractMojo {
- private final static String ASL_HEADER =
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "\n<!--"
- + "\n * Licensed to the Apache Software Foundation (ASF) under one"
- + "\n * or more contributor license agreements. See the NOTICE file"
- + "\n * distributed with this work for additional information"
- + "\n * regarding copyright ownership. The ASF licenses this file"
- + "\n * to you under the Apache License, Version 2.0 (the"
- + "\n * \"License\"); you may not use this file except in compliance"
- + "\n * with the License. You may obtain a copy of the License at"
- + "\n * "
- + "\n * http://www.apache.org/licenses/LICENSE-2.0"
- + "\n * "
- + "\n * Unless required by applicable law or agreed to in writing,"
- + "\n * software distributed under the License is distributed on an"
- + "\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY"
- + "\n * KIND, either express or implied. See the License for the"
- + "\n * specific language governing permissions and limitations"
- + "\n * under the License. "
- + "\n-->";
-
- private final static String GERONIMO_WEB_XML =
- ASL_HEADER + "\n<web-app xmlns=\"http://geronimo.apache.org/xml/ns/j2ee/web-2.0\""
- + "\n xmlns:d=\"http://geronimo.apache.org/xml/ns/deployment-1.2\">"
- // + "\n <context-root>${context.root}</context-root>"
- + "\n <d:environment>"
- + "\n <d:moduleId>"
- + "\n <d:groupId>${groupId}</d:groupId>"
- + "\n <d:artifactId>${artifactId}</d:artifactId>"
- + "\n <d:version>${version}</d:version>"
- + "\n <d:type>war</d:type>"
- + "\n </d:moduleId>"
- + "\n <d:inverse-classloading />"
- + "\n </d:environment>"
- + "\n</web-app>\n";
-
- private final static String WEB_XML =
- ASL_HEADER + "\n<!DOCTYPE web-app PUBLIC \"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN\" \"http://java.sun.com/dtd/web-app_2_3.dtd\">"
- + "\n<web-app>"
- + "\n <display-name>${display-name}</display-name>"
- + "\n <filter>"
- + "\n <filter-name>tuscany</filter-name>"
- + "\n <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>"
- + "\n </filter>"
- + "\n <filter>"
- + "\n <filter-name>junit</filter-name>"
- + "\n <filter-class>org.apache.tuscany.sca.host.webapp.junit.JUnitServletFilter</filter-class>"
- + "\n <init-param>"
- + "\n <param-name>junit.tests.path</param-name>"
- + "\n <param-value>${junit.tests.path}</param-value>"
- + "\n </init-param>"
- + "\n </filter>"
- + "\n <filter-mapping>"
- + "\n <filter-name>tuscany</filter-name>"
- + "\n <url-pattern>/*</url-pattern>"
- + "\n </filter-mapping>"
- + "\n <filter-mapping>"
- + "\n <filter-name>junit</filter-name>"
- + "\n <url-pattern>/junit/*</url-pattern>"
- + "\n </filter-mapping>"
- + "\n</web-app>\n";
-
- /**
- * @parameter
- */
- private String testsPath;
-
- /**
- * @parameter
- */
- private boolean geronimo;
-
- /**
- * The project to create a build for.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
- */
- private MavenProject project;
-
- public void execute() throws MojoExecutionException {
- File base =
- new File(project.getBasedir(), "target" + File.separator
- + project.getBuild().getFinalName()
- + File.separator
- + "WEB-INF");
- base.mkdirs();
- // Create the dir to work around the complaint from maven-war-plugin on non-existent folders
- new File(project.getBasedir(), "target/classes/META-INF".replace('/', File.separatorChar)).mkdirs();
- File webxml = new File(base, "web.xml");
- getLog().info("Generating " + webxml.toString());
-
- String name = project.getName();
- if (name == null) {
- name = project.getGroupId() + "-" + project.getArtifactId();
- }
- String content = setParameter(WEB_XML, "display-name", name);
-
- if (testsPath == null) {
- testsPath = "/WEB-INF/classes/";
- }
- content = setParameter(content, "junit.tests.path", testsPath);
-
- try {
- FileWriter writer = new FileWriter(webxml);
- writer.append(content);
- writer.close();
- } catch (IOException e) {
- throw new MojoExecutionException(e.getMessage(), e);
- }
-
- if (geronimo) {
- File geronimoxml = new File(base, "geronimo-web.xml");
- getLog().info("Generating " + geronimoxml.toString());
- content = setParameter(GERONIMO_WEB_XML, "groupId", project.getGroupId());
- content = setParameter(content, "artifactId", project.getArtifactId());
- content = setParameter(content, "version", project.getVersion());
- // content = setParameter(content, "context.root", "/" + project.getBuild().getFinalName());
- try {
- geronimoxml.getParentFile().mkdirs();
- FileWriter writer = new FileWriter(geronimoxml);
- writer.append(content);
- writer.close();
- } catch (IOException e) {
- throw new MojoExecutionException(e.getMessage(), e);
- }
- }
-
- // Workaround: maven-war-plugin doesn't like non-existing folders
- // create target/test-classes
- new File(project.getBasedir(), "target" + File.separator + "test-classes").mkdirs();
-
- }
-
- private String setParameter(String xml, String name, String value) {
- String pattern = "${" + name + "}";
- int index = xml.indexOf(pattern);
- if (index != -1) {
- String content = xml.substring(0, index) + value + xml.substring(index + pattern.length());
- return content;
- }
- return xml;
- }
-
-}
diff --git a/tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitMojo.java b/tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitMojo.java
deleted file mode 100644
index 658d65d7c3..0000000000
--- a/tags/java/sca/2.0-M1/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitMojo.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.apache.tuscany.tools.sca.web.junit.plugin;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import org.apache.commons.logging.LogFactory;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.StatusLine;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.project.MavenProject;
-
-/**
- * @version $Rev$ $Date$
- * @goal test
- * @phase integration-test
- * @requiresDependencyResolution test
- * @description Run the unit test over HTTP
- */
-public class WebJUnitMojo extends AbstractMojo {
- /**
- * The project to create a build for.
- *
- * @parameter expression="${project}"
- * @required
- * @readonly
- */
- private MavenProject project;
-
- /**
- * The test cases to run
- * @parameter
- */
- private String testCases[];
-
- /**
- * The URL for the web site
- * @parameter
- */
- private String url;
-
- /**
- * Timeout for the HTTP connection
- * @parameter
- */
- private int timeout = 300000; // 5 minutes
-
- /**
- * To avoid throwing exceptions because we want the stop container plugin to be executed
- * @parameter
- */
- private boolean ignoreErrors = true;
-
- public void execute() throws MojoExecutionException {
- if (project.getPackaging().equals("pom")) {
- return;
- }
-
- reset();
-
- if (url == null) {
- url = "http://localhost:8080/" + project.getBuild().getFinalName() + "/junit?op=runAll";
- }
-
- if (testCases != null) {
- StringBuffer buf = new StringBuffer(url);
- for (int i = 0; i < testCases.length; i++) {
- if (i == 0) {
- buf.append('?');
- }
- buf.append(testCases[i]);
- if (i != testCases.length - 1) {
- buf.append(',');
- }
- }
- url = buf.toString();
- }
-
- getLog().info("Connecting to " + url);
-
- int runs = 0, errors = 0, failures = 0;
- String xml = "";
-
- try {
- HttpClient client = new DefaultHttpClient();
- HttpGet httpget = new HttpGet(url);
- httpget.getParams().setParameter("http.socket.timeout", new Integer(timeout));
-
- // Execute HTTP request
- HttpResponse response = client.execute(httpget);
-
- StatusLine status = response.getStatusLine();
- if (status.getStatusCode() != HttpStatus.SC_OK) {
- if (!ignoreErrors) {
- throw new MojoExecutionException(status.getStatusCode() + ": " + status.getReasonPhrase());
- }
- getLog().error(status.getStatusCode() + ": " + status.getReasonPhrase());
- return;
- }
- Header header = response.getFirstHeader("junit.errors");
- errors = header == null ? 0 : Integer.parseInt(header.getValue());
- header = response.getFirstHeader("junit.failures");
- failures = header == null ? 0 : Integer.parseInt(header.getValue());
- header = response.getFirstHeader("junit.runs");
- runs = header == null ? 0 : Integer.parseInt(header.getValue());
- getLog().info("Runs: " + runs + ", Failures: " + failures + ", Errors: " + errors);
-
- // Get hold of the response entity
- HttpEntity entity = response.getEntity();
-
- // If the response does not enclose an entity, there is no need
- // to bother about connection release
- if (entity != null) {
- BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
- try {
- StringBuffer sb = new StringBuffer();
- while (true) {
- String line = reader.readLine();
- if (line == null) {
- break;
- }
- sb.append(line);
- }
- xml = sb.toString();
- getLog().debug(xml);
-
- } catch (IOException ex) {
-
- // In case of an IOException the connection will be released
- // back to the connection manager automatically
- throw ex;
-
- } catch (RuntimeException ex) {
-
- // In case of an unexpected exception you may want to abort
- // the HTTP request in order to shut down the underlying
- // connection and release it back to the connection manager.
- httpget.abort();
- throw ex;
-
- } finally {
-
- // Closing the input stream will trigger connection release
- reader.close();
-
- }
-
- }
- } catch (Exception e) {
- if (!ignoreErrors) {
- throw new MojoExecutionException(e.getMessage(), e);
- }
- getLog().error(e);
- }
- if (errors != 0 || failures != 0) {
- if (!ignoreErrors) {
- throw new MojoExecutionException(xml);
- }
- getLog().error(xml);
- }
-
- }
-
- /**
- * A workaround to avoid logging conflict with Geronimo
- */
- private static void reset() {
- LogFactory.releaseAll();
-
- // Restore a reasonable default log impl
- System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog");
-
- // Make SimpleLog look more like Maven logs
- System.setProperty("org.apache.commons.logging.simplelog.showShortLogname", "false");
-
- // Restore default Geronimo bootstrap behavior
- System.getProperties().remove("geronimo.bootstrap.logging.enabled");
- }
-
-}