Closed ghillairet closed 6 years ago
I added a preference page for setting the advanced validation option for OpenAPI3.
Some examples of validation messages provided by KZOP:
Some of them are still missing position in document so they are placed on the first line:
Passed code review. @ghillairet , I also added a new p2 update site for KZOP and JOVL to our target platform. However, with these changes:
I cannot launch KZOE from Eclipse because of a problem with Jackson:
org.osgi.framework.BundleException: Could not resolve module: com.reprezen.swagedit.openapi3 [3982]
Unresolved requirement: Require-Bundle: com.reprezen.kaizen.openapi-parser; bundle-version="3.0.1"
-> Bundle-SymbolicName: com.reprezen.kaizen.openapi-parser; bundle-version="3.0.1.201808201424"
com.reprezen.kaizen.openapi-parser [3979]
Unresolved requirement: Import-Package: com.fasterxml.jackson.core; resolution="optional"
We now have test failures in maven build in com.reprezen.swagedit.openapi3.tests
.
Can you please have a look?
@tfesenko @andylowry It seems that the issue is with KZOP that declares the imported packages as optional. I made a local p2 repository for KZOP that removes the optional declaration in the p2/pom.xml
file and now KZOE is working.
The problem I'm facing now is during validation with KZOP, I am having the javax.mail package not being found, although it is declared in the MANIFEST.
java.lang.NoClassDefFoundError: javax/mail/internet/AddressException
at com.reprezen.kaizen.oasparser.ovl3.OpenApi3Impl.validate(OpenApi3Impl.java:58)
at com.reprezen.kaizen.oasparser.OpenApiParser.parse(OpenApiParser.java:91)
at com.reprezen.kaizen.oasparser.OpenApiParser.parse(OpenApiParser.java:71)
at com.reprezen.kaizen.oasparser.OpenApi3Parser.parse(OpenApi3Parser.java:59)
at com.reprezen.swagedit.openapi3.validation.OpenApi3Validator.validate(OpenApi3Validator.java:93)
at com.reprezen.swagedit.core.validation.Validator.validate(Validator.java:75)
at com.reprezen.swagedit.core.editor.ValidationOperation.validateSwagger(ValidationOperation.java:110)
at com.reprezen.swagedit.core.editor.ValidationOperation.run(ValidationOperation.java:91)
at com.reprezen.swagedit.core.editor.JsonEditor$6.doRunInWorkspace(JsonEditor.java:418)
at com.reprezen.swagedit.core.editor.JsonEditor$SafeWorkspaceJob.runInWorkspace(JsonEditor.java:492)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressException cannot be found by com.reprezen.kaizen.openapi-parser_2.2.0.20180821110849
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 12 more
@tfesenko @andylowry This PR https://github.com/RepreZen/KaiZen-OpenApi-Parser/pull/188 could fix the issue with import-packages not being resolved. It solves my previous issue with javax.mail
package.
But I'm still having the tests to fail.
@tfesenko Ready to review and QA.
The recent commits passed code review. Local maven build succeeds. I am getting this error when launching from Eclipse.
java.lang.NoSuchMethodError: com.reprezen.kaizen.oasparser.val.ValidationResults.open()Lcom/reprezen/kaizen/oasparser/val/ValidationResults$ValidationResultsInstance;
at com.reprezen.kaizen.oasparser.ovl3.OpenApi3Impl.validate(OpenApi3Impl.java:56)
at com.reprezen.kaizen.oasparser.OpenApiParser.parse(OpenApiParser.java:91)
at com.reprezen.kaizen.oasparser.OpenApiParser.parse(OpenApiParser.java:71)
at com.reprezen.kaizen.oasparser.OpenApi3Parser.parse(OpenApi3Parser.java:59)
at com.reprezen.swagedit.openapi3.validation.OpenApi3Validator.validate(OpenApi3Validator.java:98)
at com.reprezen.swagedit.core.validation.Validator.validate(Validator.java:75)
at com.reprezen.swagedit.core.editor.ValidationOperation.validateSwagger(ValidationOperation.java:110)
at com.reprezen.swagedit.core.editor.ValidationOperation.run(ValidationOperation.java:91)
at com.reprezen.swagedit.core.editor.JsonEditor$6.doRunInWorkspace(JsonEditor.java:419)
at com.reprezen.swagedit.core.editor.JsonEditor$SafeWorkspaceJob.runInWorkspace(JsonEditor.java:493)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:39)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
This strange exception is not present on KZOE installed from a local update site on top of a clean eclipse. Merging
This PR adds an advanced validation mode for OpenAPI 3 documents. The advanced validation is provided by KaiZen Parser (KZOP). The advanced validation is only performed when the advanced option is passed to the OpenAPi3Validator constructor (which it is now true by default).
This PR should not be merged until we update the target platform to include latest version of KZOP and JsonOverlay. Those are present in this PR but are added as jars in the openapi3 project lib folder.