@Override
  public void processOpts() {
    super.processOpts();

    supportingFiles.clear();
    supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
    supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
    supportingFiles.add(
        new SupportingFile(
            "ApiException.mustache",
            (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator),
            "ApiException.java"));
    supportingFiles.add(
        new SupportingFile(
            "ApiOriginFilter.mustache",
            (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator),
            "ApiOriginFilter.java"));
    supportingFiles.add(
        new SupportingFile(
            "ApiResponseMessage.mustache",
            (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator),
            "ApiResponseMessage.java"));
    supportingFiles.add(
        new SupportingFile(
            "NotFoundException.mustache",
            (sourceFolder + File.separator + apiPackage).replace(".", java.io.File.separator),
            "NotFoundException.java"));
    supportingFiles.add(new SupportingFile("web.mustache", ("src/main/webapp/WEB-INF"), "web.xml"));
  }
  public JaxRSServerCodegen() {
    super.processOpts();

    sourceFolder = "src/gen/java";

    outputFolder =
        System.getProperty("swagger.codegen.jaxrs.genfolder", "generated-code/javaJaxRS");
    modelTemplateFiles.put("model.mustache", ".java");
    apiTemplateFiles.put("api.mustache", ".java");
    apiTemplateFiles.put("apiService.mustache", ".java");
    apiTemplateFiles.put("apiServiceImpl.mustache", ".java");
    apiTemplateFiles.put("apiServiceFactory.mustache", ".java");
    templateDir = "JavaJaxRS";
    apiPackage = System.getProperty("swagger.codegen.jaxrs.apipackage", "io.swagger.api");
    modelPackage = System.getProperty("swagger.codegen.jaxrs.modelpackage", "io.swagger.model");

    additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, invokerPackage);
    additionalProperties.put(CodegenConstants.GROUP_ID, groupId);
    additionalProperties.put(CodegenConstants.ARTIFACT_ID, artifactId);
    additionalProperties.put(CodegenConstants.ARTIFACT_VERSION, artifactVersion);
    additionalProperties.put("title", title);

    languageSpecificPrimitives =
        new HashSet<String>(
            Arrays.asList("String", "boolean", "Boolean", "Double", "Integer", "Long", "Float"));
  }
  @Override
  public CodegenModel fromModel(String name, Model model, Map<String, Model> allDefinitions) {
    CodegenModel codegenModel = super.fromModel(name, model, allDefinitions);
    if (codegenModel.description != null) {
      codegenModel.imports.add("ApiModel");
    }
    if (allDefinitions != null
        && codegenModel != null
        && codegenModel.parentSchema != null
        && codegenModel.hasEnums) {
      final Model parentModel = allDefinitions.get(codegenModel.parentSchema);
      final CodegenModel parentCodegenModel = super.fromModel(codegenModel.parent, parentModel);
      codegenModel = JavaClientCodegen.reconcileInlineEnums(codegenModel, parentCodegenModel);
    }

    return codegenModel;
  }