[CXF-6268] Add integration test This closes #61
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/41812468 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/41812468 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/41812468 Branch: refs/heads/master Commit: 41812468cde977c25aae405814677555beadee1a Parents: d7945c7 Author: kops <[email protected]> Authored: Thu Mar 5 23:52:04 2015 +0100 Committer: Daniel Kulp <[email protected]> Committed: Tue Mar 31 13:32:55 2015 -0400 ---------------------------------------------------------------------- maven-plugins/codegen-plugin/pom.xml | 33 +++++++ maven-plugins/codegen-plugin/src/it/README.md | 12 +++ .../src/it/jdk6-cxf-with-toolchain/pom.xml | 97 ++++++++++++++++++++ .../src/main/wsdl/HelloWorld.wsdl | 79 ++++++++++++++++ .../codegen-plugin/src/it/settings.xml | 45 +++++++++ 5 files changed, 266 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/41812468/maven-plugins/codegen-plugin/pom.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/codegen-plugin/pom.xml b/maven-plugins/codegen-plugin/pom.xml index e1221da..70a2f02 100644 --- a/maven-plugins/codegen-plugin/pom.xml +++ b/maven-plugins/codegen-plugin/pom.xml @@ -154,6 +154,39 @@ </execution> </executions> </plugin> + <plugin> + <artifactId>maven-install-plugin</artifactId> + <executions> + <execution> + <id>install-to-integration-repo</id> + <phase>pre-integration-test</phase> + <goals> + <goal>install</goal> + </goals> + <configuration> + <localRepositoryPath>${project.build.directory}/it/repo</localRepositoryPath> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-invoker-plugin</artifactId> + <version>1.9</version> + <executions> + <execution> + <id>test-toolchains-integration</id> + <phase>integration-test</phase> + <goals> + <goal>integration-test</goal> + </goals> + <configuration> + <settingsFile>src/it/settings.xml</settingsFile> + <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> <profiles> http://git-wip-us.apache.org/repos/asf/cxf/blob/41812468/maven-plugins/codegen-plugin/src/it/README.md ---------------------------------------------------------------------- diff --git a/maven-plugins/codegen-plugin/src/it/README.md b/maven-plugins/codegen-plugin/src/it/README.md new file mode 100644 index 0000000..b202bec --- /dev/null +++ b/maven-plugins/codegen-plugin/src/it/README.md @@ -0,0 +1,12 @@ +toolchain-integration-tests +=========================== + +jdk6-cxf-with-toolchain +----------------------- + +This project contains sample maven module using `cxf-codegen-plugin` to generate java from WSDL file. + +- it enforces usage of JDK 1.7 or higher to run the `mvn` command +- it configures `maven-toolchains-plugins` to target JDK 6 +- cxf `fork` parameter if set to true to enable toolchain detection +- if the toolchain wasn't correctly used by the cxf-codegen-plugin`, the the build should fail during the _compile_ phase http://git-wip-us.apache.org/repos/asf/cxf/blob/41812468/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/pom.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/pom.xml b/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/pom.xml new file mode 100644 index 0000000..1dd949f --- /dev/null +++ b/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/pom.xml @@ -0,0 +1,97 @@ +<?xml version="1.0"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.cxf.it</groupId> + <artifactId>jdk6-cxf-with-toolchain</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> + <properties> + <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <version>1.4</version> + <executions> + <execution> + <id>enforce-jdk7-of-higher</id> + <phase>verify</phase> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <requireJavaVersion> + <version>[1.7,)</version> + </requireJavaVersion> + </rules> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-toolchains-plugin</artifactId> + <version>1.1</version> + <configuration> + <toolchains> + <jdk> + <version>6</version> + </jdk> + </toolchains> + </configuration> + <executions> + <execution> + <goals> + <goal>toolchain</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.cxf</groupId> + <artifactId>cxf-codegen-plugin</artifactId> + <version>@project.version@</version> + <executions> + <execution> + <id>wsdl2java</id> + <phase>generate-sources</phase> + <goals> + <goal>wsdl2java</goal> + </goals> + <configuration> + <fork>true</fork> + <wsdlOptions> + <wsdlOption> + <wsdl>src/main/wsdl/HelloWorld.wsdl</wsdl> + </wsdlOption> + </wsdlOptions> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.9.1</version> + <executions> + <execution> + <id>add-wsdl-source</id> + <phase>process-sources</phase> + <goals> + <goal>add-source</goal> + </goals> + <configuration> + <sources> + <source>${project.build.directory}/generated-sources/cxf</source> + </sources> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> http://git-wip-us.apache.org/repos/asf/cxf/blob/41812468/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/src/main/wsdl/HelloWorld.wsdl ---------------------------------------------------------------------- diff --git a/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/src/main/wsdl/HelloWorld.wsdl b/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/src/main/wsdl/HelloWorld.wsdl new file mode 100644 index 0000000..21dd8de --- /dev/null +++ b/maven-plugins/codegen-plugin/src/it/jdk6-cxf-with-toolchain/src/main/wsdl/HelloWorld.wsdl @@ -0,0 +1,79 @@ +<?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. +--> +<wsdl:definitions name="HelloWorld" targetNamespace="http://www.apache.org/contract/HelloWorld" + xmlns="http://schemas.xmlsoap.org/wsdl/" + xmlns:tns="http://www.apache.org/contract/HelloWorld" + xmlns:x1="http://www.apache.org/schema/HelloWorld" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <wsdl:types> + <schema targetNamespace="http://www.apache.org/schema/HelloWorld" + xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:tns="http://www.apache.org/schema/HelloWorld" + elementFormDefault="qualified"> + <element name="sayHi"> + <complexType> + <sequence> + <element name="requestType" type="string"/> + </sequence> + </complexType> + </element> + <element name="sayHiResponse"> + <complexType> + <sequence> + <element name="responseType" type="string"/> + </sequence> + </complexType> + </element> + </schema> + </wsdl:types> + <wsdl:message name="sayHiRequest"> + <wsdl:part element="x1:sayHi" name="in"/> + </wsdl:message> + <wsdl:message name="sayHiResponse"> + <wsdl:part element="x1:sayHiResponse" name="out"/> + </wsdl:message> + <wsdl:portType name="HelloWorldPortType"> + <wsdl:operation name="sayHi"> + <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/> + <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="HelloWorldBinding" type="tns:HelloWorldPortType"> + <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="sayHi"> + <soap:operation soapAction="" style="document"/> + <wsdl:input name="sayHiRequest"> + <soap:body use="literal"/> + </wsdl:input> + <wsdl:output name="sayHiResponse"> + <soap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="HelloWorldService"> + <wsdl:port name="HelloWorldPort" binding="tns:HelloWorldBinding"> + <!-- Actual soap:address value is dynamically generated after deployment --> + <soap:address location="http://dummy.value"/> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> + http://git-wip-us.apache.org/repos/asf/cxf/blob/41812468/maven-plugins/codegen-plugin/src/it/settings.xml ---------------------------------------------------------------------- diff --git a/maven-plugins/codegen-plugin/src/it/settings.xml b/maven-plugins/codegen-plugin/src/it/settings.xml new file mode 100644 index 0000000..d29dc39 --- /dev/null +++ b/maven-plugins/codegen-plugin/src/it/settings.xml @@ -0,0 +1,45 @@ +<?xml version="1.0"?> +<settings> + <profiles> + <profile> + <id>it-repo</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + <repositories> + <repository> + <id>local.central</id> + <url>@localRepositoryUrl@</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <id>local.central</id> + <url>@localRepositoryUrl@</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + <pluginRepository> + <id>local.it</id> + <url>file://@project.build.directory@/it/repo</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + </pluginRepositories> + </profile> + </profiles> +</settings>
