forked from loafle/openapi-generator-original
[Java] BeanValidation + JAXRS CXF server generator (#4068)
* add pom-file to cxf including cxf-client #2017 * adapt pom sourceFolder in pom.mustache to gen/java #2017 * add test templates for CXF #2017 * optimize mustache template structure, remove tabs #3280 #2549 * refined dependency to swagger-jaxrs #2017 * refined annotations and line breaks #2549 * fix tabs instead of spaces... * move annotations from getter to field for server model * cleanup tabs * add example for gzipping #2017 * add complete WAR to cxf-server #2017 * add readme + rework pom #2017 * add cli switch for beanvalidation #2549 * move beanvalidation into separate subtemplate and reuse for cxf * add beanValidation java template * corrected path to mustache file * fix AbstractOptionsTest, add default false for USE_BEANVALIDATION * add pom-file to cxf including cxf-client #2017 * adapt pom sourceFolder in pom.mustache to gen/java #2017 * add test templates for CXF #2017 * optimize mustache template structure, remove tabs #3280 #2549 * refined dependency to swagger-jaxrs #2017 * refined annotations and line breaks #2549 * fix tabs instead of spaces... * move annotations from getter to field for server model * cleanup tabs * add example for gzipping #2017 * add complete WAR to cxf-server #2017 * add readme + rework pom #2017 * add cli switch for beanvalidation #2549 * move beanvalidation into separate subtemplate and reuse for cxf * add beanValidation java template * corrected path to mustache file * fix AbstractOptionsTest, add default false for USE_BEANVALIDATION * add beanvalidation to okhttp-gson library #2549 * cleanup api.mustache for cxf #3281 * temporary fix for invalid BeanValidation-pattern with / #2549 * temporary fix for invalid BeanValidation-pattern with / #2549 * remove jaxrs-annotations from implementation classes #3281 * add configuration to generate spring web application #4003 * clean up unnecessary @Path annotation (part of method level!) * add support for minItems/maxItems #2549 * add support for BeanValidation for query params #2549 * add imports for bean validation #2549 * add switches for various cxf server features #2017 * fix tests #2549 #2017 * re-create bin folder * cleanup * cleanup * Revert "temporary solution for pattern - move to AbstractJavaCodegen #2549" This reverts commit 82df5e657f31303bcb7d38f1dc013183d3509da2, reversing changes made to 65e87f23a6804a0d5c0926c916a9cd6866e7fee0. Conflicts: bin/akka-scala-petstore.sh bin/android-petstore-all.sh bin/android-petstore-httpclient.sh bin/android-petstore-volley.sh bin/android-petstore.sh bin/aspnet5-petstore-server.sh bin/clojure-petstore.sh bin/cpprest-petstore.sh bin/csharp-dotnet2-petstore.sh bin/csharp-petstore-all.sh bin/csharp-petstore.sh bin/csharp-property-changed-petstore.sh bin/cwiki-petstore.sh bin/dart-petstore.sh bin/dynamic-html.sh bin/erlang-petstore-server.sh bin/flash-petstore.sh bin/flaskConnexion-python2.sh bin/flaskConnexion.sh bin/go-petstore-server.sh bin/go-petstore.sh bin/groovy-petstore.sh bin/haskell-servant-petstore.sh bin/html-petstore.sh bin/html2-petstore.sh bin/java-inflector-petstore-server.sh bin/java-petstore-all.sh bin/java-petstore-feign.sh bin/java-petstore-jersey1.sh bin/java-petstore-jersey2.sh bin/java-petstore-okhttp-gson-parcelable.sh bin/java-petstore-okhttp-gson.sh bin/java-petstore-retrofit.sh bin/java-petstore-retrofit2.sh bin/java-petstore-retrofit2rx.sh bin/java-undertow-petstore-server.sh bin/java8-petstore-jersey2.sh bin/javascript-closure-angular.sh bin/javascript-petstore-all.sh bin/javascript-petstore.sh bin/javascript-promise-petstore.sh bin/jaxrs-cxf-cdi-petstore-server.sh bin/jaxrs-cxf-petstore-server.sh bin/jaxrs-jersey1-petstore-server.sh bin/jaxrs-petstore-server.sh bin/jaxrs-resteasy-joda-petstore-server.json bin/jaxrs-resteasy-joda-petstore-server.sh bin/jaxrs-resteasy-petstore-server.sh bin/jaxrs-spec-petstore-server.sh bin/jmeter-petstore.sh bin/lumen-petstore-server.sh bin/nancyfx-petstore-server.sh bin/nodejs-petstore-server.sh bin/objc-petstore-all.sh bin/objc-petstore-coredata.sh bin/objc-petstore.sh bin/perl-petstore.sh bin/php-petstore.sh bin/python-petstore.sh bin/qt5-petstore.sh bin/rails5-petstore-server.sh bin/ruby-petstore.sh bin/run-all-petstore bin/scala-async-petstore.sh bin/scala-petstore.sh bin/scalatra-petstore-server.sh bin/security/csharp-petstore.sh bin/security/go-petstore.sh bin/security/java-petstore-okhttp-gson.sh bin/security/javascript-closure-angular.sh bin/security/javascript-petstore.sh bin/security/lumen-petstore-server.sh bin/security/objc-petstore.sh bin/security/perl-petstore.sh bin/security/php-petstore.sh bin/security/python-petstore.sh bin/security/qt5cpp-petstore.sh bin/security/ruby-petstore.sh bin/security/run-all-petstore-security-test bin/security/scala-petstore.sh bin/security/silex-petstore-server.sh bin/security/slim-petstore-server.sh bin/security/swift-petstore.sh bin/security/typescript-angular.sh bin/security/typescript-angular2.sh bin/security/typescript-fetch.sh bin/security/typescript-node.sh bin/silex-petstore-server.sh bin/sinatra-petstore-server.sh bin/slim-petstore-server.sh bin/spring-all-pestore.sh bin/spring-cloud-feign-petstore.sh bin/spring-mvc-petstore-j8-async-server.sh bin/spring-mvc-petstore-server.sh bin/spring-stubs.sh bin/springboot-petstore-server.sh bin/swift-petstore-all.sh bin/swift-petstore-promisekit.sh bin/swift-petstore-rxswift.sh bin/swift-petstore.sh bin/tizen-petstore.sh bin/typescript-angular-petstore.sh bin/typescript-angular2-petstore-all.sh bin/typescript-angular2-petstore-with-npm.sh bin/typescript-angular2-petstore.sh bin/typescript-fetch-petstore-all.sh bin/typescript-fetch-petstore-target-es6.sh bin/typescript-fetch-petstore-with-npm-version.sh bin/typescript-fetch-petstore.sh bin/typescript-node-petstore-all.sh bin/typescript-node-petstore-with-npm.sh bin/typescript-node-petstore.sh bin/typescript-petstore-npm.json bin/windows/akka-scala-petstore.bat bin/windows/android-petstore.bat bin/windows/aspnet5-petstore-server.bat bin/windows/async-scala-petstore.bat bin/windows/clojure-petstore.bat bin/windows/cpprest-petstore.bat bin/windows/csharp-petstore.bat bin/windows/dart-petstore.bat bin/windows/dynamic-html-petstore.bat bin/windows/flash-petstore.bat bin/windows/go-petstore.bat bin/windows/html-petstore.bat bin/windows/java-petstore-okhttp-gson.bat bin/windows/java-petstore.bat bin/windows/javascript-petstore.bat bin/windows/objc-petstore.bat bin/windows/perl-petstore.bat bin/windows/php-petstore.bat bin/windows/python-petstore.bat bin/windows/qt5cpp-petstore.bat bin/windows/rails5-petstore-server.bat bin/windows/ruby-petstore.bat bin/windows/scala-petstore.bat bin/windows/spring-mvc-petstore-j8-async-server.bat bin/windows/spring-mvc-petstore-server.bat bin/windows/springboot-petstore-server.bat bin/windows/swift-petstore.bat bin/windows/tizen-petstore.bat bin/windows/typescript-angular.bat bin/windows/typescript-angular2.bat bin/windows/typescript-fetch.bat bin/windows/typescript-node-with-npm.bat bin/windows/typescript-node.bat * Revert "cleanup" This reverts commit c752ba85d8a795ebcaf902a0eb06ab0c5755d128. * Revert "re-create bin folder" This reverts commit 8a6d41314784a2ae5ce29ae54d7db1ebec418751. Conflicts: bin/windows/spring-mvc-petstore-j8-async-server.bat bin/windows/spring-mvc-petstore-server.bat bin/windows/springboot-petstore-server.bat * Revert "re-create bin folder" This reverts commit 8a6d41314784a2ae5ce29ae54d7db1ebec418751. Conflicts: bin/windows/spring-mvc-petstore-j8-async-server.bat bin/windows/spring-mvc-petstore-server.bat bin/windows/springboot-petstore-server.bat * re-create bin from master * Revert "re-create bin from master" This reverts commit d4b5c9aac54d62dfb3790c1bf2829472be2ec8fd. * Revert "Revert "re-create bin folder"" This reverts commit 4369b35dbe9d21f8a93e7632fd92a9a760256db5. * Revert "re-create bin folder" This reverts commit 8a6d41314784a2ae5ce29ae54d7db1ebec418751. * Revert "temporary solution for pattern - move to AbstractJavaCodegen #2549" This reverts commit 82df5e657f31303bcb7d38f1dc013183d3509da2, reversing changes made to 65e87f23a6804a0d5c0926c916a9cd6866e7fee0. * correct @Path to re-activate Swagger support # * change sourceFolder to default * re-activate unittest generator + support gzip switch #2017 * add switch to support Spring Boot + integration tests * add cxf client generator, rename cxf server generator #2017 * add interfaces for language feature support #4003 * add comments #2017 * correct reference to context.xml.mustache #4003 * use dynamic sourceFolder path #2017 * replace tabs with spaces #4003 * use hard-coded sourceFolder #4003 * rename language for backwards compatibility * cleanup todo comment #4003 * move convertPropertyToBooleanAndWriteBack to DefaultCodegen #4003 * change reference to beanValidation.mustache to local copy for cxf * cleanup client-side beanvalidation (currently not working in CXF) * add support for tags #4003 * fix instantiiation of method parameters * move commonValidationFeature from bus to endpoint #4003
This commit is contained in:
@@ -12,15 +12,24 @@ import javax.ws.rs.core.Response;
|
||||
|
||||
import org.apache.cxf.jaxrs.ext.multipart.*;
|
||||
|
||||
@Path("{{contextPath}}")
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
{{/useBeanValidation}}
|
||||
|
||||
@Path("/")
|
||||
@Api(value = "/", description = "{{description}}")
|
||||
public interface {{classname}} {
|
||||
{{#operations}}
|
||||
{{#operation}}
|
||||
|
||||
@{{httpMethod}}
|
||||
{{#subresourceOperation}}@Path("{{path}}"){{/subresourceOperation}}
|
||||
{{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}} }){{/hasConsumes}}
|
||||
{{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }){{/hasProduces}}
|
||||
Response {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}},{{/hasMore}}{{/allParams}});
|
||||
@ApiOperation(value = "{{summary}}", tags={ {{#vendorExtensions.x-tags}}"{{tag}}"{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.x-tags}} })
|
||||
public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
|
||||
{{/operation}}
|
||||
}
|
||||
{{/operations}}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package {{package}}.impl;
|
||||
|
||||
import {{package}}.*;
|
||||
{{#imports}}import {{import}};
|
||||
{{/imports}}
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.Response;
|
||||
import org.apache.cxf.jaxrs.model.wadl.Description;
|
||||
import org.apache.cxf.jaxrs.model.wadl.DocTarget;
|
||||
|
||||
import org.apache.cxf.jaxrs.ext.multipart.*;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
|
||||
{{#description}}
|
||||
{{/description}}
|
||||
public class {{classname}}ServiceImpl implements {{classname}} {
|
||||
{{#operations}}
|
||||
{{#operation}}
|
||||
public {{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}} {{nickname}}({{#allParams}}{{>queryParamsImpl}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
|
||||
// TODO: Implement...
|
||||
|
||||
{{#returnType}}return null;{{/returnType}}
|
||||
}
|
||||
|
||||
{{/operation}}
|
||||
}
|
||||
{{/operations}}
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
{{>licenseInfo}}
|
||||
|
||||
package {{package}};
|
||||
|
||||
{{#imports}}import {{import}};
|
||||
{{/imports}}
|
||||
import org.junit.Test;
|
||||
import org.junit.Before;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
|
||||
import org.apache.cxf.jaxrs.client.ClientConfiguration;
|
||||
import org.apache.cxf.jaxrs.client.WebClient;
|
||||
{{#useGzipFeature}}
|
||||
import org.apache.cxf.transport.common.gzip.GZIPInInterceptor;
|
||||
import org.apache.cxf.transport.common.gzip.GZIPOutInterceptor;
|
||||
{{/useGzipFeature}}
|
||||
|
||||
{{#useLoggingFeature}}
|
||||
import org.apache.cxf.interceptor.LoggingOutInterceptor;
|
||||
{{/useLoggingFeature}}
|
||||
|
||||
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
|
||||
|
||||
{{^fullJavaUtil}}
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
{{/fullJavaUtil}}
|
||||
|
||||
{{#generateSpringBootApplication}}
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.test.IntegrationTest;
|
||||
import org.springframework.boot.test.SpringApplicationConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.context.web.WebAppConfiguration;
|
||||
{{/generateSpringBootApplication}}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* API tests for {{classname}}
|
||||
*/
|
||||
{{#generateSpringBootApplication}}
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@SpringApplicationConfiguration(classes = SpringBootApplication.class)
|
||||
@WebAppConfiguration
|
||||
@IntegrationTest("server.port=0")
|
||||
{{/generateSpringBootApplication}}
|
||||
public class {{classname}}Test {
|
||||
|
||||
{{#generateSpringBootApplication}}
|
||||
@Value("${local.server.port}")
|
||||
private int serverPort;
|
||||
{{/generateSpringBootApplication}}
|
||||
|
||||
private {{classname}} api;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
JacksonJsonProvider provider = new JacksonJsonProvider();
|
||||
List providers = new ArrayList();
|
||||
providers.add(provider);
|
||||
|
||||
{{#generateSpringBootApplication}}
|
||||
api = JAXRSClientFactory.create("http://localhost:" + serverPort + "/services/services", {{classname}}.class, providers);
|
||||
{{/generateSpringBootApplication}}
|
||||
{{^generateSpringBootApplication}}
|
||||
api = JAXRSClientFactory.create("{{basePath}}", {{classname}}.class, providers);
|
||||
{{/generateSpringBootApplication}}
|
||||
org.apache.cxf.jaxrs.client.Client client = WebClient.client(api);
|
||||
|
||||
ClientConfiguration config = WebClient.getConfig(client);
|
||||
{{#useGzipFeature}}
|
||||
// Example for using Gzipping
|
||||
GZIPOutInterceptor gzipOutInterceptor = new GZIPOutInterceptor();
|
||||
// use Gzipping for first request sent to server
|
||||
//gzipOutInterceptor.setForce(true);
|
||||
config.getOutInterceptors().add(gzipOutInterceptor);
|
||||
|
||||
config.getInInterceptors().add(new GZIPInInterceptor());
|
||||
{{/useGzipFeature}}
|
||||
{{#useLoggingFeature}}
|
||||
LoggingOutInterceptor loggingOutInterceptor = new LoggingOutInterceptor();
|
||||
config.getOutInterceptors().add(loggingOutInterceptor);
|
||||
{{/useLoggingFeature}}
|
||||
}
|
||||
|
||||
{{#operations}}{{#operation}}
|
||||
/**
|
||||
* {{summary}}
|
||||
*
|
||||
* {{notes}}
|
||||
*
|
||||
* @throws ApiException
|
||||
* if the Api call fails
|
||||
*/
|
||||
@Test
|
||||
public void {{operationId}}Test() {
|
||||
{{#allParams}}
|
||||
{{{dataType}}} {{paramName}} = null;
|
||||
{{/allParams}}
|
||||
// {{#returnType}}{{{returnType}}} response = {{/returnType}}api.{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
|
||||
|
||||
// TODO: test validations
|
||||
}
|
||||
{{/operation}}{{/operations}}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{{#required}}
|
||||
@NotNull
|
||||
{{/required}}
|
||||
{{#pattern}}
|
||||
@Pattern(regexp="{{pattern}}")
|
||||
{{/pattern}}
|
||||
{{#minLength}}
|
||||
{{#maxLength}}
|
||||
@Size(min={{minLength}},max={{maxLength}})
|
||||
{{/maxLength}}
|
||||
{{/minLength}}
|
||||
{{#minLength}}
|
||||
{{^maxLength}}
|
||||
@Size(min={{minLength}})
|
||||
{{/maxLength}}
|
||||
{{/minLength}}
|
||||
{{^minLength}}
|
||||
{{#maxLength}}
|
||||
@Size(max={{maxLength}})
|
||||
{{/maxLength}}
|
||||
{{/minLength}}
|
||||
{{#minItems}}
|
||||
{{#maxItems}}
|
||||
@Size(min={{minItems}},max={{maxItems}})
|
||||
{{/maxItems}}
|
||||
{{/minItems}}
|
||||
{{#minItems}}
|
||||
{{^maxItems}}
|
||||
@Size(min={{minItems}})
|
||||
{{/maxItems}}
|
||||
{{/minItems}}
|
||||
{{^minItems}}
|
||||
{{#maxItems}}
|
||||
@Size(max={{maxItems}})
|
||||
{{/maxItems}}
|
||||
{{/minItems}}
|
||||
{{#minimum}}
|
||||
//@Min({{minimum}})
|
||||
{{/minimum}}
|
||||
{{#maximum}}
|
||||
//@Max({{maximum}})
|
||||
{{/maximum}}
|
||||
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* {{{appName}}}
|
||||
* {{{appDescription}}}
|
||||
*
|
||||
* {{#version}}OpenAPI spec version: {{{version}}}{{/version}}
|
||||
* {{#infoEmail}}Contact: {{{infoEmail}}}{{/infoEmail}}
|
||||
*
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen.git
|
||||
* Do not edit the class manually.
|
||||
*
|
||||
* Licensed 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.
|
||||
*/
|
||||
@@ -2,6 +2,9 @@ package {{package}};
|
||||
|
||||
{{#imports}}import {{import}};
|
||||
{{/imports}}
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
{{/useBeanValidation}}
|
||||
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
@@ -7,10 +8,13 @@ import javax.xml.bind.annotation.XmlEnum;
|
||||
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
{{#hasVars}} @XmlType(name = "{{classname}}", propOrder =
|
||||
{ {{#vars}}"{{name}}"{{^-last}}, {{/-last}}{{/vars}}
|
||||
{ {{#vars}}"{{name}}"{{^-last}}, {{/-last}}{{/vars}}
|
||||
}){{/hasVars}}
|
||||
{{^hasVars}}@XmlType(name = "{{classname}}"){{/hasVars}}
|
||||
{{^parent}}@XmlRootElement(name="{{classname}}"){{/parent}}
|
||||
{{#description}}
|
||||
@ApiModel(description="{{{description}}}")
|
||||
{{/description}}
|
||||
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {
|
||||
{{#vars}}{{#isEnum}}
|
||||
|
||||
@@ -19,16 +23,29 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {
|
||||
{{>enumClass}}{{/items}}{{/items.isEnum}}
|
||||
|
||||
@XmlElement(name="{{baseName}}")
|
||||
@ApiModelProperty({{#example}}example = "{{example}}", {{/example}}{{#required}}required = {{required}}, {{/required}}value = "{{{description}}}")
|
||||
private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}}
|
||||
|
||||
{{#vars}}
|
||||
/**{{#description}}
|
||||
* {{{description}}}{{/description}}{{#minimum}}
|
||||
* minimum: {{minimum}}{{/minimum}}{{#maximum}}
|
||||
* maximum: {{maximum}}{{/maximum}}
|
||||
**/
|
||||
{{#vendorExtensions.extraAnnotation}}{{vendorExtensions.extraAnnotation}}{{/vendorExtensions.extraAnnotation}}
|
||||
public {{{datatypeWithEnum}}} {{getter}}() {
|
||||
/**
|
||||
{{#description}}
|
||||
* {{{description}}}
|
||||
{{/description}}
|
||||
{{^description}}
|
||||
* Get {{name}}
|
||||
{{/description}}
|
||||
{{#minimum}}
|
||||
* minimum: {{minimum}}
|
||||
{{/minimum}}
|
||||
{{#maximum}}
|
||||
* maximum: {{maximum}}
|
||||
{{/maximum}}
|
||||
* @return {{name}}
|
||||
**/
|
||||
{{#vendorExtensions.extraAnnotation}}
|
||||
{{vendorExtensions.extraAnnotation}}
|
||||
{{/vendorExtensions.extraAnnotation}}
|
||||
{{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}} public {{{datatypeWithEnum}}} {{getter}}() {
|
||||
return {{name}};
|
||||
}
|
||||
public void {{setter}}({{{datatypeWithEnum}}} {{name}}) {
|
||||
|
||||
@@ -0,0 +1,181 @@
|
||||
<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>{{groupId}}</groupId>
|
||||
<artifactId>{{artifactId}}</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>{{artifactId}}</name>
|
||||
<version>{{artifactVersion}}</version>
|
||||
<build>
|
||||
<sourceDirectory>src/main/java</sourceDirectory>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--plugin>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-maven-plugin</artifactId>
|
||||
<version>${jetty-version}</version>
|
||||
<configuration>
|
||||
<webApp>
|
||||
<contextPath>/</contextPath>
|
||||
</webApp>
|
||||
<webAppSourceDirectory>target/${project.artifactId}-${project.version}</webAppSourceDirectory>
|
||||
<stopPort>8079</stopPort>
|
||||
<stopKey>stopit</stopKey>
|
||||
<httpConnector>
|
||||
<port>{{serverPort}}</port>
|
||||
<idleTimeout>60000</idleTimeout>
|
||||
</httpConnector>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>start-jetty</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>start</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<scanIntervalSeconds>0</scanIntervalSeconds>
|
||||
<daemon>true</daemon>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>stop-jetty</id>
|
||||
<phase>post-integration-test</phase>
|
||||
<goals>
|
||||
<goal>stop</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin-->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>1.9.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>add-source</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>add-source</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sources>
|
||||
<source>src/gen/java</source>
|
||||
</sources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-jaxrs</artifactId>
|
||||
<scope>compile</scope>
|
||||
<version>${swagger-core-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>${logback-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-core</artifactId>
|
||||
<version>${logback-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit-version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
{{#useBeanValidation}}
|
||||
<!-- Bean Validation API support -->
|
||||
<dependency>
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
<version>${beanvalidation-version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
{{/useBeanValidation}}
|
||||
<!-- CXF Client -->
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-rs-client</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- CXF server -->
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-rs-service-description</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-ws-policy</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-wsdl</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
{{#useBeanValidationFeature}}
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>5.2.2.Final</version>
|
||||
</dependency>
|
||||
{{/useBeanValidationFeature}}
|
||||
</dependencies>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>sonatype-snapshots</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
<properties>
|
||||
<java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<swagger-core-version>1.5.9</swagger-core-version>
|
||||
<jetty-version>9.2.9.v20150224</jetty-version>
|
||||
<jersey2-version>2.22.2</jersey2-version>
|
||||
<junit-version>4.12</junit-version>
|
||||
<logback-version>1.1.7</logback-version>
|
||||
<servlet-api-version>2.5</servlet-api-version>
|
||||
{{#useBeanValidation}}
|
||||
<beanvalidation-version>1.1.0.Final</beanvalidation-version>
|
||||
{{/useBeanValidation}}
|
||||
<cxf-version>3.1.6</cxf-version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
</project>
|
||||
@@ -1 +1 @@
|
||||
{{#isQueryParam}}@QueryParam("{{baseName}}") {{{dataType}}} {{paramName}}{{/isQueryParam}}
|
||||
{{#isQueryParam}}@QueryParam("{{baseName}}"){{#useBeanValidation}}{{>beanValidation}}{{/useBeanValidation}}{{{dataType}}} {{paramName}}{{/isQueryParam}}
|
||||
@@ -0,0 +1 @@
|
||||
{{#isQueryParam}}{{{dataType}}} {{paramName}}{{/isQueryParam}}
|
||||
@@ -0,0 +1,142 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:cxf="http://cxf.apache.org/core"
|
||||
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
|
||||
xmlns:jee="http://www.springframework.org/schema/jee"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
|
||||
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd">
|
||||
|
||||
|
||||
|
||||
<import resource="classpath:META-INF/cxf/cxf.xml" />
|
||||
|
||||
<!-- JAXRS providers -->
|
||||
<bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" />
|
||||
|
||||
{{#useMultipartFeature}}
|
||||
<bean id="multipartProvider" class="org.apache.cxf.jaxrs.provider.MultipartProvider" />
|
||||
{{/useMultipartFeature}}
|
||||
|
||||
<!-- Controller -->
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
<bean id="{{classname}}" class="{{package}}.impl.{{classname}}ServiceImpl" />
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
|
||||
{{#useSwaggerFeature}}
|
||||
<!-- CXF Swagger2Feature -->
|
||||
{{! http://cxf.apache.org/docs/swagger2feature.html }}
|
||||
<bean id="swagger2Feature" class="org.apache.cxf.jaxrs.swagger.Swagger2Feature">
|
||||
<!--property name="basePath" value="/"/>
|
||||
<property name="contact" value="${swagger.contact}" />
|
||||
<property name="title" value="${swagger.title}" />
|
||||
<property name="version" value="${swagger.version}" />
|
||||
<property name="description" value="${swagger.description}" />
|
||||
<property name="license" value="${swagger.license}" />
|
||||
<property name="licenseUrl" value="${swagger.licenseUrl}" /-->
|
||||
</bean>
|
||||
{{/useSwaggerFeature}}
|
||||
|
||||
<cxf:bus>
|
||||
<cxf:inInterceptors>
|
||||
{{#useGzipFeature}}
|
||||
<ref bean="GZIPInInterceptor"/>
|
||||
{{/useGzipFeature}}
|
||||
{{#useBeanValidationFeature}}
|
||||
<!-- BeanValidation 1.1 for CXF -->
|
||||
<ref bean="validationInInterceptor" />
|
||||
{{/useBeanValidationFeature}}
|
||||
</cxf:inInterceptors>
|
||||
<cxf:outInterceptors>
|
||||
{{#useGzipFeature}}
|
||||
<ref bean="GZIPOutInterceptor"/>
|
||||
{{/useGzipFeature}}
|
||||
{{#useBeanValidationFeature}}
|
||||
<!-- BeanValidation 1.1 for CXF -->
|
||||
<ref bean="validationOutInterceptor" />
|
||||
{{/useBeanValidationFeature}}
|
||||
</cxf:outInterceptors>
|
||||
<cxf:features>
|
||||
{{#useLoggingFeature}}
|
||||
<cxf:logging />
|
||||
{{/useLoggingFeature}}
|
||||
{{#useGzipFeature}}
|
||||
<ref bean="compressGZIPFeature"/>
|
||||
{{/useGzipFeature}}
|
||||
</cxf:features>
|
||||
<cxf:properties>
|
||||
<entry key="javax.ws.rs.ext.ExceptionMapper" value-ref="exceptionMapper"/>
|
||||
</cxf:properties>
|
||||
</cxf:bus>
|
||||
|
||||
{{#useWadlFeature}}
|
||||
<bean id="wadlGenerator"
|
||||
class="org.apache.cxf.jaxrs.model.wadl.WadlGenerator">
|
||||
<property name="linkJsonToXmlSchema" value="true" />
|
||||
</bean>
|
||||
{{/useWadlFeature}}
|
||||
|
||||
{{#useGzipFeature}}
|
||||
<bean id="GZIPInInterceptor" class="org.apache.cxf.transport.common.gzip.GZIPInInterceptor"/>
|
||||
<bean id="GZIPOutInterceptor" class="org.apache.cxf.transport.common.gzip.GZIPOutInterceptor" >
|
||||
<!--property name="force" value="true" /-->
|
||||
<!--property name="threshold" value="0" /-->
|
||||
</bean>
|
||||
|
||||
<bean id="compressGZIPFeature" class="org.apache.cxf.transport.common.gzip.GZIPFeature"/>
|
||||
{{/useGzipFeature}}
|
||||
|
||||
{{#useBeanValidationFeature}}
|
||||
<bean id="commonValidationFeature" class="org.apache.cxf.validation.BeanValidationFeature"/>
|
||||
<bean id="exceptionMapper" class="org.apache.cxf.jaxrs.validation.ValidationExceptionMapper"/>
|
||||
<bean id="validationProvider" class="org.apache.cxf.validation.BeanValidationProvider" />
|
||||
|
||||
<bean id="validationInInterceptor" class="org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInInterceptor">
|
||||
<property name="provider" ref="validationProvider" />
|
||||
</bean>
|
||||
|
||||
<bean id="validationOutInterceptor" class="org.apache.cxf.jaxrs.validation.JAXRSBeanValidationOutInterceptor">
|
||||
<property name="provider" ref="validationProvider" />
|
||||
</bean>
|
||||
{{/useBeanValidationFeature}}
|
||||
{{^useBeanValidationFeature}}
|
||||
<bean id="exceptionMapper" class="org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper">
|
||||
<property name="addMessageToResponse" value="true" />
|
||||
</bean>
|
||||
{{/useBeanValidationFeature}}
|
||||
|
||||
<!-- REST server -->
|
||||
<jaxrs:server id="restServer" address="/services">
|
||||
<jaxrs:serviceBeans>
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
<ref bean="{{classname}}" />
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
</jaxrs:serviceBeans>
|
||||
<jaxrs:providers>
|
||||
<ref bean="jsonProvider" />
|
||||
{{#useMultipartFeature}}
|
||||
<ref bean="multipartProvider" />
|
||||
{{/useMultipartFeature}}
|
||||
{{#useWadlFeature}}
|
||||
<ref bean="wadlGenerator" />
|
||||
{{/useWadlFeature}}
|
||||
</jaxrs:providers>
|
||||
<jaxrs:features>
|
||||
{{#useSwaggerFeature}}
|
||||
<ref bean="swagger2Feature" />
|
||||
{{/useSwaggerFeature}}
|
||||
{{#useBeanValidationFeature}}
|
||||
<ref bean="commonValidationFeature" />
|
||||
{{/useBeanValidationFeature}}
|
||||
</jaxrs:features>
|
||||
</jaxrs:server>
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,23 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.context.web.SpringBootServletInitializer;
|
||||
import org.springframework.context.annotation.ImportResource;
|
||||
|
||||
@ImportResource({"classpath:/ApplicationContext.xml"})
|
||||
@EnableAutoConfiguration
|
||||
public class SpringBootApplication extends SpringBootServletInitializer {
|
||||
|
||||
@Override
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||
return application.sources(SpringBootApplication.class);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(SpringBootApplication.class, args);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:cxf="http://cxf.apache.org/core"
|
||||
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
|
||||
xmlns:jee="http://www.springframework.org/schema/jee"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xsi:schemaLocation="http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
|
||||
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
|
||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
||||
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd">
|
||||
|
||||
|
||||
|
||||
<import resource="classpath:/ApplicationContext.xml" />
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.3//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
|
||||
<jboss-web>
|
||||
|
||||
<context-root>swagger-cxf-server</context-root>
|
||||
|
||||
</jboss-web>
|
||||
@@ -0,0 +1,231 @@
|
||||
<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>{{groupId}}</groupId>
|
||||
<artifactId>{{artifactId}}</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>{{artifactId}}</name>
|
||||
<version>{{artifactVersion}}</version>
|
||||
<build>
|
||||
<sourceDirectory>src/main/java</sourceDirectory>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>2.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--plugin>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-maven-plugin</artifactId>
|
||||
<version>${jetty-version}</version>
|
||||
<configuration>
|
||||
<webApp>
|
||||
<contextPath>/</contextPath>
|
||||
</webApp>
|
||||
<webAppSourceDirectory>target/${project.artifactId}-${project.version}</webAppSourceDirectory>
|
||||
<stopPort>8079</stopPort>
|
||||
<stopKey>stopit</stopKey>
|
||||
<httpConnector>
|
||||
<port>{{serverPort}}</port>
|
||||
<idleTimeout>60000</idleTimeout>
|
||||
</httpConnector>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>start-jetty</id>
|
||||
<phase>pre-integration-test</phase>
|
||||
<goals>
|
||||
<goal>start</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<scanIntervalSeconds>0</scanIntervalSeconds>
|
||||
<daemon>true</daemon>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>stop-jetty</id>
|
||||
<phase>post-integration-test</phase>
|
||||
<goals>
|
||||
<goal>stop</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin-->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
<version>1.9.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>add-source</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>add-source</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sources>
|
||||
<source>src/gen/java</source>
|
||||
</sources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<!-- build WAR file -->
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>2.1.1</version>
|
||||
<configuration>
|
||||
<failOnMissingWebXml>true</failOnMissingWebXml>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.swagger</groupId>
|
||||
<artifactId>swagger-jaxrs</artifactId>
|
||||
<scope>compile</scope>
|
||||
<version>${swagger-core-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-classic</artifactId>
|
||||
<version>${logback-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.logback</groupId>
|
||||
<artifactId>logback-core</artifactId>
|
||||
<version>${logback-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit-version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
{{#useBeanValidation}}
|
||||
<!-- Bean Validation API support -->
|
||||
<dependency>
|
||||
<groupId>javax.validation</groupId>
|
||||
<artifactId>validation-api</artifactId>
|
||||
<version>${beanvalidation-version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
{{/useBeanValidation}}
|
||||
<!-- CXF Client -->
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-rs-client</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- CXF server -->
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-rs-service-description</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-rs-service-description-swagger</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-ws-policy</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-rt-wsdl</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
{{#generateSpringApplication}}
|
||||
<!-- Spring -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>${spring-version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
<version>${spring-version}</version>
|
||||
</dependency>
|
||||
{{/generateSpringApplication}}
|
||||
{{#generateSpringBootApplication}}
|
||||
<!-- Spring Boot dependencies für Integrationstests -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-tomcat</artifactId>
|
||||
<version>${spring.boot-version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<version>${spring.boot-version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.cxf</groupId>
|
||||
<artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
|
||||
<version>${cxf-version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
{{/generateSpringBootApplication}}
|
||||
</dependencies>
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>sonatype-snapshots</id>
|
||||
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
<properties>
|
||||
<java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<swagger-core-version>1.5.9</swagger-core-version>
|
||||
<jetty-version>9.2.9.v20150224</jetty-version>
|
||||
<jersey2-version>2.22.2</jersey2-version>
|
||||
<junit-version>4.12</junit-version>
|
||||
<logback-version>1.1.7</logback-version>
|
||||
<servlet-api-version>2.5</servlet-api-version>
|
||||
{{#useBeanValidation}}
|
||||
<beanvalidation-version>1.1.0.Final</beanvalidation-version>
|
||||
{{/useBeanValidation}}
|
||||
{{#generateSpringApplication}}
|
||||
<spring-version>4.2.5.RELEASE</spring-version>
|
||||
{{/generateSpringApplication}}
|
||||
{{#generateSpringBootApplication}}
|
||||
<spring.boot-version>1.3.3.RELEASE</spring.boot-version>
|
||||
{{/generateSpringBootApplication}}
|
||||
<cxf-version>3.1.7</cxf-version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
</project>
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
# JAX-RS CXF 3 server application
|
||||
|
||||
## Supported features
|
||||
* Bean-Validation-API support
|
||||
* Spring-configuration of Swagger, WADL and Endpoints
|
||||
* Swagger-API is accessible (CXF3 Swagger2Feature)
|
||||
* WADL is accessible (CXF WADL-Generator)
|
||||
* Unit-tests include Gzip-Interceptors for demonstration
|
||||
|
||||
|
||||
## Urls to access the REST API
|
||||
|
||||
* Available services listing
|
||||
http://localhost:8080/swagger-cxf-server/rest/services/
|
||||
|
||||
* Swagger API
|
||||
http://localhost:8080/swagger-cxf-server/rest/services/swagger.json
|
||||
|
||||
* CXF WADL
|
||||
http://localhost:8080/swagger-cxf-server/rest/services?_wadl
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
|
||||
|
||||
<context-param>
|
||||
<param-name>contextConfigLocation</param-name>
|
||||
<param-value>WEB-INF/context.xml</param-value>
|
||||
</context-param>
|
||||
<listener>
|
||||
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||
</listener>
|
||||
<servlet>
|
||||
<display-name>CXF Service Servlet</display-name>
|
||||
<servlet-name>CXFServiceServlet</servlet-name>
|
||||
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet-mapping>
|
||||
<servlet-name>CXFServiceServlet</servlet-name>
|
||||
<url-pattern>/rest/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
</web-app>
|
||||
Reference in New Issue
Block a user