Add CXF codegen

Also rename the existing JAX-RS codegen to JAX-RS-Jersey1 codegen, since
JAX-RS is only a specification. Jersey and CXF are both an
implementation of the JAX-RS specification.
This commit is contained in:
Maelig Nantel 2016-01-15 14:17:16 +01:00 committed by wing328
parent 44c1e27680
commit 3648a79965
7 changed files with 66 additions and 10 deletions

View File

@ -0,0 +1,49 @@
package io.swagger.codegen.languages;
import java.io.File;
import org.apache.commons.lang.WordUtils;
// TODO: create an abstract JavaJAXRSServerCodegen that both Jersey1 & CXF will extends.
public class JavaJaxRSCXFServerCodegen extends JavaJaxRSJersey1ServerCodegen
{
public JavaJaxRSCXFServerCodegen()
{
super();
super.embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "cxf";
// We decided to just provide the CXF interface and let the user create his own files to implement it
super.apiTemplateFiles.remove("apiService.mustache");
super.apiTemplateFiles.remove("apiServiceImpl.mustache");
super.apiTemplateFiles.remove("apiServiceFactory.mustache");
}
@Override
public void processOpts()
{
super.processOpts();
sourceFolder = "gen" + File.separator + "java";
modelTemplateFiles.clear();
modelTemplateFiles.put("entityModel.mustache", ".java");
supportingFiles.clear();
}
@Override
public String toApiName(String name)
{
String computedName = name;
computedName = computedName.replace('-', ' ');
computedName = WordUtils.capitalize(computedName);
computedName = computedName.replaceAll("\\s", "");
computedName = super.toApiName(computedName);
return computedName;
}
@Override
public String getName()
{
return "cxf";
}
}

View File

@ -8,11 +8,14 @@ import io.swagger.models.Swagger;
import java.io.File;
import java.util.*;
public class JaxRSServerCodegen extends JavaClientCodegen {
public class JavaJaxRSJersey1ServerCodegen extends JavaClientCodegen {
protected static final String JAXRS_TEMPLATE_DIRECTORY_NAME = "JavaJaxRS";
protected String dateLibrary = "default";
protected String title = "Swagger Server";
protected String implFolder = "src/main/java";
public JaxRSServerCodegen() {
public static final String DATE_LIBRARY = "dateLibrary";
public JavaJaxRSJersey1ServerCodegen() {
super();
sourceFolder = "src/gen/java";
@ -30,7 +33,7 @@ public class JaxRSServerCodegen extends JavaClientCodegen {
additionalProperties.put("title", title);
embeddedTemplateDir = templateDir = "JavaJaxRS" + File.separator + "jersey1_18";
embeddedTemplateDir = templateDir = JAXRS_TEMPLATE_DIRECTORY_NAME + File.separator + "jersey1_18";
for(int i = 0; i < cliOptions.size(); i++) {
if(CodegenConstants.LIBRARY.equals(cliOptions.get(i).getOpt())) {

View File

@ -7,7 +7,8 @@ io.swagger.codegen.languages.FlaskConnexionCodegen
io.swagger.codegen.languages.GoClientCodegen
io.swagger.codegen.languages.JavaClientCodegen
io.swagger.codegen.languages.JavascriptClientCodegen
io.swagger.codegen.languages.JaxRSServerCodegen
io.swagger.codegen.languages.JavaJaxRSJersey1ServerCodegen
io.swagger.codegen.languages.JavaJaxRSCXFServerCodegen
io.swagger.codegen.languages.JavaInflectorServerCodegen
io.swagger.codegen.languages.JMeterCodegen
io.swagger.codegen.languages.NodeJSServerCodegen

View File

@ -2,7 +2,7 @@ package io.swagger.codegen.jaxrs;
import io.swagger.codegen.CodegenConfig;
import io.swagger.codegen.java.JavaClientOptionsTest;
import io.swagger.codegen.languages.JaxRSServerCodegen;
import io.swagger.codegen.languages.JavaJaxRSJersey1ServerCodegen;
import io.swagger.codegen.options.JaxRSServerOptionsProvider;
import mockit.Expectations;
@ -11,7 +11,7 @@ import mockit.Tested;
public class JaxRSServerOptionsTest extends JavaClientOptionsTest {
@Tested
private JaxRSServerCodegen clientCodegen;
private JavaJaxRSJersey1ServerCodegen clientCodegen;
public JaxRSServerOptionsTest() {
super(new JaxRSServerOptionsProvider());

View File

@ -2,7 +2,7 @@ package io.swagger.codegen.jaxrs;
import io.swagger.codegen.CodegenModel;
import io.swagger.codegen.languages.JaxRSServerCodegen;
import io.swagger.codegen.languages.JavaJaxRSJersey1ServerCodegen;
import io.swagger.models.Model;
import io.swagger.models.ModelImpl;
import io.swagger.models.properties.DateProperty;
@ -26,7 +26,7 @@ public class JaxrsJava8ModelTest {
.required("id")
.required("name");
final JaxRSServerCodegen codegen = new JaxRSServerCodegen();
final JavaJaxRSJersey1ServerCodegen codegen = new JavaJaxRSJersey1ServerCodegen();
codegen.setDateLibrary("java8");
codegen.processOpts();
final CodegenModel cm = codegen.fromModel("sample", model);

View File

@ -1,7 +1,7 @@
package io.swagger.codegen.jaxrs;
import io.swagger.codegen.CodegenModel;
import io.swagger.codegen.languages.JaxRSServerCodegen;
import io.swagger.codegen.languages.JavaJaxRSJersey1ServerCodegen;
import io.swagger.models.Model;
import io.swagger.models.ModelImpl;
import io.swagger.models.properties.DateProperty;
@ -25,7 +25,7 @@ public class JaxrsJodaModelTest {
.required("id")
.required("name");
final JaxRSServerCodegen codegen = new JaxRSServerCodegen();
final JavaJaxRSJersey1ServerCodegen codegen = new JavaJaxRSJersey1ServerCodegen();
codegen.setDateLibrary("joda");
codegen.processOpts();
final CodegenModel cm = codegen.fromModel("sample", model);

View File

@ -1,6 +1,7 @@
package io.swagger.codegen.options;
import com.google.common.collect.ImmutableMap;
import io.swagger.codegen.languages.JavaJaxRSJersey1ServerCodegen;
import io.swagger.codegen.CodegenConstants;
import java.util.Map;
@ -26,6 +27,8 @@ public class JaxRSServerOptionsProvider extends JavaOptionsProvider {
ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<String, String>();
builder.putAll(options)
.put(CodegenConstants.IMPL_FOLDER, IMPL_FOLDER_VALUE);
.put(CodegenConstants.IMPL_FOLDER, IMPL_FOLDER_VALUE)
.put(JavaJaxRSJersey1ServerCodegen.DATE_LIBRARY, "joda");
return builder.build();
}