Skip to content

Commit

Permalink
Merge pull request #27 from yahoo/basepath
Browse files Browse the repository at this point in the history
upgrade ardielle/ardielle-go/rdl, use schema.Base to replace basePath
  • Loading branch information
chinkong83 authored Mar 24, 2017
2 parents 50a1709 + 3e9ec8c commit 9551078
Show file tree
Hide file tree
Showing 12 changed files with 987 additions and 243 deletions.
30 changes: 14 additions & 16 deletions cmd/rdl-gen-parsec-java-server/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ type javaServerGenerator struct {
imports []string
genUsingPath bool
namespace string
basePath string
}

func main() {
Expand All @@ -58,7 +57,6 @@ func main() {
genHandlerImplString := flag.String("i", "true", "Generate interface implementations")
genParsecErrorString := flag.String("e", "true", "Generate Parsec Error classes")
namespace := flag.String("ns", "", "Namespace")
basePath := flag.String("b", "", "Base path")
flag.Parse()

genAnnotations, err:= strconv.ParseBool(*genAnnotationsString)
Expand All @@ -80,7 +78,7 @@ func main() {
var schema rdl.Schema
err = json.Unmarshal(data, &schema)
if err == nil {
GenerateJavaServer(banner, &schema, *pOutdir, genAnnotations, genHandlerImpl, genUsingPath, genParsecError, *namespace, *basePath)
GenerateJavaServer(banner, &schema, *pOutdir, genAnnotations, genHandlerImpl, genUsingPath, genParsecError, *namespace)
os.Exit(0)
}
}
Expand All @@ -96,7 +94,7 @@ func checkErr(err error) {
}

// GenerateJavaServer generates the server code for the RDL-defined service
func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnnotations bool, genHandlerImpl bool, genUsingPath bool, genParsecError bool, namespace string, basePath string) error {
func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnnotations bool, genHandlerImpl bool, genUsingPath bool, genParsecError bool, namespace string) error {
reg := rdl.NewTypeRegistry(schema)
packageDir, err := utils.JavaGenerationDir(outdir, schema, namespace)
if err != nil {
Expand All @@ -109,16 +107,16 @@ func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnn
if err != nil {
return err
}
gen := &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace, basePath}
gen := &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace}
gen.processTemplate(javaServerHandlerTemplate)
out.Flush()
file.Close()

for _, r := range schema.Resources {
if r.Async != nil && *r.Async {
javaServerMakeAsyncResultModel(banner, schema, reg, outdir, r, genAnnotations, genUsingPath, namespace, basePath)
javaServerMakeAsyncResultModel(banner, schema, reg, outdir, r, genAnnotations, genUsingPath, namespace)
} else if len(r.Outputs) > 0 {
javaServerMakeResultModel(banner, schema, reg, outdir, r, genAnnotations, genUsingPath, namespace, basePath)
javaServerMakeResultModel(banner, schema, reg, outdir, r, genAnnotations, genUsingPath, namespace)
}
}

Expand All @@ -139,7 +137,7 @@ func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnn
if err != nil {
return err
}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace, basePath}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace}
packageName := utils.JavaGenerationPackage(schema, namespace)

// import user defined struct classes
Expand All @@ -163,7 +161,7 @@ func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnn
if err != nil {
return err
}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace, basePath}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace}
gen.processTemplate(javaServerContextTemplate)
out.Flush()
file.Close()
Expand All @@ -176,7 +174,7 @@ func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnn
if err != nil {
return err
}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace, basePath}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace}
for _, r := range schema.Resources {
gen.generateImportClass(r)
}
Expand All @@ -199,7 +197,7 @@ func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnn
if err != nil {
return err
}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace, basePath}
gen = &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace}
gen.processTemplate(javaServerInitTemplate)
out.Flush()
file.Close()
Expand Down Expand Up @@ -265,7 +263,7 @@ func GenerateJavaServer(banner string, schema *rdl.Schema, outdir string, genAnn
return err
}

func javaServerMakeAsyncResultModel(banner string, schema *rdl.Schema, reg rdl.TypeRegistry, outdir string, r *rdl.Resource, genAnnotations bool, genUsingPath bool, namespace string, basePath string) error {
func javaServerMakeAsyncResultModel(banner string, schema *rdl.Schema, reg rdl.TypeRegistry, outdir string, r *rdl.Resource, genAnnotations bool, genUsingPath bool, namespace string) error {
cName := utils.Capitalize(string(r.Type))
packageDir, err := utils.JavaGenerationDir(outdir, schema, namespace)
if err != nil {
Expand All @@ -277,7 +275,7 @@ func javaServerMakeAsyncResultModel(banner string, schema *rdl.Schema, reg rdl.T
if err != nil {
return err
}
gen := &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace, basePath}
gen := &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace}
funcMap := template.FuncMap{
"header": func() string { return utils.JavaGenerationHeader(gen.banner) },
"package": func() string { return utils.JavaGenerationPackage(gen.schema, namespace) },
Expand All @@ -301,7 +299,7 @@ func javaServerMakeAsyncResultModel(banner string, schema *rdl.Schema, reg rdl.T
return err
}

func javaServerMakeResultModel(banner string, schema *rdl.Schema, reg rdl.TypeRegistry, outdir string, r *rdl.Resource, genAnnotations bool, genUsingPath bool, namespace string, basePath string) error {
func javaServerMakeResultModel(banner string, schema *rdl.Schema, reg rdl.TypeRegistry, outdir string, r *rdl.Resource, genAnnotations bool, genUsingPath bool, namespace string) error {
rType := string(r.Type)
cName := utils.Capitalize(rType)
packageDir, err := utils.JavaGenerationDir(outdir, schema, namespace)
Expand All @@ -314,7 +312,7 @@ func javaServerMakeResultModel(banner string, schema *rdl.Schema, reg rdl.TypeRe
if err != nil {
return err
}
gen := &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace, basePath}
gen := &javaServerGenerator{reg, schema, cName, out, nil, banner, genAnnotations, nil, genUsingPath, namespace}
funcMap := template.FuncMap{
"header": func() string { return utils.JavaGenerationHeader(gen.banner) },
"package": func() string { return utils.JavaGenerationPackage(gen.schema, namespace) },
Expand Down Expand Up @@ -822,7 +820,7 @@ func (gen *javaServerGenerator) processTemplate(templateSource string) error {
"cName": func() string { return utils.Capitalize(gen.name) },
"methodName": func(r *rdl.Resource) string { return strings.ToLower(r.Method) + string(r.Type) + "Handler" }, //?
"methodPath": func(r *rdl.Resource) string { return gen.resourcePath(r) },
"rootPath": func() string { return utils.JavaGenerationRootPath(gen.schema, gen.basePath) },
"rootPath": func() string { return utils.JavaGenerationRootPath(gen.schema) },
"rName": func(r *rdl.Resource) string {
return utils.Capitalize(strings.ToLower(r.Method)) + string(r.Type) + "Result"
},
Expand Down
19 changes: 5 additions & 14 deletions cmd/rdl-gen-parsec-swagger/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ func main() {
flag.String("s", "", "RDL source file")
genParsecErrorString := flag.String("e", "true", "Generate Parsec Error classes")
scheme := flag.String("c", "", "Scheme")
basePath := flag.String("b", "/api", "Base path")
flag.Parse()

genParsecError, err:= strconv.ParseBool(*genParsecErrorString)
Expand All @@ -40,7 +39,7 @@ func main() {
var schema rdl.Schema
err = json.Unmarshal(data, &schema)
if err == nil {
ExportToSwagger(&schema, *pOutdir, *basePath, genParsecError, *scheme)
ExportToSwagger(&schema, *pOutdir, genParsecError, *scheme)
os.Exit(0)
}
}
Expand All @@ -57,8 +56,8 @@ func checkErr(err error) {

// ExportToSwagger exports the RDL schema to Swagger 2.0 format,
// and serves it up on the specified server endpoint is provided, or outputs to stdout otherwise.
func ExportToSwagger(schema *rdl.Schema, outdir string, basePath string, genParsecError bool, swaggerScheme string) error {
swaggerData, err := swagger(schema, basePath, genParsecError, swaggerScheme)
func ExportToSwagger(schema *rdl.Schema, outdir string, genParsecError bool, swaggerScheme string) error {
swaggerData, err := swagger(schema, genParsecError, swaggerScheme)
if err != nil {
return err
}
Expand Down Expand Up @@ -105,7 +104,7 @@ func ExportToSwagger(schema *rdl.Schema, outdir string, basePath string, genPars
return http.ListenAndServe(outdir, nil)
}

func swagger(schema *rdl.Schema, basePath string, genParsecError bool, swaggerScheme string) (*SwaggerDoc, error) {
func swagger(schema *rdl.Schema, genParsecError bool, swaggerScheme string) (*SwaggerDoc, error) {
reg := rdl.NewTypeRegistry(schema)
swag := new(SwaggerDoc)
swag.Swagger = "2.0"
Expand All @@ -117,15 +116,7 @@ func swagger(schema *rdl.Schema, basePath string, genParsecError bool, swaggerSc
swag.Schemes = append(swag.Schemes, swaggerScheme)
}

if basePath != "" {
if string([]rune(basePath)[0]) != "/" {
// to compatible with previous version
swag.BasePath = "/" + basePath
} else {
swag.BasePath = basePath
}
}
swag.BasePath += utils.JavaGenerationRootPath(schema, "")
swag.BasePath += utils.JavaGenerationRootPath(schema)

title := "API"
if schema.Name != "" {
Expand Down
10 changes: 5 additions & 5 deletions utils/java-util.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,15 @@ func JavaGenerationOrigPackage(schema *rdl.Schema, namespace string) string {
return string(schema.Namespace)
}

func JavaGenerationRootPath(schema *rdl.Schema, basePath string) string {
if basePath != "" {
func JavaGenerationRootPath(schema *rdl.Schema) string {
if schema.Base != "" {
if schema.Version != nil {
if basePath != "/" {
return fmt.Sprintf("%s/v%d", basePath, *schema.Version)
if schema.Base != "/" {
return fmt.Sprintf("%s/v%d", schema.Base, *schema.Version)
}
return fmt.Sprintf("/v%d", *schema.Version)
}
return basePath
return schema.Base
} else if schema.Name != "" {
if schema.Version != nil {
return fmt.Sprintf("/%s/v%d", string(schema.Name), *schema.Version)
Expand Down
4 changes: 4 additions & 0 deletions vendor/github.com/ardielle/ardielle-go/rdl/http_util.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 9551078

Please sign in to comment.