Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Java] Basic bean-validation of @NotNull, @Size, @Pattern, @Min, @Max #2549 #3280

Closed
wants to merge 19 commits into from

Conversation

jfiala
Copy link
Contributor

@jfiala jfiala commented Jul 2, 2016

This is the rebased basic implementation of Java Bean-Validation-Annotations.

@jfiala jfiala changed the title add first implementation of @NotNull, @Size, @Pattern, @Min, @Max #2549 Basic bean-validation of @NotNull, @Size, @Pattern, @Min, @Max #2549 Jul 2, 2016
@wing328
Copy link
Contributor

wing328 commented Jul 2, 2016

@jfiala I left you some comments in jfiala@08b3b53

@jfiala
Copy link
Contributor Author

jfiala commented Jul 2, 2016

@wing328 optimized mustache templates & fixed tabs (for java + cxf)

@jfiala jfiala changed the title Basic bean-validation of @NotNull, @Size, @Pattern, @Min, @Max #2549 [Java] Basic bean-validation of @NotNull, @Size, @Pattern, @Min, @Max #2549 Jul 2, 2016
@jfiala
Copy link
Contributor Author

jfiala commented Jul 4, 2016

@wing328 pls advise how we should best test this? or do you prefer moving the whole beanvalidation-annotation-part into a separate mustache file and then testing separately (as it matters for all java clients)?

@brentryan
Copy link

What's the status here? This validation component is the 1 last thing holding us back from using swagger over jsonschema2pojo plugin? Anything I can do to help out here?

@wing328
Copy link
Contributor

wing328 commented Oct 10, 2016

I'll try to merge this manually tomorrow with the following additional changes

  • replace tab with 4-space in java files
  • remove comments about TODO and create tasks (issues) in Github for tracking instead.
  • target 2.3.0 instead as there're lots of changes.

@jfiala
Copy link
Contributor Author

jfiala commented Oct 10, 2016

Thank you, I fixed the tabs in the CXF branch (jaxrs_cxf_2017), so everything is already clean there (the branch jaxrs_cxf_2017 contains all the changes of beanvalidation_2549 + the cxf changes).

However, if you're able to merge the branch beanvalidation_2549 more quickly feel free to do so.

Regarding the TODO: I can cleanup this as well, there should be two follow-ups:

  • Rework all Java languages to support beanvalidation (reusing the centralized beanValidation.mustache file).
  • Improve server CXF language:
    • Adapt server CXF to add spring using a cli-option only
    • Add additional switches for CXF features (gzip/beanvalidation/logging/swagger)

If you're green with that, I'll create two issues and remove the TODO comment in JavaCXFServerCodegen.

jfiala added a commit to jfiala/swagger-codegen that referenced this pull request Oct 14, 2016
@jfiala
Copy link
Contributor Author

jfiala commented Oct 14, 2016

@wing328: I rebased the branch jaxrs_cxf_2017, please pull the changes from there.

(The branch beanvalidation_2549 is missing the CLI option for beanvalidation, the branch jaxrs_cxf_2017 contains all the latest changes including the CLI option useBeanValidation).

wing328 added a commit that referenced this pull request Oct 25, 2016
* add pom-file to cxf including cxf-client #2017

* adapt pom sourceFolder in pom.mustache to gen/java #2017

* add test templates for CXF #2017

* optimize mustache template structure, remove tabs #3280 #2549

* refined dependency to swagger-jaxrs #2017

* refined annotations and line breaks #2549

* fix tabs instead of spaces...

* move annotations from getter to field for server model

* cleanup tabs

* add example for gzipping #2017

* add complete WAR to cxf-server #2017

* add readme + rework pom #2017

* add cli switch for beanvalidation #2549

* move beanvalidation into separate subtemplate and reuse for cxf

* add beanValidation java template

* corrected path to mustache file

* fix AbstractOptionsTest, add default false for USE_BEANVALIDATION

* add pom-file to cxf including cxf-client #2017

* adapt pom sourceFolder in pom.mustache to gen/java #2017

* add test templates for CXF #2017

* optimize mustache template structure, remove tabs #3280 #2549

* refined dependency to swagger-jaxrs #2017

* refined annotations and line breaks #2549

* fix tabs instead of spaces...

* move annotations from getter to field for server model

* cleanup tabs

* add example for gzipping #2017

* add complete WAR to cxf-server #2017

* add readme + rework pom #2017

* add cli switch for beanvalidation #2549

* move beanvalidation into separate subtemplate and reuse for cxf

* add beanValidation java template

* corrected path to mustache file

* fix AbstractOptionsTest, add default false for USE_BEANVALIDATION

* add beanvalidation to okhttp-gson library #2549

* cleanup api.mustache for cxf #3281

* temporary fix for invalid BeanValidation-pattern with / #2549

* temporary fix for invalid BeanValidation-pattern with / #2549

* remove jaxrs-annotations from implementation classes #3281

* add configuration to generate spring web application #4003

* clean up unnecessary @path annotation (part of method level!)

* add support for minItems/maxItems #2549

* add support for BeanValidation for query params #2549

* add imports for bean validation #2549

* add switches for various cxf server features #2017

* fix tests #2549 #2017

* re-create bin folder

* cleanup

* cleanup

* Revert "temporary solution for pattern - move to AbstractJavaCodegen #2549"

This reverts commit 82df5e6, reversing
changes made to 65e87f2.

Conflicts:
	bin/akka-scala-petstore.sh
	bin/android-petstore-all.sh
	bin/android-petstore-httpclient.sh
	bin/android-petstore-volley.sh
	bin/android-petstore.sh
	bin/aspnet5-petstore-server.sh
	bin/clojure-petstore.sh
	bin/cpprest-petstore.sh
	bin/csharp-dotnet2-petstore.sh
	bin/csharp-petstore-all.sh
	bin/csharp-petstore.sh
	bin/csharp-property-changed-petstore.sh
	bin/cwiki-petstore.sh
	bin/dart-petstore.sh
	bin/dynamic-html.sh
	bin/erlang-petstore-server.sh
	bin/flash-petstore.sh
	bin/flaskConnexion-python2.sh
	bin/flaskConnexion.sh
	bin/go-petstore-server.sh
	bin/go-petstore.sh
	bin/groovy-petstore.sh
	bin/haskell-servant-petstore.sh
	bin/html-petstore.sh
	bin/html2-petstore.sh
	bin/java-inflector-petstore-server.sh
	bin/java-petstore-all.sh
	bin/java-petstore-feign.sh
	bin/java-petstore-jersey1.sh
	bin/java-petstore-jersey2.sh
	bin/java-petstore-okhttp-gson-parcelable.sh
	bin/java-petstore-okhttp-gson.sh
	bin/java-petstore-retrofit.sh
	bin/java-petstore-retrofit2.sh
	bin/java-petstore-retrofit2rx.sh
	bin/java-undertow-petstore-server.sh
	bin/java8-petstore-jersey2.sh
	bin/javascript-closure-angular.sh
	bin/javascript-petstore-all.sh
	bin/javascript-petstore.sh
	bin/javascript-promise-petstore.sh
	bin/jaxrs-cxf-cdi-petstore-server.sh
	bin/jaxrs-cxf-petstore-server.sh
	bin/jaxrs-jersey1-petstore-server.sh
	bin/jaxrs-petstore-server.sh
	bin/jaxrs-resteasy-joda-petstore-server.json
	bin/jaxrs-resteasy-joda-petstore-server.sh
	bin/jaxrs-resteasy-petstore-server.sh
	bin/jaxrs-spec-petstore-server.sh
	bin/jmeter-petstore.sh
	bin/lumen-petstore-server.sh
	bin/nancyfx-petstore-server.sh
	bin/nodejs-petstore-server.sh
	bin/objc-petstore-all.sh
	bin/objc-petstore-coredata.sh
	bin/objc-petstore.sh
	bin/perl-petstore.sh
	bin/php-petstore.sh
	bin/python-petstore.sh
	bin/qt5-petstore.sh
	bin/rails5-petstore-server.sh
	bin/ruby-petstore.sh
	bin/run-all-petstore
	bin/scala-async-petstore.sh
	bin/scala-petstore.sh
	bin/scalatra-petstore-server.sh
	bin/security/csharp-petstore.sh
	bin/security/go-petstore.sh
	bin/security/java-petstore-okhttp-gson.sh
	bin/security/javascript-closure-angular.sh
	bin/security/javascript-petstore.sh
	bin/security/lumen-petstore-server.sh
	bin/security/objc-petstore.sh
	bin/security/perl-petstore.sh
	bin/security/php-petstore.sh
	bin/security/python-petstore.sh
	bin/security/qt5cpp-petstore.sh
	bin/security/ruby-petstore.sh
	bin/security/run-all-petstore-security-test
	bin/security/scala-petstore.sh
	bin/security/silex-petstore-server.sh
	bin/security/slim-petstore-server.sh
	bin/security/swift-petstore.sh
	bin/security/typescript-angular.sh
	bin/security/typescript-angular2.sh
	bin/security/typescript-fetch.sh
	bin/security/typescript-node.sh
	bin/silex-petstore-server.sh
	bin/sinatra-petstore-server.sh
	bin/slim-petstore-server.sh
	bin/spring-all-pestore.sh
	bin/spring-cloud-feign-petstore.sh
	bin/spring-mvc-petstore-j8-async-server.sh
	bin/spring-mvc-petstore-server.sh
	bin/spring-stubs.sh
	bin/springboot-petstore-server.sh
	bin/swift-petstore-all.sh
	bin/swift-petstore-promisekit.sh
	bin/swift-petstore-rxswift.sh
	bin/swift-petstore.sh
	bin/tizen-petstore.sh
	bin/typescript-angular-petstore.sh
	bin/typescript-angular2-petstore-all.sh
	bin/typescript-angular2-petstore-with-npm.sh
	bin/typescript-angular2-petstore.sh
	bin/typescript-fetch-petstore-all.sh
	bin/typescript-fetch-petstore-target-es6.sh
	bin/typescript-fetch-petstore-with-npm-version.sh
	bin/typescript-fetch-petstore.sh
	bin/typescript-node-petstore-all.sh
	bin/typescript-node-petstore-with-npm.sh
	bin/typescript-node-petstore.sh
	bin/typescript-petstore-npm.json
	bin/windows/akka-scala-petstore.bat
	bin/windows/android-petstore.bat
	bin/windows/aspnet5-petstore-server.bat
	bin/windows/async-scala-petstore.bat
	bin/windows/clojure-petstore.bat
	bin/windows/cpprest-petstore.bat
	bin/windows/csharp-petstore.bat
	bin/windows/dart-petstore.bat
	bin/windows/dynamic-html-petstore.bat
	bin/windows/flash-petstore.bat
	bin/windows/go-petstore.bat
	bin/windows/html-petstore.bat
	bin/windows/java-petstore-okhttp-gson.bat
	bin/windows/java-petstore.bat
	bin/windows/javascript-petstore.bat
	bin/windows/objc-petstore.bat
	bin/windows/perl-petstore.bat
	bin/windows/php-petstore.bat
	bin/windows/python-petstore.bat
	bin/windows/qt5cpp-petstore.bat
	bin/windows/rails5-petstore-server.bat
	bin/windows/ruby-petstore.bat
	bin/windows/scala-petstore.bat
	bin/windows/spring-mvc-petstore-j8-async-server.bat
	bin/windows/spring-mvc-petstore-server.bat
	bin/windows/springboot-petstore-server.bat
	bin/windows/swift-petstore.bat
	bin/windows/tizen-petstore.bat
	bin/windows/typescript-angular.bat
	bin/windows/typescript-angular2.bat
	bin/windows/typescript-fetch.bat
	bin/windows/typescript-node-with-npm.bat
	bin/windows/typescript-node.bat

* Revert "cleanup"

This reverts commit c752ba8.

* Revert "re-create bin folder"

This reverts commit 8a6d413.

Conflicts:
	bin/windows/spring-mvc-petstore-j8-async-server.bat
	bin/windows/spring-mvc-petstore-server.bat
	bin/windows/springboot-petstore-server.bat

* Revert "re-create bin folder"

This reverts commit 8a6d413.

Conflicts:
	bin/windows/spring-mvc-petstore-j8-async-server.bat
	bin/windows/spring-mvc-petstore-server.bat
	bin/windows/springboot-petstore-server.bat

* re-create bin from master

* Revert "re-create bin from master"

This reverts commit d4b5c9a.

* Revert "Revert "re-create bin folder""

This reverts commit 4369b35.

* Revert "re-create bin folder"

This reverts commit 8a6d413.

* Revert "temporary solution for pattern - move to AbstractJavaCodegen #2549"

This reverts commit 82df5e6, reversing
changes made to 65e87f2.

* correct @path to re-activate Swagger support #

* change sourceFolder to default

* re-activate unittest generator + support gzip switch #2017

* add switch to support Spring Boot + integration tests

* add cxf client generator, rename cxf server generator #2017

* add interfaces for language feature support #4003

* add comments #2017

* correct reference to context.xml.mustache #4003

* use dynamic sourceFolder path #2017

* replace tabs with spaces #4003

* use hard-coded sourceFolder #4003

* rename language for backwards compatibility

* cleanup todo comment #4003

* move convertPropertyToBooleanAndWriteBack to DefaultCodegen #4003

* change reference to beanValidation.mustache to local copy for cxf

* cleanup client-side beanvalidation (currently not working in CXF)

* add support for tags #4003

* fix instantiiation of method parameters

* move commonValidationFeature from bus to endpoint #4003
@jfiala
Copy link
Contributor Author

jfiala commented Oct 25, 2016

@wing328: These changes have already pulled in via #4003

@jfiala jfiala closed this Oct 25, 2016
@jfiala jfiala deleted the beanvalidation_2549 branch October 25, 2016 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants