forked from loafle/openapi-generator-original
Compare commits
11 Commits
master
...
jaxrs-jers
Author | SHA1 | Date | |
---|---|---|---|
|
4a9c6ffe62 | ||
|
8348a00db9 | ||
|
7fc9d73b13 | ||
|
4bfe8045a9 | ||
|
f60d0e2efa | ||
|
50c7917d92 | ||
|
49d21c4d7a | ||
|
204fd645c8 | ||
|
a703c58f65 | ||
|
9f8c1249b9 | ||
|
99bfefab8c |
@ -47,7 +47,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
|implicitHeadersRegex|Skip header parameters that matches given regex in the generated API methods using @ApiImplicitParams annotation. Note: this parameter is ignored when implicitHeaders=true| |null|
|
||||
|invokerPackage|root package for generated code| |org.openapitools.api|
|
||||
|legacyDiscriminatorBehavior|Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C#have this enabled by default).|<dl><dt>**true**</dt><dd>The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.</dd><dt>**false**</dt><dd>The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.</dd></dl>|true|
|
||||
|library|library template (sub-template)|<dl><dt>**jersey1**</dt><dd>Jersey core 1.x</dd><dt>**jersey2**</dt><dd>Jersey core 2.x</dd></dl>|jersey2|
|
||||
|library|library template (sub-template)|<dl><dt>**jersey1**</dt><dd>Jersey core 1.x</dd><dt>**jersey2**</dt><dd>Jersey core 2.x</dd><dt>**jersey3**</dt><dd>Jersey core 3.x</dd></dl>|jersey2|
|
||||
|licenseName|The name of the license| |Unlicense|
|
||||
|licenseUrl|The URL of the license| |http://unlicense.org|
|
||||
|modelPackage|package for generated models| |org.openapitools.model|
|
||||
|
@ -0,0 +1,3 @@
|
||||
invoker.goals = -nsu clean generate-sources
|
||||
# The expected result of the build, possible values are "success" (default) and "failure"
|
||||
invoker.buildResult = success
|
@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2022 OpenAPI-Generator Contributors (https://openapi-generator.tech)
|
||||
~
|
||||
~ 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.
|
||||
-->
|
||||
|
||||
<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/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.openapitools.maven.its</groupId>
|
||||
<artifactId>jaxrs-jersey3</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.javadoc.skip>true</maven.javadoc.skip>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.10.1</version>
|
||||
<configuration>
|
||||
<source>11</source>
|
||||
<target>11</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>@project.groupId@</groupId>
|
||||
<artifactId>@project.artifactId@</artifactId>
|
||||
<version>@project.version@</version>
|
||||
<configuration>
|
||||
<inputSpec>https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml</inputSpec>
|
||||
<generatorName>jaxrs-jersey</generatorName>
|
||||
<library>jersey3</library>
|
||||
<dateLibrary>java8</dateLibrary>
|
||||
<output>${basedir}/out</output>
|
||||
<templateDirectory>${project.basedir}/templates</templateDirectory>
|
||||
<configOptions>
|
||||
</configOptions>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>remote</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
21
modules/openapi-generator-maven-plugin/src/it/jaxrs-jersey3/templates/README.mustache
vendored
Normal file
21
modules/openapi-generator-maven-plugin/src/it/jaxrs-jersey3/templates/README.mustache
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
# TEST TEST TEST
|
||||
|
||||
# {{artifactId}}
|
||||
|
||||
{{appName}}
|
||||
|
||||
- API version: {{appVersion}}
|
||||
{{^hideGenerationTimestamp}}
|
||||
|
||||
- Build date: {{generatedDate}}
|
||||
{{/hideGenerationTimestamp}}
|
||||
|
||||
{{#appDescriptionWithNewLines}}{{{appDescriptionWithNewLines}}}{{/appDescriptionWithNewLines}}
|
||||
|
||||
{{#infoUrl}}
|
||||
For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}})
|
||||
{{/infoUrl}}
|
||||
|
||||
*Automatically generated by the [OpenAPI Generator](https://openapi-generator.tech)*
|
||||
|
||||
… etc.
|
@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright 2022 OpenAPI-Generator Contributors (https://openapi-generator.tech)
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
File readme = new File(basedir, "out/README.md")
|
||||
|
||||
assert readme.isFile()
|
||||
assert readme.text.contains("# TEST TEST TEST")
|
||||
assert readme.text.contains("# openapi-jaxrs-server")
|
||||
assert readme.text.contains("OpenAPI Petstore")
|
||||
|
||||
File mavenPomXml = new File(basedir, "out/pom.xml")
|
||||
assert mavenPomXml.isFile()
|
||||
|
||||
File petApi = new File(basedir, "out/src/gen/java/org/openapitools/api/PetApi.java")
|
||||
assert petApi.isFile()
|
||||
assert petApi.text.contains("import org.openapitools.api.PetApiService;")
|
||||
|
||||
File petApiService = new File(basedir, "out/src/gen/java/org/openapitools/api/PetApiService.java")
|
||||
assert petApiService.isFile()
|
||||
assert petApiService.text.contains("import jakarta.ws.rs.core.Response;")
|
||||
|
||||
File petModel = new File(basedir, "out/src/gen/java/org/openapitools/model/Pet.java")
|
||||
assert petModel.isFile()
|
||||
assert petModel.text.contains("public class Pet")
|
@ -37,8 +37,24 @@ import java.util.*;
|
||||
|
||||
public abstract class AbstractJavaJAXRSServerCodegen extends AbstractJavaCodegen implements BeanValidationFeatures {
|
||||
public static final String SERVER_PORT = "serverPort";
|
||||
public static final String JAXRS_BASE_PACKAGE = "jaxrsBasePackage";
|
||||
public static final String USE_TAGS = "useTags";
|
||||
|
||||
enum JaxRsType {
|
||||
CLASSIC ("javax.ws.rs"),
|
||||
JAKARTA ("jakarta.ws.rs");
|
||||
|
||||
private String basePackage;
|
||||
|
||||
JaxRsType(String basePackage) {
|
||||
this.basePackage = basePackage;
|
||||
}
|
||||
|
||||
public String getBasePackage() {
|
||||
return this.basePackage;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Name of the sub-directory in "src/main/resource" where to find the
|
||||
* Mustache template for the JAX-RS Codegen.
|
||||
@ -49,6 +65,8 @@ public abstract class AbstractJavaJAXRSServerCodegen extends AbstractJavaCodegen
|
||||
protected String title = "OpenAPI Server";
|
||||
protected String serverPort = "8080";
|
||||
|
||||
protected JaxRsType jaxrsType = JaxRsType.CLASSIC;
|
||||
|
||||
protected boolean useBeanValidation = true;
|
||||
protected boolean useTags = false;
|
||||
|
||||
@ -139,6 +157,8 @@ public abstract class AbstractJavaJAXRSServerCodegen extends AbstractJavaCodegen
|
||||
}
|
||||
*/
|
||||
|
||||
this.additionalProperties.put(JAXRS_BASE_PACKAGE, jaxrsType.getBasePackage());
|
||||
|
||||
if (!this.additionalProperties.containsKey(SERVER_PORT)) {
|
||||
URL url = URLPathUtils.getServerURL(openAPI, serverVariableOverrides());
|
||||
// 8080 is the default value for a JEE Server:
|
||||
|
@ -30,6 +30,7 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen {
|
||||
|
||||
protected static final String LIBRARY_JERSEY1 = "jersey1";
|
||||
protected static final String LIBRARY_JERSEY2 = "jersey2";
|
||||
protected static final String LIBRARY_JERSEY3 = "jersey3";
|
||||
|
||||
/**
|
||||
* Default library template to use. (Default: jersey2)
|
||||
@ -59,6 +60,7 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen {
|
||||
CliOption library = new CliOption(CodegenConstants.LIBRARY, CodegenConstants.LIBRARY_DESC).defaultValue(DEFAULT_JERSEY_LIBRARY);
|
||||
supportedLibraries.put(LIBRARY_JERSEY1, "Jersey core 1.x");
|
||||
supportedLibraries.put(LIBRARY_JERSEY2, "Jersey core 2.x");
|
||||
supportedLibraries.put(LIBRARY_JERSEY3, "Jersey core 3.x");
|
||||
library.setEnum(supportedLibraries);
|
||||
|
||||
cliOptions.add(library);
|
||||
@ -101,6 +103,10 @@ public class JavaJerseyServerCodegen extends AbstractJavaJAXRSServerCodegen {
|
||||
setLibrary(DEFAULT_JERSEY_LIBRARY);
|
||||
}
|
||||
|
||||
if (LIBRARY_JERSEY3.equals(library)) {
|
||||
jaxrsType = JaxRsType.JAKARTA;
|
||||
}
|
||||
|
||||
if (additionalProperties.containsKey(CodegenConstants.IMPL_FOLDER)) {
|
||||
implFolder = (String) additionalProperties.get(CodegenConstants.IMPL_FOLDER);
|
||||
}
|
||||
|
@ -4,13 +4,13 @@ import com.sun.jersey.core.spi.component.ComponentContext;
|
||||
import com.sun.jersey.spi.inject.Injectable;
|
||||
import com.sun.jersey.spi.inject.PerRequestTypeInjectableProvider;
|
||||
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.QueryParam;
|
||||
import {{jaxrsBasePackage}}.WebApplicationException;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.Response.Status;
|
||||
import {{jaxrsBasePackage}}.core.UriInfo;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import org.joda.time.DateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -4,13 +4,13 @@ import com.sun.jersey.core.spi.component.ComponentContext;
|
||||
import com.sun.jersey.spi.inject.Injectable;
|
||||
import com.sun.jersey.spi.inject.PerRequestTypeInjectableProvider;
|
||||
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.QueryParam;
|
||||
import {{jaxrsBasePackage}}.WebApplicationException;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.Response.Status;
|
||||
import {{jaxrsBasePackage}}.core.UriInfo;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import org.joda.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -20,10 +20,10 @@ import org.glassfish.jersey.media.multipart.FormDataParam;
|
||||
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import javax.ws.rs.*;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.Valid;
|
||||
@ -60,7 +60,7 @@ public class {{classname}} {
|
||||
}
|
||||
|
||||
{{#operation}}
|
||||
@javax.ws.rs.{{httpMethod}}
|
||||
@{{jaxrsBasePackage}}.{{httpMethod}}
|
||||
{{#subresourceOperation}}@Path("{{{path}}}"){{/subresourceOperation}}
|
||||
{{#hasConsumes}}@Consumes({ {{#consumes}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/consumes}} }){{/hasConsumes}}
|
||||
{{#hasProduces}}@Produces({ {{#produces}}"{{{mediaType}}}"{{^-last}}, {{/-last}}{{/produces}} }){{/hasProduces}}
|
||||
|
@ -13,8 +13,8 @@ import {{package}}.NotFoundException;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
{{/useBeanValidation}}
|
||||
|
@ -13,8 +13,8 @@ import java.io.InputStream;
|
||||
|
||||
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
{{/useBeanValidation}}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package {{invokerPackage}};
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
import javax.ws.rs.core.Application;
|
||||
import {{jaxrsBasePackage}}.ApplicationPath;
|
||||
import {{jaxrsBasePackage}}.core.Application;
|
||||
|
||||
@ApplicationPath("{{{contextPath}}}")
|
||||
public class RestApplication extends Application {
|
||||
|
@ -4,10 +4,10 @@ package {{package}};
|
||||
{{/imports}}
|
||||
import {{package}}.{{classname}}Service;
|
||||
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.inject.Inject;
|
||||
|
||||
|
@ -13,8 +13,8 @@ import java.util.List;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
|
||||
{{>generatedAnnotation}}
|
||||
{{#operations}}
|
||||
|
@ -13,8 +13,8 @@ import java.util.List;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
|
||||
@RequestScoped
|
||||
{{>generatedAnnotation}}
|
||||
|
@ -5,8 +5,8 @@ import java.lang.reflect.Method;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.ws.rs.HttpMethod;
|
||||
import javax.ws.rs.Path;
|
||||
import {{jaxrsBasePackage}}.HttpMethod;
|
||||
import {{jaxrsBasePackage}}.Path;
|
||||
|
||||
import org.apache.cxf.jaxrs.ext.ResourceComparator;
|
||||
import org.apache.cxf.jaxrs.model.ClassResourceInfo;
|
||||
|
@ -7,9 +7,9 @@ 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 javax.ws.rs.core.MediaType;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.MediaType;
|
||||
import org.apache.cxf.jaxrs.ext.multipart.*;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
|
@ -17,8 +17,8 @@ import org.openapitools.codegen.utils.JsonCache;
|
||||
import org.openapitools.codegen.utils.JsonCache.CacheException;
|
||||
{{/loadTestDataFromFile}}
|
||||
{{/generateOperationBody}}
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.Response;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import org.apache.cxf.jaxrs.model.wadl.Description;
|
||||
import org.apache.cxf.jaxrs.model.wadl.DocTarget;
|
||||
|
||||
|
@ -8,8 +8,8 @@ import org.junit.Test;
|
||||
import org.junit.Before;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.MediaType;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
|
||||
import org.apache.cxf.jaxrs.client.ClientConfiguration;
|
||||
import org.apache.cxf.jaxrs.client.WebClient;
|
||||
|
@ -5,8 +5,8 @@ import java.lang.reflect.Method;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.ws.rs.HttpMethod;
|
||||
import javax.ws.rs.Path;
|
||||
import {{jaxrsBasePackage}}.HttpMethod;
|
||||
import {{jaxrsBasePackage}}.Path;
|
||||
|
||||
import org.apache.cxf.jaxrs.ext.ResourceComparator;
|
||||
import org.apache.cxf.jaxrs.model.ClassResourceInfo;
|
||||
|
@ -7,9 +7,9 @@ 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 javax.ws.rs.core.MediaType;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.MediaType;
|
||||
import org.apache.cxf.jaxrs.ext.multipart.*;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
|
@ -8,8 +8,8 @@ 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 {{jaxrsBasePackage}}.*;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import org.apache.cxf.jaxrs.model.wadl.Description;
|
||||
import org.apache.cxf.jaxrs.model.wadl.DocTarget;
|
||||
|
||||
|
@ -8,7 +8,7 @@ import org.junit.Test;
|
||||
import org.junit.Before;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
|
||||
import org.apache.cxf.jaxrs.client.ClientConfiguration;
|
||||
import org.apache.cxf.jaxrs.client.WebClient;
|
||||
|
@ -8,9 +8,9 @@ import com.fasterxml.jackson.datatype.jsr310.*;
|
||||
|
||||
import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
|
||||
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.Produces;
|
||||
import {{jaxrsBasePackage}}.core.MediaType;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
|
||||
@Provider
|
||||
@Produces({MediaType.APPLICATION_JSON})
|
||||
|
@ -4,13 +4,13 @@ import com.sun.jersey.core.spi.component.ComponentContext;
|
||||
import com.sun.jersey.spi.inject.Injectable;
|
||||
import com.sun.jersey.spi.inject.PerRequestTypeInjectableProvider;
|
||||
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.QueryParam;
|
||||
import {{jaxrsBasePackage}}.WebApplicationException;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.Response.Status;
|
||||
import {{jaxrsBasePackage}}.core.UriInfo;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -4,13 +4,13 @@ import com.sun.jersey.core.spi.component.ComponentContext;
|
||||
import com.sun.jersey.spi.inject.Injectable;
|
||||
import com.sun.jersey.spi.inject.PerRequestTypeInjectableProvider;
|
||||
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.QueryParam;
|
||||
import {{jaxrsBasePackage}}.WebApplicationException;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.Response.Status;
|
||||
import {{jaxrsBasePackage}}.core.UriInfo;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -19,10 +19,10 @@ import java.io.InputStream;
|
||||
import com.sun.jersey.multipart.FormDataParam;
|
||||
import com.sun.jersey.multipart.FormDataBodyPart;
|
||||
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import javax.ws.rs.*;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.Valid;
|
||||
|
@ -16,8 +16,8 @@ import java.io.InputStream;
|
||||
import com.sun.jersey.multipart.FormDataParam;
|
||||
import com.sun.jersey.multipart.FormDataBodyPart;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
{{/useBeanValidation}}
|
||||
|
@ -16,8 +16,8 @@ import java.io.InputStream;
|
||||
import com.sun.jersey.multipart.FormDataParam;
|
||||
import com.sun.jersey.multipart.FormDataBodyPart;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
{{/useBeanValidation}}
|
||||
|
@ -1,8 +1,8 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import javax.ws.rs.ext.ParamConverter;
|
||||
import javax.ws.rs.ext.ParamConverterProvider;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverter;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverterProvider;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import javax.ws.rs.ext.ParamConverter;
|
||||
import javax.ws.rs.ext.ParamConverterProvider;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverter;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverterProvider;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.OffsetDateTime;
|
||||
|
@ -0,0 +1,28 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverter;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverterProvider;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Provider
|
||||
public class LocalDateProvider implements ParamConverterProvider {
|
||||
|
||||
public <T> ParamConverter<T> getConverter(Class<T> clazz, Type type, Annotation[] annotations) {
|
||||
if (clazz.getName().equals(LocalDate.class.getName())) {
|
||||
return new ParamConverter<T>() {
|
||||
@SuppressWarnings("unchecked")
|
||||
public T fromString(String value) {
|
||||
return value!=null ? (T) LocalDate.parse(value) : null;
|
||||
}
|
||||
|
||||
public String toString(T bean) {
|
||||
return bean!=null ? bean.toString() : "";
|
||||
}
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import jakarta.ws.rs.ext.ParamConverter;
|
||||
import jakarta.ws.rs.ext.ParamConverterProvider;
|
||||
import jakarta.ws.rs.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import java.time.OffsetDateTime;
|
||||
|
||||
@Provider
|
||||
public class OffsetDateTimeProvider implements ParamConverterProvider {
|
||||
|
||||
public <T> ParamConverter<T> getConverter(Class<T> clazz, Type type, Annotation[] annotations) {
|
||||
if (clazz.getName().equals(OffsetDateTime.class.getName())) {
|
||||
return new ParamConverter<T>() {
|
||||
@SuppressWarnings("unchecked")
|
||||
public T fromString(String value) {
|
||||
return value != null ? (T) OffsetDateTime.parse(value) : null;
|
||||
}
|
||||
|
||||
public String toString(T bean) {
|
||||
return bean != null ? bean.toString() : "";
|
||||
}
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -3,8 +3,8 @@ package {{invokerPackage}};
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
|
||||
import javax.ws.rs.ext.ContextResolver;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.ext.ContextResolver;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.io.IOException;
|
||||
|
||||
@Provider
|
||||
|
@ -1,13 +1,13 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import javax.ws.rs.ext.ParamConverter;
|
||||
import javax.ws.rs.ext.ParamConverterProvider;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverter;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverterProvider;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response;
|
||||
import {{jaxrsBasePackage}}.WebApplicationException;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
|
||||
|
||||
@Provider
|
||||
|
@ -1,13 +1,13 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import org.joda.time.LocalDate;
|
||||
import javax.ws.rs.ext.ParamConverter;
|
||||
import javax.ws.rs.ext.ParamConverterProvider;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverter;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverterProvider;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
import javax.ws.rs.WebApplicationException;
|
||||
import javax.ws.rs.core.Response;
|
||||
import {{jaxrsBasePackage}}.WebApplicationException;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
|
||||
|
||||
@Provider
|
||||
|
@ -1,9 +1,9 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import java.time.LocalDate;
|
||||
import javax.ws.rs.ext.ParamConverter;
|
||||
import javax.ws.rs.ext.ParamConverterProvider;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverter;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverterProvider;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
package {{apiPackage}};
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import javax.ws.rs.ext.ParamConverter;
|
||||
import javax.ws.rs.ext.ParamConverterProvider;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverter;
|
||||
import {{jaxrsBasePackage}}.ext.ParamConverterProvider;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package {{invokerPackage}};
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
import javax.ws.rs.core.Application;
|
||||
import {{jaxrsBasePackage}}.ApplicationPath;
|
||||
import {{jaxrsBasePackage}}.core.Application;
|
||||
|
||||
@ApplicationPath("{{{contextPath}}}")
|
||||
public class RestApplication extends Application {
|
||||
|
@ -15,10 +15,10 @@ import {{package}}.NotFoundException;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import javax.ws.rs.*;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
import javax.inject.Inject;
|
||||
|
||||
{{#useBeanValidation}}
|
||||
|
@ -13,8 +13,8 @@ import {{package}}.NotFoundException;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
|
||||
{{>generatedAnnotation}}
|
||||
{{#operations}}
|
||||
|
@ -14,8 +14,8 @@ import {{package}}.NotFoundException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.enterprise.context.RequestScoped;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
|
||||
@RequestScoped
|
||||
{{>generatedAnnotation}}
|
||||
|
@ -1,9 +1,9 @@
|
||||
package {{invokerPackage}};
|
||||
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.ext.ContextResolver;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
import {{jaxrsBasePackage}}.Produces;
|
||||
import {{jaxrsBasePackage}}.core.MediaType;
|
||||
import {{jaxrsBasePackage}}.ext.ContextResolver;
|
||||
import {{jaxrsBasePackage}}.ext.Provider;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package {{invokerPackage}};
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
import javax.ws.rs.core.Application;
|
||||
import {{jaxrsBasePackage}}.ApplicationPath;
|
||||
import {{jaxrsBasePackage}}.core.Application;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
|
@ -13,10 +13,10 @@ import java.util.Map;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import javax.ws.rs.*;
|
||||
import {{jaxrsBasePackage}}.core.Context;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
{{#useBeanValidation}}
|
||||
import javax.validation.constraints.*;
|
||||
import javax.validation.Valid;
|
||||
|
@ -12,8 +12,8 @@ import java.util.List;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import javax.ws.rs.core.SecurityContext;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
import {{jaxrsBasePackage}}.core.SecurityContext;
|
||||
|
||||
{{>generatedAnnotation}}
|
||||
{{#operations}}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package {{invokerPackage}};
|
||||
|
||||
import javax.ws.rs.ApplicationPath;
|
||||
import javax.ws.rs.core.Application;
|
||||
import {{jaxrsBasePackage}}.ApplicationPath;
|
||||
import {{jaxrsBasePackage}}.core.Application;
|
||||
|
||||
@ApplicationPath("{{{contextPath}}}")
|
||||
public class RestApplication extends Application {
|
||||
|
@ -3,8 +3,8 @@ package {{package}};
|
||||
{{#imports}}import {{import}};
|
||||
{{/imports}}
|
||||
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.Response;
|
||||
import {{jaxrsBasePackage}}.*;
|
||||
import {{jaxrsBasePackage}}.core.Response;
|
||||
|
||||
{{#useSwaggerAnnotations}}
|
||||
import io.swagger.annotations.*;
|
||||
|
@ -3,6 +3,7 @@ package org.openapitools.codegen.java.jaxrs;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import io.swagger.parser.OpenAPIParser;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.servers.Server;
|
||||
@ -24,6 +25,8 @@ import org.testng.annotations.DataProvider;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import static org.openapitools.codegen.TestUtils.assertFileContains;
|
||||
import static org.openapitools.codegen.TestUtils.assertFileNotContains;
|
||||
import static org.testng.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -31,6 +34,7 @@ import java.nio.file.Files;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -47,6 +51,7 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest {
|
||||
Assert.assertEquals(codegen.getName(), "jaxrs-jersey");
|
||||
Assert.assertEquals(codegen.getTemplatingEngine().getClass(), MustacheEngineAdapter.class);
|
||||
Assert.assertEquals(codegen.getDateLibrary(), "legacy");
|
||||
Assert.assertEquals(codegen.supportedLibraries().keySet(), ImmutableSet.of("jersey1", "jersey2", "jersey3"));
|
||||
Assert.assertNull(codegen.getInputSpec());
|
||||
|
||||
codegen.processOpts();
|
||||
@ -127,17 +132,57 @@ public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest {
|
||||
final DefaultGenerator generator = new DefaultGenerator();
|
||||
final List<File> files = generator.opts(input).generate();
|
||||
|
||||
Assert.assertTrue(files.size() > 0);
|
||||
assertTrue(files.size() > 0);
|
||||
for (File file : files) {
|
||||
Assert.assertTrue(file.exists());
|
||||
Assert.assertTrue(file.isFile());
|
||||
}
|
||||
|
||||
TestUtils.validateJavaSourceFiles(files);
|
||||
TestUtils.validatePomXmlFiles(files);
|
||||
|
||||
return files.stream().collect(Collectors.toMap(e -> e.getName().replace(outputPath, ""), i -> i));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJersey2() throws Exception {
|
||||
codegen.setLibrary("jersey2");
|
||||
codegen.setDateLibrary("java8");
|
||||
|
||||
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
|
||||
|
||||
files.values()
|
||||
.stream()
|
||||
.filter(file -> file.getName().endsWith(".java"))
|
||||
.forEach(file -> {
|
||||
// Jersey2 uses "javax.ws.rs"
|
||||
// Let's confirm that "jakarta.ws" is not present
|
||||
assertFileNotContains(file.toPath(), "jakarta.ws");
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testJersey3() throws Exception {
|
||||
codegen.setLibrary("jersey3");
|
||||
codegen.setDateLibrary("java8");
|
||||
|
||||
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
|
||||
|
||||
files.values()
|
||||
.stream()
|
||||
.filter(file -> file.getName().endsWith(".java"))
|
||||
.forEach(file -> {
|
||||
// Jersey3 uses "jakarta.ws.rs"
|
||||
// Let's confirm that "javax.ws" is not present
|
||||
assertFileNotContains(file.toPath(), "javax.ws");
|
||||
});
|
||||
}
|
||||
|
||||
@DataProvider(name = "codegenParameterMatrix")
|
||||
public Object[][] codegenParameterMatrix() {
|
||||
final Set<String> libraries = new JavaJerseyServerCodegen().supportedLibraries().keySet();
|
||||
final List<Object[]> rows = new ArrayList<Object[]>();
|
||||
for (final String jerseyLibrary: ImmutableList.of("jersey1", "jersey2")) {
|
||||
for (final String jerseyLibrary: libraries) {
|
||||
for (final String dateLibrary: ImmutableList.of("joda", "java8")) {
|
||||
rows.add(new Object[] { jerseyLibrary, dateLibrary });
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user