diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-20 23:53:35 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-20 23:53:35 +0000 |
commit | a3c48da9bb8971497d414f86e352123d95b9c3da (patch) | |
tree | fdf0f3636b65946c061c8b2e89d657b488be274e /sca-java-2.x/trunk/itest/distribution | |
parent | cc7496466097c3cb8e793ebf3e332b025705aaa7 (diff) |
Moving 2.x trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@882795 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/itest/distribution')
26 files changed, 2435 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/itest/distribution/bin-distro-unzip/build.xml b/sca-java-2.x/trunk/itest/distribution/bin-distro-unzip/build.xml new file mode 100644 index 0000000000..68e15d4a8b --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/bin-distro-unzip/build.xml @@ -0,0 +1,24 @@ +<!-- + * 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. +--> +<project name="itest-unzip" default="unzip"> + <target name="unzip"> + <unzip src="../../../distribution/all/target/apache-tuscany-sca-all-${tuscany.version}.zip" + dest="../../../distribution/all/target/apache-tuscany-sca-all-${tuscany.version}-dir"/> + </target> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/bin-distro-unzip/pom.xml b/sca-java-2.x/trunk/itest/distribution/bin-distro-unzip/pom.xml new file mode 100644 index 0000000000..d58e479f93 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/bin-distro-unzip/pom.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-distribution</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>itest-bin-distro-unzip</artifactId>
+ <name>Apache Tuscany SCA iTest Bin Distro Unzip</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-distribution-all</artifactId>
+ <type>pom</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+ <!-- HACK: use profile to control if we need to add tools.jar -->
+ <!-- Mac OS doesn't have tools.jar -->
+ <profiles>
+ <profile>
+ <id>not-sun-jdk</id>
+ <activation>
+ <file>
+ <missing>${java.home}/../lib/tools.jar</missing>
+ </file>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>run-samples</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <property name="java.home" value="${java.home}"/> + <property name="tuscany.version" value="${version}" />
+ <ant antfile="./build.xml" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <id>sun-jdk</id>
+ <activation>
+ <file>
+ <exists>${java.home}/../lib/tools.jar</exists>
+ </file>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.3</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>ant</groupId>
+ <artifactId>ant-trax</artifactId>
+ <version>1.6.5</version>
+ </dependency>
+ <!-- this JDk dependency is a workaround for Maven bug - http://jira.codehaus.org/browse/MNG-1323 -->
+ <dependency>
+ <groupId>sun.jdk</groupId>
+ <artifactId>tools</artifactId>
+ <version>1.6</version>
+ <scope>system</scope>
+ <systemPath>${java.home}/../lib/tools.jar</systemPath>
+ </dependency>
+ </dependencies>
+
+ <executions>
+ <execution>
+ <id>run-samples</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <property name="java.home" value="${java.home}"/>
+ <property name="tuscany.version" value="${version}" />
+ <ant antfile="./build.xml" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
diff --git a/sca-java-2.x/trunk/itest/distribution/binding-ws-calculator/build.xml b/sca-java-2.x/trunk/itest/distribution/binding-ws-calculator/build.xml new file mode 100644 index 0000000000..ed22bce2dc --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/binding-ws-calculator/build.xml @@ -0,0 +1,40 @@ +<!-- + * 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. +--> +<project name="itest-samples" default="run"> + + <echo>${java.home}</echo> + <!-- + compile and run each sample as though the user were running + samples from the binary distribution. Here we use ant targets + in the first instance but for some tests we may want to run + jars directly or fire up webapp containers and deploy wars. In other cases + we may need to run two samples together to provide reference and + service sides of the sample. + --> + + <property name="distro.root" value="../../../distribution/all/target/apache-tuscany-sca-all-${tuscany.version}-dir/tuscany-sca-${tuscany.version}" /> + + <target name="run"> + + <ant antfile="build.xml" + dir="${distro.root}/samples/binding-ws-calculator"/> + + </target> + +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/binding-ws-calculator/pom.xml b/sca-java-2.x/trunk/itest/distribution/binding-ws-calculator/pom.xml new file mode 100644 index 0000000000..3f4cb4b536 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/binding-ws-calculator/pom.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-binding-ws-calculator</artifactId> + <name>Apache Tuscany SCA iTest Distribution binding-ws-calculator</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>run-samples</id> + <phase>verify</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <tasks> + <property name="java.home" value="${java.home}"/> + <property name="tuscany.version" value="${version}" /> + <ant antfile="./build.xml" target="run"/> + </tasks> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/calculator-rmi/build.xml b/sca-java-2.x/trunk/itest/distribution/calculator-rmi/build.xml new file mode 100644 index 0000000000..25abf4e040 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/calculator-rmi/build.xml @@ -0,0 +1,51 @@ +<!-- + * 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. +--> +<project name="itest-samples" default="run"> + + <!-- + compile and run each sample as though the user were running + samples from the binary distribution. Here we use ant targets + in the first instance but for some tests we may want to run + jars directly or fire up webapp containers and deploy wars. In other cases + we may need to run two samples together to provide reference and + service sides of the sample. + --> + + <property name="distro.root" value="../../../distribution/all/target/apache-tuscany-sca-all-${tuscany.version}-dir/tuscany-sca-${tuscany.version}" /> + + <target name="run"> + + <parallel> + + <daemons> + <ant antfile="build.xml" + dir="${distro.root}/samples/calculator-rmi-service"/> + </daemons> + + <sequential> + <sleep seconds="15"/> + <ant antfile="build.xml" + dir="${distro.root}/samples/calculator-rmi-reference"/> + </sequential> + + </parallel> + + </target> + +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/calculator-rmi/pom.xml b/sca-java-2.x/trunk/itest/distribution/calculator-rmi/pom.xml new file mode 100644 index 0000000000..faf6132fbd --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/calculator-rmi/pom.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-calculator-rmi</artifactId> + <name>Apache Tuscany SCA iTest Distribution calculator-rmi</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>run-samples</id> + <phase>verify</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <tasks> + <property name="tuscany.version" value="${version}" /> + <ant antfile="./build.xml" target="run"/> + </tasks> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/implementation-java-calculator/build.xml b/sca-java-2.x/trunk/itest/distribution/implementation-java-calculator/build.xml new file mode 100644 index 0000000000..106fee758c --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/implementation-java-calculator/build.xml @@ -0,0 +1,40 @@ +<!-- + * 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. +--> +<project name="itest-samples" default="run"> + + <echo>${java.home}</echo> + <!-- + compile and run each sample as though the user were running + samples from the binary distribution. Here we use ant targets + in the first instance but for some tests we may want to run + jars directly or fire up webapp containers and deploy wars. In other cases + we may need to run two samples together to provide reference and + service sides of the sample. + --> + + <property name="distro.root" value="../../../distribution/all/target/apache-tuscany-sca-all-${tuscany.version}-dir/tuscany-sca-${tuscany.version}" /> + + <target name="run"> + + <ant antfile="build.xml" + dir="${distro.root}/samples/implementation-java-calculator"/> + + </target> + +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/implementation-java-calculator/pom.xml b/sca-java-2.x/trunk/itest/distribution/implementation-java-calculator/pom.xml new file mode 100644 index 0000000000..584b7ca5e9 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/implementation-java-calculator/pom.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-implementation-java-calculator</artifactId> + <name>Apache Tuscany SCA iTest Distribution implementation-java-calculator</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.3</version> + + <dependencies> + <dependency> + <groupId>ant</groupId> + <artifactId>ant-trax</artifactId> + <version>1.6.5</version> + </dependency> + <!-- this JDk dependency is a workaround for Maven bug - http://jira.codehaus.org/browse/MNG-1323 --> + <dependency> + <groupId>sun.jdk</groupId> + <artifactId>tools</artifactId> + <version>1.6</version> + <scope>system</scope> + <systemPath>${java.home}/../lib/tools.jar</systemPath> + </dependency> + </dependencies> + + <executions> + <execution> + <id>run-samples</id> + <phase>verify</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <tasks> + <property name="tuscany.version" value="${version}" /> + <property name="java.home" value="${java.home}"/> + <ant antfile="./build.xml" target="run"/> + </tasks> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/legal-checks/pom.xml b/sca-java-2.x/trunk/itest/distribution/legal-checks/pom.xml new file mode 100644 index 0000000000..c5f118458f --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/legal-checks/pom.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-legal-checks</artifactId> + <name>Apache Tuscany SCA iTest Distribution Legal Checks</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + </dependencies> + + <build> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/legal-checks/src/test/java/itest/JarsInLICENSETestCase.java b/sca-java-2.x/trunk/itest/distribution/legal-checks/src/test/java/itest/JarsInLICENSETestCase.java new file mode 100644 index 0000000000..2cbbe57125 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/legal-checks/src/test/java/itest/JarsInLICENSETestCase.java @@ -0,0 +1,162 @@ +/* + * 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 itest; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +import org.junit.Test; + +/** + * Checks that all jar files included in the distribution are mentioned in the LICENSE file + * and that all jars mentioned in the LICENSE are in the distribution. + */ +public class JarsInLICENSETestCase { + + @Test + public void testJars() throws Exception { + File distroRoot = getUnzipedDistroRoot(); + + File licenseFile = new File(distroRoot, "LICENSE"); + if (!licenseFile.exists()) { + throw new IllegalStateException("can't find LICENSE file at: " + licenseFile.getAbsoluteFile().toString()); + } + + File libDirectory = new File(distroRoot, "modules"); + if (!libDirectory.exists()) { + throw new IllegalStateException("can't find modules folder at: " + libDirectory.getAbsoluteFile().toString()); + } + + List<String> jars = getJarsInDistro(libDirectory); + + List<String> bad2 = getLICENSEJarsNotInDistro(licenseFile, jars); + if (bad2.size() > 0) { + System.err.println("Jars in LICENSE but not in Distribution: " + bad2); + } + + List<String> bad1 = getJarsNotInLICENSE(jars, licenseFile); + if (bad1.size() > 0) { + System.err.println("Jars in distribution but not in LICENSE: " + bad1); + } + + if (bad1.size() > 0 || bad2.size() > 0) { + throw new IllegalStateException("LICENSE problems, check log"); + } + } + + private List<String> getLICENSEJarsNotInDistro(File licenseFile, List<String> jars) throws IOException { + List<String> badJars = new ArrayList<String>(); + BufferedReader reader = new BufferedReader(new FileReader(licenseFile)); + String line = null; + while ((line = reader.readLine()) != null) { + line = line.trim(); + if (line.contains(".jar")) { + StringTokenizer st = new StringTokenizer(line); + while (st.hasMoreTokens()) { + String s = st.nextToken(); + if (s.contains(".jar")) { + if (s.startsWith("(")) { + s = s.substring(1); + } + if (s.endsWith(",") || s.endsWith(":")) { + s = s.substring(0, s.length()-1); + } + if (s.endsWith(")")) { + s = s.substring(0, s.length()-1); + } + if (!jars.contains(s) && !s.startsWith("tuscany-")) { + badJars.add(s); + } + } + } + } + } + return badJars; + } + + private List<String> getJarsNotInLICENSE(List<String> jars, File licenseFile) throws IOException { + List<String> badJars = new ArrayList<String>(); + String licenseText = readLICENSE(licenseFile); + for (String jar : jars) { + if (!licenseText.contains(jar)) { + if (jar.startsWith("tuscany-")) { + // ignore tuscany jars as they're not mentioned in the LICENSE file + } else { + badJars.add(jar); + } + } + } + return badJars; + } + + private List<String> getJarsInDistro(File directory) { + List<String> jars = new ArrayList<String>(); + for (String fn : directory.list()){ + if (fn.endsWith(".jar")) { + jars.add(fn); + } else { + File f = new File(directory, fn); + if (f.isDirectory()) { + jars.addAll(getJarsInDistro(f)); + } + } + } + return jars; + } + + private File getUnzipedDistroRoot() { + File distroTarget = new File("../../../distribution/all/target"); + File root = null; + for (String f : distroTarget.list()) { + if (f.endsWith("-dir")) { + root = new File(distroTarget, f); + break; + } + } + if (root == null) { + throw new IllegalStateException("can't find distro root"); + } + if (root.list().length != 1) { + throw new IllegalStateException("expecting one directory in distro root"); + } + root = new File(root, root.list()[0]); + return root; + } + + private static String readLICENSE(File licenseFile) throws java.io.IOException { + StringBuffer fileData = new StringBuffer(); + BufferedReader reader = new BufferedReader(new FileReader(licenseFile)); + char[] buf = new char[1024]; + int numRead = 0; + while ((numRead = reader.read(buf)) != -1) { + String readData = String.valueOf(buf, 0, numRead); + fileData.append(readData); + buf = new char[1024]; + } + reader.close(); + return fileData.toString(); + } + +} diff --git a/sca-java-2.x/trunk/itest/distribution/pom.xml b/sca-java-2.x/trunk/itest/distribution/pom.xml new file mode 100644 index 0000000000..f8809b5ab2 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/pom.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-itest</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <packaging>pom</packaging> + <artifactId>itest-distribution</artifactId> + <name>Apache Tuscany SCA iTest Distribution</name> + + <build> + <defaultGoal>install</defaultGoal> + </build> + + <modules> + <module>bin-distro-unzip</module> + <module>binding-ws-calculator</module> + <module>calculator-rmi</module> + <module>implementation-java-calculator</module> + <module>legal-checks</module> + <module>webapp-helloworld</module> + <module>webapp-helloworld-bpel</module> + <module>webapp-helloworld-js-client</module> + <module>webapp-helloworld-jsp</module> + <module>webapp-helloworld-servlet</module> + <module>webapp-helloworld-stripes</module> + </modules> + +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-bpel/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-bpel/pom.xml new file mode 100644 index 0000000000..e1c8a508f5 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-bpel/pom.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-webapp-helloworld-bpel</artifactId> + <name>Apache Tuscany SCA iTest Distribution Webapp helloworld-bpel</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-bpel</artifactId> + <type>war</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.5</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>htmlunit</groupId> + <artifactId>htmlunit</artifactId> + <version>1.9</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <id>start-container</id> + <phase>compile</phase> + <goals> + <goal>start</goal> + </goals> + </execution> + <execution> + <id>stop-container</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + <configuration> + <wait>false</wait> + <container> + <containerId>jetty6x</containerId> + <type>embedded</type> + <systemProperties> + <org.apache.commons.logging.Log>org.apache.commons.logging.impl.SimpleLog</org.apache.commons.logging.Log> + </systemProperties> + </container> + <!-- container> + <containerId>tomcat6x</containerId> + <home>/Tomcat/apache-tomcat-6.0.18</home> + </container --> + <configuration> + <home>${project.build.directory}/cargo-jetty</home> + <properties> + <!-- NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug + uncomment/comment the container above to be the Tomcat container and set home to point + to your local Tomcat installation --> + <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs> + <cargo.servlet.port>8085</cargo.servlet.port> + <context>helloworld-bpel</context> + </properties> + <deployables> + <deployable> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-bpel</artifactId> + <type>war</type> + <properties> + <context>helloworld-bpel</context> + </properties> + </deployable> + </deployables> + </configuration> + </configuration> + </plugin> + + </plugins> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-bpel/src/test/java/itest/HelloworldTestCase.java b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-bpel/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..5b29292acf --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-bpel/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,50 @@ +/* + * 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 itest; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Iterator; + +import org.junit.Test; + +import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlParagraph; + +/** + */ +public class HelloworldTestCase { + + @Test + public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException { + HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-bpel"); + Iterator<?> ss = page.getAllHtmlChildElements(); + ss.next(); + ss.next(); + ss.next(); + HtmlParagraph p = (HtmlParagraph)ss.next(); + assertEquals("Hello world", p.asText()); + } + +} diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jms/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jms/pom.xml new file mode 100644 index 0000000000..97662f26ca --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jms/pom.xml @@ -0,0 +1,216 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-distribution</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>itest-distribution-webapp-helloworld-jms</artifactId>
+ <name>Apache Tuscany SCA iTest Distribution Webapp helloworld-jms</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-bin-distro-unzip</artifactId>
+ <type>pom</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>helloworld-jms</artifactId>
+ <type>war</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.5</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>htmlunit</groupId>
+ <artifactId>htmlunit</artifactId>
+ <version>1.9</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-2.0</artifactId>
+ <version>6.1.19</version>
+ <type>pom</type>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-naming</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-plus</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+ <dependency>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-jta</artifactId>
+ <version>1.0.1B-rc4</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>start-container</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-container</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <wait>false</wait>
+ <container>
+ <!--
+ you can call the containerid anything that doesn't start with 'jetty' (Jetty will work fine)
+ if it starts with 'jetty' it will use the automatic dependency mechanism which you don't
+ want
+ <containerId>latest-jetty6x</containerId>
+ -->
+ <containerId>jetty6x</containerId>
+ <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer
+ </implementation>
+ <type>embedded</type>
+ <dependencies>
+ <!-- add all the other dependencies that the embedded jetty server needs here -->
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-plus</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-naming</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-jta</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-2.0</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-runtime</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-compiler</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-compiler-jdt</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-api-2.0</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-el</groupId>
+ <artifactId>commons-el</artifactId>
+ </dependency>
+
+ </dependencies>
+ </container>
+ <!-- Uncomment the following to enable Tomcat container -->
+ <!--
+ <container>
+ <containerId>tomcat6x</containerId>
+ <home>/Tomcat/apache-tomcat-6.0.18</home>
+ </container>
+ -->
+ <configuration>
+ <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration
+ </implementation>
+
+ <home>${project.build.directory}/cargo-jetty</home>
+ <properties>
+ <!--
+ NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug
+ uncomment/comment the container above to be the Tomcat container and set home to point
+ to your local Tomcat installation
+ -->
+ <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs>
+ <cargo.servlet.port>8085</cargo.servlet.port>
+ <context>helloworld-jms</context>
+ </properties>
+ <deployables>
+ <deployable>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>helloworld-jms</artifactId>
+ <type>war</type>
+ <properties>
+ <context>helloworld-jms</context>
+ </properties>
+ </deployable>
+ </deployables>
+ </configuration>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>
diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jms/src/test/java/itest/HelloworldTestCase.java b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jms/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..bc436667c8 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jms/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,51 @@ +/*
+ * 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 itest;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.Iterator;
+
+import org.junit.Test;
+
+import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
+import com.gargoylesoftware.htmlunit.WebClient;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlParagraph;
+
+/**
+ */
+public class HelloworldTestCase {
+
+ @Test
+ public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException {
+ HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-jms");
+ Iterator<?> ss = page.getAllHtmlChildElements();
+ ss.next();
+ ss.next();
+ ss.next();
+ ss.next();
+ HtmlParagraph p = (HtmlParagraph)ss.next();
+ assertEquals("Hello world", p.asText());
+ }
+
+}
diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-js-client/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-js-client/pom.xml new file mode 100644 index 0000000000..32c66015d0 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-js-client/pom.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-distribution</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>itest-distribution-webapp-helloworld-js-client</artifactId>
+ <name>Apache Tuscany SCA iTest Distribution Webapp helloworld-js-client</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-bin-distro-unzip</artifactId>
+ <type>pom</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>helloworld-js-client</artifactId>
+ <type>war</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.5</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>htmlunit</groupId>
+ <artifactId>htmlunit</artifactId>
+ <version>1.9</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-2.0</artifactId>
+ <version>6.1.19</version>
+ <type>pom</type>
+ <scope>compile</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>start-container</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-container</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <wait>false</wait>
+ <container>
+ <!--
+ you can call the containerid anything that doesn't start with 'jetty' (Jetty will work fine)
+ if it starts with 'jetty' it will use the automatic dependency mechanism which you don't
+ want
+ -->
+ <containerId>latest-jetty6x</containerId>
+ <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer
+ </implementation>
+ <type>embedded</type>
+ <dependencies>
+ <!-- add all the other dependencies that the embedded jetty server needs here -->
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-2.0</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-runtime</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-compiler</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-compiler-jdt</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-api-2.0</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-el</groupId>
+ <artifactId>commons-el</artifactId>
+ </dependency>
+
+ </dependencies>
+ </container>
+ <!-- Uncomment the following to enable Tomcat container -->
+ <!--
+ <container>
+ <containerId>tomcat6x</containerId>
+ <home>/Tomcat/apache-tomcat-6.0.18</home>
+ </container>
+ -->
+ <configuration>
+ <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration
+ </implementation>
+
+ <home>${project.build.directory}/cargo-jetty</home>
+ <properties>
+ <!--
+ NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug
+ uncomment/comment the container above to be the Tomcat container and set home to point
+ to your local Tomcat installation
+ -->
+ <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs>
+ <cargo.servlet.port>8085</cargo.servlet.port>
+ <context>helloworld-jsp</context>
+ </properties>
+ <deployables>
+ <deployable>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>helloworld-js-client</artifactId>
+ <type>war</type>
+ <properties>
+ <context>helloworld-js-client</context>
+ </properties>
+ </deployable>
+ </deployables>
+ </configuration>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>
diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-js-client/src/test/java/itest/HelloworldTestCase.java b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-js-client/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..099b442050 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-js-client/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,75 @@ +/*
+ * 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 itest;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLEncoder;
+
+import org.junit.Test;
+
+/**
+ * Verfiy the serverside code is working, not sure how to easily itest the browser javascript code
+ */
+public class HelloworldTestCase {
+
+ @Test
+ public void testA() throws MalformedURLException, IOException {
+
+ URL url = new URL("http://localhost:8085/helloworld-js-client/org.oasisopen.sca.componentContext.js/foo/call/plaincall/service.sayHello.dwr");
+ URLConnection conn = url.openConnection();
+ conn.setDoOutput(true);
+ OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
+
+ // to find this run the sample through TCPMON to capture the messages
+
+ String data = URLEncoder.encode("callCount", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8");
+ data += "&" + URLEncoder.encode("page", "UTF-8") + "=" + URLEncoder.encode("/helloworld-js-client/", "UTF-8");
+ data += "&" + URLEncoder.encode("httpSessionId", "UTF-8") + "=" + URLEncoder.encode("", "UTF-8");
+ data += "&" + URLEncoder.encode("scriptSessionId", "UTF-8") + "=" + URLEncoder.encode("A023DA664E56F075491BE1B87B37B02671", "UTF-8");
+ data += "&" + URLEncoder.encode("c0-scriptName", "UTF-8") + "=" + URLEncoder.encode("service", "UTF-8");
+ data += "&" + URLEncoder.encode("c0-methodName", "UTF-8") + "=" + URLEncoder.encode("sayHello", "UTF-8");
+ data += "&" + URLEncoder.encode("c0-id", "UTF-8") + "=" + URLEncoder.encode("0", "UTF-8");
+ data += "&" + URLEncoder.encode("c0-param0", "UTF-8") + "=" + URLEncoder.encode("string:petra", "UTF-8");
+ data += "&" + URLEncoder.encode("batchId", "UTF-8") + "=" + URLEncoder.encode("0", "UTF-8");
+
+ wr.write(data);
+ wr.flush();
+
+ BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
+ rd.readLine(); // throw 'allowScriptTagRemoting is false.';
+ rd.readLine(); //#DWR-INSERT
+ rd.readLine(); //#DWR-REPLY
+ String line = rd.readLine(); // dwr.engine._remoteHandleCallback('0','0',"Hello petra");
+ wr.close();
+ rd.close();
+
+ assertTrue(line.endsWith("\"Hello petra\");"));
+
+ }
+
+}
diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsf/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsf/pom.xml new file mode 100644 index 0000000000..3a2ff11a11 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsf/pom.xml @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-webapp-helloworld-jsf</artifactId> + <name>Apache Tuscany SCA iTest Distribution Webapp helloworld-jsf</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-jsf</artifactId> + <type>war</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.5</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>htmlunit</groupId> + <artifactId>htmlunit</artifactId> + <version>1.9</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>javax.el</groupId> + <artifactId>el-api</artifactId> + <version>1.0</version> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <id>start-container</id> + <phase>compile</phase> + <goals> + <goal>start</goal> + </goals> + </execution> + <execution> + <id>stop-container</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + <configuration> + <wait>false</wait> + <container> + <containerId>jetty6x</containerId> + <type>embedded</type> + <systemProperties> + <org.apache.commons.logging.Log>org.apache.commons.logging.impl.SimpleLog</org.apache.commons.logging.Log> + </systemProperties> + </container> + <!-- container> + <containerId>tomcat6x</containerId> + <home>/Tomcat/apache-tomcat-6.0.18</home> + </container --> + <configuration> + <home>${project.build.directory}/cargo-jetty</home> + <properties> + <!-- NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug + uncomment/comment the container above to be the Tomcat container and set home to point + to your local Tomcat installation --> + <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs> + <cargo.servlet.port>8085</cargo.servlet.port> + <context>helloworld-jsf</context> + </properties> + <deployables> + <deployable> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-jsf</artifactId> + <type>war</type> + <properties> + <context>helloworld-jsf</context> + </properties> + </deployable> + </deployables> + </configuration> + </configuration> + </plugin> + + </plugins> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsf/src/test/java/itest/HelloworldTestCaseFIXME.java b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsf/src/test/java/itest/HelloworldTestCaseFIXME.java new file mode 100644 index 0000000000..1f90a772ac --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsf/src/test/java/itest/HelloworldTestCaseFIXME.java @@ -0,0 +1,71 @@ +/* + * 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 itest; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Iterator; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlForm; +import com.gargoylesoftware.htmlunit.html.HtmlInput; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlParagraph; + +/** + * TODO: This doesn't work yet, I can't find the hello response in the + * the response page from the button click. Not sure if thats just + * looking in the wrong place or the button click is not working + * Also the Cargo maven plugin has a problem finding the el-api when using Jetty + */ +public class HelloworldTestCaseFIXME { + + @Test + public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException { + HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-jsf"); + + HtmlForm form = page.getFormByName("mainForm"); + + HtmlInput textField = form.getInputByName("mainForm:name"); + textField.setValueAttribute("root"); + + Iterator i = form.getChildIterator(); + i.next(); + HtmlInput button = (HtmlInput)i.next(); + + HtmlPage page2 = (HtmlPage)button.click(); + + Iterator<?> ss = page2.getAllHtmlChildElements(); + ss.next(); + ss.next(); + ss.next(); + ss.next(); + HtmlForm form2 = (HtmlForm)ss.next(); + + Object oow = form2.getFirstChild(); + System.out.println(oow); +// assertTrue(p.asText().startsWith("Hello Petra")); + } + +} diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsp/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsp/pom.xml new file mode 100644 index 0000000000..4f41a3a0ef --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsp/pom.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-webapp-helloworld-jsp</artifactId> + <name>Apache Tuscany SCA iTest Distribution Webapp helloworld-jsp</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-jsp</artifactId> + <type>war</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.5</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>htmlunit</groupId> + <artifactId>htmlunit</artifactId> + <version>1.9</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-2.0</artifactId> + <version>6.1.19</version> + <type>pom</type> + <scope>compile</scope> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <id>start-container</id> + <phase>compile</phase> + <goals> + <goal>start</goal> + </goals> + </execution> + <execution> + <id>stop-container</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + <configuration> + <wait>false</wait> + <container> + <!-- + you can call the containerid anything that doesn't start with 'jetty' (Jetty will work fine) + if it starts with 'jetty' it will use the automatic dependency mechanism which you don't + want + --> + <containerId>latest-jetty6x</containerId> + <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer + </implementation> + <type>embedded</type> + <dependencies> + <!-- add all the other dependencies that the embedded jetty server needs here --> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-util</artifactId> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-2.0</artifactId> + </dependency> + <dependency> + <groupId>tomcat</groupId> + <artifactId>jasper-runtime</artifactId> + </dependency> + <dependency> + <groupId>tomcat</groupId> + <artifactId>jasper-compiler</artifactId> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </dependency> + <dependency> + <groupId>tomcat</groupId> + <artifactId>jasper-compiler-jdt</artifactId> + </dependency> + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jsp-api-2.0</artifactId> + </dependency> + <dependency> + <groupId>commons-el</groupId> + <artifactId>commons-el</artifactId> + </dependency> + + </dependencies> + </container> + <!-- Uncomment the following to enable Tomcat container --> + <!-- + <container> + <containerId>tomcat6x</containerId> + <home>/Tomcat/apache-tomcat-6.0.18</home> + </container> + --> + <configuration> + <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration + </implementation> + + <home>${project.build.directory}/cargo-jetty</home> + <properties> + <!-- + NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug + uncomment/comment the container above to be the Tomcat container and set home to point + to your local Tomcat installation + --> + <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs> + <cargo.servlet.port>8085</cargo.servlet.port> + <context>helloworld-jsp</context> + </properties> + <deployables> + <deployable> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-jsp</artifactId> + <type>war</type> + <properties> + <context>helloworld-jsp</context> + </properties> + </deployable> + </deployables> + </configuration> + </configuration> + </plugin> + + </plugins> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsp/src/test/java/itest/HelloworldTestCase.java b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsp/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..2be60be081 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-jsp/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,50 @@ +/* + * 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 itest; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Iterator; + +import org.junit.Test; + +import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlParagraph; + +/** + */ +public class HelloworldTestCase { + + @Test + public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException { + HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-jsp"); + Iterator<?> ss = page.getAllHtmlChildElements(); + ss.next(); + ss.next(); + ss.next(); + HtmlParagraph p = (HtmlParagraph)ss.next(); + assertEquals("Hello world", p.asText()); + } + +} diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-servlet/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-servlet/pom.xml new file mode 100644 index 0000000000..2b5915ca88 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-servlet/pom.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-distribution</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>itest-distribution-webapp-helloworld-servlet</artifactId>
+ <name>Apache Tuscany SCA iTest Distribution Webapp helloworld-servlet</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-bin-distro-unzip</artifactId>
+ <type>pom</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>helloworld-servlet</artifactId>
+ <type>war</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.5</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>htmlunit</groupId>
+ <artifactId>htmlunit</artifactId>
+ <version>1.9</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-2.0</artifactId>
+ <version>6.1.19</version>
+ <type>pom</type>
+ <scope>compile</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>start-container</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-container</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <wait>false</wait>
+ <container>
+ <!--
+ you can call the containerid anything that doesn't start with 'jetty' (Jetty will work fine)
+ if it starts with 'jetty' it will use the automatic dependency mechanism which you don't
+ want
+ -->
+ <containerId>latest-jetty6x</containerId>
+ <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedLocalContainer
+ </implementation>
+ <type>embedded</type>
+ <dependencies>
+ <!-- add all the other dependencies that the embedded jetty server needs here -->
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-2.0</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-runtime</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-compiler</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>jasper-compiler-jdt</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jsp-api-2.0</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>commons-el</groupId>
+ <artifactId>commons-el</artifactId>
+ </dependency>
+
+ </dependencies>
+ </container>
+ <!-- Uncomment the following to enable Tomcat container -->
+ <!--
+ <container>
+ <containerId>tomcat6x</containerId>
+ <home>/Tomcat/apache-tomcat-6.0.18</home>
+ </container>
+ -->
+ <configuration>
+ <implementation>org.codehaus.cargo.container.jetty.Jetty6xEmbeddedStandaloneLocalConfiguration
+ </implementation>
+
+ <home>${project.build.directory}/cargo-jetty</home>
+ <properties>
+ <!--
+ NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug
+ uncomment/comment the container above to be the Tomcat container and set home to point
+ to your local Tomcat installation
+ -->
+ <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs>
+ <cargo.servlet.port>8085</cargo.servlet.port>
+ <context>helloworld-jsp</context>
+ </properties>
+ <deployables>
+ <deployable>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>helloworld-servlet</artifactId>
+ <type>war</type>
+ <properties>
+ <context>helloworld-servlet</context>
+ </properties>
+ </deployable>
+ </deployables>
+ </configuration>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>
diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-servlet/src/test/java/itest/HelloworldTestCase.java b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-servlet/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..bed840b44a --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-servlet/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,60 @@ +/*
+ * 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 itest;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+import org.junit.Test;
+
+import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
+import com.gargoylesoftware.htmlunit.UnexpectedPage;
+import com.gargoylesoftware.htmlunit.WebClient;
+import com.gargoylesoftware.htmlunit.html.HtmlButton;
+import com.gargoylesoftware.htmlunit.html.HtmlForm;
+import com.gargoylesoftware.htmlunit.html.HtmlInput;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+
+/**
+ */
+public class HelloworldTestCase {
+
+ @Test
+ public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException {
+ HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-servlet");
+
+ HtmlForm form = (HtmlForm) page.getForms().get(0);
+
+ HtmlInput textField = form.getInputByName("name");
+ textField.setValueAttribute("petra");
+
+ HtmlButton button = (HtmlButton) form.getButtonsByName("submit").get(0);
+
+ Object foo = button.click();
+
+ // TODO: something up with getting the response but this works:
+ UnexpectedPage p = (UnexpectedPage) foo;
+ String s = new String(p.getWebResponse().getResponseBody());
+
+ assertTrue(s.endsWith("</strong>Hello petra</body></html>"));
+ }
+
+}
diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-stripes/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-stripes/pom.xml new file mode 100644 index 0000000000..8d312f75c8 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-stripes/pom.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-webapp-helloworld-stripes</artifactId> + <name>Apache Tuscany SCA iTest Distribution Webapp helloworld-stripes</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-stripes</artifactId> + <type>war</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.5</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>htmlunit</groupId> + <artifactId>htmlunit</artifactId> + <version>1.9</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <id>start-container</id> + <phase>compile</phase> + <goals> + <goal>start</goal> + </goals> + </execution> + <execution> + <id>stop-container</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + <configuration> + <wait>false</wait> + <container> + <containerId>jetty6x</containerId> + <type>embedded</type> + <systemProperties> + <org.apache.commons.logging.Log>org.apache.commons.logging.impl.SimpleLog</org.apache.commons.logging.Log> + </systemProperties> + </container> + <!-- container> + <containerId>tomcat6x</containerId> + <home>/Tomcat/apache-tomcat-6.0.18</home> + </container --> + <configuration> + <home>${project.build.directory}/cargo-jetty</home> + <properties> + <!-- NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug + uncomment/comment the container above to be the Tomcat container and set home to point + to your local Tomcat installation --> + <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs> + <cargo.servlet.port>8085</cargo.servlet.port> + <context>helloworld-stripes</context> + </properties> + <deployables> + <deployable> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld-stripes</artifactId> + <type>war</type> + <properties> + <context>helloworld-stripes</context> + </properties> + </deployable> + </deployables> + </configuration> + </configuration> + </plugin> + + </plugins> + </build> +</project> diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-stripes/src/test/java/itest/HelloworldTestCase.java b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-stripes/src/test/java/itest/HelloworldTestCase.java new file mode 100644 index 0000000000..743ab054c8 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld-stripes/src/test/java/itest/HelloworldTestCase.java @@ -0,0 +1,53 @@ +/* + * 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 itest; + +import static org.junit.Assert.assertEquals; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.util.Iterator; + +import org.junit.Test; + +import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException; +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlParagraph; + +/** + */ +public class HelloworldTestCase { + + @Test + public void testA() throws FailingHttpStatusCodeException, MalformedURLException, IOException { + HtmlPage page = (HtmlPage)new WebClient().getPage("http://localhost:8085/helloworld-stripes"); + Iterator<?> ss = page.getAllHtmlChildElements(); + Object o1= ss.next(); + Object o2= ss.next(); + Object o3= ss.next(); + Object o4= ss.next(); + Object o5= ss.next(); + Object o6= ss.next(); + HtmlParagraph p = (HtmlParagraph)ss.next(); + assertEquals("sayHello returns: Hello world", p.asText()); + } + +} diff --git a/sca-java-2.x/trunk/itest/distribution/webapp-helloworld/pom.xml b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld/pom.xml new file mode 100644 index 0000000000..81d7304e00 --- /dev/null +++ b/sca-java-2.x/trunk/itest/distribution/webapp-helloworld/pom.xml @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-distribution</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <artifactId>itest-distribution-webapp-helloworld</artifactId> + <name>Apache Tuscany SCA iTest Distribution Webapp helloworld</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-bin-distro-unzip</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld</artifactId> + <type>war</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.5</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>httpunit</groupId> + <artifactId>httpunit</artifactId> + <version>1.6.1</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.cargo</groupId> + <artifactId>cargo-maven2-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <id>start-container</id> + <phase>pre-integration-test</phase> + <goals> + <goal>start</goal> + </goals> + </execution> + <execution> + <id>stop-container</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + <configuration> + <wait>false</wait> + <container> + <containerId>jetty6x</containerId> + <type>embedded</type> + <systemProperties> + <org.apache.commons.logging.Log>org.apache.commons.logging.impl.SimpleLog</org.apache.commons.logging.Log> + </systemProperties> + </container> + <!-- container> + <containerId>tomcat6x</containerId> + <home>/Tomcat/apache-tomcat-6.0.18</home> + </container --> + <configuration> + <home>${project.build.directory}/cargo-jetty</home> + <properties> + <!-- NOTE: remote debugging doesn't work with the embedded Jetty container. To remote debug + uncomment/comment the container above to be the Tomcat container and set home to point + to your local Tomcat installation --> + <cargo.jvmargs><![CDATA[-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y]]></cargo.jvmargs> + <cargo.servlet.port>8085</cargo.servlet.port> + </properties> + <deployables> + <deployable> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>helloworld</artifactId> + <type>war</type> + <pingURL>http://localhost:8085/helloworld</pingURL> + </deployable> + </deployables> + </configuration> + </configuration> + </plugin> + + </plugins> + </build> +</project> |