Swagger Codegen: Made location of model and resource classes to be generated as one single output directory command line parameter for code generator

This commit is contained in:
Deepak Michael 2011-07-29 07:14:05 +05:30
parent 851e916bf6
commit 7ca4482af9
4 changed files with 53 additions and 31 deletions

View File

@ -10,24 +10,36 @@
<import file="${build.common.dir}/ant/ant-server.xml" />
<import file="${build.common.dir}/ant/ant-test.xml" />
<!-- generates the classes -->
<target name="generate-java" depends="compile" description="generates API and model classes for java language">
<delete>
<fileset dir="../java/src/main/java/com/wordnik/api" includes="*.java"/>
<fileset dir="../java/src/main/java/com/wordnik/model" includes="*.java"/>
</delete>
<java classname="com.wordnik.codegen.java.JavaLibCodeGen">
<classpath>
<pathelement location="build/main/java" />
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</java>
<copy todir="../java/src/main/java/" overwrite="true">
<fileset dir="../java/src/lang/java"/>
</copy>
</target>
<condition property="outputPath.set">
<and>
<isset property="outputPath"/>
</and>
</condition>
<!-- generates the classes -->
<target name="generate-java" depends="compile" description="generates API and model classes for java language">
<fail unless="outputPath.set">
Must specify the parameter: outputPath eg. -DoutputPath=../java/src/main/java/com/wordnik/
</fail>
<echo>
outputPath for Api = ${outputPath}
</echo>
<delete>
<fileset dir="${outputPath}" includes="*.java"/>
</delete>
<java classname="com.wordnik.codegen.java.JavaLibCodeGen">
<classpath>
<pathelement location="build/main/java" />
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
<arg value="${outputPath}"/>
<!--<arg value="../java/src/main/java/com/wordnik/"/>-->
</java>
<copy todir="../java/src/main/java/" overwrite="true">
<fileset dir="../java/src/lang/java"/>
</copy>
</target>
</project>

View File

@ -1,20 +1,17 @@
package com.wordnik.codegen;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.wordnik.codegen.api.SwaggerApi;
import com.wordnik.codegen.config.CodeGenConfig;
import com.wordnik.codegen.config.GenerationEnvironmentConfig;
import com.wordnik.codegen.resource.*;
import com.wordnik.exception.CodeGenerationException;
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.DeserializationConfig.Feature;
import java.io.*;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

View File

@ -1,6 +1,7 @@
package com.wordnik.codegen.java;
import com.wordnik.codegen.config.GenerationEnvironmentConfig;
import com.wordnik.exception.CodeGenerationException;
/**
* User: deepakmichael
@ -9,9 +10,15 @@ import com.wordnik.codegen.config.GenerationEnvironmentConfig;
*/
public class JavaGenEnvConfig extends GenerationEnvironmentConfig{
public JavaGenEnvConfig() {
this.setModelClassLocation("../java/src/main/java/com/wordnik/model/");
this.setResourceClassLocation("../java/src/main/java/com/wordnik/api/");
public JavaGenEnvConfig(String outputPath) {
if(outputPath == null){
throw new CodeGenerationException("Error creating output path : Output path was null ");
}
outputPath = outputPath.endsWith("/") ? outputPath.substring(0, outputPath.lastIndexOf("/")) : outputPath;
this.setModelClassLocation(outputPath + "/model/");
this.setResourceClassLocation(outputPath + "/api/");
this.setTemplateLocation("conf/templates/java");
}
}

View File

@ -1,6 +1,7 @@
package com.wordnik.codegen.java;
import com.wordnik.codegen.DriverCodeGenerator;
import com.wordnik.exception.CodeGenerationException;
/**
* User: ramesh
@ -10,12 +11,17 @@ import com.wordnik.codegen.DriverCodeGenerator;
public class JavaLibCodeGen extends DriverCodeGenerator {
public static void main(String[] args) {
JavaLibCodeGen codeGenerator = new JavaLibCodeGen();
if(args.length < 1){
throw new CodeGenerationException("Invalid number of arguments passed: No command line argument was passed to the program for output path");
}
String outputPath = args[0];
JavaLibCodeGen codeGenerator = new JavaLibCodeGen(outputPath);
codeGenerator.generateCode();
}
public JavaLibCodeGen(){
public JavaLibCodeGen(String outputPath){
this.setConfig(new JavaCodeGenConfig());
this.setEnvConfig(new JavaGenEnvConfig());
this.setEnvConfig(new JavaGenEnvConfig(outputPath));
}
}