You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2016/05/09 23:38:14 UTC
[07/16] cxf git commit: [CXF-6869] Adding SpringBoot AutoConfigure
plus initial JAX-WS and JAX-RS Starter modules,
patch from Vedran Pavic applied with thanks, This closes #133
[CXF-6869] Adding SpringBoot AutoConfigure plus initial JAX-WS and JAX-RS Starter modules, patch from Vedran Pavic applied with thanks, This closes #133
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/6242c682
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/6242c682
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/6242c682
Branch: refs/heads/master-jaxrs-2.1
Commit: 6242c682dfce4a2ba4869978c28b14f1472484c1
Parents: 33865ba
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Mon May 9 13:01:42 2016 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Mon May 9 13:01:42 2016 +0100
----------------------------------------------------------------------
integration/pom.xml | 1 +
integration/spring-boot/autoconfigure/pom.xml | 97 ++++++++++++++++
.../autoconfigure/CxfAutoConfiguration.java | 75 ++++++++++++
.../boot/autoconfigure/CxfProperties.java | 88 ++++++++++++++
.../cxf/spring/boot/autoconfigure/package.html | 28 +++++
.../main/resources/META-INF/spring.factories | 3 +
.../CxfAutoConfigurationTests.java | 114 +++++++++++++++++++
integration/spring-boot/pom.xml | 38 +++++++
integration/spring-boot/starter-jax-rs/pom.xml | 59 ++++++++++
integration/spring-boot/starter-jax-ws/pom.xml | 59 ++++++++++
parent/pom.xml | 23 ++++
11 files changed, 585 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/pom.xml
----------------------------------------------------------------------
diff --git a/integration/pom.xml b/integration/pom.xml
index ad4826f..8d81959 100644
--- a/integration/pom.xml
+++ b/integration/pom.xml
@@ -33,5 +33,6 @@
<module>jca</module>
<module>cdi</module>
<module>tracing/tracing-htrace</module>
+ <module>spring-boot</module>
</modules>
</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/autoconfigure/pom.xml
----------------------------------------------------------------------
diff --git a/integration/spring-boot/autoconfigure/pom.xml b/integration/spring-boot/autoconfigure/pom.xml
new file mode 100644
index 0000000..f22048c
--- /dev/null
+++ b/integration/spring-boot/autoconfigure/pom.xml
@@ -0,0 +1,97 @@
+<?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 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>
+ <artifactId>cxf-spring-boot-autoconfigure</artifactId>
+ <packaging>bundle</packaging>
+ <name>Apache CXF Spring Boot Autoconfigure</name>
+ <description>Apache CXF Spring Boot Autoconfigure</description>
+ <url>http://cxf.apache.org</url>
+ <parent>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-parent</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <relativePath>../../../parent/pom.xml</relativePath>
+ </parent>
+ <dependencies>
+ <!-- Compile -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ </dependency>
+ <!-- Optional -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>${project.version}</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ <version>${project.version}</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${project.version}</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>${cxf.servlet-api.group}</groupId>
+ <artifactId>${cxf.servlet-api.artifact}</artifactId>
+ <version>${cxf.servlet-api.version}</version>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <!-- Annotation processing -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-configuration-processor</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <!-- Test -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-library</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>${cxf.spring.mock}</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-web</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfiguration.java b/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfiguration.java
new file mode 100644
index 0000000..bc1d59c
--- /dev/null
+++ b/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfiguration.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 org.apache.cxf.spring.boot.autoconfigure;
+
+import java.util.Map;
+
+import org.apache.cxf.bus.spring.SpringBus;
+import org.apache.cxf.transport.servlet.CXFServlet;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
+import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration;
+import org.springframework.boot.context.embedded.ServletRegistrationBean;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+
+/**
+ * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration Auto-configuration} for Apache CXF.
+ *
+ * @author Vedran Pavic
+ */
+@Configuration
+@ConditionalOnWebApplication
+@ConditionalOnClass(CXFServlet.class)
+@ConditionalOnMissingBean(SpringBus.class)
+@EnableConfigurationProperties(CxfProperties.class)
+@AutoConfigureAfter(EmbeddedServletContainerAutoConfiguration.class)
+public class CxfAutoConfiguration {
+
+ private final CxfProperties properties;
+
+ public CxfAutoConfiguration(CxfProperties properties) {
+ this.properties = properties;
+ }
+
+ @Bean
+ public ServletRegistrationBean messageDispatcherServlet() {
+ String path = this.properties.getPath();
+ String urlMapping = path.endsWith("/") ? path + "*" : path + "/*";
+ ServletRegistrationBean registration = new ServletRegistrationBean(
+ new CXFServlet(), urlMapping);
+ CxfProperties.Servlet servletProperties = this.properties.getServlet();
+ registration.setLoadOnStartup(servletProperties.getLoadOnStartup());
+ for (Map.Entry<String, String> entry : servletProperties.getInit().entrySet()) {
+ registration.addInitParameter(entry.getKey(), entry.getValue());
+ }
+ return registration;
+ }
+
+ @Configuration
+ @ImportResource("classpath:META-INF/cxf/cxf.xml")
+ protected static class CxfConfiguration {
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfProperties.java
----------------------------------------------------------------------
diff --git a/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfProperties.java b/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfProperties.java
new file mode 100644
index 0000000..5865562
--- /dev/null
+++ b/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/CxfProperties.java
@@ -0,0 +1,88 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.spring.boot.autoconfigure;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * {@link ConfigurationProperties} for Apache CXF.
+ *
+ * @author Vedran Pavic
+ */
+@ConfigurationProperties("cxf")
+public class CxfProperties {
+
+ /**
+ * Path that serves as the base URI for the services.
+ */
+ @NotNull
+ @Pattern(regexp = "/[^?#]*", message = "Path must start with /")
+ private String path = "/services";
+
+ private final Servlet servlet = new Servlet();
+
+ public String getPath() {
+ return this.path;
+ }
+
+ public void setPath(String path) {
+ this.path = path;
+ }
+
+ public Servlet getServlet() {
+ return this.servlet;
+ }
+
+ public static class Servlet {
+
+ /**
+ * Servlet init parameters to pass to Apache CXF.
+ */
+ private Map<String, String> init = new HashMap<String, String>();
+
+ /**
+ * Load on startup priority of the Apache CXF servlet.
+ */
+ private int loadOnStartup = -1;
+
+ public Map<String, String> getInit() {
+ return this.init;
+ }
+
+ public void setInit(Map<String, String> init) {
+ this.init = init;
+ }
+
+ public int getLoadOnStartup() {
+ return this.loadOnStartup;
+ }
+
+ public void setLoadOnStartup(int loadOnStartup) {
+ this.loadOnStartup = loadOnStartup;
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/package.html
----------------------------------------------------------------------
diff --git a/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/package.html b/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/package.html
new file mode 100644
index 0000000..01fa103
--- /dev/null
+++ b/integration/spring-boot/autoconfigure/src/main/java/org/apache/cxf/spring/boot/autoconfigure/package.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+ 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.
+-->
+</head>
+<body bgcolor="white">
+
+Auto-configuration for Apache CXF.
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/autoconfigure/src/main/resources/META-INF/spring.factories
----------------------------------------------------------------------
diff --git a/integration/spring-boot/autoconfigure/src/main/resources/META-INF/spring.factories b/integration/spring-boot/autoconfigure/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..1fc5d7f
--- /dev/null
+++ b/integration/spring-boot/autoconfigure/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,3 @@
+# Auto Configure
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.cxf.spring.boot.autoconfigure.CxfAutoConfiguration
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/autoconfigure/src/test/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfigurationTests.java
----------------------------------------------------------------------
diff --git a/integration/spring-boot/autoconfigure/src/test/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfigurationTests.java b/integration/spring-boot/autoconfigure/src/test/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfigurationTests.java
new file mode 100644
index 0000000..2e9780f
--- /dev/null
+++ b/integration/spring-boot/autoconfigure/src/test/java/org/apache/cxf/spring/boot/autoconfigure/CxfAutoConfigurationTests.java
@@ -0,0 +1,114 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.spring.boot.autoconfigure;
+
+import org.junit.After;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.springframework.beans.factory.BeanCreationException;
+import org.springframework.boot.context.embedded.ServletRegistrationBean;
+import org.springframework.boot.test.EnvironmentTestUtils;
+import org.springframework.mock.web.MockServletContext;
+import org.springframework.test.util.ReflectionTestUtils;
+import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
+
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasEntry;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Tests for {@link CxfAutoConfiguration}.
+ *
+ * @author Vedran Pavic
+ */
+public class CxfAutoConfigurationTests {
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ private AnnotationConfigWebApplicationContext context;
+
+ @After
+ public void close() {
+ if (this.context != null) {
+ this.context.close();
+ }
+ }
+
+ @Test
+ public void defaultConfiguration() {
+ load(CxfAutoConfiguration.class);
+ assertThat(this.context.getBeansOfType(ServletRegistrationBean.class).size(),
+ equalTo(1));
+ }
+
+ @Test
+ public void customPathMustBeginWithASlash() {
+ this.thrown.expect(BeanCreationException.class);
+ this.thrown.expectMessage("Path must start with /");
+ load(CxfAutoConfiguration.class, "spring.cxf.path=invalid");
+ }
+
+ @Test
+ public void customPathWithTrailingSlash() {
+ load(CxfAutoConfiguration.class, "spring.cxf.path=/valid/");
+ assertThat(this.context.getBean(ServletRegistrationBean.class).getUrlMappings(),
+ contains("/valid/*"));
+ }
+
+ @Test
+ public void customPath() {
+ load(CxfAutoConfiguration.class, "spring.cxf.path=/valid");
+ assertThat(this.context.getBeansOfType(ServletRegistrationBean.class).size(),
+ equalTo(1));
+ assertThat(this.context.getBean(ServletRegistrationBean.class).getUrlMappings(),
+ contains("/valid/*"));
+ }
+
+ @Test
+ public void customLoadOnStartup() {
+ load(CxfAutoConfiguration.class, "spring.cxf.servlet.load-on-startup=1");
+ ServletRegistrationBean registrationBean = this.context
+ .getBean(ServletRegistrationBean.class);
+ assertThat(ReflectionTestUtils.getField(registrationBean, "loadOnStartup"),
+ equalTo(1));
+ }
+
+ @Test
+ public void customInitParameters() {
+ load(CxfAutoConfiguration.class, "spring.cxf.servlet.init.key1=value1",
+ "spring.cxf.servlet.init.key2=value2");
+ ServletRegistrationBean registrationBean = this.context
+ .getBean(ServletRegistrationBean.class);
+ assertThat(registrationBean.getInitParameters(), hasEntry("key1", "value1"));
+ assertThat(registrationBean.getInitParameters(), hasEntry("key2", "value2"));
+ }
+
+ private void load(Class<?> config, String... environment) {
+ AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
+ ctx.setServletContext(new MockServletContext());
+ EnvironmentTestUtils.addEnvironment(ctx, environment);
+ ctx.register(config);
+ ctx.refresh();
+ this.context = ctx;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/pom.xml
----------------------------------------------------------------------
diff --git a/integration/spring-boot/pom.xml b/integration/spring-boot/pom.xml
new file mode 100644
index 0000000..d802ac7
--- /dev/null
+++ b/integration/spring-boot/pom.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<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>
+ <artifactId>cxf-integration-spring-boot</artifactId>
+ <packaging>pom</packaging>
+ <name>Apache CXF Spring Boot Integration</name>
+ <description>Apache CXF Spring Boot Integration</description>
+ <url>http://cxf.apache.org</url>
+ <parent>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <relativePath>../../parent/pom.xml</relativePath>
+ </parent>
+ <modules>
+ <module>autoconfigure</module>
+ <module>starter-jax-ws</module>
+ <module>starter-jax-rs</module>
+ </modules>
+</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/starter-jax-rs/pom.xml
----------------------------------------------------------------------
diff --git a/integration/spring-boot/starter-jax-rs/pom.xml b/integration/spring-boot/starter-jax-rs/pom.xml
new file mode 100644
index 0000000..a08889b
--- /dev/null
+++ b/integration/spring-boot/starter-jax-rs/pom.xml
@@ -0,0 +1,59 @@
+<?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 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>
+ <artifactId>cxf-spring-boot-starter-jax-rs</artifactId>
+ <packaging>bundle</packaging>
+ <name>Apache CXF Spring Boot Starter JAX-RS</name>
+ <description>Apache CXF Spring Boot Starter JAX-RS</description>
+ <url>http://cxf.apache.org</url>
+ <parent>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-parent</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <relativePath>../../../parent/pom.xml</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-spring-boot-autoconfigure</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxrs</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${cxf.servlet-api.group}</groupId>
+ <artifactId>${cxf.servlet-api.artifact}</artifactId>
+ <version>${cxf.servlet-api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/integration/spring-boot/starter-jax-ws/pom.xml
----------------------------------------------------------------------
diff --git a/integration/spring-boot/starter-jax-ws/pom.xml b/integration/spring-boot/starter-jax-ws/pom.xml
new file mode 100644
index 0000000..03aabb0
--- /dev/null
+++ b/integration/spring-boot/starter-jax-ws/pom.xml
@@ -0,0 +1,59 @@
+<?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 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>
+ <artifactId>cxf-spring-boot-starter-jax-ws</artifactId>
+ <packaging>bundle</packaging>
+ <name>Apache CXF Spring Boot Starter JAX-WS</name>
+ <description>Apache CXF Spring Boot Starter JAX-WS</description>
+ <url>http://cxf.apache.org</url>
+ <parent>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-parent</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ <relativePath>../../../parent/pom.xml</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-spring-boot-autoconfigure</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${cxf.servlet-api.group}</groupId>
+ <artifactId>${cxf.servlet-api.artifact}</artifactId>
+ <version>${cxf.servlet-api.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ </dependency>
+ </dependencies>
+</project>
http://git-wip-us.apache.org/repos/asf/cxf/blob/6242c682/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 339299d..f9f1f03 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -123,6 +123,7 @@
<cxf.undertow.osgi.version>[1.3.7, 1.4)</cxf.undertow.osgi.version>
<cxf.jibx.version>1.2.6</cxf.jibx.version>
<cxf.junit.version>4.12</cxf.junit.version>
+ <cxf.hamcrest.version>1.3</cxf.hamcrest.version>
<cxf.maven.core.version>3.0.5</cxf.maven.core.version>
<cxf.msv.version>2013.6.1</cxf.msv.version>
<cxf.neethi.version>3.0.3</cxf.neethi.version>
@@ -144,6 +145,7 @@
<cxf.slf4j.version>1.7.21</cxf.slf4j.version>
<cxf.specs.jaxws.api.version>1.2</cxf.specs.jaxws.api.version>
<cxf.spring.version>4.1.9.RELEASE</cxf.spring.version>
+ <cxf.spring.boot.version>1.3.4.RELEASE</cxf.spring.boot.version>
<cxf.spring.security.version>3.2.9.RELEASE</cxf.spring.security.version>
<cxf.spring.osgi.version>1.2.1</cxf.spring.osgi.version>
<cxf.spring.ldap.version>1.3.1.RELEASE</cxf.spring.ldap.version>
@@ -726,6 +728,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-library</artifactId>
+ <version>${cxf.hamcrest.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.6.2</version>
@@ -1243,6 +1251,21 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot</artifactId>
+ <version>${cxf.spring.boot.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-autoconfigure</artifactId>
+ <version>${cxf.spring.boot.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-configuration-processor</artifactId>
+ <version>${cxf.spring.boot.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${cxf.spring.security.version}</version>