diff options
Diffstat (limited to 'branches/sca-java-1.4/tools/maven/maven-web-junit/src/main/java/org/apache')
2 files changed, 0 insertions, 386 deletions
diff --git a/branches/sca-java-1.4/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitGeneratorMojo.java b/branches/sca-java-1.4/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/branches/sca-java-1.4/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/branches/sca-java-1.4/tools/maven/maven-web-junit/src/main/java/org/apache/tuscany/tools/sca/web/junit/plugin/WebJUnitMojo.java b/branches/sca-java-1.4/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/branches/sca-java-1.4/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"); - } - -} |