Showing preview only (2,916K chars total). Download the full file or copy to clipboard to get everything.
Repository: apache/servicecomb-toolkit
Branch: master
Commit: 03b709c7dfe9
Files: 1059
Total size: 2.4 MB
Directory structure:
gitextract_jkg1t5v4/
├── .gitignore
├── LICENSE
├── NOTICE
├── README-ZH.md
├── README.md
├── cli/
│ ├── pom.xml
│ ├── scripts/
│ │ ├── cli.cmd
│ │ └── cli.sh
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── cli/
│ │ │ ├── CheckCompatibility.java
│ │ │ ├── CheckCompatibilityAbbr.java
│ │ │ ├── CheckCompatibilityBase.java
│ │ │ ├── CheckStyle.java
│ │ │ ├── CheckStyleAbbr.java
│ │ │ ├── CheckStyleBase.java
│ │ │ ├── CodeGenerate.java
│ │ │ ├── DocGenerate.java
│ │ │ ├── ToolkitMain.java
│ │ │ └── ValidationFailedException.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── log4j2.xml
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── cli/
│ │ └── CliTest.java
│ └── resources/
│ ├── contracts/
│ │ ├── CalculateEndpoint.yaml
│ │ ├── HelloEndPoint.yaml
│ │ └── pojo/
│ │ └── CodeFirstHelloEndPoint.yaml
│ ├── log4j2-test.xml
│ ├── oas/
│ │ ├── compatibility-left.yaml
│ │ ├── compatibility-right.yaml
│ │ ├── style-rules.properties
│ │ └── style.yaml
│ └── swagger.yaml
├── codegen/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── codegen/
│ │ │ ├── AbstractConsumerDirectoryStrategy.java
│ │ │ ├── AbstractDirectoryStrategy.java
│ │ │ ├── AbstractJavaCodegenExt.java
│ │ │ ├── AbstractMultiDirectoryStrategy.java
│ │ │ ├── AbstractProviderDirectoryStrategy.java
│ │ │ ├── ConsumerDirectoryStrategy.java
│ │ │ ├── DefaultCodeGenerator.java
│ │ │ ├── DefaultDirectoryStrategy.java
│ │ │ ├── DirectoryStrategy.java
│ │ │ ├── GeneratorExternalConfigConstant.java
│ │ │ ├── GetGenericClassTypeLambda.java
│ │ │ ├── GetRelativeBasePathLambda.java
│ │ │ ├── MicroServiceFramework.java
│ │ │ ├── MultiContractGenerator.java
│ │ │ ├── ProjectMetaConstant.java
│ │ │ ├── ProviderDirectoryStrategy.java
│ │ │ ├── ServiceCombCodegen.java
│ │ │ ├── ServiceType.java
│ │ │ ├── ShowBasePathLambda.java
│ │ │ ├── SpringCloudCodegen.java
│ │ │ ├── SpringCloudConsumerDirectoryStrategy.java
│ │ │ ├── SpringCloudMultiDirectoryStrategy.java
│ │ │ └── SpringCloudProviderDirectoryStrategy.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── services/
│ │ │ ├── org.apache.servicecomb.toolkit.CodeGenerator
│ │ │ └── org.openapitools.codegen.CodegenConfig
│ │ ├── ServiceComb/
│ │ │ ├── consumer/
│ │ │ │ ├── Application.mustache
│ │ │ │ ├── apiConsumer.mustache
│ │ │ │ ├── bodyParamsConsumer.mustache
│ │ │ │ ├── formParamsConsumer.mustache
│ │ │ │ ├── headerParamsConsumer.mustache
│ │ │ │ ├── microservice.mustache
│ │ │ │ ├── pathParamsConsumer.mustache
│ │ │ │ ├── pojo/
│ │ │ │ │ ├── apiConsumer.mustache
│ │ │ │ │ └── apiInterface.mustache
│ │ │ │ ├── pom.mustache
│ │ │ │ ├── queryParamsConsumer.mustache
│ │ │ │ └── springboot/
│ │ │ │ ├── Application.mustache
│ │ │ │ └── pom.mustache
│ │ │ ├── enumClass.mustache
│ │ │ ├── enumOuterClass.mustache
│ │ │ ├── libraries/
│ │ │ │ ├── JAX-RS/
│ │ │ │ │ ├── Application.mustache
│ │ │ │ │ ├── api.mustache
│ │ │ │ │ ├── bodyParams.mustache
│ │ │ │ │ ├── formParams.mustache
│ │ │ │ │ ├── headerParams.mustache
│ │ │ │ │ ├── pathParams.mustache
│ │ │ │ │ ├── pom.mustache
│ │ │ │ │ └── queryParams.mustache
│ │ │ │ ├── POJO/
│ │ │ │ │ ├── Application.mustache
│ │ │ │ │ ├── api.mustache
│ │ │ │ │ ├── bodyParams.mustache
│ │ │ │ │ ├── formParams.mustache
│ │ │ │ │ ├── headerParams.mustache
│ │ │ │ │ ├── pathParams.mustache
│ │ │ │ │ ├── pom.mustache
│ │ │ │ │ └── queryParams.mustache
│ │ │ │ ├── SpringBoot/
│ │ │ │ │ ├── Application.mustache
│ │ │ │ │ ├── api.mustache
│ │ │ │ │ ├── bodyParams.mustache
│ │ │ │ │ ├── formParams.mustache
│ │ │ │ │ ├── headerParams.mustache
│ │ │ │ │ ├── operationMethod.mustache
│ │ │ │ │ ├── pathParams.mustache
│ │ │ │ │ ├── pom.mustache
│ │ │ │ │ └── queryParams.mustache
│ │ │ │ └── SpringMVC/
│ │ │ │ ├── Application.mustache
│ │ │ │ ├── api.mustache
│ │ │ │ ├── bodyParams.mustache
│ │ │ │ ├── formParams.mustache
│ │ │ │ ├── headerParams.mustache
│ │ │ │ ├── pathParams.mustache
│ │ │ │ ├── pom.mustache
│ │ │ │ └── queryParams.mustache
│ │ │ ├── log4j2.mustache
│ │ │ ├── model/
│ │ │ │ ├── model.mustache
│ │ │ │ └── pom.mustache
│ │ │ ├── pojo.mustache
│ │ │ ├── project/
│ │ │ │ └── pom.mustache
│ │ │ ├── provider/
│ │ │ │ └── microservice.mustache
│ │ │ └── returnTypes.mustache
│ │ └── SpringCloud/
│ │ ├── consumer/
│ │ │ └── openfeign/
│ │ │ ├── Application.mustache
│ │ │ ├── apiConsumer.mustache
│ │ │ ├── applicationYml.mustache
│ │ │ ├── bodyParamsConsumer.mustache
│ │ │ ├── formParamsConsumer.mustache
│ │ │ ├── headerParamsConsumer.mustache
│ │ │ ├── pathParamsConsumer.mustache
│ │ │ ├── pom.mustache
│ │ │ └── queryParamsConsumer.mustache
│ │ ├── model/
│ │ │ ├── enumClass.mustache
│ │ │ ├── enumOuterClass.mustache
│ │ │ ├── model.mustache
│ │ │ ├── pojo.mustache
│ │ │ └── pom.mustache
│ │ ├── project/
│ │ │ └── pom.mustache
│ │ └── provider/
│ │ └── servlet/
│ │ ├── Application.mustache
│ │ ├── api.mustache
│ │ ├── applicationYml.mustache
│ │ ├── bodyParams.mustache
│ │ ├── formParams.mustache
│ │ ├── headerParams.mustache
│ │ ├── pathParams.mustache
│ │ ├── pom.mustache
│ │ ├── queryParams.mustache
│ │ └── returnTypes.mustache
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── codegen/
│ │ ├── CustomPropertiesTest.java
│ │ ├── GeneratorTest.java
│ │ ├── ReflectUtils.java
│ │ ├── ServiceCombCodegenTest.java
│ │ ├── SpringCloudCodegenTest.java
│ │ └── TemplateTest.java
│ └── resources/
│ ├── examples/
│ │ ├── v2.0/
│ │ │ ├── json/
│ │ │ │ ├── api-with-examples.json
│ │ │ │ ├── petstore-expanded.json
│ │ │ │ ├── petstore-minimal.json
│ │ │ │ ├── petstore-separate/
│ │ │ │ │ ├── common/
│ │ │ │ │ │ └── Error.json
│ │ │ │ │ └── spec/
│ │ │ │ │ ├── NewPet.json
│ │ │ │ │ ├── Pet.json
│ │ │ │ │ ├── parameters.json
│ │ │ │ │ └── swagger.json
│ │ │ │ ├── petstore-simple.json
│ │ │ │ ├── petstore-with-external-docs.json
│ │ │ │ ├── petstore.json
│ │ │ │ └── uber.json
│ │ │ └── yaml/
│ │ │ ├── api-with-examples.yaml
│ │ │ ├── petstore-expanded.yaml
│ │ │ ├── petstore-minimal.yaml
│ │ │ ├── petstore-separate/
│ │ │ │ ├── common/
│ │ │ │ │ └── Error.yaml
│ │ │ │ └── spec/
│ │ │ │ ├── NewPet.yaml
│ │ │ │ ├── Pet.yaml
│ │ │ │ ├── parameters.yaml
│ │ │ │ └── swagger.yaml
│ │ │ ├── petstore-simple.yaml
│ │ │ ├── petstore-with-external-docs.yaml
│ │ │ ├── petstore.yaml
│ │ │ └── uber.yaml
│ │ └── v3.0/
│ │ ├── api-with-examples.yaml
│ │ ├── callback-example.yaml
│ │ ├── link-example.yaml
│ │ ├── petstore-expanded.yaml
│ │ ├── petstore.yaml
│ │ └── uspto.yaml
│ ├── log4j2-test.xml
│ ├── no-model.yaml
│ ├── swagger.yaml
│ └── with-model.yaml
├── common/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── common/
│ │ ├── ClassMaker.java
│ │ ├── CompareAlgorithm.java
│ │ ├── ComparisionType.java
│ │ ├── Comparison.java
│ │ ├── ContractComparator.java
│ │ ├── ContractFileType.java
│ │ ├── DocumentType.java
│ │ ├── FileUtils.java
│ │ ├── ImmediateClassLoader.java
│ │ ├── MyersAlgorithm.java
│ │ ├── SourceType.java
│ │ └── SplitDiffFormatter.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── common/
│ │ ├── ClassMakerTest.java
│ │ ├── FileUtilsTest.java
│ │ └── TextCompareTest.java
│ └── resources/
│ ├── compare/
│ │ ├── HelloEndPoint.yaml
│ │ └── HelloEndPoint2.yaml
│ └── projects/
│ ├── demo-with-correct-pom/
│ │ └── pom.xml
│ └── demo-with-invaild-pom/
│ └── pom.xml
├── contractgen/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── contractgen/
│ │ │ └── DefaultContractsGenerator.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── org.apache.servicecomb.toolkit.ContractsGenerator
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── contractgen/
│ │ ├── ContractTestUtil.java
│ │ └── DefaultContractsGeneratorTest.java
│ ├── projects/
│ │ └── demo/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── demo/
│ │ ├── Application.java
│ │ └── HelloEndPoint.java
│ └── resources/
│ └── log4j2-test.xml
├── core/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── org/
│ └── apache/
│ └── servicecomb/
│ └── toolkit/
│ ├── CodeGenerator.java
│ ├── ContractsGenerator.java
│ ├── DocGenerator.java
│ ├── Generator.java
│ └── GeneratorFactory.java
├── docgen/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── docgen/
│ │ │ └── ContractsSwaggerUIGenerator.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── services/
│ │ │ └── org.apache.servicecomb.toolkit.DocGenerator
│ │ └── webroot/
│ │ └── swagger-ui.html
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── docgen/
│ │ └── ContractsSwaggerUIGeneratorTest.java
│ └── resources/
│ └── HelloEndPoint.yaml
├── integration-tests/
│ ├── coverage-aggregate/
│ │ └── pom.xml
│ └── pom.xml
├── oas-generator/
│ ├── oas-generator-core/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── generator/
│ │ │ ├── HttpStatuses.java
│ │ │ ├── MediaTypes.java
│ │ │ ├── annotation/
│ │ │ │ ├── AnnotationProcessor.java
│ │ │ │ ├── ApiResponseMethodAnnotationProcessor.java
│ │ │ │ ├── ApiResponsesMethodAnnotationProcessor.java
│ │ │ │ ├── ClassAnnotationProcessor.java
│ │ │ │ ├── MethodAnnotationProcessor.java
│ │ │ │ ├── ModelInterceptor.java
│ │ │ │ ├── OpenApiDefinitionClassAnnotationProcessor.java
│ │ │ │ ├── OperationMethodAnnotationProcessor.java
│ │ │ │ ├── ParamAnnotationProcessor.java
│ │ │ │ ├── ParameterAnnotationProcessor.java
│ │ │ │ └── RequestBodyParamAnnotationProcessor.java
│ │ │ ├── context/
│ │ │ │ ├── Context.java
│ │ │ │ ├── IExtensionsContext.java
│ │ │ │ ├── ISchemaContext.java
│ │ │ │ ├── OasContext.java
│ │ │ │ ├── OasGenerator.java
│ │ │ │ ├── OperationContext.java
│ │ │ │ └── ParameterContext.java
│ │ │ ├── parser/
│ │ │ │ ├── AbstractAnnotationParser.java
│ │ │ │ └── api/
│ │ │ │ └── OpenApiAnnotationParser.java
│ │ │ └── util/
│ │ │ ├── ArrayModelConverter.java
│ │ │ ├── LocalVariableVisitor.java
│ │ │ ├── ModelConverter.java
│ │ │ ├── ParamUtils.java
│ │ │ ├── RequestResponse.java
│ │ │ └── SwaggerAnnotationUtils.java
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ ├── AnnotationProcessorTest.java
│ │ ├── ContextTest.java
│ │ ├── OasGeneratorTest.java
│ │ ├── ParserTest.java
│ │ └── UtilsTest.java
│ ├── oas-generator-jaxrs/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── generator/
│ │ │ │ ├── annotation/
│ │ │ │ │ ├── ConsumesAnnotationProcessor.java
│ │ │ │ │ ├── CookieParamAnnotationProcessor.java
│ │ │ │ │ ├── FormParamAnnotationProcessor.java
│ │ │ │ │ ├── HeaderParamAnnotationProcessor.java
│ │ │ │ │ ├── HttpMethodAnnotationProcessor.java
│ │ │ │ │ ├── PathClassAnnotationProcessor.java
│ │ │ │ │ ├── PathMethodAnnotationProcessor.java
│ │ │ │ │ ├── PathParamAnnotationProcessor.java
│ │ │ │ │ └── QueryParamAnnotationProcessor.java
│ │ │ │ └── parser/
│ │ │ │ └── JaxRsAnnotationParser.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ └── org.apache.servicecomb.toolkit.generator.parser.api.OpenApiAnnotationParser
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ ├── JaxrsAnnotationProcessorTest.java
│ │ └── JaxrsParserTest.java
│ ├── oas-generator-servicecomb/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── generator/
│ │ │ │ └── parser/
│ │ │ │ ├── ServicecombJaxrsParser.java
│ │ │ │ ├── ServicecombPojoParser.java
│ │ │ │ └── ServicecombSpringmvcParser.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ └── org.apache.servicecomb.toolkit.generator.parser.api.OpenApiAnnotationParser
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ └── ServiceCombParserTest.java
│ ├── oas-generator-spring/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── generator/
│ │ │ │ ├── MultipartFileInterceptor.java
│ │ │ │ ├── annotation/
│ │ │ │ │ ├── AbstractHttpMethodMappingAnnotationProcessor.java
│ │ │ │ │ ├── DeleteMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── GetMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── PathVariableAnnotationProcessor.java
│ │ │ │ │ ├── PostMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── PutMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── RequestBodyAnnotationProcessor.java
│ │ │ │ │ ├── RequestHeaderAnnotationProcessor.java
│ │ │ │ │ ├── RequestMappingClassAnnotationProcessor.java
│ │ │ │ │ ├── RequestMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── RequestParamAnnotationProcessor.java
│ │ │ │ │ └── RequestPartAnnotationProcessor.java
│ │ │ │ └── parser/
│ │ │ │ └── SpringmvcAnnotationParser.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ ├── org.apache.servicecomb.toolkit.generator.annotation.ModelInterceptor
│ │ │ └── org.apache.servicecomb.toolkit.generator.parser.api.OpenApiAnnotationParser
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ ├── SpringAnnotationProcessorTest.java
│ │ └── SpringParserTest.java
│ └── pom.xml
├── oas-validator/
│ ├── .gitignore
│ ├── README-ZH.md
│ ├── README.md
│ ├── doc/
│ │ ├── INSTALLATION.MD
│ │ └── USAGE.MD
│ ├── oas-validator-compatibility/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── compatibility/
│ │ │ ├── CompatibilityCheckParser.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultCallbackDiffValidatorFactory.java
│ │ │ │ ├── DefaultComponentsDiffValidatorFactory.java
│ │ │ │ ├── DefaultEncodingDiffValidatorFactory.java
│ │ │ │ ├── DefaultHeaderDiffValidatorFactory.java
│ │ │ │ ├── DefaultInfoDiffValidatorFactory.java
│ │ │ │ ├── DefaultLinkDiffValidatorFactory.java
│ │ │ │ ├── DefaultMediaTypeDiffValidatorFactory.java
│ │ │ │ ├── DefaultOasSpecDiffValidatorFactory.java
│ │ │ │ ├── DefaultOpenApiDiffValidatorFactory.java
│ │ │ │ ├── DefaultOperationDiffValidatorFactory.java
│ │ │ │ ├── DefaultParameterDiffValidatorFactory.java
│ │ │ │ ├── DefaultPathItemDiffValidatorFactory.java
│ │ │ │ ├── DefaultPathsDiffValidatorFactory.java
│ │ │ │ ├── DefaultRequestBodyDiffValidatorFactory.java
│ │ │ │ ├── DefaultResponseDiffValidatorFactory.java
│ │ │ │ ├── DefaultResponsesDiffValidatorFactory.java
│ │ │ │ ├── DefaultSchemaDiffValidatorFactory.java
│ │ │ │ ├── DefaultSecuritySchemeDiffValidatorFactory.java
│ │ │ │ ├── DefaultServerDiffValidatorFactory.java
│ │ │ │ └── DefaultTagDiffValidatorFactory.java
│ │ │ └── validators/
│ │ │ ├── encoding/
│ │ │ │ ├── EncodingAddNotAllowedDiffValidator.java
│ │ │ │ ├── EncodingAllowedReservedChangeDiffValidator.java
│ │ │ │ ├── EncodingContentTypeNotSameDiffValidator.java
│ │ │ │ ├── EncodingDelNotAllowedDiffValidator.java
│ │ │ │ ├── EncodingExplodeNotSameDiffValidator.java
│ │ │ │ └── EncodingStyleNotSameDiffValidator.java
│ │ │ ├── header/
│ │ │ │ ├── HeaderAddInRequestBodyNotAllowedDiffValidator.java
│ │ │ │ └── HeaderDelInResponseNotAllowedDiffValidator.java
│ │ │ ├── mediatype/
│ │ │ │ ├── MediaTypeAddInParameterNotAllowedDiffValidator.java
│ │ │ │ ├── MediaTypeDelInParameterNotAllowedDiffValidator.java
│ │ │ │ ├── MediaTypeDelInRequestBodyNotAllowedDiffValidator.java
│ │ │ │ └── MediaTypeDelInResponseNotAllowedDiffValidator.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationDeleteNotAllowedDiffValidator.java
│ │ │ │ └── OperationIdNotSameDiffValidator.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterAddDiffValidator.java
│ │ │ │ ├── ParameterAllowEmptyValueChangeDiffValidator.java
│ │ │ │ ├── ParameterAllowReservedChangeDiffValidator.java
│ │ │ │ ├── ParameterExplodeNotSameDiffValidator.java
│ │ │ │ ├── ParameterRequiredChangeDiffValidator.java
│ │ │ │ └── ParameterStyleNotSameDiffValidator.java
│ │ │ ├── pathitem/
│ │ │ │ └── PathItemDeleteNotAllowedDiffValidator.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyRequiredChangeDiffValidator.java
│ │ │ ├── response/
│ │ │ │ └── ResponseAddNotAllowedDiffValidator.java
│ │ │ └── schema/
│ │ │ ├── SchemaDiscriminatorChangeValidator.java
│ │ │ ├── SchemaPropertyChangeValidator.java
│ │ │ ├── SchemaReadOnlyChangeValidator.java
│ │ │ ├── SchemaTypeFormatChangeValidator.java
│ │ │ ├── SchemaWriteOnlyChangeValidator.java
│ │ │ ├── SchemaXmlChangeValidator.java
│ │ │ ├── TypeFormat.java
│ │ │ ├── request/
│ │ │ │ ├── SchemaEnumChangeInRequestValidator.java
│ │ │ │ ├── SchemaExclusiveMaximumChangeInRequestValidator.java
│ │ │ │ ├── SchemaExclusiveMinimumChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaxItemsChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaxLengthChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaxPropertiesChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaximumChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinItemsChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinLengthChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinPropertiesChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinimumChangeInRequestValidator.java
│ │ │ │ ├── SchemaMultipleOfChangeInRequestValidator.java
│ │ │ │ ├── SchemaNullableChangeInRequestValidator.java
│ │ │ │ ├── SchemaRequiredChangeInRequestValidator.java
│ │ │ │ ├── SchemaTypeFormatChangeInRequestValidator.java
│ │ │ │ └── SchemaUniqueItemsChangeInRequestValidator.java
│ │ │ └── response/
│ │ │ ├── SchemaEnumChangeInResponseValidator.java
│ │ │ ├── SchemaExclusiveMaximumChangeInResponseValidator.java
│ │ │ ├── SchemaExclusiveMinimumChangeInResponseValidator.java
│ │ │ ├── SchemaMaxItemsChangeInResponseValidator.java
│ │ │ ├── SchemaMaxLengthChangeInResponseValidator.java
│ │ │ ├── SchemaMaxPropertiesChangeInResponseValidator.java
│ │ │ ├── SchemaMaximumChangeInResponseValidator.java
│ │ │ ├── SchemaMinItemsChangeInResponseValidator.java
│ │ │ ├── SchemaMinLengthChangeInResponseValidator.java
│ │ │ ├── SchemaMinPropertiesChangeInResponseValidator.java
│ │ │ ├── SchemaMinimumChangeInResponseValidator.java
│ │ │ ├── SchemaMultipleOfChangeInResponseValidator.java
│ │ │ ├── SchemaNullableChangeInResponseValidator.java
│ │ │ ├── SchemaRequiredChangeInResponseValidator.java
│ │ │ ├── SchemaTypeFormatChangeInResponseValidator.java
│ │ │ └── SchemaUniqueItemsChangeInResponseValidator.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── compatibility/
│ │ │ ├── CompatibilityCheckParserTest.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultCallbackDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultComponentsDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultEncodingDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultInfoDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultLinkDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultMediaTypeDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultOasSpecDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultOpenApiDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultOperationDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultParameterDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathItemDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathsDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultRequestBodyDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponseDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponsesDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultSchemaDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultSecuritySchemeDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultServerDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultTagDiffValidatorFactoryTest.java
│ │ │ │ └── DiffValidatorFactoryTestConfiguration.java
│ │ │ └── validators/
│ │ │ ├── OasCompatibilityTestBase.java
│ │ │ ├── encoding/
│ │ │ │ ├── EncodingAddNotAllowedDiffValidatorTest.java
│ │ │ │ ├── EncodingAllowedReservedChangeDiffValidatorTest.java
│ │ │ │ ├── EncodingContentTypeNotSameDiffValidatorTest.java
│ │ │ │ ├── EncodingDelNotAllowedDiffValidatorTest.java
│ │ │ │ ├── EncodingExplodeNotSameDiffValidatorTest.java
│ │ │ │ └── EncodingStyleNotSameDiffValidatorTest.java
│ │ │ ├── header/
│ │ │ │ ├── HeaderAddInRequestBodyNotAllowedDiffValidatorTest.java
│ │ │ │ └── HeaderDelInResponseNotAllowedDiffValidatorTest.java
│ │ │ ├── mediatype/
│ │ │ │ ├── MediaTypeAddInParameterNotAllowedDiffValidatorTest.java
│ │ │ │ ├── MediaTypeDelInParameterNotAllowedDiffValidatorTest.java
│ │ │ │ ├── MediaTypeDelInRequestBodyNotAllowedDiffValidatorTest.java
│ │ │ │ └── MediaTypeDelInResponseNotAllowedDiffValidatorTest.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationDeleteNotAllowedDiffValidatorTest.java
│ │ │ │ └── OperationIdNotSameDiffValidatorTest.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterAddDiffValidatorTest.java
│ │ │ │ ├── ParameterAllowEmptyValueChangeDiffValidatorTest.java
│ │ │ │ ├── ParameterAllowReservedChangeDiffValidatorTest.java
│ │ │ │ ├── ParameterExplodeNotSameDiffValidatorTest.java
│ │ │ │ ├── ParameterRequiredChangeDiffValidatorTest.java
│ │ │ │ └── ParameterStyleNotSameDiffValidatorTest.java
│ │ │ ├── pathitem/
│ │ │ │ └── PathItemDeleteNotAllowedDiffValidatorTest.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyRequiredChangeDiffValidatorTest.java
│ │ │ ├── response/
│ │ │ │ └── ResponseAddNotAllowedDiffValidatorTest.java
│ │ │ └── schema/
│ │ │ ├── SchemaDiscriminatorChangeValidatorTest.java
│ │ │ ├── SchemaReadOnlyChangeValidatorTest.java
│ │ │ ├── SchemaWriteOnlyChangeValidatorTest.java
│ │ │ ├── SchemaXmlChangeValidatorTest.java
│ │ │ ├── request/
│ │ │ │ ├── SchemaEnumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaExclusiveMaximumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaExclusiveMinimumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaxItemsChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaxLengthChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaxPropertiesChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaximumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinItemsChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinLengthChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinPropertiesChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinimumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMultipleOfChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaNullableChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaRequiredChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaTypeFormatChangeInRequestValidatorTest.java
│ │ │ │ └── SchemaUniqueItemsChangeInRequestValidatorTest.java
│ │ │ └── response/
│ │ │ ├── SchemaEnumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaExclusiveMaximumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaExclusiveMinimumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaxItemsChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaxLengthChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaxPropertiesChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaximumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinItemsChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinLengthChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinPropertiesChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinimumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMultipleOfChangeInResponseValidatorTest.java
│ │ │ ├── SchemaNullableChangeInResponseValidatorTest.java
│ │ │ ├── SchemaRequiredChangeInResponseValidatorTest.java
│ │ │ ├── SchemaTypeFormatChangeInResponseValidatorTest.java
│ │ │ └── SchemaUniqueItemsChangeInResponseValidatorTest.java
│ │ └── resources/
│ │ ├── logback-test.xml
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ └── compatibility/
│ │ ├── parser-test.yaml
│ │ └── validators/
│ │ ├── encoding/
│ │ │ ├── petstore-encoding-add-a.yaml
│ │ │ ├── petstore-encoding-add-b.yaml
│ │ │ ├── petstore-encoding-allow-reserved-a.yaml
│ │ │ ├── petstore-encoding-allow-reserved-b.yaml
│ │ │ ├── petstore-encoding-content-type-a.yaml
│ │ │ ├── petstore-encoding-content-type-b.yaml
│ │ │ ├── petstore-encoding-del-a.yaml
│ │ │ ├── petstore-encoding-del-b.yaml
│ │ │ ├── petstore-encoding-explode-a.yaml
│ │ │ ├── petstore-encoding-explode-b.yaml
│ │ │ ├── petstore-encoding-style-a.yaml
│ │ │ └── petstore-encoding-style-b.yaml
│ │ ├── header/
│ │ │ ├── petstore-header-add-in-request-body-a.yaml
│ │ │ ├── petstore-header-add-in-request-body-b.yaml
│ │ │ ├── petstore-header-del-in-response-a.yaml
│ │ │ └── petstore-header-del-in-response-b.yaml
│ │ ├── mediatype/
│ │ │ ├── petstore-media-type-add-in-parameter-a.yaml
│ │ │ ├── petstore-media-type-add-in-parameter-b.yaml
│ │ │ ├── petstore-media-type-del-in-parameter-a.yaml
│ │ │ ├── petstore-media-type-del-in-parameter-b.yaml
│ │ │ ├── petstore-media-type-del-in-request-body-a.yaml
│ │ │ ├── petstore-media-type-del-in-request-body-b.yaml
│ │ │ ├── petstore-media-type-del-in-response-a.yaml
│ │ │ └── petstore-media-type-del-in-response-b.yaml
│ │ ├── operation/
│ │ │ ├── petstore-operation-delete-a.yaml
│ │ │ ├── petstore-operation-delete-b.yaml
│ │ │ ├── petstore-operation-id-a.yaml
│ │ │ └── petstore-operation-id-b.yaml
│ │ ├── parameter/
│ │ │ ├── petstore-parameter-add-a.yaml
│ │ │ ├── petstore-parameter-add-b.yaml
│ │ │ ├── petstore-parameter-allow-empty-value-a.yaml
│ │ │ ├── petstore-parameter-allow-empty-value-b.yaml
│ │ │ ├── petstore-parameter-allow-reserved-a.yaml
│ │ │ ├── petstore-parameter-allow-reserved-b.yaml
│ │ │ ├── petstore-parameter-explode-a.yaml
│ │ │ ├── petstore-parameter-explode-b.yaml
│ │ │ ├── petstore-parameter-required-a.yaml
│ │ │ ├── petstore-parameter-required-b.yaml
│ │ │ ├── petstore-parameter-style-a.yaml
│ │ │ └── petstore-parameter-style-b.yaml
│ │ ├── pathitem/
│ │ │ ├── petstore-path-item-delete-a.yaml
│ │ │ └── petstore-path-item-delete-b.yaml
│ │ ├── requestbody/
│ │ │ ├── petstore-request-body-required-a.yaml
│ │ │ └── petstore-request-body-required-b.yaml
│ │ ├── response/
│ │ │ ├── petstore-response-add-a.yaml
│ │ │ └── petstore-response-add-b.yaml
│ │ └── schema/
│ │ ├── petstore-schema-discriminator-a.yaml
│ │ ├── petstore-schema-discriminator-b.yaml
│ │ ├── petstore-schema-read-only-a.yaml
│ │ ├── petstore-schema-read-only-b.yaml
│ │ ├── petstore-schema-write-only-a.yaml
│ │ ├── petstore-schema-write-only-b.yaml
│ │ ├── petstore-schema-xml-a.yaml
│ │ ├── petstore-schema-xml-b.yaml
│ │ ├── request/
│ │ │ ├── petstore-schema-enum-in-request-a.yaml
│ │ │ ├── petstore-schema-enum-in-request-b.yaml
│ │ │ ├── petstore-schema-exclusive-maximum-in-request-a.yaml
│ │ │ ├── petstore-schema-exclusive-maximum-in-request-b.yaml
│ │ │ ├── petstore-schema-exclusive-minimum-in-request-a.yaml
│ │ │ ├── petstore-schema-exclusive-minimum-in-request-b.yaml
│ │ │ ├── petstore-schema-max-items-in-request-a.yaml
│ │ │ ├── petstore-schema-max-items-in-request-b.yaml
│ │ │ ├── petstore-schema-max-length-in-request-a.yaml
│ │ │ ├── petstore-schema-max-length-in-request-b.yaml
│ │ │ ├── petstore-schema-max-properties-in-request-a.yaml
│ │ │ ├── petstore-schema-max-properties-in-request-b.yaml
│ │ │ ├── petstore-schema-maximum-in-request-a.yaml
│ │ │ ├── petstore-schema-maximum-in-request-b.yaml
│ │ │ ├── petstore-schema-min-items-in-request-a.yaml
│ │ │ ├── petstore-schema-min-items-in-request-b.yaml
│ │ │ ├── petstore-schema-min-length-in-request-a.yaml
│ │ │ ├── petstore-schema-min-length-in-request-b.yaml
│ │ │ ├── petstore-schema-min-properties-in-request-a.yaml
│ │ │ ├── petstore-schema-min-properties-in-request-b.yaml
│ │ │ ├── petstore-schema-minimum-in-request-a.yaml
│ │ │ ├── petstore-schema-minimum-in-request-b.yaml
│ │ │ ├── petstore-schema-multiple-of-in-request-a.yaml
│ │ │ ├── petstore-schema-multiple-of-in-request-b.yaml
│ │ │ ├── petstore-schema-nullable-in-request-a.yaml
│ │ │ ├── petstore-schema-nullable-in-request-b.yaml
│ │ │ ├── petstore-schema-required-in-request-a.yaml
│ │ │ ├── petstore-schema-required-in-request-b.yaml
│ │ │ ├── petstore-schema-type-format-in-request-a.yaml
│ │ │ ├── petstore-schema-type-format-in-request-b.yaml
│ │ │ ├── petstore-schema-unique-items-in-request-a.yaml
│ │ │ └── petstore-schema-unique-items-in-request-b.yaml
│ │ └── response/
│ │ ├── petstore-schema-enum-in-response-a.yaml
│ │ ├── petstore-schema-enum-in-response-b.yaml
│ │ ├── petstore-schema-exclusive-maximum-in-response-a.yaml
│ │ ├── petstore-schema-exclusive-maximum-in-response-b.yaml
│ │ ├── petstore-schema-exclusive-minimum-in-response-a.yaml
│ │ ├── petstore-schema-exclusive-minimum-in-response-b.yaml
│ │ ├── petstore-schema-max-items-in-response-a.yaml
│ │ ├── petstore-schema-max-items-in-response-b.yaml
│ │ ├── petstore-schema-max-length-in-response-a.yaml
│ │ ├── petstore-schema-max-length-in-response-b.yaml
│ │ ├── petstore-schema-max-properties-in-response-a.yaml
│ │ ├── petstore-schema-max-properties-in-response-b.yaml
│ │ ├── petstore-schema-maximum-in-response-a.yaml
│ │ ├── petstore-schema-maximum-in-response-b.yaml
│ │ ├── petstore-schema-min-items-in-response-a.yaml
│ │ ├── petstore-schema-min-items-in-response-b.yaml
│ │ ├── petstore-schema-min-length-in-response-a.yaml
│ │ ├── petstore-schema-min-length-in-response-b.yaml
│ │ ├── petstore-schema-min-properties-in-response-a.yaml
│ │ ├── petstore-schema-min-properties-in-response-b.yaml
│ │ ├── petstore-schema-minimum-in-response-a.yaml
│ │ ├── petstore-schema-minimum-in-response-b.yaml
│ │ ├── petstore-schema-multiple-of-in-response-a.yaml
│ │ ├── petstore-schema-multiple-of-in-response-b.yaml
│ │ ├── petstore-schema-nullable-in-response-a.yaml
│ │ ├── petstore-schema-nullable-in-response-b.yaml
│ │ ├── petstore-schema-required-in-response-a.yaml
│ │ ├── petstore-schema-required-in-response-b.yaml
│ │ ├── petstore-schema-type-format-in-response-a.yaml
│ │ ├── petstore-schema-type-format-in-response-b.yaml
│ │ ├── petstore-schema-unique-items-in-response-a.yaml
│ │ └── petstore-schema-unique-items-in-response-b.yaml
│ ├── oas-validator-compatibility-spring/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── oasv/
│ │ │ │ └── compatibility/
│ │ │ │ └── config/
│ │ │ │ ├── EncodingDiffValidatorsConfiguration.java
│ │ │ │ ├── HeaderDiffValidatorsConfiguration.java
│ │ │ │ ├── MediaTypeDiffValidatorsConfiguration.java
│ │ │ │ ├── OperationDiffValidatorsConfiguration.java
│ │ │ │ ├── ParameterDiffValidatorsConfiguration.java
│ │ │ │ ├── PathItemDiffValidatorsConfiguration.java
│ │ │ │ ├── RequestBodyDiffValidatorsConfiguration.java
│ │ │ │ ├── ResponseDiffValidatorsConfiguration.java
│ │ │ │ └── SchemaDiffValidatorsConfiguration.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── spring.factories
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── compatibility/
│ │ │ └── config/
│ │ │ └── ValidatorConfigurationsTest.java
│ │ └── resources/
│ │ └── logback-test.xml
│ ├── oas-validator-core/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ ├── FactoryOptions.java
│ │ │ ├── common/
│ │ │ │ ├── OasObjectProperty.java
│ │ │ │ ├── OasObjectPropertyLocation.java
│ │ │ │ └── OasObjectType.java
│ │ │ ├── diffvalidation/
│ │ │ │ ├── api/
│ │ │ │ │ ├── CallbackDiffValidator.java
│ │ │ │ │ ├── ComponentsDiffValidator.java
│ │ │ │ │ ├── DefaultOasSpecDiffValidator.java
│ │ │ │ │ ├── DiffViolationMessages.java
│ │ │ │ │ ├── EncodingDiffValidator.java
│ │ │ │ │ ├── HeaderDiffValidator.java
│ │ │ │ │ ├── InfoDiffValidator.java
│ │ │ │ │ ├── LinkDiffValidator.java
│ │ │ │ │ ├── ListPropertyDiffValidator.java
│ │ │ │ │ ├── MapPropertyDiffValidator.java
│ │ │ │ │ ├── MediaTypeDiffValidator.java
│ │ │ │ │ ├── OasDiffValidationContext.java
│ │ │ │ │ ├── OasDiffValidationException.java
│ │ │ │ │ ├── OasDiffViolation.java
│ │ │ │ │ ├── OasObjectDiffValidator.java
│ │ │ │ │ ├── OasObjectDiffValidatorTemplate.java
│ │ │ │ │ ├── OasSpecDiffValidator.java
│ │ │ │ │ ├── ObjectPropertyDiffValidator.java
│ │ │ │ │ ├── OpenApiDiffValidator.java
│ │ │ │ │ ├── OperationDiffValidator.java
│ │ │ │ │ ├── ParameterDiffValidator.java
│ │ │ │ │ ├── PathItemDiffValidator.java
│ │ │ │ │ ├── PathsDiffValidator.java
│ │ │ │ │ ├── RequestBodyDiffValidator.java
│ │ │ │ │ ├── ResponseDiffValidator.java
│ │ │ │ │ ├── ResponsesDiffValidator.java
│ │ │ │ │ ├── SchemaAddValidator.java
│ │ │ │ │ ├── SchemaCompareValidator.java
│ │ │ │ │ ├── SchemaDelValidator.java
│ │ │ │ │ ├── SchemaDiffValidator.java
│ │ │ │ │ ├── SecuritySchemeDiffValidator.java
│ │ │ │ │ ├── ServerDiffValidator.java
│ │ │ │ │ └── TagDiffValidator.java
│ │ │ │ ├── factory/
│ │ │ │ │ ├── CallbackDiffValidatorFactory.java
│ │ │ │ │ ├── ComponentsDiffValidatorFactory.java
│ │ │ │ │ ├── EncodingDiffValidatorFactory.java
│ │ │ │ │ ├── HeaderDiffValidatorFactory.java
│ │ │ │ │ ├── InfoDiffValidatorFactory.java
│ │ │ │ │ ├── LinkDiffValidatorFactory.java
│ │ │ │ │ ├── MediaTypeDiffValidatorFactory.java
│ │ │ │ │ ├── OasObjectDiffValidatorFactory.java
│ │ │ │ │ ├── OasSpecDiffValidatorFactory.java
│ │ │ │ │ ├── OpenApiDiffValidatorFactory.java
│ │ │ │ │ ├── OperationDiffValidatorFactory.java
│ │ │ │ │ ├── ParameterDiffValidatorFactory.java
│ │ │ │ │ ├── PathItemDiffValidatorFactory.java
│ │ │ │ │ ├── PathsDiffValidatorFactory.java
│ │ │ │ │ ├── RequestBodyDiffValidatorFactory.java
│ │ │ │ │ ├── ResponseDiffValidatorFactory.java
│ │ │ │ │ ├── ResponsesDiffValidatorFactory.java
│ │ │ │ │ ├── SchemaDiffValidatorFactory.java
│ │ │ │ │ ├── SecuritySchemeDiffValidatorFactory.java
│ │ │ │ │ ├── ServerDiffValidatorFactory.java
│ │ │ │ │ └── TagDiffValidatorFactory.java
│ │ │ │ ├── skeleton/
│ │ │ │ │ ├── components/
│ │ │ │ │ │ ├── ComponentsCallbacksDiffValidator.java
│ │ │ │ │ │ ├── ComponentsHeadersDiffValidator.java
│ │ │ │ │ │ ├── ComponentsLinksDiffValidator.java
│ │ │ │ │ │ ├── ComponentsParametersDiffValidator.java
│ │ │ │ │ │ ├── ComponentsRequestBodiesDiffValidator.java
│ │ │ │ │ │ └── ComponentsResponsesDiffValidator.java
│ │ │ │ │ ├── encoding/
│ │ │ │ │ │ └── EncodingHeadersDiffValidator.java
│ │ │ │ │ ├── header/
│ │ │ │ │ │ └── HeaderSchemaDiffValidator.java
│ │ │ │ │ ├── mediatype/
│ │ │ │ │ │ ├── MediaTypeEncodingDiffValidator.java
│ │ │ │ │ │ └── MediaTypeSchemaDiffValidator.java
│ │ │ │ │ ├── openapi/
│ │ │ │ │ │ ├── OpenApiComponentsDiffValidator.java
│ │ │ │ │ │ ├── OpenApiInfoDiffValidator.java
│ │ │ │ │ │ ├── OpenApiPathsDiffValidator.java
│ │ │ │ │ │ ├── OpenApiServersDiffValidator.java
│ │ │ │ │ │ └── OpenApiTagsDiffValidator.java
│ │ │ │ │ ├── operation/
│ │ │ │ │ │ ├── OperationParametersDiffValidator.java
│ │ │ │ │ │ ├── OperationRequestBodyDiffValidator.java
│ │ │ │ │ │ └── OperationResponsesDiffValidator.java
│ │ │ │ │ ├── parameter/
│ │ │ │ │ │ ├── ParameterContentDiffValidator.java
│ │ │ │ │ │ └── ParameterSchemaDiffValidator.java
│ │ │ │ │ ├── pathitem/
│ │ │ │ │ │ ├── PathItemOperationsDiffValidator.java
│ │ │ │ │ │ └── PathItemParametersDiffValidator.java
│ │ │ │ │ ├── paths/
│ │ │ │ │ │ └── PathsPathItemsDiffValidator.java
│ │ │ │ │ ├── requestbody/
│ │ │ │ │ │ └── RequestBodyContentDiffValidator.java
│ │ │ │ │ ├── response/
│ │ │ │ │ │ ├── ResponseContentDiffValidator.java
│ │ │ │ │ │ └── ResponseHeadersDiffValidator.java
│ │ │ │ │ ├── responses/
│ │ │ │ │ │ └── ResponsesResponsesDiffValidator.java
│ │ │ │ │ └── schema/
│ │ │ │ │ └── SchemaDiffValidatorEngine.java
│ │ │ │ └── util/
│ │ │ │ ├── ChangeRangeCheckUtils.java
│ │ │ │ ├── OasDiffValidationContextUtils.java
│ │ │ │ ├── OasObjectDiffValidatorUtils.java
│ │ │ │ └── ParameterUtils.java
│ │ │ ├── util/
│ │ │ │ ├── StringCaseUtils.java
│ │ │ │ └── SyntaxChecker.java
│ │ │ └── validation/
│ │ │ ├── api/
│ │ │ │ ├── CallbackValidator.java
│ │ │ │ ├── ComponentsValidator.java
│ │ │ │ ├── DefaultOasSpecValidator.java
│ │ │ │ ├── EncodingValidator.java
│ │ │ │ ├── ExampleValidator.java
│ │ │ │ ├── HeaderValidator.java
│ │ │ │ ├── InfoValidator.java
│ │ │ │ ├── LinkValidator.java
│ │ │ │ ├── ListPropertyRequiredValidator.java
│ │ │ │ ├── ListPropertyValidator.java
│ │ │ │ ├── MapPropertyKeysValidator.java
│ │ │ │ ├── MapPropertyValuesValidator.java
│ │ │ │ ├── MediaTypeValidator.java
│ │ │ │ ├── OasObjectValidator.java
│ │ │ │ ├── OasSpecValidator.java
│ │ │ │ ├── OasValidationContext.java
│ │ │ │ ├── OasViolation.java
│ │ │ │ ├── ObjectPropertyRequiredValidator.java
│ │ │ │ ├── ObjectPropertyValidator.java
│ │ │ │ ├── OpenApiValidator.java
│ │ │ │ ├── OperationValidator.java
│ │ │ │ ├── ParameterValidator.java
│ │ │ │ ├── PathItemValidator.java
│ │ │ │ ├── PathsValidator.java
│ │ │ │ ├── RequestBodyValidator.java
│ │ │ │ ├── ResponseValidator.java
│ │ │ │ ├── ResponsesValidator.java
│ │ │ │ ├── SchemaValidator.java
│ │ │ │ ├── SecuritySchemeValidator.java
│ │ │ │ ├── ServerValidator.java
│ │ │ │ ├── TagValidator.java
│ │ │ │ └── ViolationMessages.java
│ │ │ ├── factory/
│ │ │ │ ├── CallbackValidatorFactory.java
│ │ │ │ ├── ComponentsValidatorFactory.java
│ │ │ │ ├── EncodingValidatorFactory.java
│ │ │ │ ├── ExampleValidatorFactory.java
│ │ │ │ ├── HeaderValidatorFactory.java
│ │ │ │ ├── InfoValidatorFactory.java
│ │ │ │ ├── LinkValidatorFactory.java
│ │ │ │ ├── MediaTypeValidatorFactory.java
│ │ │ │ ├── OasObjectValidatorFactory.java
│ │ │ │ ├── OasSpecValidatorFactory.java
│ │ │ │ ├── OpenApiValidatorFactory.java
│ │ │ │ ├── OperationValidatorFactory.java
│ │ │ │ ├── ParameterValidatorFactory.java
│ │ │ │ ├── PathItemValidatorFactory.java
│ │ │ │ ├── PathsValidatorFactory.java
│ │ │ │ ├── RequestBodyValidatorFactory.java
│ │ │ │ ├── ResponseValidatorFactory.java
│ │ │ │ ├── ResponsesValidatorFactory.java
│ │ │ │ ├── SchemaValidatorFactory.java
│ │ │ │ ├── SecuritySchemeValidatorFactory.java
│ │ │ │ ├── ServerValidatorFactory.java
│ │ │ │ └── TagValidatorFactory.java
│ │ │ ├── skeleton/
│ │ │ │ ├── components/
│ │ │ │ │ ├── ComponentsCallbacksKeysValidator.java
│ │ │ │ │ ├── ComponentsCallbacksValuesValidator.java
│ │ │ │ │ ├── ComponentsExamplesKeysValidator.java
│ │ │ │ │ ├── ComponentsExamplesValuesValidator.java
│ │ │ │ │ ├── ComponentsHeadersKeysValidator.java
│ │ │ │ │ ├── ComponentsHeadersValuesValidator.java
│ │ │ │ │ ├── ComponentsLinksKeysValidator.java
│ │ │ │ │ ├── ComponentsLinksValuesValidator.java
│ │ │ │ │ ├── ComponentsParametersKeysValidator.java
│ │ │ │ │ ├── ComponentsParametersValuesValidator.java
│ │ │ │ │ ├── ComponentsRequestBodiesKeysValidator.java
│ │ │ │ │ ├── ComponentsRequestBodiesValuesValidator.java
│ │ │ │ │ ├── ComponentsResponsesKeysValidator.java
│ │ │ │ │ ├── ComponentsResponsesValuesValidator.java
│ │ │ │ │ ├── ComponentsSchemasKeysValidator.java
│ │ │ │ │ ├── ComponentsSchemasValuesValidator.java
│ │ │ │ │ ├── ComponentsSecuritySchemesKeysValidator.java
│ │ │ │ │ └── ComponentsSecuritySchemesValuesValidator.java
│ │ │ │ ├── encoding/
│ │ │ │ │ ├── EncodingHeadersKeysValidator.java
│ │ │ │ │ └── EncodingHeadersValuesValidator.java
│ │ │ │ ├── header/
│ │ │ │ │ └── HeaderSchemaValidator.java
│ │ │ │ ├── mediatype/
│ │ │ │ │ ├── MediaTypeEncodingValidator.java
│ │ │ │ │ └── MediaTypeSchemaValidator.java
│ │ │ │ ├── openapi/
│ │ │ │ │ ├── OpenApiComponentsValidator.java
│ │ │ │ │ ├── OpenApiInfoValidator.java
│ │ │ │ │ ├── OpenApiPathsValidator.java
│ │ │ │ │ ├── OpenApiServersValidator.java
│ │ │ │ │ └── OpenApiTagsValidator.java
│ │ │ │ ├── operation/
│ │ │ │ │ ├── OperationParametersValidator.java
│ │ │ │ │ ├── OperationRequestBodyValidator.java
│ │ │ │ │ └── OperationResponsesValidator.java
│ │ │ │ ├── parameter/
│ │ │ │ │ ├── ParameterContentValidator.java
│ │ │ │ │ └── ParameterSchemaValidator.java
│ │ │ │ ├── pathitem/
│ │ │ │ │ ├── PathItemOperationsValidator.java
│ │ │ │ │ └── PathItemParametersValidator.java
│ │ │ │ ├── paths/
│ │ │ │ │ └── PathsPathItemsValidator.java
│ │ │ │ ├── requestbody/
│ │ │ │ │ └── RequestBodyContentValidator.java
│ │ │ │ ├── response/
│ │ │ │ │ ├── ResponseContentValidator.java
│ │ │ │ │ ├── ResponseHeadersKeysValidator.java
│ │ │ │ │ └── ResponseHeadersValuesValidator.java
│ │ │ │ ├── responses/
│ │ │ │ │ └── ResponsesResponsesValidator.java
│ │ │ │ └── schema/
│ │ │ │ ├── SchemaPropertiesKeysValidator.java
│ │ │ │ └── SchemaRecursiveValidatorTemplate.java
│ │ │ └── util/
│ │ │ └── OasObjectValidatorUtils.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ ├── common/
│ │ │ │ └── OasObjectPropertyLocationTest.java
│ │ │ └── util/
│ │ │ ├── StringCaseUtilsTest.java
│ │ │ └── SyntaxCheckerTest.java
│ │ └── resources/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ └── util/
│ │ ├── syntax-bad.yaml
│ │ └── syntax-good.yaml
│ ├── oas-validator-core-spring/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── diffvalidation/
│ │ │ └── config/
│ │ │ └── OasDiffValidatorsSkeletonConfiguration.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── spring.factories
│ ├── oas-validator-style/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── style/
│ │ │ ├── StyleCheckParser.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultComponentsValidatorFactory.java
│ │ │ │ ├── DefaultEncodingValidatorFactory.java
│ │ │ │ ├── DefaultHeaderValidatorFactory.java
│ │ │ │ ├── DefaultInfoValidatorFactory.java
│ │ │ │ ├── DefaultMediaTypeValidatorFactory.java
│ │ │ │ ├── DefaultOasSpecValidatorFactory.java
│ │ │ │ ├── DefaultOpenApiValidatorFactory.java
│ │ │ │ ├── DefaultOperationValidatorFactory.java
│ │ │ │ ├── DefaultParameterValidatorFactory.java
│ │ │ │ ├── DefaultPathItemValidatorFactory.java
│ │ │ │ ├── DefaultPathsValidatorFactory.java
│ │ │ │ ├── DefaultRequestBodyValidatorFactory.java
│ │ │ │ ├── DefaultResponseValidatorFactory.java
│ │ │ │ ├── DefaultResponsesValidatorFactory.java
│ │ │ │ ├── DefaultSchemaValidatorFactory.java
│ │ │ │ ├── DefaultSecuritySchemeValidatorFactory.java
│ │ │ │ ├── DefaultServerValidatorFactory.java
│ │ │ │ ├── DefaultTagValidatorFactory.java
│ │ │ │ └── ValidatorFactoryComponents.java
│ │ │ └── validator/
│ │ │ ├── components/
│ │ │ │ ├── ComponentsCallbacksKeysCaseValidator.java
│ │ │ │ ├── ComponentsExamplesKeysCaseValidator.java
│ │ │ │ ├── ComponentsHeadersKeysCaseValidator.java
│ │ │ │ ├── ComponentsLinksKeysCaseValidator.java
│ │ │ │ ├── ComponentsParametersKeysCaseValidator.java
│ │ │ │ ├── ComponentsRequestBodiesKeysCaseValidator.java
│ │ │ │ ├── ComponentsResponsesKeysCaseValidator.java
│ │ │ │ ├── ComponentsSchemasKeysCaseValidator.java
│ │ │ │ └── ComponentsSecuritySchemesKeysCaseValidator.java
│ │ │ ├── encoding/
│ │ │ │ └── EncodingHeadersKeysCaseValidator.java
│ │ │ ├── header/
│ │ │ │ └── HeaderDescriptionRequiredValidator.java
│ │ │ ├── info/
│ │ │ │ └── InfoDescriptionRequiredValidator.java
│ │ │ ├── openapi/
│ │ │ │ ├── OpenApiSecuritySizeEqValidator.java
│ │ │ │ ├── OpenApiTagsSizeGteValidator.java
│ │ │ │ └── OpenApiVersionGteValidator.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationIdCaseValidator.java
│ │ │ │ ├── OperationServersSizeEqValidator.java
│ │ │ │ ├── OperationSummaryRequiredValidator.java
│ │ │ │ ├── OperationTagsReferenceValidator.java
│ │ │ │ └── OperationTagsSizeEqValidator.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterDescriptionRequiredValidator.java
│ │ │ │ ├── ParameterNameCookieCaseValidator.java
│ │ │ │ ├── ParameterNameHeaderCaseValidator.java
│ │ │ │ ├── ParameterNamePathCaseValidator.java
│ │ │ │ └── ParameterNameQueryCaseValidator.java
│ │ │ ├── paths/
│ │ │ │ └── PathsKeyCaseValidator.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyDescriptionRequiredValidator.java
│ │ │ ├── response/
│ │ │ │ └── ResponseHeadersKeysCaseValidator.java
│ │ │ ├── schema/
│ │ │ │ ├── SchemaPropertiesKeysCaseValidator.java
│ │ │ │ └── SchemaTitleRequiredValidator.java
│ │ │ └── tag/
│ │ │ ├── TagDescriptionRequiredValidator.java
│ │ │ ├── TagMustBeReferencedValidator.java
│ │ │ └── TagNameCaseValidator.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── style/
│ │ │ ├── StyleCheckParserTest.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultComponentsValidatorFactoryTest.java
│ │ │ │ ├── DefaultEncodingValidatorFactoryTest.java
│ │ │ │ ├── DefaultHeaderValidatorFactoryTest.java
│ │ │ │ ├── DefaultInfoValidatorFactoryTest.java
│ │ │ │ ├── DefaultMediaTypeValidatorFactoryTest.java
│ │ │ │ ├── DefaultOasSpecValidatorFactoryTest.java
│ │ │ │ ├── DefaultOpenApiValidatorFactoryTest.java
│ │ │ │ ├── DefaultOperationValidatorFactoryTest.java
│ │ │ │ ├── DefaultParameterValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathItemValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathsValidatorFactoryTest.java
│ │ │ │ ├── DefaultRequestBodyValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponseValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponsesValidatorFactoryTest.java
│ │ │ │ ├── DefaultSchemaValidatorFactoryTest.java
│ │ │ │ ├── DefaultSecuritySchemeValidatorFactoryTest.java
│ │ │ │ ├── DefaultServerValidatorFactoryTest.java
│ │ │ │ └── DefaultTagValidatorFactoryTest.java
│ │ │ └── validator/
│ │ │ ├── OasStyleCheckTestBase.java
│ │ │ ├── components/
│ │ │ │ ├── ComponentsCallbacksKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsExamplesKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsHeadersKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsLinksKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsParametersKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsRequestBodiesKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsResponsesKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsSchemasKeysCaseValidatorTest.java
│ │ │ │ └── ComponentsSecuritySchemesKeysCaseValidatorTest.java
│ │ │ ├── encoding/
│ │ │ │ └── EncodingHeadersKeysCaseValidatorTest.java
│ │ │ ├── header/
│ │ │ │ └── HeaderDescriptionRequiredValidatorTest.java
│ │ │ ├── info/
│ │ │ │ └── InfoDescriptionRequiredValidatorTest.java
│ │ │ ├── openapi/
│ │ │ │ ├── OpenApiSecuritySizeEqValidatorTest.java
│ │ │ │ ├── OpenApiTagsSizeGteValidatorTest.java
│ │ │ │ └── OpenApiVersionGteValidatorTest.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationIdCaseValidatorTest.java
│ │ │ │ ├── OperationServersSizeEqValidatorTest.java
│ │ │ │ ├── OperationSummaryRequiredValidatorTest.java
│ │ │ │ ├── OperationTagsReferenceValidatorTest.java
│ │ │ │ └── OperationTagsSizeEqValidatorTest.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterDescriptionRequiredValidatorTest.java
│ │ │ │ ├── ParameterNameCookieCaseValidatorTest.java
│ │ │ │ ├── ParameterNameHeaderCaseValidatorTest.java
│ │ │ │ ├── ParameterNamePathCaseValidatorTest.java
│ │ │ │ └── ParameterNameQueryCaseValidatorTest.java
│ │ │ ├── paths/
│ │ │ │ └── PathsKeyCaseValidatorTest.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyDescriptionRequiredValidatorTest.java
│ │ │ ├── response/
│ │ │ │ └── ResponseHeadersKeysCaseValidatorTest.java
│ │ │ ├── schema/
│ │ │ │ ├── SchemaPropertiesKeysCaseValidatorTest.java
│ │ │ │ └── SchemaTitleRequiredValidatorTest.java
│ │ │ └── tag/
│ │ │ ├── TagDescriptionRequiredValidatorTest.java
│ │ │ ├── TagMustBeReferencedValidatorTest.java
│ │ │ └── TagNameCaseValidatorTest.java
│ │ └── resources/
│ │ ├── logback-test.xml
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ └── style/
│ │ ├── parser-test.yaml
│ │ └── validator/
│ │ ├── components/
│ │ │ ├── petstore-callbacks-upper-camel-case.yaml
│ │ │ ├── petstore-examples-upper-camel-case.yaml
│ │ │ ├── petstore-headers-upper-camel-case.yaml
│ │ │ ├── petstore-links-upper-camel-case.yaml
│ │ │ ├── petstore-parameters-upper-camel-case.yaml
│ │ │ ├── petstore-request-bodies-upper-camel-case.yaml
│ │ │ ├── petstore-responses-upper-camel-case.yaml
│ │ │ ├── petstore-schemas-upper-camel-case.yaml
│ │ │ └── petstore-security-schemes-upper-camel-case.yaml
│ │ ├── encoding/
│ │ │ ├── petstore-encoding-headers-key-case-1.yaml
│ │ │ ├── petstore-encoding-headers-key-case-2.yaml
│ │ │ ├── petstore-encoding-headers-key-case-3.yaml
│ │ │ └── petstore-encoding-headers-key-case-4.yaml
│ │ ├── header/
│ │ │ └── petstore-header-no-desc.yaml
│ │ ├── info/
│ │ │ └── petstore-info-no-desc.yaml
│ │ ├── openapi/
│ │ │ ├── petstore-openapi-wrong.yaml
│ │ │ ├── petstore-security-empty-good.yaml
│ │ │ ├── petstore-security-empty.yaml
│ │ │ └── petstore-tag-not-provided.yaml
│ │ ├── operation/
│ │ │ ├── petstore-operation-id-lower-camel-case.yaml
│ │ │ ├── petstore-operation-servers-empty.yaml
│ │ │ ├── petstore-operation-summary-required.yaml
│ │ │ ├── petstore-operation-tags-only-one.yaml
│ │ │ └── petstore-operation-tags-reference.yaml
│ │ ├── parameter/
│ │ │ ├── petstore-parameter-cookie-lower-camel-case.yaml
│ │ │ ├── petstore-parameter-desc-none.yaml
│ │ │ ├── petstore-parameter-header-upper-hyphen-case.yaml
│ │ │ ├── petstore-parameter-path-lower-camel-case.yaml
│ │ │ └── petstore-parameter-query-lower-camel-case.yaml
│ │ ├── paths/
│ │ │ └── petstore-paths-lower-camel-case.yaml
│ │ ├── requestbody/
│ │ │ └── petstore-request-body-desc-required.yaml
│ │ ├── response/
│ │ │ └── petstore-response-headers-key-case.yaml
│ │ ├── schema/
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-all-of.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-any-of.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-array.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-comp.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-nested.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-one-of.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-param-1.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-param-2.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-req-1.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-req-2.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-resp-1.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-resp-2.yaml
│ │ │ ├── petstore-schema-title-comp.yaml
│ │ │ ├── petstore-schema-title-nested.yaml
│ │ │ ├── petstore-schema-title-param.yaml
│ │ │ ├── petstore-schema-title-req.yaml
│ │ │ └── petstore-schema-title-resp.yaml
│ │ └── tag/
│ │ ├── petstore-tag-name-not-upper-camel-case.yaml
│ │ ├── petstore-tag-no-desc.yaml
│ │ └── petstore-tag-redundant.yaml
│ ├── oas-validator-test/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ ├── OasSpecLoader.java
│ │ ├── diffvalidation/
│ │ │ └── test/
│ │ │ └── OasDiffValidatorTestBase.java
│ │ └── validation/
│ │ └── test/
│ │ └── OasValidatorTestBase.java
│ ├── oas-validator-web/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── web/
│ │ │ ├── Application.java
│ │ │ ├── api/
│ │ │ │ └── controller/
│ │ │ │ ├── CompatibilityController.java
│ │ │ │ ├── ImportError.java
│ │ │ │ ├── ImportError2.java
│ │ │ │ └── StyleController.java
│ │ │ ├── config/
│ │ │ │ └── StyleCheckValidatorsConfiguration.java
│ │ │ └── page/
│ │ │ └── controller/
│ │ │ ├── EditorController.java
│ │ │ ├── IndexController.java
│ │ │ ├── ValidatorController.java
│ │ │ └── ViewerController.java
│ │ └── resources/
│ │ ├── application.properties
│ │ ├── samples/
│ │ │ └── petstore-openapi-wrong.yaml
│ │ ├── style-check-rules.properties
│ │ └── templates/
│ │ ├── index.html
│ │ └── validator/
│ │ ├── compatibility.html
│ │ └── style.html
│ └── pom.xml
├── pom.xml
├── samples/
│ ├── README-ZH.md
│ ├── README.md
│ ├── generate-from-code-sample/
│ │ ├── GoodbyeService/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── goodbye/
│ │ │ │ ├── GoodbyeApplication.java
│ │ │ │ └── GoodbyeController.java
│ │ │ └── resources/
│ │ │ └── application.yaml
│ │ ├── HelloService/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── hello/
│ │ │ │ ├── HelloApplication.java
│ │ │ │ └── HelloController.java
│ │ │ └── resources/
│ │ │ └── application.yaml
│ │ ├── README-ZH.md
│ │ ├── README.md
│ │ └── pom.xml
│ ├── generate-from-contract-sample/
│ │ ├── README-ZH.md
│ │ ├── README.md
│ │ ├── contract/
│ │ │ ├── GoodByeService/
│ │ │ │ └── GoodbyeController.yaml
│ │ │ └── HelloService/
│ │ │ └── HelloController.yaml
│ │ └── pom.xml
│ ├── pom.xml
│ └── verify-with-code-sample/
│ ├── GreetingService/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── goodbye/
│ │ ├── GreetingController.java
│ │ └── GreetingService.java
│ ├── README-ZH.md
│ ├── README.md
│ ├── contract/
│ │ └── GreetingService/
│ │ └── GreetingController.yaml
│ └── pom.xml
├── scripts/
│ ├── cliTest.sh
│ ├── deploy.sh
│ └── test.sh
├── toolkit-distribution/
│ ├── pom.xml
│ └── src/
│ ├── assembly/
│ │ ├── bin.xml
│ │ └── src.xml
│ └── release/
│ ├── LICENSE
│ ├── NOTICE
│ └── licenses/
│ ├── LICENSE-asm
│ ├── LICENSE-automaton
│ ├── LICENSE-cal10n
│ ├── LICENSE-cc0
│ ├── LICENSE-cddl
│ ├── LICENSE-commonmark
│ ├── LICENSE-epl-v10
│ ├── LICENSE-hamcrest
│ ├── LICENSE-jmustache
│ ├── LICENSE-jopt
│ ├── LICENSE-jsch
│ ├── LICENSE-jzlib
│ ├── LICENSE-lombok
│ ├── LICENSE-mit
│ ├── LICENSE-mockito
│ ├── LICENSE-mozilla-v20
│ ├── LICENSE-slf4j
│ ├── LICENSE-threetenbp
│ ├── LICENSE-webjars
│ ├── LICENSE-woodstox-stax2-api
│ ├── NOTICE-airline
│ ├── NOTICE-apache-commons-cli
│ ├── NOTICE-apache-commons-codec
│ └── NOTICE-servicecomb-java-chassis
└── toolkit-maven-plugin/
├── pom.xml
└── src/
├── main/
│ └── java/
│ └── org/
│ └── apache/
│ └── servicecomb/
│ └── toolkit/
│ └── plugin/
│ ├── GenerateMojo.java
│ ├── GenerateUtil.java
│ ├── MavenPluginUtil.java
│ ├── ServiceConfig.java
│ └── VerifyMojo.java
└── test/
├── java/
│ └── org/
│ └── apache/
│ └── servicecomb/
│ └── toolkit/
│ └── plugin/
│ ├── GenerateMojoTest.java
│ ├── GenerateUtilTest.java
│ ├── InvokeStaticMethodTest.java
│ ├── MavenPluginUtilTest.java
│ ├── TestResourcesEx.java
│ └── VerifyMojoTest.java
├── projects/
│ ├── contract-destination/
│ │ └── HelloEndPoint.yaml
│ ├── contract-source/
│ │ └── HelloEndPoint.yaml
│ ├── demo-multi-module/
│ │ ├── first-module/
│ │ │ └── pom.xml
│ │ └── pom.xml
│ ├── demo-with-contract/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── demo/
│ │ ├── Application.java
│ │ └── HelloEndPoint.java
│ └── demo-without-contract/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── demo/
│ └── Application.java
└── resources/
└── log4j2-test.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Output Directory
target/
# C pre-compile
*.gch
*.pch
# C compile
*.a
*.o
*.ko
*.la
*.lo
*.obj
*.elf
*.so
*.so.*
*.dylib
*.exe
*.lib
*.dll
*.out
*.app
*.hex
# Debug files
*.dSYM/
# Java
*.class
# Java Package Files
*.jar
*.war
*.ear
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# Zip Files
*.rar
*.zip
*.7z
*.tar
*.gz
# Ant
build/
# Compiled Python
__pycache__/
*.py[cod]
*py.class
# Eclipse
.settings/
.classpath
.project
# IntelliJ, based on http://devnet.jetbrains.net/docs/DOC-1186
.idea/
*.iml
*.ipr
*.iws
# logs and trace
*.log
*.trace
*.dat
# vi swap
*.swp
# Backup Files
*.bak
*.old
# SVN metadata
.svn/
# Mac
.DS_Store
# gradle
.gradle
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================================
For codegen/src/main/resources/ServiceComb/*
For cli/src/test/resources/swagger.yaml
For codegen/src/test/resources/swagger.yaml
================================================================
This product bundles files from swagger-codegen which is licensed under the Apache License v2.
For details, see https://github.com/swagger-api/swagger-codegen
================================================================
For codegen/src/main/resources/examples/*
================================================================
This product bundles files from swagger-codegen which is licensed under the Apache License v2.
For details, see https://github.com/OAI/OpenAPI-Specification
================================================
FILE: NOTICE
================================================
Apache ServiceComb Toolkit
Copyright 2019-present The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
================================================
FILE: README-ZH.md
================================================
# Toolkit | [English](./README.md) [](https://travis-ci.org/apache/servicecomb-toolkit?branch=master)[](https://coveralls.io/github/apache/servicecomb-toolkit?branch=master)[](https://www.apache.org/licenses/LICENSE-2.0.html)[](https://sonarcloud.io/dashboard?id=servicecomb-toolkit) [](https://gitter.im/ServiceCombUsers/Lobby)
Apache ServiceComb Toolkit 是基于契约的微服务开发工具套件
> 贡献者: 这个项目缺少维护者,如果您愿意为项目维护提供支持,请联系我们,可以将您加入项目的commiter群组,继续维护该项目.
> 用户:这个项目缺少维护者,在我们找到持续的维护者之前,建议您尽可能不要使用这个项目,避免碰到问题得不到技术支持.
## 1 简介
### 1.1 目标
* 提供契约、代码、文档相互转换及校验的能力,帮助用户一键式快速构建基于流行微服务框架和流行编程模型的微服务工程,降低微服务入门成本,使用户聚焦业务开发,提升遗留系统重构、开发效率。

### 1.2 特性
* 遗留应用提取契约文件
在基于SpringMVC/POJO/JAX-RS模型开发的应用中,一键提取符合OpenAPI规范的服务契约文件。
* 契约文件生成微服务工程
输入符合OpenAPI规范的服务契约,一键生成以ServiceComb/SpringCloud/Swagger为底座,以及以SpringMVC/POJO/JAX-RS或SpringBoot为开发模型的微服务项目。
* 契约与代码一致性校验
校验应用的实际实现(如数据和服务API)是否与样本服务契约描述一致。
* 契约的风格校验和兼容性校验
风格校验检查契约是否符合[OAS 3.0.2规范][openapi-3.0.2]以及自定义的规则; 兼容性校验检查新旧两个版本的OAS的兼容性
* 契约/代码生成文档
输入符合OpenAPI规范的服务契约,一键生成html格式的文档。
* Todo List
* 支持gradle plugin, eclipse plugin, intellij plugin。
* 支持word、pdf等流行格式文档。
* 支持契约增量生成代码。
* 工具能力服务化。
* Server端自动/半自动测试
* Interface匹配性校验
* 支持生成包含连接Mysql/Redis等常见DB的代码片段的微服务脚手架
### 1.3 适用场景
* 集成多厂商应用的企业
问题:厂商数据、服务标准不一致,开发语言、习惯、框架不一致,集成商难集成,企业难管控。
措施:通过统一定义的接口描述标准(服务契约),使用工具套件一键生成基于指定微服务框架的微服务工程,并且通过服务契约校验手段协同维护整体系统的一致性。以此协调多个开发团队,降低沟通成本且避免后期的混乱。
* 遗留系统微服务化快速改造
问题:用户需要额外学习和理解微服务及相关框架后,再设计微服务工程,学习成本高。
措施:使用工具套件分析遗留应用提取服务契约,再一键生成基于指定微服务框架的微服务工程后,即可聚焦业务开发,减少用户对微服务框架的学习成本。
## 2 设计
### 2.1 主体架构

### 2.2 工作原理

## 3 快速入门
### 3.1 从源码构建工具和插件
构建环境要求:
* [Java 8](http://java.oracle.com)
* [Apache maven 3.5.0 or greater](http://maven.apache.org/)
```shell
# 从github获取toolkit最新源码
$ git clone https://github.com/apache/servicecomb-toolkit.git
$ cd toolkit
# 构建打包
$ mvn clean install
```
### 3.2 使用toolkit-maven-plugin插件
#### 3.2.1 配置
在maven项目的pom文件中配置
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
<sourceType>code</sourceType>
<!-- 生成契约文件的类型,不设置则默认为 yaml -->
<contractFileType>yaml</contractFileType>
<!-- 生成文档的类型,不设置则默认为 html -->
<documentType>html</documentType>
<!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
<outputDirectory>./target</outputDirectory>
<!-- 被解析的契约文件路径,在 sourceType 设置为 contract 时有效,且必须设置 -->
<contractLocation>./contract</contractLocation>
<!-- 被校验的契约文件目录,在 sourceType 设置为 contract 时有效,且必须设置 -->
<sourceContractPath>./target/contract</sourceContractPath>
<!-- 样本契约文件目录,必须设置 -->
<destinationContractPath>./contract</destinationContractPath>
<!-- 生成的微服务代码工程配置 -->
<service>
<!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
<serviceType>all</serviceType>
<!-- 微服务的 groupid,用户可选,默认值为 domain.orgnization.project -->
<groupId>domain.orgnization.project</groupId>
<!-- 微服务的 artifactId,用户可选,默认值为 sample -->
<artifactId>sample</artifactId>
<!-- 微服务的 artifactVersion,用户可选,默认值为 0.1.0-SNAPSHOT -->
<artifactVersion>0.1.0-SNAPSHOT</artifactVersion>
<!-- 微服务的 packageName,用户可选,默认值为 domain.orgnization.project.sample -->
<packageName>domain.orgnization.project.sample</packageName>
<!-- 微服务框架,用户可选。设置为 ServiceComb,生成ServiceComb风格的微服务项目;设置为 SpringCloud,生成SpringCloud风格的微服务项目。默认值为 ServiceComb -->
<microServiceFramework>ServiceComb</microServiceFramework>
<!-- 服务提供者的服务id。仅包含服务消费者的场景(serviceType=consumer)必须设置该值 -->
<providerServiceId>servicecomb-provider</providerServiceId>
<!-- 服务id,默认值为artifactId的值 -->
<serviceId>servicecomb-consumer</serviceId>
</service>
<!-- 指定额外的属性值,这些属性值可以被mustach模板引用。仅为生成代码时使用,即goal为generate -->
<additionalProperties>
<prop1>value</prop1>
<prop2>value</prop2>
...
<propN>value</propN>
</additionalProperties>
</configuration>
</plugin>
```
#### 3.2.2 命令
```shell
# 生成契约,文档和微服务工程
mvn toolkit:generate
# 校验代码和契约一致性
mvn toolkit:verify
```
#### 3.2.2.1 解析代码,生成微服务代码工程、OpenAPI规范契约、文档
配置项(不显式设置 `<configuration>` 则使用默认配置)
例:
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
<sourceType>code</sourceType>
<!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
<outputDirectory>./target</outputDirectory>
<!-- 生成的微服务代码工程配置 -->
<service>
<!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
<serviceType>all</serviceType>
</service>
</configuration>
</plugin>
```
运行命令
```shell
mvn toolkit:generate
```
代码生成契约现已支持以下注解(类级别)编写的restful接口
>RestController, RestSchema, RpcSchema, RequestMapping
代码生成契约时,restful接口方法修饰符必须指定为public
#### 3.2.2.2 解析契约,生成微服务工程、文档
配置项(不显式设置 `<configuration>` 则使用默认配置)
例:
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
<sourceType>contract</sourceType>
<!-- 被解析的契约文件路径,在 sourceType 设置为 contract 时有效,且必须设置 -->
<contractLocation>./contract</contractLocation>
<!-- 生成契约文件、文档的根目录,不设置则默认为运行命令所在目录下的 target 目录,生成的微服务工程在 project 目录,契约文件在 contract 目录,文档在 document 目录 -->
<outputDirectory>./target</outputDirectory>
<!-- 生成的微服务代码工程配置 -->
<service>
<!-- 微服务的类型,可生成 provider/consumer/all,默认值为 all -->
<serviceType>provider</serviceType>
</service>
</configuration>
</plugin>
```
运行命令
```shell
mvn toolkit:generate
```
#### 3.2.2.3 代码和契约一致性校验
配置项
例:
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- 输入源。设置为 code,表示解析当前代码;设置为 contract,表示解析指定目录的契约文件。不设置则默认为 code -->
<sourceType>code</sourceType>
<!-- 样本契约文件目录,必须设置 -->
<destinationContractPath>./contract</destinationContractPath>
</configuration>
</plugin>
```
运行命令
```shell
mvn toolkit:verify
```
### 3.3 使用toolkit cli工具
#### 3.3.0 获取
* 如果你使用的是正式发布版本(>=0.2.0),可以在解压二进制包后直接使用里面的脚本文件
* 在Linux及Mac环境,请使用cli.sh
* 在Windows环境,请使用cli.cmd
* 如果你是通过源码构建,可以将`cli/scripts/cli.*`与`cli/target/bin/toolkit-cli-{version}.jar`放置在同一目录,然后根据不同环境选择不同脚本
以下所有示例均通过Linux环境的cli.sh进行介绍
```shell
$ ./cli.sh help
```
#### 3.3.1 契约生成微服务工程
```shell
$ ./cli.sh codegenerate -m ServiceComb -i swagger.yaml -o ./project -p SpringMVC
```
> **codegenerate** 命令选项说明:
* -m, --microservice-framework : 指定微服务框架,现支持ServiceComb
例:-m ServiceComb
* -p, --programming-model : 指定编程模型,可选JAX-RS,POJO,SpringMVC,SpringBoot
例:-p SpringMvc
* -i, --input : 指定遵循OpenAPI规范的契约文件,支持yaml和json格式,支持指定本地和网络文件
例:-i http://petstore.swagger.io/v2/swagger.json
* -o, --output : 生成的项目代码输出路径
例:-o ./project
* --group-id : 指定生成的项目的group id
例:--group-id com.demo
* --artifact-id : 指定生成的项目的artifact id
例:--artifact-id springmvc-example
* --artifact-version : 指定生成的项目的artifact version
例:--artifact-version 1.0.0
* --api-package : 指定生成项目的api package
例:--api-package com.demo.api
* --model-package : 指定生成项目的model package
例:--model-package com.demo.model
* -t, --service-type : 指定生成的微服务项目的微服务类型。可选值为provider,consumer,all
例:--service-type provider
* --properties : 指定额外的属性值,这些属性值可以被mustach模板引用
例:--properties applicationId=app,providerServiceId=provider
#### 3.3.2 契约生成文档
```shell
$ ./cli.sh docgenerate -i swagger.yaml -o ./document
```
> **docgenerate** 命令选项说明:
* -i, --input : 指定遵循OpenAPI规范的契约文件,支持yaml和json格式,支持指定本地和网络文件
例:-i http://petstore.swagger.io/v2/swagger.json
* -o, --output : 文档输出路径
例:-o ./document
* -f, --format : 指定输出文档风格,现支持swagger-ui
例:-f swagger-ui
#### 3.3.3 契约风格检查
```shell
$ ./cli.sh checkstyle -r style-check-rules.yaml -f oas.yaml
or
$ ./cli.sh cs -r style-check-rules.yaml -f oas.yaml
```
> **checkstyle** Command argument
* -r, --rules-file. Rules properties file.
* -f, --file. OpenAPI v3 spec yaml.
见[风格检查规则](oas-validator/README-ZH.md)
#### 3.3.4 契约兼容性检查
```shell
$ ./cli.sh checkcompatibility left-oas.yaml right-oas.yaml
或者
$ ./cli.sh cc left-oas.yaml right-oas.yaml
```
> **checkcompatibility** Command argument
* <files> Two OpenAPI v3 spec yaml file
见[兼容性检查规则](oas-validator/README-ZH.md)
### 3.4 使用案例
可以在[这里](./samples/README-ZH.md)找到使用插件的一些示例
## 4 社区互动
* [提交issues](https://issues.apache.org/jira/browse/SCB)
* [gitter聊天室](https://gitter.im/ServiceCombUsers/Lobby)
* 邮件列表: [订阅](mailto:dev-subscribe@servicecomb.apache.org) [浏览](https://lists.apache.org/list.html?dev@servicecomb.apache.org)
## 5 参与开发
See [Pull Request Guide](http://servicecomb.apache.org/developers/submit-codes/) for details.
================================================
FILE: README.md
================================================
# Toolkit | [中文](./README-ZH.md) [](https://travis-ci.org/apache/servicecomb-toolkit?branch=master)[](https://coveralls.io/github/apache/servicecomb-toolkit?branch=master)[](https://www.apache.org/licenses/LICENSE-2.0.html)[](https://sonarcloud.io/dashboard?id=servicecomb-toolkit) [](https://gitter.im/ServiceCombUsers/Lobby)
Apache ServiceComb Toolkit is a contract-based microservice development toolkit
> Notice to contributors: this project is not active due to lack of maintainers. If you are interested in this project, please cantact us and we will help you to be a committer.
> Notice to users: this project is not active due to lack of maintainers. Before we find enough resources, do not use this project if possible.
## 1 Introduction
### 1.1 Conceptions
* Provides the ability to convert and verify contracts, code, and documents, helping users quickly build microservice projects based on popular microservices frameworks and popular programming models, reducing the cost of microservices entry, enabling users to focus on business development, enhance refactoring and development efficiency.

### 1.2 Features
* Code extraction service contract
In applications developed based on the SpringMVC/POJO/JAX-RS model, one-click generation of service contract files conforming to the OpenAPI specification.
* Service contract generation microservice project
Enter a service contract that conforms to the OpenAPI specification, one-click generation of a microservice project with ServiceComb/SpringCloud/Swagger as the base microservice framework and SpringMVC/POJO/JAX-RS or SpringBoot as programming model.
* Service contract and code consistency check
Verify that the actual implementation of the application (such as the data and service API) is consistent with the agreed service contract description.
* Service contract style checking and compatibility checking
The style checking checks whether the contract conforms to [OAS 3.0.2 specification] [openapi-3.0.2] and custom rules; the compatibility checking checks whether new OAS spec compatible with old spec
* Service contract/code generation document
Enter a service contract that conforms to the OpenAPI specification, one-click generation of a document in html format.
* Todo List
* Support gradle plugin, eclipse plugin, intellij plugin.
* Support for generating popular format documents such as word, pdf.
* Support contract incremental generation code.
* Make capability as a service.
* Server-side automatic / semi-automatic test
* Interface matching check
* Support for generating microservice scaffolding containing code snippets that connect to common DBs such as Mysql / Redis
### 1.3 Applicable Scene
* For users who integrate multi-vendor applications
Scene: the development languages, habits, and frameworks of different vendors are different, the entire system data and service standards are inconsistent, users are difficult to integrate, and it is difficult to manage and control the final delivery quality.
Solution:Through a uniformly defined interface description standard (service contract), a toolkit is used to generate a microservice project based on a specified microservices framework, and the consistency of the whole system is coordinated through service contract verification. Coordinate multiple development teams to reduce communication costs and avoid post-chaos.
* For users who have evolved from legacy systems to microservices
Scene: additional learning and understanding of the microservices-related framework details is required before the microservices project can be designed, built, and developed according to the selected microservices framework. For users, Need to be distracted to focus on things outside the business.
Solution: Using the toolkit to analyze the legacy application extraction service contract, and then generate the microservices project based on the specified microservices framework, you can focus on business development and reduce the learning cost of the microservices framework.
## 2 Design
### 2.1 Architecture

### 2.2 Working Principle

## 3 Quick Start
### 3.1 Build tool and plugins from source
> Build environment requirements
* [Java 8](http://java.oracle.com)
* [Apache maven 3.5.0 or greater](http://maven.apache.org/)
```shell
# Get the latest source code for toolkit from github
$ git clone https://github.com/apache/servicecomb-toolkit.git
$ cd toolkit
# Build package
$ mvn clean install
```
### 3.2 Use the toolkit-maven-plugin plugin
#### 3.2.1 configuration
Configured in the pom file of the maven project
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- Set to 'code' to resolve the current project. Set to 'contract' to resolve the contract file for the specified path.If not set, the default is 'code' -->
<sourceType>code</sourceType>
<!-- The type of the contract file is generated. If it is not set, the default is 'yaml' -->
<contractFileType>yaml</contractFileType>
<!-- The type of the generated document. If not set, the default is 'html' -->
<documentType>html</documentType>
<!-- The root directory to save microservice project,contract file and document. If it is not set, the default is the 'target' under the directory where the command is run -->
<outputDirectory>./target</outputDirectory>
<!-- Input contract file path. Valid when sourceType is set to 'contract', must be set -->
<contractLocation>./contract</contractLocation>
<!-- Checked contract file path. Valid when sourceType is set to 'contract', must be set -->
<sourceContractPath>./target/contract</sourceContractPath>
<!-- Sample contract file path, must be set -->
<destinationContractPath>./contract</destinationContractPath>
<!-- Generated microservice project configuration -->
<service>
<!-- Microservice type,can generated 'provider/consumer/all',the default is 'all' -->
<serviceType>all</serviceType>
<!-- Microservice project 'groupid',optional,the default is 'domain.orgnization.project' -->
<groupId>domain.orgnization.project</groupId>
<!-- Microservice project 'artifactId',optional,the default is 'sample' -->
<artifactId>sample</artifactId>
<!-- Microservice project 'artifactVersion',optional,the default is '0.1.0-SNAPSHOT' -->
<artifactVersion>0.1.0-SNAPSHOT</artifactVersion>
<!-- Microservice project 'packageName',optional,the default is 'domain.orgnization.project.sample' -->
<packageName>domain.orgnization.project.sample</packageName>
</service>
<!-- Specify additional attribute values that can be referenced by the mustache template.Only used when plugin goal is generate -->
<additionalProperties>
<prop1>value</prop1>
<prop2>value</prop2>
...
<propN>value</propN>
</additionalProperties>
</configuration>
</plugin>
```
#### 3.2.2 Command
```shell
# Generating contract, document and microservice project
mvn toolkit:generate
# Verify code and contract consistency
mvn toolkit:verify
```
#### 3.2.2.1 Extract the microservice project, OpenAPI contract file and document from the code
Configuration(use default configuration if not set `<configuration>`)
example
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- Set to 'code' to resolve the current project. Set to 'contract' to resolve the contract file for the specified path.If not set, the default is 'code' -->
<sourceType>code</sourceType>
<!-- The root directory to save contract file and document. If it is not set, the default is the 'target' under the directory where the command is run -->
<outputDirectory>./target</outputDirectory>
<!-- Generated microservice project configuration -->
<service>
<!-- Microservice type,can generated 'provider/consumer/all',the default is 'all' -->
<serviceType>all</serviceType>
</service>
</configuration>
</plugin>
```
Run in shell
```shell
mvn toolkit:generate
```
When generating contracts from code,support for identifying restful interfaces written by the following annotations (class level)
>RestController, RestSchema, RpcSchema, RequestMapping
When generating contracts from code,the restful interface method access modifier must be specified as public
#### 3.2.2.2 Generate the microservice project and document from contract
Configuration(use default configuration if not set `<configuration>`)
example
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- Set to 'code' to resolve the current project. Set to 'contract' to resolve the contract file for the specified path.If not set, the default is 'code' -->
<sourceType>contract</sourceType>
<!-- The root directory to save contract file and document. If it is not set, the default is the 'target' under the directory where the command is run -->
<outputDirectory>./target</outputDirectory>
<!-- Input contract file path. Valid when sourceType is set to 'contract', must be set -->
<contractLocation>./contract</contractLocation>
<!-- Generated microservice project configuration -->
<service>
<!-- Microservice type,can generated 'provider/consumer/all',the default is 'all' -->
<serviceType>provider</serviceType>
</service>
</configuration>
</plugin>
```
Run in shell
```shell
mvn toolkit:generate
```
#### 3.2.2.3 Contract verify
Configuration
example
```xml
<plugin>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>toolkit-maven-plugin</artifactId>
<version>0.3.0-SNAPSHOT</version>
<configuration>
<!-- Set to 'code' to resolve the current project. Set to 'contract' to resolve the contract file for the specified path.If not set, the default is 'code' -->
<sourceType>code</sourceType>
<!-- Sample contract file path, must be set -->
<destinationContractPath>./contract</destinationContractPath>
</configuration>
</plugin>
```
Run in shell
```shell
mvn toolkit:verify
```
### 3.3 Use the toolkit cli
* If you are using the official release version ( >=0.2.0 ), you can use the script files directly after decompressing the binary package
* In Linux and Mac environment, please use cli.sh
* In the Windows environment, please use cli.cmd
* If you are building from source, you can put `cli/scripts/cli.*` in the same directory as`cli/target/bin/toolkit-cli-{version}.jar` and then choose different scripts according to different environments
All the examples below are introduced through cli.sh for Linux environment
```shell
$ ./cli.sh help
```
#### 3.3.1 Service contract generation microservice project
```shell
$ ./cli.sh codegenerate -m ServiceComb -i swagger.yaml -o ./project -p SpringMVC
```
> **codegenerate** Command option
* -m, --microservice-framework. Specify microservices framework, now supports ServiceComb.
e.g.:-m ServiceComb
* -p, --programming-model. Specify programming model, optional JAX-RS, POJO, SpringMVC, SpringBoot.
e.g.:-p SpringMvc
* -i, --input. Specifies contract files that follow the OpenAPI specification, supports yaml and json formats, and supports specifying local and network files.
e.g.:-i http://petstore.swagger.io/v2/swagger.json
* -o, --output. Generated project code output path.
e.g.:-o ./project
* --group-id. Specify the group id of the generated project.
e.g.:--group-id com.demo
* --artifact-id. Specify the artifact id of the generated project.
e.g.:--artifact-id springmvc-example
* --artifact-version. Specify the artifact version of the generated project.
e.g.:--artifact-version 1.0.0
* --api-package : Specify the api package of the generated project.
e.g.:--api-package com.demo.api
* --model-package : Specify the model package of the generated project.
e.g.:--model-package com.demo.model
* -t, --service-type : Specify microservice type of generated microservice project. optional value is provider,consumer,all
e.g.:--service-type provider
* --properties : Specify additional attribute values that can be referenced by the mustache template
e.g.:--properties applicationId=app,providerServiceId=provider
#### 3.3.2 Service contract generation document
```shell
$ ./cli.sh docgenerate -i swagger.yaml -o ./document
```
> **docgenerate** Command option
* -i, --input. Specifies contract files that follow the OpenAPI specification, supports yaml and json formats, and supports specifying local and network files.
e.g:-i http://petstore.swagger.io/v2/swagger.json
* -o, --output. Document output path.
e.g:-o ./document
* -f, --format. Specifies the output document format, now supports swagger-ui
e.g:-f swagger-ui
#### 3.3.3 Service contract style checking
```shell
$ ./cli.sh checkstyle -r style-check-rules.yaml -f oas.yaml
or
$ ./cli.sh cs -r style-check-rules.yaml -f oas.yaml
```
> **checkstyle** Command argument
* -r, --rules-file. Rules properties file.
* -f, --file. OpenAPI v3 spec yaml.
See [style check rules](oas-validator/README.md)
#### 3.3.4 Service contract compatibility checking
```shell
$ ./cli.sh checkcompatibility left-oas.yaml right-oas.yaml
or
$ ./cli.sh cc left-oas.yaml right-oas.yaml
```
> **checkcompatibility** Command argument
* <files> Two OpenAPI v3 spec yaml file
See [compatibilty check rules](oas-validator/README.md)
### 3.4 Use case
some example of using plugin can be found [here](./samples)
## 4 Contact us
* [issues](https://issues.apache.org/jira/browse/SCB)
* [gitter](https://gitter.im/ServiceCombUsers/Lobby)
* mailing list: [subscribe](mailto:dev-subscribe@servicecomb.apache.org) [view](https://lists.apache.org/list.html?dev@servicecomb.apache.org)
## 5 Contribute
PR: [Pull request](https://github.com/apache/servicecomb-toolkit/pulls)
================================================
FILE: cli/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>toolkit</artifactId>
<groupId>org.apache.servicecomb.toolkit</groupId>
<version>0.3.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cli</artifactId>
<properties>
<main.class>org.apache.servicecomb.toolkit.cli.ToolkitMain</main.class>
</properties>
<dependencies>
<dependency>
<groupId>io.airlift</groupId>
<artifactId>airline</artifactId>
<exclusions>
<exclusion>
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>codegen</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>docgen</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>oas-validator-style</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>oas-validator-compatibility</artifactId>
</dependency>
<dependency>
<groupId>com.github.stefanbirkner</groupId>
<artifactId>system-rules</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>${main.class}</mainClass>
<outputDirectory>target/bin</outputDirectory>
<finalName>toolkit-cli-${project.version}</finalName>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
================================================
FILE: cli/scripts/cli.cmd
================================================
@REM Licensed to the Apache Software Foundation (ASF) under one or more
@REM contributor license agreements. See the NOTICE file distributed with
@REM this work for additional information regarding copyright ownership.
@REM The ASF licenses this file to You under the Apache License, Version 2.0
@REM (the "License"); you may not use this file except in compliance with
@REM the License. You may obtain a copy of the License at
@REM
@REM http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing, software
@REM distributed under the License is distributed on an "AS IS" BASIS,
@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@REM See the License for the specific language governing permissions and
@REM limitations under the License.
@echo off && rem
set SUCCESS_CODE=0
set ERROR_CODE=1
@REM check if java install
if "%JAVA_HOME%" == "" goto JAVA_HOME_ERROR
if not exist "%JAVA_HOME%\bin\java.exe" goto JAVA_HOME_ERROR
set jarFile=
for /f "delims=" %%t in ('dir /S /B cli-*.jar') do set jarFile=%%t
@REM check if jar file exist
if "%jarFile%" == "" (
echo Error: cli.jar not exist. make sure it is placed in the current directory or subdirectory of this script
exit /B %ERROR_CODE%
)
set allparam=
:param
set str=%1
if "%str%"=="" (
goto end
)
set allparam=%allparam% %str%
shift /0
goto param
:end
if "%allparam%"=="" (
goto eof
)
rem remove left right blank
:intercept_left
if "%allparam:~0,1%"==" " set "allparam=%allparam:~1%"&goto intercept_left
:intercept_right
if "%allparam:~-1%"==" " set "allparam=%allparam:~0,-1%"&goto intercept_right
:eof
java -Dscript.name="cli.cmd" -jar %jarFile% %allparam%
exit /B %SUCCESS_CODE%
:JAVA_HOME_ERROR
echo.
echo Error: JAVA_HOME invalid in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
exit /B %ERROR_CODE%
================================================
FILE: cli/scripts/cli.sh
================================================
#!/bin/bash
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
# check if java install
if [ -z "$JAVA_HOME" -o ! -f "$JAVA_HOME/bin/java" ]; then
echo Error: JAVA_HOME invalid in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
exit 1
fi
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
shellDir=`dirname "$PRG"`
# check if jar file exist
jarFile=$(find ${shellDir} -name "cli-*.jar" | head -n 1)
if [[ ! -f ${jarFile} ]]; then
echo "error: cli.jar not exist. make sure it is placed in the current directory or subdirectory of this script"
exit 1
fi
java -Dscript.name="cli.sh" -jar ${jarFile} $*
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibility.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import io.airlift.airline.Command;
@Command(name = "checkcompatibility",
description = "(Or cc for abbr). Check compatibility for two OpenAPI v3 spec yamls, right one should be semantically compatible with left one")
public class CheckCompatibility extends CheckCompatibilityBase {
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibilityAbbr.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import io.airlift.airline.Command;
@Command(name = "cc",
description = "Check compatibility for two OpenAPI v3 spec yamls,"
+ " right one should be semantically compatible with left one",
hidden = true)
public class CheckCompatibilityAbbr extends CheckCompatibilityBase {
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibilityBase.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.StringJoiner;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.compatibility.CompatibilityCheckParser;
import org.apache.servicecomb.toolkit.oasv.compatibility.factory.DefaultOasSpecDiffValidatorFactory;
import org.apache.servicecomb.toolkit.oasv.diffvalidation.api.OasDiffValidationContext;
import org.apache.servicecomb.toolkit.oasv.diffvalidation.api.OasDiffViolation;
import org.apache.servicecomb.toolkit.oasv.diffvalidation.api.OasSpecDiffValidator;
import org.apache.servicecomb.toolkit.oasv.diffvalidation.factory.OasSpecDiffValidatorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import io.airlift.airline.Arguments;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.parser.core.models.SwaggerParseResult;
public class CheckCompatibilityBase implements Runnable {
private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
@Arguments(
title = "files", required = true,
description = "Two OpenAPI v3 spec yamls"
)
private List<String> filePaths;
@Override
public void run() {
if (filePaths.size() != 2) {
LOGGER.error("Require 2 files");
return;
}
OpenAPI oldOas = null;
OpenAPI newOas = null;
try {
oldOas = loadOpenApi(filePaths.get(0));
newOas = loadOpenApi(filePaths.get(1));
} catch (Exception e) {
LOGGER.error(e.getMessage());
return;
}
OasSpecDiffValidator diffValidator = createOasSpecDiffValidator();
List<OasDiffViolation> violations = diffValidator.validate(createContext(oldOas, newOas), oldOas, newOas);
if (CollectionUtils.isNotEmpty(violations)) {
for (OasDiffViolation violation : violations) {
LOGGER.info("left : {}\nright : {}\nerror : {}\n------",
OasObjectPropertyLocation.toPathString(violation.getLeftLocation()),
OasObjectPropertyLocation.toPathString(violation.getRightLocation()),
violation.getError()
);
}
throw new ValidationFailedException("check not passed");
}
LOGGER.info("Everything is good");
}
private OpenAPI loadOpenApi(String filePath) throws IOException {
String yaml = loadFileContent(filePath);
SwaggerParseResult oldParseResult = CompatibilityCheckParser.parseYaml(yaml);
OpenAPI openAPI = oldParseResult.getOpenAPI();
if (openAPI == null) {
StringJoiner errors = new StringJoiner("\n", "Parse errors:", "");
if (CollectionUtils.isNotEmpty(oldParseResult.getMessages())) {
for (String message : oldParseResult.getMessages()) {
errors.add(message);
}
}
throw new RuntimeException(errors.toString());
}
return openAPI;
}
private OasSpecDiffValidator createOasSpecDiffValidator() {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
DefaultOasSpecDiffValidatorFactory.class.getPackage().getName());
try {
OasSpecDiffValidatorFactory diffValidatorFactory = ctx.getBean(OasSpecDiffValidatorFactory.class);
return diffValidatorFactory.create();
} finally {
ctx.close();
}
}
private String loadFileContent(String filePath) throws IOException {
Path specPath = Paths.get(filePath);
specPath.toAbsolutePath().toString();
return FileUtils.readFileToString(specPath.toFile());
}
private OasDiffValidationContext createContext(OpenAPI leftOpenAPI, OpenAPI rightOpenAPI) {
OasDiffValidationContext context = new OasDiffValidationContext(leftOpenAPI, rightOpenAPI);
return context;
}
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyle.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import io.airlift.airline.Command;
@Command(name = "checkstyle",
description = "(Or cs for abbr). Check style for OpenAPI v3 spec yaml.")
public class CheckStyle extends CheckStyleBase {
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleAbbr.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import io.airlift.airline.Command;
@Command(name = "cs",
description = "Check style for OpenAPI v3 spec yaml", hidden = true)
public class CheckStyleAbbr extends CheckStyleBase {
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleBase.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import com.google.common.base.Charsets;
import io.airlift.airline.Option;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.parser.core.models.SwaggerParseResult;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Properties;
import java.util.StringJoiner;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.servicecomb.toolkit.oasv.FactoryOptions;
import org.apache.servicecomb.toolkit.oasv.common.OasObjectPropertyLocation;
import org.apache.servicecomb.toolkit.oasv.style.StyleCheckParser;
import org.apache.servicecomb.toolkit.oasv.style.factory.ValidatorFactoryComponents;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasSpecValidator;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasValidationContext;
import org.apache.servicecomb.toolkit.oasv.validation.api.OasViolation;
import org.apache.servicecomb.toolkit.oasv.validation.factory.OasSpecValidatorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class CheckStyleBase implements Runnable {
private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
@Option(name = { "-r", "--rules-file" }, title = "rules properties file", required = true,
description = "rules properties file")
private String rulesFile;
@Option(name = { "-f", "--file" }, title = "OpenAPI v3 spec yaml", required = true,
description = "OpenAPI v3 spec yaml")
private String filePath;
@Override
public void run() {
FactoryOptions factoryOptions;
try {
factoryOptions = loadFactoryOptions();
} catch (IOException e) {
throw new RuntimeException(e);
}
String yaml = null;
try {
yaml = loadFileContent(filePath);
} catch (IOException e) {
throw new RuntimeException(e);
}
SwaggerParseResult parseResult = StyleCheckParser.parseYaml(yaml);
OpenAPI openAPI = parseResult.getOpenAPI();
if (openAPI == null) {
StringJoiner sj = new StringJoiner("\n");
if (CollectionUtils.isNotEmpty(parseResult.getMessages())) {
for (String message : parseResult.getMessages()) {
sj.add(message);
}
}
throw new RuntimeException(sj.toString());
}
OasSpecValidator oasSpecValidator = createOasSpecValidator(factoryOptions);
List<OasViolation> violations = oasSpecValidator.validate(createContext(openAPI), openAPI);
if (CollectionUtils.isNotEmpty(violations)) {
for (OasViolation violation : violations) {
LOGGER.info("path : {}\nerror : {}\n------",
OasObjectPropertyLocation.toPathString(violation.getLocation()), violation.getError());
}
throw new ValidationFailedException("check not passed");
}
LOGGER.info("Everything is good");
}
private OasSpecValidator createOasSpecValidator(FactoryOptions factoryOptions) {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(
ValidatorFactoryComponents.class);
try {
OasSpecValidatorFactory oasSpecValidatorFactory = ctx.getBean(OasSpecValidatorFactory.class);
return oasSpecValidatorFactory.create(factoryOptions);
} finally {
ctx.close();
}
}
private String loadFileContent(String filePath) throws IOException {
Path specPath = Paths.get(filePath);
return FileUtils.readFileToString(specPath.toFile(), Charsets.UTF_8);
}
private OasValidationContext createContext(OpenAPI openAPI) {
OasValidationContext oasValidationContext = new OasValidationContext(openAPI);
return oasValidationContext;
}
private FactoryOptions loadFactoryOptions() throws IOException {
Path specPath = Paths.get(rulesFile);
specPath.toAbsolutePath().toString();
Properties properties = new Properties();
try (FileInputStream fis = new FileInputStream(specPath.toFile())) {
properties.load(fis);
}
return new FactoryOptions(properties);
}
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CodeGenerate.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import static org.apache.commons.lang3.StringUtils.isNotEmpty;
import java.io.File;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Arrays;
import java.util.Collections;
import java.util.Optional;
import org.apache.servicecomb.toolkit.CodeGenerator;
import org.apache.servicecomb.toolkit.GeneratorFactory;
import org.apache.servicecomb.toolkit.codegen.ProjectMetaConstant;
import org.openapitools.codegen.config.CodegenConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.airlift.airline.Command;
import io.airlift.airline.Option;
@Command(name = "codegenerate",
description = "Generate multiple models of microservice project by OpenAPI specification file")
public class CodeGenerate implements Runnable {
private final static Logger LOGGER = LoggerFactory.getLogger(CodeGenerate.class);
@Option(name = {"-p", "--programming-model"}, title = "programming model", required = false,
description = "programming model, as SpringMVC, POJO, JAX-RS, and SpringBoot")
private String programmingModel;
@Option(name = {"-m", "--microservice-framework"}, title = "framework",
description = "microservice-framework")
private String framework = "ServiceComb";
@Option(name = {"-i", "--input"}, title = "OpenAPI specification file", required = true,
description = "location of the OpenAPI specification file, as URL or file (required)")
private String specFile;
@Option(name = {"-o", "--output"}, title = "output directory",
description = "location of the generated document (current dir by default)")
private String output = "";
@Option(name = {"--group-id"}, title = "group id",
description = "groupId in generated microservice project")
private String groupId;
@Option(name = {"--artifact-id"}, title = "artifact id",
description = "artifact id in generated microservice project")
private String artifactId;
@Option(name = {"--artifact-version"}, title = "artifact version",
description = "artifact version in generated microservice project")
private String artifactVersion;
@Option(name = {"--api-package"}, title = "api package",
description = "api package in generated microservice project")
private String apiPackage;
@Option(name = {"--model-package"}, title = "model package",
description = "model package in generated microservice project")
private String modelPackage;
@Option(name = {"-t", "--service-type"}, title = "service type",
description = "microservice type of generated microservice project. optional value is provider,consumer,all")
private String serviceType = "all";
@Option(
name = {"--properties"},
title = "additional properties",
description =
"usage: --properties name=value,name=value. These Properties can be referenced by the mustache templates."
+ " You can specify one or more value")
private String properties;
@Override
public void run() {
CodeGenerator codegenerator = GeneratorFactory.getGenerator(CodeGenerator.class, "default");
if (codegenerator == null) {
LOGGER.warn("Not CodeGenerator found");
return;
}
CodegenConfigurator configurator = new CodegenConfigurator();
// add additional property
Optional.ofNullable(properties).ifPresent(properties ->
Arrays.stream(properties.split(",")).forEach(property -> {
String[] split = property.split("=");
if (split != null && split.length == 2) {
configurator.addAdditionalProperty(split[0], split[1]);
}
})
);
configurator.setOutputDir(output)
.setGroupId(groupId)
.setArtifactId(artifactId)
.setArtifactVersion(artifactVersion)
.setLibrary(programmingModel)
.setGeneratorName(framework)
.setApiPackage(apiPackage)
.setModelPackage(modelPackage);
configurator.addAdditionalProperty(ProjectMetaConstant.SERVICE_TYPE, serviceType);
if (isNotEmpty(specFile)) {
File contractFile = new File(specFile);
if (contractFile.isDirectory()) {
try {
Files.walkFileTree(Paths.get(contractFile.toURI()), new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
configurator.setInputSpec(file.toFile().getCanonicalPath())
.addAdditionalProperty("apiName", file.toFile().getName().split("\\.")[0]);
try {
codegenerator.configure(Collections.singletonMap("configurator", configurator));
codegenerator.generate();
} catch (RuntimeException e) {
throw new RuntimeException("Failed to generate code base on file " + file.toFile().getName());
}
return super.visitFile(file, attrs);
}
});
} catch (RuntimeException | IOException e) {
LOGGER.error(e.getMessage());
return;
}
} else {
configurator.setInputSpec(specFile).addAdditionalProperty("apiName", contractFile.getName().split("\\.")[0]);
codegenerator.configure(Collections.singletonMap("configurator", configurator));
codegenerator.generate();
}
LOGGER.info("Success to generate code, the directory is: {}", output);
}
}
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import java.io.File;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.HashMap;
import java.util.Map;
import org.apache.servicecomb.toolkit.DocGenerator;
import org.apache.servicecomb.toolkit.GeneratorFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.airlift.airline.Command;
import io.airlift.airline.Option;
import io.swagger.parser.OpenAPIParser;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.parser.core.models.SwaggerParseResult;
@Command(name = "docgenerate", description = "Generate document by OpenAPI specification file")
public class DocGenerate implements Runnable {
private final static Logger LOGGER = LoggerFactory.getLogger(CodeGenerate.class);
@Option(name = {"-i", "--input"}, title = "OpenAPI specification file", required = true,
description = "location of the OpenAPI specification file, as URL or file (required)")
private String specFile;
@Option(name = {"-f", "--format"}, title = "document format", required = false,
description = "format of document, as swagger-ui or asciidoc-html (swagger-ui by default)")
private String format = "swagger-ui";
@Option(name = {"-o", "--output"}, title = "output directory",
description = "location of the generated document (current dir by default)")
private String output = "";
@Override
public void run() {
try {
Path specPath = Paths.get(specFile);
String[] fileName = new String[1];
DocGenerator docGenerator = GeneratorFactory.getGenerator(DocGenerator.class, format);
Map<String, Object> docGeneratorConfig = new HashMap<>();
if (Files.isDirectory(specPath)) {
Files.walkFileTree(specPath, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
docGeneratorConfig.put("contractContent", parseOpenApi(specPath));
docGeneratorConfig.put("outputPath",
output + File.separator + file.toFile().getName().substring(0, file.toFile().getName().indexOf(".")));
docGenerator.configure(docGeneratorConfig);
docGenerator.generate();
return super.visitFile(file, attrs);
}
});
} else if (Files.isRegularFile(specPath)) {
fileName[0] = specPath.toFile().getName();
docGeneratorConfig.put("contractContent", parseOpenApi(specPath));
docGeneratorConfig.put("outputPath", output + File.separator + new File(specFile).getName()
.substring(0, new File(specFile).getName().indexOf(".")));
docGenerator.configure(docGeneratorConfig);
docGenerator.generate();
} else {
fileName[0] = specFile;
docGeneratorConfig.put("contractContent", parseOpenApi(specPath));
docGeneratorConfig.put("outputPath", output + File.separator + new File(specFile).getName()
.substring(0, new File(specFile).getName().indexOf(".")));
docGenerator.configure(docGeneratorConfig);
docGenerator.generate();
}
LOGGER.info("Success to generate document, the directory is: {}", output);
} catch (IOException e) {
LOGGER.error(e.getMessage());
}
}
public OpenAPI parseOpenApi(Path file) {
SwaggerParseResult swaggerParseResult = new OpenAPIParser()
.readLocation(file.toString(), null, null);
OpenAPI openAPI = swaggerParseResult.getOpenAPI();
return openAPI;
}
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import java.io.IOException;
import java.util.Optional;
import java.util.Properties;
import org.apache.commons.lang3.StringUtils;
import io.airlift.airline.Cli;
import io.airlift.airline.Help;
public class ToolkitMain {
private static String projectVersion;
@SuppressWarnings("unchecked")
public static void main(String[] args) {
initialProjectVersion();
String scriptName = System.getProperty("script.name");
Cli.CliBuilder<Runnable> builder = null;
if (StringUtils.isNotEmpty(scriptName)) {
builder = Cli.builder(scriptName);
} else {
builder = Cli.builder("java -jar cli-" + projectVersion + ".jar");
}
builder.withDescription("Microservice development toolkit(version " + projectVersion
+ "). ");
builder.withDefaultCommand(Help.class);
builder.withCommands(
CodeGenerate.class, DocGenerate.class,
CheckStyle.class, CheckStyleAbbr.class,
CheckCompatibility.class, CheckCompatibilityAbbr.class,
Help.class
);
try {
Runnable cmd = builder.build().parse(args);
cmd.run();
} catch (ValidationFailedException ex) {
ex.printStackTrace(System.err);
System.exit(1);
}
}
private static void initialProjectVersion() {
Properties properties = new Properties();
try {
properties.load(ToolkitMain.class.getClassLoader().getResourceAsStream("application.properties"));
projectVersion = Optional.ofNullable(properties.getProperty("version")).orElse("unknown");
} catch (IOException e) {
e.printStackTrace();
}
}
}
================================================
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/ValidationFailedException.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
public class ValidationFailedException extends RuntimeException {
public ValidationFailedException(String msg) {
super(msg);
}
}
================================================
FILE: cli/src/main/resources/application.properties
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
version=${project.version}
================================================
FILE: cli/src/main/resources/log4j2.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<!--this is sample configuration, please modify as your wish-->
<configuration>
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
<Logger name="io.swagger" additivity="false" level="error">
<AppenderRef ref="Console"/>
</Logger>
</Loggers>
</configuration>
================================================
FILE: cli/src/test/java/org/apache/servicecomb/toolkit/cli/CliTest.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.cli;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.ExpectedSystemExit;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import org.apache.commons.io.FileUtils;
public class CliTest {
@Rule
public final ExpectedSystemExit exit = ExpectedSystemExit.none();
@Test
public void testGenerateServiceCombCodeFromSingleContract() throws IOException {
String[] programModels = new String[] {"SpringMVC", "POJO", "JAX-RS", "SpringBoot"};
Path tempDir = Files.createTempDirectory(null);
Arrays.stream(programModels).forEach(model -> {
try {
Path tempFile = Paths.get(tempDir.toFile().getCanonicalPath() + "/" + model + "Server");
CliTest.class.getClassLoader().getResource("swagger.yaml");
String[] args = new String[] {
"codegenerate",
"-m",
"ServiceComb",
"-i",
Paths.get("./src/test/resources/swagger.yaml").toFile().getCanonicalPath(),
"-o",
tempFile.toFile().getCanonicalPath(),
"-p",
model,
"--properties",
"prop1=value,prop2=value"
};
Assert.assertTrue(!Files.exists(tempFile));
ToolkitMain.main(args);
Assert.assertTrue(Files.exists(tempFile));
Assert.assertTrue(FileUtils.sizeOfDirectory(tempFile.toFile()) > 0);
} catch (IOException e) {
e.printStackTrace();
}
});
tempDir.toFile().deleteOnExit();
}
@Test
public void testGenerateCodeFromMultiContract() throws IOException {
Path tempDir = Files.createTempDirectory(null);
Path tempFile = Paths.get(tempDir.toFile().getCanonicalPath() + "/ServiceComb");
String[] args = new String[] {
"codegenerate",
"-i",
Paths.get("./src/test/resources/contracts").toFile().getCanonicalPath(),
"--artifact-id",
"ServiceComb",
"--group-id",
"org.apache.servicecomb.demo",
"--artifact-version",
"0.0.1",
"--programming-model",
"SpringMVC",
"-o",
tempFile.toFile().getCanonicalPath()
};
Assert.assertTrue(!Files.exists(tempFile));
ToolkitMain.main(args);
Assert.assertTrue(Files.exists(tempFile));
Assert.assertTrue(FileUtils.sizeOfDirectory(tempFile.toFile()) > 0);
tempDir.toFile().deleteOnExit();
}
@Test
public void testCheckStyle() throws IOException {
exit.expectSystemExitWithStatus(1);
String[] args = new String[] {
"checkstyle",
"-r",
Paths.get("./src/test/resources/oas/style-rules.properties").toFile().getCanonicalPath(),
"-f",
Paths.get("./src/test/resources/oas/style.yaml").toFile().getCanonicalPath()
};
ToolkitMain.main(args);
}
@Test
public void testCheckStyleAbbr() throws IOException {
exit.expectSystemExitWithStatus(1);
String[] args = new String[] {
"cs",
"-r",
Paths.get("./src/test/resources/oas/style-rules.properties").toFile().getCanonicalPath(),
"-f",
Paths.get("./src/test/resources/oas/style.yaml").toFile().getCanonicalPath()
};
ToolkitMain.main(args);
}
@Test
public void testCheckCompatibility() throws IOException {
exit.expectSystemExitWithStatus(1);
String[] args = new String[] {
"checkcompatibility",
Paths.get("./src/test/resources/oas/compatibility-left.yaml").toFile().getCanonicalPath(),
Paths.get("./src/test/resources/oas/compatibility-right.yaml").toFile().getCanonicalPath()
};
ToolkitMain.main(args);
}
@Test
public void testCheckCompatibilityAbbr() throws IOException {
exit.expectSystemExitWithStatus(1);
String[] args = new String[] {
"cc",
Paths.get("./src/test/resources/oas/compatibility-left.yaml").toFile().getCanonicalPath(),
Paths.get("./src/test/resources/oas/compatibility-right.yaml").toFile().getCanonicalPath()
};
ToolkitMain.main(args);
}
}
================================================
FILE: cli/src/test/resources/contracts/CalculateEndpoint.yaml
================================================
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
---
swagger: "2.0"
info:
version: "1.0.0"
title: "swagger definition for CalculateEndpoint"
x-java-interface: "gen.swagger.CalculateEndpointIntf"
basePath: "/"
consumes:
- "application/json"
produces:
- "application/json"
paths:
/bmi:
get:
operationId: "calculate"
parameters:
- name: "number1"
in: "query"
required: false
type: "number"
format: "double"
- name: "number2"
in: "query"
required: false
type: "number"
format: "double"
responses:
200:
description: "response of 200"
schema:
$ref: "#/definitions/CalculateViewObject"
definitions:
CalculateViewObject:
type: "object"
properties:
result:
type: "number"
format: "double"
instanceId:
type: "string"
callTime:
type: "string"
x-java-class: "CalculateViewObject"
================================================
FILE: cli/src/test/resources/contracts/HelloEndPoint.yaml
================================================
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
---
swagger: "2.0"
info:
version: "1.0.0"
title: "swagger definition for HelloEndPoint"
x-java-interface: "gen.swagger.HelloEndPointIntf"
basePath: "/hello"
consumes:
- "application/json"
produces:
- "application/json"
paths:
/sayHello:
get:
operationId: "sayHello"
parameters:
- name: "name"
in: "query"
required: false
type: "string"
- name: "result"
in: "query"
required: false
type: "number"
format: "double"
- name: "instanceId"
in: "query"
required: false
type: "string"
- name: "callTime"
in: "query"
required: false
type: "string"
responses:
200:
description: "response of 200"
schema:
type: "string"
/sayHi:
get:
operationId: "sayHi"
parameters:
- name: "name"
in: "query"
required: false
type: "string"
- name: "Authorization"
in: "header"
description: "aa"
required: true
type: "string"
responses:
200:
description: "response of 200"
schema:
type: "string"
================================================
FILE: cli/src/test/resources/contracts/pojo/CodeFirstHelloEndPoint.yaml
================================================
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
---
swagger: "2.0"
info:
version: "1.0.0"
title: "swagger definition for CodeFirstHelloEndPoint"
x-java-interface: "gen.swagger.CodeFirstHelloEndPointIntf"
basePath: "/codeFirstHello"
consumes:
- "application/json"
produces:
- "application/json"
paths:
/sayHello:
post:
operationId: "sayHello"
parameters:
- name: "name"
in: "query"
required: false
type: "string"
- name: "result"
in: "query"
required: false
type: "number"
format: "double"
- name: "instanceId"
in: "query"
required: false
type: "string"
- name: "callTime"
in: "query"
required: false
type: "string"
responses:
200:
description: "response of 200"
schema:
type: "string"
/sayHi:
post:
operationId: "sayHi"
parameters:
- name: "name"
in: "query"
required: false
type: "string"
- name: "Authorization"
in: "header"
description: "aa"
required: true
type: "string"
responses:
200:
description: "response of 200"
schema:
type: "string"
================================================
FILE: cli/src/test/resources/log4j2-test.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<!--this is sample configuration, please modify as your wish-->
<configuration>
<loggers>
<logger name="org.openapitools" additivity="false" level="OFF">
</logger>
</loggers>
</configuration>
================================================
FILE: cli/src/test/resources/oas/compatibility-left.yaml
================================================
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger petstore
license:
name: MIT
servers:
- url: http://petstore.swagger.io/v1
paths:
/pets:
get:
summary: List all pets
operationId: listpets
responses:
'200':
description: A paged array of pets
post:
summary: List all pets
operationId: foo
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
foo:
type: string
bar:
type: string
encoding:
foo:
contentType: 'application/octet-stream'
responses:
'200':
description: A paged array of pets
================================================
FILE: cli/src/test/resources/oas/compatibility-right.yaml
================================================
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger petstore
license:
name: MIT
servers:
- url: http://petstore.swagger.io/v1
paths:
/pets:
get:
summary: List all pets
operationId: listpets
responses:
'200':
description: A paged array of pets
post:
summary: List all pets
operationId: foo
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
foo:
type: string
bar:
type: string
encoding:
foo:
contentType: 'application/octet-stream'
bar:
contentType: 'application/octet-stream'
responses:
'200':
description: A paged array of pets
================================================
FILE: cli/src/test/resources/oas/style-rules.properties
================================================
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
# OpenAPI Object
openAPI.openapi.gte=3.0.2
openAPI.tags.size.gte=1
openAPI.security.size.eq=0
# Info Object
info.description.required=true
# Tag Object
tag.name.case=upper-camel-case
tag.name.must_be_referenced=true
tag.description.required=true
# Paths Object
paths.key.case=lower-camel-case
# Operation Object
operation.summary.required=true
operation.operationId.case=lower-camel-case
operation.tags.size.eq=1
operation.tags.element.must_reference_root_tags=true
operations.servers.size.eq=0
# Parameter Object
parameter.description.required=true
parameter.name.header.case=upper-hyphen-case
parameter.name.cookie.case=lower-camel-case
parameter.name.path.case=lower-camel-case
parameter.name.query.case=lower-camel-case
# RequestBody Object
requestBody.description.required=true
# Response Object
response.headers.key.case=upper-hyphen-case
# Schema Object
schema.title.required=true
schema.properties.key.case=lower-camel-case
# Encoding Object
encoding.headers.key.case=upper-hyphen-case
# Header Object
header.description.required=true
# Components Object
components.schemas.key.case=upper-camel-case
components.responses.key.case=upper-camel-case
components.parameters.key.case=upper-camel-case
components.examples.key.case=upper-camel-case
components.requestBodies.key.case=upper-camel-case
components.headers.key.case=upper-hyphen-case
components.links.key.case=upper-hyphen-case
components.callbacks.key.case=upper-camel-case
components.headers.key.case=upper-camel-case
================================================
FILE: cli/src/test/resources/oas/style.yaml
================================================
## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
openapi: "3.0.0"
info:
version: 1.0.0
title: Pet petstore
paths:
/pets:
get:
summary: List all pets
operationId: listpets
responses:
'200':
description: A paged array of pets
post:
summary: List all pets
operationId: foo
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
foo:
type: string
bar:
type: string
encoding:
foo:
contentType: 'application/octet-stream'
responses:
'200':
description: A paged array of pets
================================================
FILE: cli/src/test/resources/swagger.yaml
================================================
---
swagger: "2.0"
info:
description: "This is a sample server Petstore server. You can find out more about\
\ Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/).\
\ For this sample, you can use the api key `special-key` to test the authorization\
\ filters."
version: "1.0.0"
title: "Swagger Petstore"
termsOfService: "http://swagger.io/terms/"
contact:
email: "apiteam@swagger.io"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
host: "petstore.swagger.io"
basePath: "/v2"
tags:
- name: "pet"
description: "Everything about your Pets"
externalDocs:
description: "Find out more"
url: "http://swagger.io"
- name: "store"
description: "Access to Petstore orders"
- name: "user"
description: "Operations about user"
externalDocs:
description: "Find out more about our store"
url: "http://swagger.io"
schemes:
- "https"
- "http"
paths:
/pet:
post:
tags:
- "pet"
summary: "Add a new pet to the store"
description: ""
operationId: "addPet"
consumes:
- "application/json"
- "application/xml"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Pet object that needs to be added to the store"
required: true
schema:
$ref: "#/definitions/Pet"
responses:
405:
description: "Invalid input"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
put:
tags:
- "pet"
summary: "Update an existing pet"
description: ""
operationId: "updatePet"
consumes:
- "application/json"
- "application/xml"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Pet object that needs to be added to the store"
required: true
schema:
$ref: "#/definitions/Pet"
responses:
400:
description: "Invalid ID supplied"
404:
description: "Pet not found"
405:
description: "Validation exception"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/pet/findByStatus:
get:
tags:
- "pet"
summary: "Finds Pets by status"
description: "Multiple status values can be provided with comma separated strings"
operationId: "findPetsByStatus"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "status"
in: "query"
description: "Status values that need to be considered for filter"
required: true
type: "array"
items:
type: "string"
enum:
- "available"
- "pending"
- "sold"
default: "available"
collectionFormat: "multi"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/Pet"
400:
description: "Invalid status value"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/pet/findByTags:
get:
tags:
- "pet"
summary: "Finds Pets by tags"
description: "Multiple tags can be provided with comma separated strings. Use\
\ tag1, tag2, tag3 for testing."
operationId: "findPetsByTags"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "tags"
in: "query"
description: "Tags to filter by"
required: true
type: "array"
items:
type: "string"
collectionFormat: "multi"
responses:
200:
description: "successful operation"
schema:
type: "array"
items:
$ref: "#/definitions/Pet"
400:
description: "Invalid tag value"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
deprecated: true
/pet/{petId}:
get:
tags:
- "pet"
summary: "Find pet by ID"
description: "Returns a single pet"
operationId: "getPetById"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "petId"
in: "path"
description: "ID of pet to return"
required: true
type: "integer"
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Pet"
400:
description: "Invalid ID supplied"
404:
description: "Pet not found"
security:
- api_key: []
post:
tags:
- "pet"
summary: "Updates a pet in the store with form data"
description: ""
operationId: "updatePetWithForm"
consumes:
- "application/x-www-form-urlencoded"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "petId"
in: "path"
description: "ID of pet that needs to be updated"
required: true
type: "integer"
format: "int64"
- name: "name"
in: "formData"
description: "Updated name of the pet"
required: false
type: "string"
- name: "status"
in: "formData"
description: "Updated status of the pet"
required: false
type: "string"
responses:
405:
description: "Invalid input"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
delete:
tags:
- "pet"
summary: "Deletes a pet"
description: ""
operationId: "deletePet"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "api_key"
in: "header"
required: false
type: "string"
- name: "petId"
in: "path"
description: "Pet id to delete"
required: true
type: "integer"
format: "int64"
responses:
400:
description: "Invalid ID supplied"
404:
description: "Pet not found"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/pet/{petId}/uploadImage:
post:
tags:
- "pet"
summary: "uploads an image"
description: ""
operationId: "uploadFile"
consumes:
- "multipart/form-data"
produces:
- "application/json"
parameters:
- name: "petId"
in: "path"
description: "ID of pet to update"
required: true
type: "integer"
format: "int64"
- name: "additionalMetadata"
in: "formData"
description: "Additional data to pass to server"
required: false
type: "string"
- name: "file"
in: "formData"
description: "file to upload"
required: false
type: "file"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/ApiResponse"
security:
- petstore_auth:
- "write:pets"
- "read:pets"
/store/inventory:
get:
tags:
- "store"
summary: "Returns pet inventories by status"
description: "Returns a map of status codes to quantities"
operationId: "getInventory"
produces:
- "application/json"
parameters: []
responses:
200:
description: "successful operation"
schema:
type: "object"
additionalProperties:
type: "integer"
format: "int32"
security:
- api_key: []
/store/order:
post:
tags:
- "store"
summary: "Place an order for a pet"
description: ""
operationId: "placeOrder"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "order placed for purchasing the pet"
required: true
schema:
$ref: "#/definitions/Order"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Order"
400:
description: "Invalid Order"
/store/order/{orderId}:
get:
tags:
- "store"
summary: "Find purchase order by ID"
description: "For valid response try integer IDs with value >= 1 and <= 10.\
\ Other values will generated exceptions"
operationId: "getOrderById"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "orderId"
in: "path"
description: "ID of pet that needs to be fetched"
required: true
type: "integer"
maximum: 10.0
minimum: 1.0
format: "int64"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/Order"
400:
description: "Invalid ID supplied"
404:
description: "Order not found"
delete:
tags:
- "store"
summary: "Delete purchase order by ID"
description: "For valid response try integer IDs with positive integer value.\
\ Negative or non-integer values will generate API errors"
operationId: "deleteOrder"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "orderId"
in: "path"
description: "ID of the order that needs to be deleted"
required: true
type: "integer"
minimum: 1.0
format: "int64"
responses:
400:
description: "Invalid ID supplied"
404:
description: "Order not found"
/user:
post:
tags:
- "user"
summary: "Create user"
description: "This can only be done by the logged in user."
operationId: "createUser"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Created user object"
required: true
schema:
$ref: "#/definitions/User"
responses:
default:
description: "successful operation"
/user/createWithArray:
post:
tags:
- "user"
summary: "Creates list of users with given input array"
description: ""
operationId: "createUsersWithArrayInput"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "List of user object"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/User"
responses:
default:
description: "successful operation"
/user/createWithList:
post:
tags:
- "user"
summary: "Creates list of users with given input array"
description: ""
operationId: "createUsersWithListInput"
produces:
- "application/xml"
- "application/json"
parameters:
- in: "body"
name: "body"
description: "List of user object"
required: true
schema:
type: "array"
items:
$ref: "#/definitions/User"
responses:
default:
description: "successful operation"
/user/login:
get:
tags:
- "user"
summary: "Logs user into the system"
description: ""
operationId: "loginUser"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "query"
description: "The user name for login"
required: true
type: "string"
- name: "password"
in: "query"
description: "The password for login in clear text"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
headers:
X-Rate-Limit:
type: "integer"
format: "int32"
description: "calls per hour allowed by the user"
X-Expires-After:
type: "string"
format: "date-time"
description: "date in UTC when token expires"
400:
description: "Invalid username/password supplied"
/user/logout:
get:
tags:
- "user"
summary: "Logs out current logged in user session"
description: ""
operationId: "logoutUser"
produces:
- "application/xml"
- "application/json"
parameters: []
responses:
default:
description: "successful operation"
/user/{username}:
get:
tags:
- "user"
summary: "Get user by user name"
description: ""
operationId: "getUserByName"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "path"
description: "The name that needs to be fetched. Use user1 for testing. "
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "#/definitions/User"
400:
description: "Invalid username supplied"
404:
description: "User not found"
put:
tags:
- "user"
summary: "Updated user"
description: "This can only be done by the logged in user."
operationId: "updateUser"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "path"
description: "name that need to be updated"
required: true
type: "string"
- in: "body"
name: "body"
description: "Updated user object"
required: true
schema:
$ref: "#/definitions/User"
responses:
400:
description: "Invalid user supplied"
404:
description: "User not found"
delete:
tags:
- "user"
summary: "Delete user"
description: "This can only be done by the logged in user."
operationId: "deleteUser"
produces:
- "application/xml"
- "application/json"
parameters:
- name: "username"
in: "path"
description: "The name that needs to be deleted"
required: true
type: "string"
responses:
400:
description: "Invalid username supplied"
404:
description: "User not found"
securityDefinitions:
petstore_auth:
type: "oauth2"
authorizationUrl: "https://petstore.swagger.io/oauth/authorize"
flow: "implicit"
scopes:
write:pets: "modify pets in your account"
read:pets: "read your pets"
api_key:
type: "apiKey"
name: "api_key"
in: "header"
definitions:
Order:
type: "object"
properties:
id:
type: "integer"
format: "int64"
petId:
type: "integer"
format: "int64"
quantity:
type: "integer"
format: "int32"
shipDate:
type: "string"
format: "date-time"
status:
type: "string"
description: "Order Status"
enum:
- "placed"
- "approved"
- "delivered"
complete:
type: "boolean"
default: false
xml:
name: "Order"
User:
type: "object"
properties:
id:
type: "integer"
format: "int64"
username:
type: "string"
firstName:
type: "string"
lastName:
type: "string"
email:
type: "string"
password:
type: "string"
phone:
type: "string"
userStatus:
type: "integer"
format: "int32"
description: "User Status"
xml:
name: "User"
Category:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
xml:
name: "Category"
Tag:
type: "object"
properties:
id:
type: "integer"
format: "int64"
name:
type: "string"
xml:
name: "Tag"
Pet:
type: "object"
required:
- "name"
- "photoUrls"
properties:
id:
type: "integer"
format: "int64"
category:
$ref: "#/definitions/Category"
name:
type: "string"
example: "doggie"
photoUrls:
type: "array"
xml:
name: "photoUrl"
wrapped: true
items:
type: "string"
tags:
type: "array"
xml:
name: "tag"
wrapped: true
items:
$ref: "#/definitions/Tag"
status:
type: "string"
description: "pet status in the store"
enum:
- "available"
- "pending"
- "sold"
xml:
name: "Pet"
ApiResponse:
type: "object"
properties:
code:
type: "integer"
format: "int32"
type:
type: "string"
message:
type: "string"
externalDocs:
description: "Find out more about Swagger"
url: "http://swagger.io"
================================================
FILE: codegen/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to You under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>toolkit</artifactId>
<groupId>org.apache.servicecomb.toolkit</groupId>
<version>0.3.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>codegen</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.servicecomb.toolkit</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen</artifactId>
<exclusions>
<exclusion>
<groupId>org.checkerframework</groupId>
<artifactId>checker-compat-qual</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>listenablefuture</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
<dependency><!-- 桥接:告诉commons logging使用Log4j2 -->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
</project>
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractConsumerDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.SupportingFile;
public abstract class AbstractConsumerDirectoryStrategy extends AbstractDirectoryStrategy {
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
correctServiceId();
}
private void correctServiceId() {
String serviceId = (String) propertiesMap.get(ProjectMetaConstant.SERVICE_ID);
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.CONSUMER_SERVICE_ID, key -> {
if (StringUtils.isNotEmpty(serviceId)) {
return serviceId;
}
return propertiesMap.get("artifactId");
});
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.PROVIDER_SERVICE_ID, key -> {
throw new UnsupportedOperationException("In consumer type, providerServiceId is required");
});
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.io.File;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.openapitools.codegen.SupportingFile;
public abstract class AbstractDirectoryStrategy implements DirectoryStrategy<List<SupportingFile>> {
protected Map<String, Object> propertiesMap = Collections.emptyMap();
protected String projectFolder = "src" + File.separator + "main";
protected String sourceFolder = projectFolder + File.separator + "java";
@Override
public void addCustomProperties(Map<String, Object> propertiesMap) {
this.propertiesMap = propertiesMap;
}
protected String mainClassFolder(String projectPath) {
return projectPath + File.separator + sourceFolder + File.separator + ((String) propertiesMap
.get("mainClassPackage")).replace(".", File.separator);
}
protected String resourcesFolder(String projectPath) {
return projectPath + File.separator + projectFolder + File.separator + "resources";
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractJavaCodegenExt.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CodegenModel;
import org.openapitools.codegen.CodegenProperty;
import org.openapitools.codegen.languages.AbstractJavaCodegen;
import org.openapitools.codegen.languages.SpringCodegen;
public abstract class AbstractJavaCodegenExt extends AbstractJavaCodegen {
protected final Map<String, DirectoryStrategy> directoryStrategyMap = new LinkedHashMap<>();
protected DirectoryStrategy currentDirectoryStrategy;
protected String mainClassPackage;
public AbstractJavaCodegenExt() {
modelDocTemplateFiles.remove("model_doc.mustache");
apiDocTemplateFiles.remove("api_doc.mustache");
apiTestTemplateFiles.remove("api_test.mustache");
groupId = "domain.orgnization.project";
artifactId = "sample";
apiPackage = groupId + "." + artifactId + ".api";
modelPackage = groupId + "." + artifactId + ".model";
mainClassPackage = groupId + "." + artifactId;
}
@Override
public void processOpts() {
super.processOpts();
if (StringUtils.isEmpty((String) additionalProperties.get("mainClassPackage"))) {
mainClassPackage = apiPackage.substring(0, apiPackage.lastIndexOf("."));
additionalProperties.put("mainClassPackage", mainClassPackage);
} else {
mainClassPackage = (String) additionalProperties.get("mainClassPackage");
}
}
@Override
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
objs = super.postProcessModelsEnum(objs);
SpringCodegen springCodegen = new SpringCodegen();
return springCodegen.postProcessModelsEnum(objs);
}
@Override
public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> objs, List<Object> allModels) {
SpringCodegen springCodegen = new SpringCodegen();
return springCodegen.postProcessOperationsWithModels(objs, allModels);
}
@Override
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
super.postProcessModelProperty(model, property);
model.imports.remove("ApiModelProperty");
model.imports.remove("ApiModel");
}
/**
* Register a custom VersionStrategy to apply to resource URLs that match the
* given path patterns.
* @param strategy the custom strategy
* @param serviceTypes one or more service type,
* relative to the service type that represent microservice type of generated microservice project
* @see DirectoryStrategy
*/
public void addDirectoryStrategy(DirectoryStrategy strategy, String... serviceTypes) {
for (String serviceType : serviceTypes) {
getStrategyMap().put(serviceType, strategy);
}
}
/**
* Return the map with directory strategies keyed by service type.
*/
public Map<String, DirectoryStrategy> getStrategyMap() {
return this.directoryStrategyMap;
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractMultiDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.SupportingFile;
public abstract class AbstractMultiDirectoryStrategy extends AbstractDirectoryStrategy {
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
correctServiceId();
}
private void correctServiceId() {
String serviceId = (String) propertiesMap.get(ProjectMetaConstant.SERVICE_ID);
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.CONSUMER_SERVICE_ID, key -> {
if (StringUtils.isNotEmpty(serviceId)) {
return String.format("%s-consumer", serviceId);
}
return consumerDirectory();
});
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.PROVIDER_SERVICE_ID, key -> {
if (StringUtils.isNotEmpty(serviceId)) {
return serviceId;
}
return providerDirectory();
});
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractProviderDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import org.openapitools.codegen.SupportingFile;
public abstract class AbstractProviderDirectoryStrategy extends AbstractDirectoryStrategy {
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
correctServiceId();
}
private void correctServiceId() {
propertiesMap
.computeIfAbsent(GeneratorExternalConfigConstant.PROVIDER_SERVICE_ID, key -> propertiesMap.get("artifactId"));
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ConsumerDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import java.util.Map;
import org.openapitools.codegen.SupportingFile;
public class ConsumerDirectoryStrategy extends AbstractConsumerDirectoryStrategy {
private String consumerTemplateFolder = "consumer";
private String apiConsumerTemplate = consumerTemplateFolder + "/apiConsumer.mustache";
private String apiConsumerTemplateForPojo = consumerTemplateFolder + "/pojo/apiConsumer.mustache";
private String apiInterfaceTemplateForPojo = consumerTemplateFolder + "/pojo/apiInterface.mustache";
@Override
public String modelDirectory() {
return consumerDirectory();
}
@Override
public String providerDirectory() {
throw new UnsupportedOperationException();
}
@Override
public String consumerDirectory() {
return (String) propertiesMap.get("artifactId");
}
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
super.processSupportingFile(supportingFiles);
String newConsumerTemplateFolder = consumerTemplateFolder;
if (ServiceCombCodegen.SPRING_BOOT_LIBRARY.equals(propertiesMap.get("library"))) {
newConsumerTemplateFolder += "/springboot";
}
supportingFiles.add(new SupportingFile(newConsumerTemplateFolder + "/pom.mustache",
consumerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile(newConsumerTemplateFolder + "/Application.mustache",
mainClassFolder(consumerDirectory()),
"Application.java")
);
supportingFiles.add(new SupportingFile("log4j2.mustache",
resourcesFolder(consumerDirectory()),
"log4j2.xml")
);
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/microservice.mustache",
resourcesFolder(consumerDirectory()),
"microservice.yaml")
);
propertiesMap
.computeIfAbsent(GeneratorExternalConfigConstant.CONSUMER_ARTIFACT_ID, k -> propertiesMap.get("artifactId"));
propertiesMap.put("apiConsumerTemplate", apiConsumerTemplate);
propertiesMap.put("apiConsumerTemplateForPojo", apiConsumerTemplateForPojo);
Map<String, String> apiTemplateFiles = ((Map<String, String>) propertiesMap.get("apiTemplateFiles"));
apiTemplateFiles.remove("api.mustache");
if (ServiceCombCodegen.POJO_LIBRARY.equals(propertiesMap.get("library"))) {
apiTemplateFiles.put(apiConsumerTemplateForPojo, "Consumer.java");
apiTemplateFiles.put(apiInterfaceTemplateForPojo, ".java");
propertiesMap.put("isPOJO", true);
} else {
apiTemplateFiles.put(apiConsumerTemplate, ".java");
}
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DefaultCodeGenerator.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import java.util.Map;
import org.apache.servicecomb.toolkit.CodeGenerator;
import org.openapitools.codegen.config.CodegenConfigurator;
public class DefaultCodeGenerator implements CodeGenerator {
private MultiContractGenerator generator = new MultiContractGenerator();
@Override
public boolean canProcess(String type) {
return "default".equals(type);
}
@Override
public void configure(Map<String, Object> config) {
generator.setGenerateMetadata(false);
List<CodegenConfigurator> optsList = (List<CodegenConfigurator>) config.get("configurators");
if (optsList == null) {
generator.addOpts(((CodegenConfigurator) config.get("configurator")).toClientOptInput());
return;
}
optsList.forEach(opts -> {
generator.addOpts(opts.toClientOptInput());
});
}
@Override
public void generate() {
generator.generate();
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DefaultDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.openapitools.codegen.SupportingFile;
public class DefaultDirectoryStrategy extends AbstractMultiDirectoryStrategy {
protected String providerTemplateFolder = "provider";
private String consumerTemplateFolder = "consumer";
private String apiConsumerTemplate = consumerTemplateFolder + "/apiConsumer.mustache";
private String apiConsumerTemplateForPojo = consumerTemplateFolder + "/pojo/apiConsumer.mustache";
private String apiInterfaceTemplateForPojo = consumerTemplateFolder + "/pojo/apiInterface.mustache";
@Override
public String modelDirectory() {
return Optional.ofNullable((String) propertiesMap.get(GeneratorExternalConfigConstant.MODEL_PROJECT_NAME))
.orElse("model");
}
@Override
public String providerDirectory() {
return Optional.ofNullable((String) propertiesMap.get(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME))
.orElse("provider");
}
@Override
public String consumerDirectory() {
return Optional.ofNullable((String) propertiesMap.get(GeneratorExternalConfigConstant.CONSUMER_PROJECT_NAME))
.orElse("consumer");
}
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
super.processSupportingFile(supportingFiles);
processProvider(supportingFiles);
processConsumer(supportingFiles);
processModel(supportingFiles);
processParentProjectOpts(supportingFiles);
propertiesMap.put("isMultipleModule", true);
}
private void processParentProjectOpts(List<SupportingFile> supportingFiles) {
supportingFiles.add(new SupportingFile("project/pom.mustache",
"",
"pom.xml")
);
}
private void processModel(List<SupportingFile> supportingFiles) {
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.MODEL_ARTIFACT_ID, k -> modelDirectory());
supportingFiles.add(new SupportingFile("model/pom.mustache",
modelDirectory(),
"pom.xml")
);
}
private void processConsumer(List<SupportingFile> supportingFiles) {
String newConsumerTemplateFolder = consumerTemplateFolder;
if (ServiceCombCodegen.SPRING_BOOT_LIBRARY.equals(propertiesMap.get("library"))) {
newConsumerTemplateFolder += "/springboot";
}
supportingFiles.add(new SupportingFile(newConsumerTemplateFolder + "/pom.mustache",
consumerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile(newConsumerTemplateFolder + "/Application.mustache",
mainClassFolder(consumerDirectory()),
"Application.java")
);
supportingFiles.add(new SupportingFile("log4j2.mustache",
resourcesFolder(consumerDirectory()),
"log4j2.xml")
);
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/microservice.mustache",
resourcesFolder(consumerDirectory()),
"microservice.yaml")
);
propertiesMap
.computeIfAbsent(GeneratorExternalConfigConstant.CONSUMER_ARTIFACT_ID, k -> consumerDirectory());
// propertiesMap.put("apiConsumerTemplate", apiConsumerTemplate);
propertiesMap.put(apiConsumerTemplate, ServiceType.CONSUMER.getValue());
Map<String, String> apiTemplateFiles = ((Map<String, String>) propertiesMap.get("apiTemplateFiles"));
if (ServiceCombCodegen.POJO_LIBRARY.equals(propertiesMap.get("library"))) {
apiTemplateFiles.put(apiConsumerTemplateForPojo, "Consumer.java");
propertiesMap.put(apiConsumerTemplateForPojo, ServiceType.CONSUMER.getValue());
apiTemplateFiles.put(apiInterfaceTemplateForPojo, ".java");
propertiesMap.put(apiInterfaceTemplateForPojo, ServiceType.CONSUMER.getValue());
propertiesMap.put("isPOJO", true);
} else {
apiTemplateFiles.put(apiConsumerTemplate, ".java");
}
}
private void processProvider(List<SupportingFile> supportingFiles) {
supportingFiles.add(new SupportingFile("pom.mustache",
providerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile("Application.mustache",
mainClassFolder(providerDirectory()),
"Application.java")
);
supportingFiles.add(new SupportingFile("log4j2.mustache",
resourcesFolder(providerDirectory()),
"log4j2.xml")
);
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/microservice.mustache",
resourcesFolder(providerDirectory()),
"microservice.yaml")
);
propertiesMap
.computeIfAbsent(GeneratorExternalConfigConstant.PROVIDER_ARTIFACT_ID, k -> providerDirectory());
if (ServiceCombCodegen.POJO_LIBRARY.equals(propertiesMap.get("library"))) {
// ((Map<String, String>) propertiesMap.get("apiTemplateFiles")).put(pojoApiImplTemplate, ".java");
propertiesMap.put("isPOJO", true);
}
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.Map;
public interface DirectoryStrategy<T> {
String modelDirectory();
String providerDirectory();
String consumerDirectory();
void processSupportingFile(T t);
void addCustomProperties(Map<String, Object> propertiesMap);
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GeneratorExternalConfigConstant.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
public class GeneratorExternalConfigConstant {
public final static String PROVIDER_PROJECT_NAME = "providerProjectName";
public final static String CONSUMER_PROJECT_NAME = "consumerProjectName";
public final static String MODEL_PROJECT_NAME = "modelProjectName";
public final static String PROVIDER_ARTIFACT_ID = "providerArtifactId";
public final static String CONSUMER_ARTIFACT_ID = "consumerArtifactId";
public final static String MODEL_ARTIFACT_ID = "modelArtifactId";
public final static String MICRO_SERVICE_FRAMEWORK = "microServiceFramework";
public final static String PROVIDER_SERVICE_ID = "providerServiceId";
public final static String CONSUMER_SERVICE_ID = "consumerServiceId";
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GetGenericClassTypeLambda.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.io.IOException;
import java.io.Writer;
import com.samskivert.mustache.Mustache;
import com.samskivert.mustache.Template;
public class GetGenericClassTypeLambda implements Mustache.Lambda {
@Override
public void execute(Template.Fragment fragment, Writer writer) throws IOException {
String text = fragment.execute();
if (text.contains("<")) {
String className = text.substring(0, text.indexOf("<"));
text = "(Class<" + text + ">)(Class)" + className;
}
writer.write(text);
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GetRelativeBasePathLambda.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.io.IOException;
import java.io.Writer;
import com.samskivert.mustache.Mustache;
import com.samskivert.mustache.Template.Fragment;
public class GetRelativeBasePathLambda implements Mustache.Lambda {
private static String HOST_PORT_PATTERN = "(\\w+://)([\\w\\.]+)?(:\\d*)?/?";
@Override
public void execute(Fragment fragment, Writer writer) throws IOException {
String text = fragment.execute();
String relativeBasePath = text.replaceAll(HOST_PORT_PATTERN, "/");
writer.write(relativeBasePath);
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/MicroServiceFramework.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
public enum MicroServiceFramework {
// ServiceComb
SERVICECOMB,
// SpringCloud
SPRINGCLOUD
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/MultiContractGenerator.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import org.openapitools.codegen.ClientOptInput;
import org.openapitools.codegen.DefaultGenerator;
import org.openapitools.codegen.Generator;
public class MultiContractGenerator extends DefaultGenerator {
private List<ClientOptInput> optsList = new ArrayList<>();
public Generator addOpts(ClientOptInput opts) {
optsList.add(opts);
return this;
}
public void generateParentProject(List<File> files, List<Map<String, Object>> modules) {
this.config = optsList.get(0).getConfig();
String outputFilename = opts.getConfig().outputFolder() + File.separator + "pom.xml";
if (!config.shouldOverwrite(outputFilename)) {
LOGGER.info("Skipped overwriting " + outputFilename);
}
Map<String, Object> templateData = this.config.additionalProperties();
templateData.put("modules", modules);
try {
files.add(processTemplateToFile(templateData, "project/pom.mustache", outputFilename));
} catch (IOException e) {
throw new RuntimeException("Failed to generate parent project pom.xml", e);
}
}
@Override
public List<File> generate() {
if (optsList == null || optsList.size() == 0) {
return null;
}
List<File> fileList = new ArrayList<>();
List<Map<String, Object>> modules = new ArrayList<>();
Set<Object> moduleSet = new HashSet<>();
for (ClientOptInput opts : optsList) {
moduleSet.add(opts.getConfig().additionalProperties().get(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME));
moduleSet.add(opts.getConfig().additionalProperties().get(GeneratorExternalConfigConstant.CONSUMER_PROJECT_NAME));
moduleSet.add(opts.getConfig().additionalProperties().get(GeneratorExternalConfigConstant.MODEL_PROJECT_NAME));
this.opts(opts);
fileList.addAll(super.generate());
}
moduleSet.forEach(module -> {
modules.add(Collections.singletonMap("module", module));
});
if (ServiceType.ALL.getValue().equals(
Optional.ofNullable(opts.getConfig().additionalProperties().get(ProjectMetaConstant.SERVICE_TYPE))
.orElse(ServiceType.ALL.getValue()))) {
generateParentProject(fileList, modules);
}
return fileList;
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ProjectMetaConstant.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
public class ProjectMetaConstant {
public static final String SERVICE_TYPE = "serviceType";
public static final String PROVIDER_SERVICE_ID = "providerServiceId";
public static final String SERVICE_ID = "serviceId";
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ProviderDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import org.openapitools.codegen.SupportingFile;
public class ProviderDirectoryStrategy extends AbstractProviderDirectoryStrategy {
protected String providerTemplateFolder = "provider";
@Override
public String modelDirectory() {
return providerDirectory();
}
@Override
public String providerDirectory() {
return (String) propertiesMap.get("artifactId");
}
@Override
public String consumerDirectory() {
throw new UnsupportedOperationException();
}
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
super.processSupportingFile(supportingFiles);
supportingFiles.add(new SupportingFile("pom.mustache",
providerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile("Application.mustache",
mainClassFolder(providerDirectory()),
"Application.java")
);
supportingFiles.add(new SupportingFile("log4j2.mustache",
resourcesFolder(providerDirectory()),
"log4j2.xml")
);
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/microservice.mustache",
resourcesFolder(providerDirectory()),
"microservice.yaml")
);
propertiesMap
.computeIfAbsent(GeneratorExternalConfigConstant.PROVIDER_ARTIFACT_ID, k -> propertiesMap.get("artifactId"));
propertiesMap
.put(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME, providerDirectory());
if (ServiceCombCodegen.POJO_LIBRARY.equals(propertiesMap.get("library"))) {
// ((Map<String, String>) propertiesMap.get("apiTemplateFiles")).put(pojoApiImplTemplate, ".java");
propertiesMap.put("isPOJO", true);
}
propertiesMap.put("isMultipleModule", false);
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegen.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import static org.openapitools.codegen.utils.StringUtils.camelize;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.openapitools.codegen.CliOption;
import org.openapitools.codegen.CodegenConstants;
import org.openapitools.codegen.CodegenModel;
import org.openapitools.codegen.CodegenProperty;
import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.languages.SpringCodegen;
import io.swagger.codegen.mustache.CamelCaseLambda;
public class ServiceCombCodegen extends AbstractJavaCodegenExt {
public static final String DEFAULT_LIBRARY = "SpringMVC";
public static final String POJO_LIBRARY = "POJO";
public static final String JAX_RS_LIBRARY = "JAX-RS";
public static final String SPRING_BOOT_LIBRARY = "SpringBoot";
private String applicationId = "defaultApp";
private String serviceId = "defaultService";
private String modelTemplateFolder = "model";
@Override
public CodegenType getTag() {
return CodegenType.SERVER;
}
@Override
public String getName() {
return "ServiceComb";
}
@Override
public String getHelp() {
return "Generates a ServiceComb server library.";
}
public ServiceCombCodegen() {
super();
outputFolder = "generated-code/ServiceComb";
embeddedTemplateDir = templateDir = "ServiceComb";
modelTemplateFiles.put(modelTemplateFolder + "/model.mustache", ".java");
modelTemplateFiles.remove("model.mustache");
supportedLibraries.put(DEFAULT_LIBRARY, "ServiceComb Server application using the SpringMVC programming model.");
supportedLibraries.put(POJO_LIBRARY, "ServiceComb Server application using the POJO programming model.");
supportedLibraries.put(JAX_RS_LIBRARY, "ServiceComb Server application using the JAX-RS programming model.");
supportedLibraries
.put(SPRING_BOOT_LIBRARY, "ServiceComb Server application using the SpringBoot programming model.");
setLibrary(DEFAULT_LIBRARY);
CliOption library = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
library.setEnum(supportedLibraries);
library.setDefault(DEFAULT_LIBRARY);
cliOptions.add(library);
addDirectoryStrategy(new ProviderDirectoryStrategy(), ServiceType.PROVIDER.getValue());
addDirectoryStrategy(new ConsumerDirectoryStrategy(), ServiceType.CONSUMER.getValue());
addDirectoryStrategy(new DefaultDirectoryStrategy(), ServiceType.ALL.getValue());
}
@Override
public String modelFileFolder() {
return outputFolder + "/" + currentDirectoryStrategy.modelDirectory() + "/" + sourceFolder + "/" + modelPackage()
.replace('.', '/');
}
@Override
public String apiFileFolder() {
return outputFolder + "/" + currentDirectoryStrategy.providerDirectory() + "/" + sourceFolder + "/" + apiPackage()
.replace('.', '/');
}
@Override
public String apiFilename(String templateName, String tag) {
if (ServiceType.CONSUMER.getValue().equals(additionalProperties.get(ProjectMetaConstant.SERVICE_TYPE))
|| ServiceType.CONSUMER.getValue().equals(additionalProperties.get(templateName))) {
String suffix = apiTemplateFiles().get(templateName);
return apiConsumerFolder() + File.separator + toApiFilename(tag) + suffix;
}
return super.apiFilename(templateName, tag);
}
private String apiConsumerFolder() {
return outputFolder + "/" + currentDirectoryStrategy.consumerDirectory() + "/" + sourceFolder + "/" + apiPackage()
.replace('.', '/');
}
@Override
public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> objs, List<Object> allModels) {
Map operations = (Map) objs.get("operations");
String classnameImpl = operations.get("classname") + "Impl";
operations.put("classnameImpl", classnameImpl);
additionalProperties.put("classnameImpl", classnameImpl);
return super.postProcessOperationsWithModels(objs, allModels);
}
@Override
public void processOpts() {
super.processOpts();
importMapping.put("OffsetDateTime", "java.time.OffsetDateTime");
additionalProperties.put("dateLibrary", "java8");
additionalProperties.put("camelcase", new CamelCaseLambda());
additionalProperties.put("getGenericClassType", new GetGenericClassTypeLambda());
additionalProperties.put("getRelativeBasePath", new GetRelativeBasePathLambda());
additionalProperties.put("applicationId", applicationId);
additionalProperties.put("library", getLibrary());
additionalProperties.put("outputFolder", outputFolder);
additionalProperties.put("apiTemplateFiles", apiTemplateFiles);
additionalProperties.put("apiTestTemplateFiles", apiTestTemplateFiles);
additionalProperties.put("modelTemplateFiles", modelTemplateFiles);
additionalProperties.put("apiDocTemplateFiles", apiDocTemplateFiles);
if (additionalProperties.get(ProjectMetaConstant.SERVICE_ID) != null) {
serviceId = (String) additionalProperties.get(ProjectMetaConstant.SERVICE_ID);
}
additionalProperties.put(ProjectMetaConstant.SERVICE_ID, serviceId);
currentDirectoryStrategy = getStrategyMap()
.get(Optional.ofNullable(additionalProperties.get(ProjectMetaConstant.SERVICE_TYPE))
.orElse(ServiceType.ALL.getValue()));
// when all additionalProperties are processed
currentDirectoryStrategy.addCustomProperties(additionalProperties);
currentDirectoryStrategy.processSupportingFile(supportingFiles);
}
@Override
public void postProcessModelProperty(CodegenModel model, CodegenProperty property) {
super.postProcessModelProperty(model, property);
model.imports.remove("ApiModelProperty");
model.imports.remove("ApiModel");
}
@Override
public Map<String, Object> postProcessModelsEnum(Map<String, Object> objs) {
objs = super.postProcessModelsEnum(objs);
SpringCodegen springCodegen = new SpringCodegen();
return springCodegen.postProcessModelsEnum(objs);
}
@Override
public String toApiName(String name) {
if (name.length() == 0) {
return "DefaultApi";
}
String apiName = (String) additionalProperties.get("apiName");
if (apiName != null) {
return apiName;
}
return camelize(name) + "Api";
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceType.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
public enum ServiceType {
/**
* both consumer and provider
*/
ALL,
/**
* only consumer project
*/
CONSUMER,
/**
* only provider project
*/
PROVIDER;
public String getValue() {
return toString().toLowerCase();
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ShowBasePathLambda.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.io.IOException;
import java.io.Writer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.samskivert.mustache.Mustache;
import com.samskivert.mustache.Template.Fragment;
public class ShowBasePathLambda implements Mustache.Lambda {
private Pattern pattern = Pattern.compile("\"[ ]*[/]*[ ]*\"");
@Override
public void execute(Fragment fragment, Writer writer) throws IOException {
String text = fragment.execute();
Matcher matcher = pattern.matcher(text);
if (matcher.find()) {
return;
}
writer.write(text);
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudCodegen.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import static org.openapitools.codegen.utils.StringUtils.camelize;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CodegenType;
import org.openapitools.codegen.templating.mustache.CamelCaseLambda;
public class SpringCloudCodegen extends AbstractJavaCodegenExt {
private String applicationId = "defaultApp";
private String serviceId = "defaultService";
private String consumerTemplateFolder = "consumer/openfeign";
private String providerTemplateFolder = "provider/servlet";
private String modelTemplateFolder = "model";
private String apiConsumerTemplate = consumerTemplateFolder + "/apiConsumer.mustache";
public SpringCloudCodegen() {
super();
outputFolder = "generated-code/SpringCloud";
apiTemplateFiles.remove("api.mustache");
apiTemplateFiles.put(providerTemplateFolder + "/api.mustache", ".java");
embeddedTemplateDir = templateDir = "SpringCloud";
modelTemplateFiles.put(modelTemplateFolder + "/model.mustache", ".java");
modelTemplateFiles.remove("model.mustache");
addDirectoryStrategy(new SpringCloudProviderDirectoryStrategy(), ServiceType.PROVIDER.getValue());
addDirectoryStrategy(new SpringCloudConsumerDirectoryStrategy(), ServiceType.CONSUMER.getValue());
addDirectoryStrategy(new SpringCloudMultiDirectoryStrategy(), ServiceType.ALL.getValue());
}
@Override
public void processOpts() {
super.processOpts();
importMapping.put("OffsetDateTime", "java.time.OffsetDateTime");
additionalProperties.put("dateLibrary", "java8");
additionalProperties.put("camelcase", new CamelCaseLambda());
additionalProperties.put("apiTemplateFiles", apiTemplateFiles);
additionalProperties.put("getGenericClassType", new GetGenericClassTypeLambda());
additionalProperties.put("getRelativeBasePath", new GetRelativeBasePathLambda());
additionalProperties.put("showBasePath", new ShowBasePathLambda());
additionalProperties.put("applicationId", applicationId);
if (additionalProperties.get(ProjectMetaConstant.SERVICE_ID) != null) {
serviceId = (String) additionalProperties.get(ProjectMetaConstant.SERVICE_ID);
}
additionalProperties.put(ProjectMetaConstant.SERVICE_ID, serviceId);
currentDirectoryStrategy = getStrategyMap()
.get(Optional.ofNullable(additionalProperties.get(ProjectMetaConstant.SERVICE_TYPE))
.orElse(ServiceType.ALL.getValue()));
// when all additionalProperties are processed
currentDirectoryStrategy.addCustomProperties(additionalProperties);
currentDirectoryStrategy.processSupportingFile(supportingFiles);
}
@Override
public String toApiName(String name) {
if (name.length() == 0) {
return "DefaultApi";
}
String apiName = (String) additionalProperties.get("apiName");
if (apiName != null) {
return apiName;
}
return camelize(name) + "Api";
}
@Override
public String apiFileFolder() {
return outputFolder + "/" + currentDirectoryStrategy.providerDirectory() + "/" + sourceFolder + "/" + apiPackage()
.replace('.', '/');
}
@Override
public String apiFilename(String templateName, String tag) {
if (ServiceType.CONSUMER.getValue().equals(additionalProperties.get(ProjectMetaConstant.SERVICE_TYPE))
|| ServiceType.CONSUMER.getValue().equals(additionalProperties.get(templateName))) {
String suffix = apiTemplateFiles().get(templateName);
return apiConsumerFolder() + File.separator + toApiFilename(tag) + suffix;
}
return super.apiFilename(templateName, tag);
}
private String apiConsumerFolder() {
return outputFolder + "/" + currentDirectoryStrategy.consumerDirectory() + "/" + sourceFolder + "/" + apiPackage()
.replace('.', '/');
}
@Override
public String modelFileFolder() {
return outputFolder + "/" + currentDirectoryStrategy.modelDirectory() + "/" + sourceFolder + "/" + modelPackage()
.replace('.', '/');
}
@Override
public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> objs,
List<Object> allModels) {
Map operations = (Map) objs.get("operations");
String classnameImpl = (String) operations.get("classname") + "Impl";
operations.put("classnameImpl", classnameImpl);
additionalProperties.put("classnameImpl", classnameImpl);
return super.postProcessOperationsWithModels(objs, allModels);
}
@Override
public CodegenType getTag() {
return CodegenType.SERVER;
}
@Override
public String getName() {
return "SpringCloud";
}
@Override
public String getHelp() {
return "Generates a SpringCloud server library.";
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudConsumerDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.SupportingFile;
public class SpringCloudConsumerDirectoryStrategy extends AbstractConsumerDirectoryStrategy {
private String consumerTemplateFolder = "consumer/openfeign";
private String apiConsumerTemplate = consumerTemplateFolder + "/apiConsumer.mustache";
@Override
public String modelDirectory() {
return consumerDirectory();
}
@Override
public String providerDirectory() {
throw new UnsupportedOperationException();
}
@Override
public String consumerDirectory() {
return (String) propertiesMap.get("artifactId");
}
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
super.processSupportingFile(supportingFiles);
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/applicationYml.mustache",
resourcesFolder(consumerDirectory()),
"application.yml"));
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/pom.mustache",
consumerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/Application.mustache",
mainClassFolder(consumerDirectory()),
"Application.java")
);
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.CONSUMER_ARTIFACT_ID,
k -> consumerDirectory());
propertiesMap
.put(GeneratorExternalConfigConstant.CONSUMER_PROJECT_NAME, consumerDirectory());
propertiesMap.put(apiConsumerTemplate, ServiceType.CONSUMER.getValue());
Map<String, String> apiTemplateFiles = ((Map<String, String>) propertiesMap.get("apiTemplateFiles"));
apiTemplateFiles.remove("api.mustache");
apiTemplateFiles.put(apiConsumerTemplate, ".java");
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudMultiDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.openapitools.codegen.SupportingFile;
public class SpringCloudMultiDirectoryStrategy extends AbstractMultiDirectoryStrategy {
private String consumerTemplateFolder = "consumer/openfeign";
private String providerTemplateFolder = "provider/servlet";
private String apiConsumerTemplate = consumerTemplateFolder + "/apiConsumer.mustache";
@Override
public String modelDirectory() {
return Optional.ofNullable((String) propertiesMap.get(GeneratorExternalConfigConstant.MODEL_PROJECT_NAME))
.orElse("model");
}
@Override
public String providerDirectory() {
return Optional.ofNullable((String) propertiesMap.get(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME))
.orElse("provider");
}
@Override
public String consumerDirectory() {
return Optional.ofNullable((String) propertiesMap.get(GeneratorExternalConfigConstant.CONSUMER_PROJECT_NAME))
.orElse("consumer");
}
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
super.processSupportingFile(supportingFiles);
processProvider(supportingFiles);
processConsumer(supportingFiles);
processModel(supportingFiles);
propertiesMap.put("isMultipleModule", true);
supportingFiles.add(new SupportingFile("project/pom.mustache",
"",
"pom.xml")
);
}
private void processModel(List<SupportingFile> supportingFiles) {
propertiesMap
.computeIfAbsent(GeneratorExternalConfigConstant.MODEL_ARTIFACT_ID, k -> modelDirectory());
propertiesMap.put(GeneratorExternalConfigConstant.MODEL_PROJECT_NAME, modelDirectory());
supportingFiles.add(new SupportingFile("model/pom.mustache",
modelDirectory(),
"pom.xml")
);
}
private void processProvider(List<SupportingFile> supportingFiles) {
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/applicationYml.mustache",
resourcesFolder(providerDirectory()),
"application.yml"));
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/pom.mustache",
providerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/Application.mustache",
mainClassFolder(providerDirectory()),
"Application.java")
);
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.PROVIDER_ARTIFACT_ID,
k -> providerDirectory());
propertiesMap
.put(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME, providerDirectory());
}
private void processConsumer(List<SupportingFile> supportingFiles) {
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/applicationYml.mustache",
resourcesFolder(consumerDirectory()),
"application.yml"));
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/pom.mustache",
consumerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile(consumerTemplateFolder + "/Application.mustache",
mainClassFolder(consumerDirectory()),
"Application.java")
);
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.CONSUMER_ARTIFACT_ID,
k -> consumerDirectory());
propertiesMap
.put(GeneratorExternalConfigConstant.CONSUMER_PROJECT_NAME, consumerDirectory());
propertiesMap.put(apiConsumerTemplate, ServiceType.CONSUMER.getValue());
Map<String, String> apiTemplateFiles = ((Map<String, String>) propertiesMap.get("apiTemplateFiles"));
apiTemplateFiles.put(apiConsumerTemplate, ".java");
}
}
================================================
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudProviderDirectoryStrategy.java
================================================
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.toolkit.codegen;
import java.util.List;
import org.openapitools.codegen.SupportingFile;
public class SpringCloudProviderDirectoryStrategy extends AbstractProviderDirectoryStrategy {
private String providerTemplateFolder = "provider/servlet";
@Override
public String modelDirectory() {
return providerDirectory();
}
@Override
public String providerDirectory() {
return (String) propertiesMap.get("artifactId");
}
@Override
public String consumerDirectory() {
throw new UnsupportedOperationException();
}
@Override
public void processSupportingFile(List<SupportingFile> supportingFiles) {
super.processSupportingFile(supportingFiles);
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/applicationYml.mustache",
resourcesFolder(providerDirectory()),
"application.yml"));
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/pom.mustache",
providerDirectory(),
"pom.xml")
);
supportingFiles.add(new SupportingFile(providerTemplateFolder + "/Application.mustache",
mainClassFolder(providerDirectory()),
"Application.java")
);
propertiesMap.computeIfAbsent(GeneratorExternalConfigConstant.PROVIDER_ARTIFACT_ID,
k -> providerDirectory());
propertiesMap
.put(GeneratorExternalConfigConstant.PROVIDER_PROJECT_NAME, providerDirectory());
}
}
================================================
FILE: codegen/src/main/resources/META-INF/services/org.apache.servicecomb.toolkit.CodeGenerator
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
org.apache.servicecomb.toolkit.codegen.DefaultCodeGenerator
================================================
FILE: codegen/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig
================================================
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
org.apache.servicecomb.toolkit.codegen.ServiceCombCodegen
org.apache.servicecomb.toolkit.codegen.SpringCloudCodegen
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/Application.mustache
================================================
package {{mainClassPackage}};
import org.apache.servicecomb.foundation.common.utils.BeanUtils;
public class Application {
public static void main(String[] args) throws Exception {
BeanUtils.init();
}
}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/apiConsumer.mustache
================================================
package {{apiPackage}};
import static org.springframework.http.MediaType.*;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
{{#imports}}import {{import}};
{{/imports}}
import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
import org.springframework.util.MultiValueMap;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
{{#operations}}
public class {{classname}} {
{{#operation}}
public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>consumer/queryParamsConsumer}}{{>consumer/pathParamsConsumer}}{{>consumer/headerParamsConsumer}}{{>consumer/bodyParamsConsumer}}{{>consumer/formParamsConsumer}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
Map<String, Object> params = new HashMap<>();
HttpEntity httpEntity = null;
HttpHeaders headers = new HttpHeaders();
{{#allParams}}
{{#isPathParam}}
params.put("{{paramName}}",{{paramName}});
{{/isPathParam}}
{{#isQueryParam}}
params.put("{{paramName}}",{{paramName}});
{{/isQueryParam}}
{{#isHeaderParam}}
headers.add("{{paramName}}",{{paramName}});
{{/isHeaderParam}}
{{#isFormParam}}
{{^isFile}}
httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
{{/isFile}}
{{#isFile}}
httpEntity = new HttpEntity<MultipartFile>({{paramName}}, headers);
{{/isFile}}
{{/isFormParam}}
{{#isBodyParam}}
httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
{{/isBodyParam}}
{{/allParams}}
RestTemplate restTemplate = RestTemplateBuilder.create();
ResponseEntity<{{>returnTypes}}> result = restTemplate.exchange("cse://{{providerServiceId}}{{#getRelativeBasePath}}{{basePath}}{{/getRelativeBasePath}}{{path}}",HttpMethod.{{httpMethod}},httpEntity,{{#getGenericClassType}}{{>returnTypes}}{{/getGenericClassType}}.class,params);
// do something
return result;
}
{{/operation}}
}
{{/operations}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/bodyParamsConsumer.mustache
================================================
{{#isBodyParam}} {{{dataType}}} {{paramName}}{{/isBodyParam}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/formParamsConsumer.mustache
================================================
{{#isFormParam}}{{^isFile}}{{{dataType}}} {{paramName}}{{/isFile}}{{#isFile}} {{#isPOJO}}File{{/isPOJO}}{{^isPOJO}}MultipartFile{{/isPOJO}} {{baseName}}{{/isFile}}{{/isFormParam}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/headerParamsConsumer.mustache
================================================
{{#isHeaderParam}} {{{dataType}}} {{paramName}}{{/isHeaderParam}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/microservice.mustache
================================================
#Indicates an application name
APPLICATION_ID: {{applicationId}}
service_description:
#Indicates a microservice name
#The microservice name should be unique within an application.
#The name can contain digits, uppercase and lowercase letters, hyphens(-), underscores(_), and periods(.); and can neither start nor end with punctuations.
#The naming rule is as follows: ^[a-zA-Z0-9]+$|^[a-zA-Z0-9][a-zA-Z0-9_-.]*[a-zA-Z0-9]$.
name: {{consumerServiceId}}
#Indicates a service version
version: 1.0.0
servicecomb:
service:
#Specifies the service center IP address.
registry:
address: http://127.0.0.1:30100
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/pathParamsConsumer.mustache
================================================
{{#isPathParam}} {{{dataType}}} {{paramName}}{{/isPathParam}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/pojo/apiConsumer.mustache
================================================
package {{apiPackage}};
import java.util.List;
{{#imports}}import {{import}};
{{/imports}}
import org.apache.servicecomb.provider.pojo.RpcReference;
import org.springframework.stereotype.Component;
{{#operations}}
@Component
public class {{classname}}Consumer{
@RpcReference(microserviceName = "{{providerServiceId}}", schemaId = "{{#camelcase}}{{classname}}{{/camelcase}}")
private {{classname}} api;
{{#operation}}
public {{>returnTypes}} {{operationId}}({{#allParams}}{{>consumer/queryParamsConsumer}}{{>consumer/pathParamsConsumer}}{{>consumer/headerParamsConsumer}}{{>consumer/bodyParamsConsumer}}{{>consumer/formParamsConsumer}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
return api.{{operationId}}({{#allParams}}{{#isQueryParam}}{{paramName}}{{/isQueryParam}}{{#isPathParam}}{{paramName}}{{/isPathParam}}{{#isHeaderParam}}{{paramName}}{{/isHeaderParam}}{{#isBodyParam}}{{paramName}}{{/isBodyParam}}{{#isFormParam}}{{paramName}}{{/isFormParam}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
}
{{/operation}}
}
{{/operations}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/pojo/apiInterface.mustache
================================================
package {{apiPackage}};
import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.io.File;
{{#imports}}import {{import}};
{{/imports}}
{{#operations}}
public interface {{classname}} {
{{#operation}}
public {{>returnTypes}} {{operationId}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
{{/operation}}
}
{{/operations}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/pom.mustache
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
{{#isMultipleModule}}
<parent>
<artifactId>{{artifactId}}</artifactId>
<groupId>{{groupId}}</groupId>
<version>{{artifactVersion}}</version>
</parent>
{{/isMultipleModule}}
<modelVersion>4.0.0</modelVersion>
<artifactId>{{consumerArtifactId}}</artifactId>
<packaging>jar</packaging>
{{^isMultipleModule}}
<groupId>{{groupId}}</groupId>
<version>{{artifactVersion}}</version>
{{/isMultipleModule}}
<name>{{consumerArtifactId}}</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java-chassis.version>1.2.0</java-chassis.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>java-chassis-dependencies</artifactId>
<version>${java-chassis.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
{{#isMultipleModule}}
<dependency>
<groupId>{{groupId}}</groupId>
<artifactId>{{modelArtifactId}}</artifactId>
<version>${project.version}</version>
</dependency>
{{/isMultipleModule}}
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-bizkeeper</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-loadbalance</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>transport-highway</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>transport-rest-vertx</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>handler-flowcontrol-qps</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>provider-pojo</artifactId>
</dependency>
<dependency>
<groupId>org.apache.servicecomb</groupId>
<artifactId>provider-springmvc</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.12.RELEASE</version>
<configuration>
<fork>true</fork>
<mainClass>{{mainClassPackage}}.Application</mainClass>
<outputDirectory>target/bin</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/queryParamsConsumer.mustache
================================================
{{#isQueryParam}}{{{dataType}}} {{paramName}}{{/isQueryParam}}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/springboot/Application.mustache
================================================
package {{mainClassPackage}};
import org.apache.servicecomb.springboot.starter.provider.EnableServiceComb;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableServiceComb
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
================================================
FILE: codegen/src/main/resources/ServiceComb/consumer/springboot/pom.mustache
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/
gitextract_jkg1t5v4/
├── .gitignore
├── LICENSE
├── NOTICE
├── README-ZH.md
├── README.md
├── cli/
│ ├── pom.xml
│ ├── scripts/
│ │ ├── cli.cmd
│ │ └── cli.sh
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── cli/
│ │ │ ├── CheckCompatibility.java
│ │ │ ├── CheckCompatibilityAbbr.java
│ │ │ ├── CheckCompatibilityBase.java
│ │ │ ├── CheckStyle.java
│ │ │ ├── CheckStyleAbbr.java
│ │ │ ├── CheckStyleBase.java
│ │ │ ├── CodeGenerate.java
│ │ │ ├── DocGenerate.java
│ │ │ ├── ToolkitMain.java
│ │ │ └── ValidationFailedException.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── log4j2.xml
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── cli/
│ │ └── CliTest.java
│ └── resources/
│ ├── contracts/
│ │ ├── CalculateEndpoint.yaml
│ │ ├── HelloEndPoint.yaml
│ │ └── pojo/
│ │ └── CodeFirstHelloEndPoint.yaml
│ ├── log4j2-test.xml
│ ├── oas/
│ │ ├── compatibility-left.yaml
│ │ ├── compatibility-right.yaml
│ │ ├── style-rules.properties
│ │ └── style.yaml
│ └── swagger.yaml
├── codegen/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── codegen/
│ │ │ ├── AbstractConsumerDirectoryStrategy.java
│ │ │ ├── AbstractDirectoryStrategy.java
│ │ │ ├── AbstractJavaCodegenExt.java
│ │ │ ├── AbstractMultiDirectoryStrategy.java
│ │ │ ├── AbstractProviderDirectoryStrategy.java
│ │ │ ├── ConsumerDirectoryStrategy.java
│ │ │ ├── DefaultCodeGenerator.java
│ │ │ ├── DefaultDirectoryStrategy.java
│ │ │ ├── DirectoryStrategy.java
│ │ │ ├── GeneratorExternalConfigConstant.java
│ │ │ ├── GetGenericClassTypeLambda.java
│ │ │ ├── GetRelativeBasePathLambda.java
│ │ │ ├── MicroServiceFramework.java
│ │ │ ├── MultiContractGenerator.java
│ │ │ ├── ProjectMetaConstant.java
│ │ │ ├── ProviderDirectoryStrategy.java
│ │ │ ├── ServiceCombCodegen.java
│ │ │ ├── ServiceType.java
│ │ │ ├── ShowBasePathLambda.java
│ │ │ ├── SpringCloudCodegen.java
│ │ │ ├── SpringCloudConsumerDirectoryStrategy.java
│ │ │ ├── SpringCloudMultiDirectoryStrategy.java
│ │ │ └── SpringCloudProviderDirectoryStrategy.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── services/
│ │ │ ├── org.apache.servicecomb.toolkit.CodeGenerator
│ │ │ └── org.openapitools.codegen.CodegenConfig
│ │ ├── ServiceComb/
│ │ │ ├── consumer/
│ │ │ │ ├── Application.mustache
│ │ │ │ ├── apiConsumer.mustache
│ │ │ │ ├── bodyParamsConsumer.mustache
│ │ │ │ ├── formParamsConsumer.mustache
│ │ │ │ ├── headerParamsConsumer.mustache
│ │ │ │ ├── microservice.mustache
│ │ │ │ ├── pathParamsConsumer.mustache
│ │ │ │ ├── pojo/
│ │ │ │ │ ├── apiConsumer.mustache
│ │ │ │ │ └── apiInterface.mustache
│ │ │ │ ├── pom.mustache
│ │ │ │ ├── queryParamsConsumer.mustache
│ │ │ │ └── springboot/
│ │ │ │ ├── Application.mustache
│ │ │ │ └── pom.mustache
│ │ │ ├── enumClass.mustache
│ │ │ ├── enumOuterClass.mustache
│ │ │ ├── libraries/
│ │ │ │ ├── JAX-RS/
│ │ │ │ │ ├── Application.mustache
│ │ │ │ │ ├── api.mustache
│ │ │ │ │ ├── bodyParams.mustache
│ │ │ │ │ ├── formParams.mustache
│ │ │ │ │ ├── headerParams.mustache
│ │ │ │ │ ├── pathParams.mustache
│ │ │ │ │ ├── pom.mustache
│ │ │ │ │ └── queryParams.mustache
│ │ │ │ ├── POJO/
│ │ │ │ │ ├── Application.mustache
│ │ │ │ │ ├── api.mustache
│ │ │ │ │ ├── bodyParams.mustache
│ │ │ │ │ ├── formParams.mustache
│ │ │ │ │ ├── headerParams.mustache
│ │ │ │ │ ├── pathParams.mustache
│ │ │ │ │ ├── pom.mustache
│ │ │ │ │ └── queryParams.mustache
│ │ │ │ ├── SpringBoot/
│ │ │ │ │ ├── Application.mustache
│ │ │ │ │ ├── api.mustache
│ │ │ │ │ ├── bodyParams.mustache
│ │ │ │ │ ├── formParams.mustache
│ │ │ │ │ ├── headerParams.mustache
│ │ │ │ │ ├── operationMethod.mustache
│ │ │ │ │ ├── pathParams.mustache
│ │ │ │ │ ├── pom.mustache
│ │ │ │ │ └── queryParams.mustache
│ │ │ │ └── SpringMVC/
│ │ │ │ ├── Application.mustache
│ │ │ │ ├── api.mustache
│ │ │ │ ├── bodyParams.mustache
│ │ │ │ ├── formParams.mustache
│ │ │ │ ├── headerParams.mustache
│ │ │ │ ├── pathParams.mustache
│ │ │ │ ├── pom.mustache
│ │ │ │ └── queryParams.mustache
│ │ │ ├── log4j2.mustache
│ │ │ ├── model/
│ │ │ │ ├── model.mustache
│ │ │ │ └── pom.mustache
│ │ │ ├── pojo.mustache
│ │ │ ├── project/
│ │ │ │ └── pom.mustache
│ │ │ ├── provider/
│ │ │ │ └── microservice.mustache
│ │ │ └── returnTypes.mustache
│ │ └── SpringCloud/
│ │ ├── consumer/
│ │ │ └── openfeign/
│ │ │ ├── Application.mustache
│ │ │ ├── apiConsumer.mustache
│ │ │ ├── applicationYml.mustache
│ │ │ ├── bodyParamsConsumer.mustache
│ │ │ ├── formParamsConsumer.mustache
│ │ │ ├── headerParamsConsumer.mustache
│ │ │ ├── pathParamsConsumer.mustache
│ │ │ ├── pom.mustache
│ │ │ └── queryParamsConsumer.mustache
│ │ ├── model/
│ │ │ ├── enumClass.mustache
│ │ │ ├── enumOuterClass.mustache
│ │ │ ├── model.mustache
│ │ │ ├── pojo.mustache
│ │ │ └── pom.mustache
│ │ ├── project/
│ │ │ └── pom.mustache
│ │ └── provider/
│ │ └── servlet/
│ │ ├── Application.mustache
│ │ ├── api.mustache
│ │ ├── applicationYml.mustache
│ │ ├── bodyParams.mustache
│ │ ├── formParams.mustache
│ │ ├── headerParams.mustache
│ │ ├── pathParams.mustache
│ │ ├── pom.mustache
│ │ ├── queryParams.mustache
│ │ └── returnTypes.mustache
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── codegen/
│ │ ├── CustomPropertiesTest.java
│ │ ├── GeneratorTest.java
│ │ ├── ReflectUtils.java
│ │ ├── ServiceCombCodegenTest.java
│ │ ├── SpringCloudCodegenTest.java
│ │ └── TemplateTest.java
│ └── resources/
│ ├── examples/
│ │ ├── v2.0/
│ │ │ ├── json/
│ │ │ │ ├── api-with-examples.json
│ │ │ │ ├── petstore-expanded.json
│ │ │ │ ├── petstore-minimal.json
│ │ │ │ ├── petstore-separate/
│ │ │ │ │ ├── common/
│ │ │ │ │ │ └── Error.json
│ │ │ │ │ └── spec/
│ │ │ │ │ ├── NewPet.json
│ │ │ │ │ ├── Pet.json
│ │ │ │ │ ├── parameters.json
│ │ │ │ │ └── swagger.json
│ │ │ │ ├── petstore-simple.json
│ │ │ │ ├── petstore-with-external-docs.json
│ │ │ │ ├── petstore.json
│ │ │ │ └── uber.json
│ │ │ └── yaml/
│ │ │ ├── api-with-examples.yaml
│ │ │ ├── petstore-expanded.yaml
│ │ │ ├── petstore-minimal.yaml
│ │ │ ├── petstore-separate/
│ │ │ │ ├── common/
│ │ │ │ │ └── Error.yaml
│ │ │ │ └── spec/
│ │ │ │ ├── NewPet.yaml
│ │ │ │ ├── Pet.yaml
│ │ │ │ ├── parameters.yaml
│ │ │ │ └── swagger.yaml
│ │ │ ├── petstore-simple.yaml
│ │ │ ├── petstore-with-external-docs.yaml
│ │ │ ├── petstore.yaml
│ │ │ └── uber.yaml
│ │ └── v3.0/
│ │ ├── api-with-examples.yaml
│ │ ├── callback-example.yaml
│ │ ├── link-example.yaml
│ │ ├── petstore-expanded.yaml
│ │ ├── petstore.yaml
│ │ └── uspto.yaml
│ ├── log4j2-test.xml
│ ├── no-model.yaml
│ ├── swagger.yaml
│ └── with-model.yaml
├── common/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── common/
│ │ ├── ClassMaker.java
│ │ ├── CompareAlgorithm.java
│ │ ├── ComparisionType.java
│ │ ├── Comparison.java
│ │ ├── ContractComparator.java
│ │ ├── ContractFileType.java
│ │ ├── DocumentType.java
│ │ ├── FileUtils.java
│ │ ├── ImmediateClassLoader.java
│ │ ├── MyersAlgorithm.java
│ │ ├── SourceType.java
│ │ └── SplitDiffFormatter.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── common/
│ │ ├── ClassMakerTest.java
│ │ ├── FileUtilsTest.java
│ │ └── TextCompareTest.java
│ └── resources/
│ ├── compare/
│ │ ├── HelloEndPoint.yaml
│ │ └── HelloEndPoint2.yaml
│ └── projects/
│ ├── demo-with-correct-pom/
│ │ └── pom.xml
│ └── demo-with-invaild-pom/
│ └── pom.xml
├── contractgen/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── contractgen/
│ │ │ └── DefaultContractsGenerator.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── org.apache.servicecomb.toolkit.ContractsGenerator
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── contractgen/
│ │ ├── ContractTestUtil.java
│ │ └── DefaultContractsGeneratorTest.java
│ ├── projects/
│ │ └── demo/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── demo/
│ │ ├── Application.java
│ │ └── HelloEndPoint.java
│ └── resources/
│ └── log4j2-test.xml
├── core/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── org/
│ └── apache/
│ └── servicecomb/
│ └── toolkit/
│ ├── CodeGenerator.java
│ ├── ContractsGenerator.java
│ ├── DocGenerator.java
│ ├── Generator.java
│ └── GeneratorFactory.java
├── docgen/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── docgen/
│ │ │ └── ContractsSwaggerUIGenerator.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── services/
│ │ │ └── org.apache.servicecomb.toolkit.DocGenerator
│ │ └── webroot/
│ │ └── swagger-ui.html
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── docgen/
│ │ └── ContractsSwaggerUIGeneratorTest.java
│ └── resources/
│ └── HelloEndPoint.yaml
├── integration-tests/
│ ├── coverage-aggregate/
│ │ └── pom.xml
│ └── pom.xml
├── oas-generator/
│ ├── oas-generator-core/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── generator/
│ │ │ ├── HttpStatuses.java
│ │ │ ├── MediaTypes.java
│ │ │ ├── annotation/
│ │ │ │ ├── AnnotationProcessor.java
│ │ │ │ ├── ApiResponseMethodAnnotationProcessor.java
│ │ │ │ ├── ApiResponsesMethodAnnotationProcessor.java
│ │ │ │ ├── ClassAnnotationProcessor.java
│ │ │ │ ├── MethodAnnotationProcessor.java
│ │ │ │ ├── ModelInterceptor.java
│ │ │ │ ├── OpenApiDefinitionClassAnnotationProcessor.java
│ │ │ │ ├── OperationMethodAnnotationProcessor.java
│ │ │ │ ├── ParamAnnotationProcessor.java
│ │ │ │ ├── ParameterAnnotationProcessor.java
│ │ │ │ └── RequestBodyParamAnnotationProcessor.java
│ │ │ ├── context/
│ │ │ │ ├── Context.java
│ │ │ │ ├── IExtensionsContext.java
│ │ │ │ ├── ISchemaContext.java
│ │ │ │ ├── OasContext.java
│ │ │ │ ├── OasGenerator.java
│ │ │ │ ├── OperationContext.java
│ │ │ │ └── ParameterContext.java
│ │ │ ├── parser/
│ │ │ │ ├── AbstractAnnotationParser.java
│ │ │ │ └── api/
│ │ │ │ └── OpenApiAnnotationParser.java
│ │ │ └── util/
│ │ │ ├── ArrayModelConverter.java
│ │ │ ├── LocalVariableVisitor.java
│ │ │ ├── ModelConverter.java
│ │ │ ├── ParamUtils.java
│ │ │ ├── RequestResponse.java
│ │ │ └── SwaggerAnnotationUtils.java
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ ├── AnnotationProcessorTest.java
│ │ ├── ContextTest.java
│ │ ├── OasGeneratorTest.java
│ │ ├── ParserTest.java
│ │ └── UtilsTest.java
│ ├── oas-generator-jaxrs/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── generator/
│ │ │ │ ├── annotation/
│ │ │ │ │ ├── ConsumesAnnotationProcessor.java
│ │ │ │ │ ├── CookieParamAnnotationProcessor.java
│ │ │ │ │ ├── FormParamAnnotationProcessor.java
│ │ │ │ │ ├── HeaderParamAnnotationProcessor.java
│ │ │ │ │ ├── HttpMethodAnnotationProcessor.java
│ │ │ │ │ ├── PathClassAnnotationProcessor.java
│ │ │ │ │ ├── PathMethodAnnotationProcessor.java
│ │ │ │ │ ├── PathParamAnnotationProcessor.java
│ │ │ │ │ └── QueryParamAnnotationProcessor.java
│ │ │ │ └── parser/
│ │ │ │ └── JaxRsAnnotationParser.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ └── org.apache.servicecomb.toolkit.generator.parser.api.OpenApiAnnotationParser
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ ├── JaxrsAnnotationProcessorTest.java
│ │ └── JaxrsParserTest.java
│ ├── oas-generator-servicecomb/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── generator/
│ │ │ │ └── parser/
│ │ │ │ ├── ServicecombJaxrsParser.java
│ │ │ │ ├── ServicecombPojoParser.java
│ │ │ │ └── ServicecombSpringmvcParser.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ └── org.apache.servicecomb.toolkit.generator.parser.api.OpenApiAnnotationParser
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ └── ServiceCombParserTest.java
│ ├── oas-generator-spring/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── generator/
│ │ │ │ ├── MultipartFileInterceptor.java
│ │ │ │ ├── annotation/
│ │ │ │ │ ├── AbstractHttpMethodMappingAnnotationProcessor.java
│ │ │ │ │ ├── DeleteMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── GetMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── PathVariableAnnotationProcessor.java
│ │ │ │ │ ├── PostMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── PutMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── RequestBodyAnnotationProcessor.java
│ │ │ │ │ ├── RequestHeaderAnnotationProcessor.java
│ │ │ │ │ ├── RequestMappingClassAnnotationProcessor.java
│ │ │ │ │ ├── RequestMappingMethodAnnotationProcessor.java
│ │ │ │ │ ├── RequestParamAnnotationProcessor.java
│ │ │ │ │ └── RequestPartAnnotationProcessor.java
│ │ │ │ └── parser/
│ │ │ │ └── SpringmvcAnnotationParser.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── services/
│ │ │ ├── org.apache.servicecomb.toolkit.generator.annotation.ModelInterceptor
│ │ │ └── org.apache.servicecomb.toolkit.generator.parser.api.OpenApiAnnotationParser
│ │ └── test/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── generator/
│ │ ├── SpringAnnotationProcessorTest.java
│ │ └── SpringParserTest.java
│ └── pom.xml
├── oas-validator/
│ ├── .gitignore
│ ├── README-ZH.md
│ ├── README.md
│ ├── doc/
│ │ ├── INSTALLATION.MD
│ │ └── USAGE.MD
│ ├── oas-validator-compatibility/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── compatibility/
│ │ │ ├── CompatibilityCheckParser.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultCallbackDiffValidatorFactory.java
│ │ │ │ ├── DefaultComponentsDiffValidatorFactory.java
│ │ │ │ ├── DefaultEncodingDiffValidatorFactory.java
│ │ │ │ ├── DefaultHeaderDiffValidatorFactory.java
│ │ │ │ ├── DefaultInfoDiffValidatorFactory.java
│ │ │ │ ├── DefaultLinkDiffValidatorFactory.java
│ │ │ │ ├── DefaultMediaTypeDiffValidatorFactory.java
│ │ │ │ ├── DefaultOasSpecDiffValidatorFactory.java
│ │ │ │ ├── DefaultOpenApiDiffValidatorFactory.java
│ │ │ │ ├── DefaultOperationDiffValidatorFactory.java
│ │ │ │ ├── DefaultParameterDiffValidatorFactory.java
│ │ │ │ ├── DefaultPathItemDiffValidatorFactory.java
│ │ │ │ ├── DefaultPathsDiffValidatorFactory.java
│ │ │ │ ├── DefaultRequestBodyDiffValidatorFactory.java
│ │ │ │ ├── DefaultResponseDiffValidatorFactory.java
│ │ │ │ ├── DefaultResponsesDiffValidatorFactory.java
│ │ │ │ ├── DefaultSchemaDiffValidatorFactory.java
│ │ │ │ ├── DefaultSecuritySchemeDiffValidatorFactory.java
│ │ │ │ ├── DefaultServerDiffValidatorFactory.java
│ │ │ │ └── DefaultTagDiffValidatorFactory.java
│ │ │ └── validators/
│ │ │ ├── encoding/
│ │ │ │ ├── EncodingAddNotAllowedDiffValidator.java
│ │ │ │ ├── EncodingAllowedReservedChangeDiffValidator.java
│ │ │ │ ├── EncodingContentTypeNotSameDiffValidator.java
│ │ │ │ ├── EncodingDelNotAllowedDiffValidator.java
│ │ │ │ ├── EncodingExplodeNotSameDiffValidator.java
│ │ │ │ └── EncodingStyleNotSameDiffValidator.java
│ │ │ ├── header/
│ │ │ │ ├── HeaderAddInRequestBodyNotAllowedDiffValidator.java
│ │ │ │ └── HeaderDelInResponseNotAllowedDiffValidator.java
│ │ │ ├── mediatype/
│ │ │ │ ├── MediaTypeAddInParameterNotAllowedDiffValidator.java
│ │ │ │ ├── MediaTypeDelInParameterNotAllowedDiffValidator.java
│ │ │ │ ├── MediaTypeDelInRequestBodyNotAllowedDiffValidator.java
│ │ │ │ └── MediaTypeDelInResponseNotAllowedDiffValidator.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationDeleteNotAllowedDiffValidator.java
│ │ │ │ └── OperationIdNotSameDiffValidator.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterAddDiffValidator.java
│ │ │ │ ├── ParameterAllowEmptyValueChangeDiffValidator.java
│ │ │ │ ├── ParameterAllowReservedChangeDiffValidator.java
│ │ │ │ ├── ParameterExplodeNotSameDiffValidator.java
│ │ │ │ ├── ParameterRequiredChangeDiffValidator.java
│ │ │ │ └── ParameterStyleNotSameDiffValidator.java
│ │ │ ├── pathitem/
│ │ │ │ └── PathItemDeleteNotAllowedDiffValidator.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyRequiredChangeDiffValidator.java
│ │ │ ├── response/
│ │ │ │ └── ResponseAddNotAllowedDiffValidator.java
│ │ │ └── schema/
│ │ │ ├── SchemaDiscriminatorChangeValidator.java
│ │ │ ├── SchemaPropertyChangeValidator.java
│ │ │ ├── SchemaReadOnlyChangeValidator.java
│ │ │ ├── SchemaTypeFormatChangeValidator.java
│ │ │ ├── SchemaWriteOnlyChangeValidator.java
│ │ │ ├── SchemaXmlChangeValidator.java
│ │ │ ├── TypeFormat.java
│ │ │ ├── request/
│ │ │ │ ├── SchemaEnumChangeInRequestValidator.java
│ │ │ │ ├── SchemaExclusiveMaximumChangeInRequestValidator.java
│ │ │ │ ├── SchemaExclusiveMinimumChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaxItemsChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaxLengthChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaxPropertiesChangeInRequestValidator.java
│ │ │ │ ├── SchemaMaximumChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinItemsChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinLengthChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinPropertiesChangeInRequestValidator.java
│ │ │ │ ├── SchemaMinimumChangeInRequestValidator.java
│ │ │ │ ├── SchemaMultipleOfChangeInRequestValidator.java
│ │ │ │ ├── SchemaNullableChangeInRequestValidator.java
│ │ │ │ ├── SchemaRequiredChangeInRequestValidator.java
│ │ │ │ ├── SchemaTypeFormatChangeInRequestValidator.java
│ │ │ │ └── SchemaUniqueItemsChangeInRequestValidator.java
│ │ │ └── response/
│ │ │ ├── SchemaEnumChangeInResponseValidator.java
│ │ │ ├── SchemaExclusiveMaximumChangeInResponseValidator.java
│ │ │ ├── SchemaExclusiveMinimumChangeInResponseValidator.java
│ │ │ ├── SchemaMaxItemsChangeInResponseValidator.java
│ │ │ ├── SchemaMaxLengthChangeInResponseValidator.java
│ │ │ ├── SchemaMaxPropertiesChangeInResponseValidator.java
│ │ │ ├── SchemaMaximumChangeInResponseValidator.java
│ │ │ ├── SchemaMinItemsChangeInResponseValidator.java
│ │ │ ├── SchemaMinLengthChangeInResponseValidator.java
│ │ │ ├── SchemaMinPropertiesChangeInResponseValidator.java
│ │ │ ├── SchemaMinimumChangeInResponseValidator.java
│ │ │ ├── SchemaMultipleOfChangeInResponseValidator.java
│ │ │ ├── SchemaNullableChangeInResponseValidator.java
│ │ │ ├── SchemaRequiredChangeInResponseValidator.java
│ │ │ ├── SchemaTypeFormatChangeInResponseValidator.java
│ │ │ └── SchemaUniqueItemsChangeInResponseValidator.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── compatibility/
│ │ │ ├── CompatibilityCheckParserTest.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultCallbackDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultComponentsDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultEncodingDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultInfoDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultLinkDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultMediaTypeDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultOasSpecDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultOpenApiDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultOperationDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultParameterDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathItemDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathsDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultRequestBodyDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponseDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponsesDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultSchemaDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultSecuritySchemeDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultServerDiffValidatorFactoryTest.java
│ │ │ │ ├── DefaultTagDiffValidatorFactoryTest.java
│ │ │ │ └── DiffValidatorFactoryTestConfiguration.java
│ │ │ └── validators/
│ │ │ ├── OasCompatibilityTestBase.java
│ │ │ ├── encoding/
│ │ │ │ ├── EncodingAddNotAllowedDiffValidatorTest.java
│ │ │ │ ├── EncodingAllowedReservedChangeDiffValidatorTest.java
│ │ │ │ ├── EncodingContentTypeNotSameDiffValidatorTest.java
│ │ │ │ ├── EncodingDelNotAllowedDiffValidatorTest.java
│ │ │ │ ├── EncodingExplodeNotSameDiffValidatorTest.java
│ │ │ │ └── EncodingStyleNotSameDiffValidatorTest.java
│ │ │ ├── header/
│ │ │ │ ├── HeaderAddInRequestBodyNotAllowedDiffValidatorTest.java
│ │ │ │ └── HeaderDelInResponseNotAllowedDiffValidatorTest.java
│ │ │ ├── mediatype/
│ │ │ │ ├── MediaTypeAddInParameterNotAllowedDiffValidatorTest.java
│ │ │ │ ├── MediaTypeDelInParameterNotAllowedDiffValidatorTest.java
│ │ │ │ ├── MediaTypeDelInRequestBodyNotAllowedDiffValidatorTest.java
│ │ │ │ └── MediaTypeDelInResponseNotAllowedDiffValidatorTest.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationDeleteNotAllowedDiffValidatorTest.java
│ │ │ │ └── OperationIdNotSameDiffValidatorTest.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterAddDiffValidatorTest.java
│ │ │ │ ├── ParameterAllowEmptyValueChangeDiffValidatorTest.java
│ │ │ │ ├── ParameterAllowReservedChangeDiffValidatorTest.java
│ │ │ │ ├── ParameterExplodeNotSameDiffValidatorTest.java
│ │ │ │ ├── ParameterRequiredChangeDiffValidatorTest.java
│ │ │ │ └── ParameterStyleNotSameDiffValidatorTest.java
│ │ │ ├── pathitem/
│ │ │ │ └── PathItemDeleteNotAllowedDiffValidatorTest.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyRequiredChangeDiffValidatorTest.java
│ │ │ ├── response/
│ │ │ │ └── ResponseAddNotAllowedDiffValidatorTest.java
│ │ │ └── schema/
│ │ │ ├── SchemaDiscriminatorChangeValidatorTest.java
│ │ │ ├── SchemaReadOnlyChangeValidatorTest.java
│ │ │ ├── SchemaWriteOnlyChangeValidatorTest.java
│ │ │ ├── SchemaXmlChangeValidatorTest.java
│ │ │ ├── request/
│ │ │ │ ├── SchemaEnumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaExclusiveMaximumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaExclusiveMinimumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaxItemsChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaxLengthChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaxPropertiesChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMaximumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinItemsChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinLengthChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinPropertiesChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMinimumChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaMultipleOfChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaNullableChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaRequiredChangeInRequestValidatorTest.java
│ │ │ │ ├── SchemaTypeFormatChangeInRequestValidatorTest.java
│ │ │ │ └── SchemaUniqueItemsChangeInRequestValidatorTest.java
│ │ │ └── response/
│ │ │ ├── SchemaEnumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaExclusiveMaximumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaExclusiveMinimumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaxItemsChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaxLengthChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaxPropertiesChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMaximumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinItemsChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinLengthChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinPropertiesChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMinimumChangeInResponseValidatorTest.java
│ │ │ ├── SchemaMultipleOfChangeInResponseValidatorTest.java
│ │ │ ├── SchemaNullableChangeInResponseValidatorTest.java
│ │ │ ├── SchemaRequiredChangeInResponseValidatorTest.java
│ │ │ ├── SchemaTypeFormatChangeInResponseValidatorTest.java
│ │ │ └── SchemaUniqueItemsChangeInResponseValidatorTest.java
│ │ └── resources/
│ │ ├── logback-test.xml
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ └── compatibility/
│ │ ├── parser-test.yaml
│ │ └── validators/
│ │ ├── encoding/
│ │ │ ├── petstore-encoding-add-a.yaml
│ │ │ ├── petstore-encoding-add-b.yaml
│ │ │ ├── petstore-encoding-allow-reserved-a.yaml
│ │ │ ├── petstore-encoding-allow-reserved-b.yaml
│ │ │ ├── petstore-encoding-content-type-a.yaml
│ │ │ ├── petstore-encoding-content-type-b.yaml
│ │ │ ├── petstore-encoding-del-a.yaml
│ │ │ ├── petstore-encoding-del-b.yaml
│ │ │ ├── petstore-encoding-explode-a.yaml
│ │ │ ├── petstore-encoding-explode-b.yaml
│ │ │ ├── petstore-encoding-style-a.yaml
│ │ │ └── petstore-encoding-style-b.yaml
│ │ ├── header/
│ │ │ ├── petstore-header-add-in-request-body-a.yaml
│ │ │ ├── petstore-header-add-in-request-body-b.yaml
│ │ │ ├── petstore-header-del-in-response-a.yaml
│ │ │ └── petstore-header-del-in-response-b.yaml
│ │ ├── mediatype/
│ │ │ ├── petstore-media-type-add-in-parameter-a.yaml
│ │ │ ├── petstore-media-type-add-in-parameter-b.yaml
│ │ │ ├── petstore-media-type-del-in-parameter-a.yaml
│ │ │ ├── petstore-media-type-del-in-parameter-b.yaml
│ │ │ ├── petstore-media-type-del-in-request-body-a.yaml
│ │ │ ├── petstore-media-type-del-in-request-body-b.yaml
│ │ │ ├── petstore-media-type-del-in-response-a.yaml
│ │ │ └── petstore-media-type-del-in-response-b.yaml
│ │ ├── operation/
│ │ │ ├── petstore-operation-delete-a.yaml
│ │ │ ├── petstore-operation-delete-b.yaml
│ │ │ ├── petstore-operation-id-a.yaml
│ │ │ └── petstore-operation-id-b.yaml
│ │ ├── parameter/
│ │ │ ├── petstore-parameter-add-a.yaml
│ │ │ ├── petstore-parameter-add-b.yaml
│ │ │ ├── petstore-parameter-allow-empty-value-a.yaml
│ │ │ ├── petstore-parameter-allow-empty-value-b.yaml
│ │ │ ├── petstore-parameter-allow-reserved-a.yaml
│ │ │ ├── petstore-parameter-allow-reserved-b.yaml
│ │ │ ├── petstore-parameter-explode-a.yaml
│ │ │ ├── petstore-parameter-explode-b.yaml
│ │ │ ├── petstore-parameter-required-a.yaml
│ │ │ ├── petstore-parameter-required-b.yaml
│ │ │ ├── petstore-parameter-style-a.yaml
│ │ │ └── petstore-parameter-style-b.yaml
│ │ ├── pathitem/
│ │ │ ├── petstore-path-item-delete-a.yaml
│ │ │ └── petstore-path-item-delete-b.yaml
│ │ ├── requestbody/
│ │ │ ├── petstore-request-body-required-a.yaml
│ │ │ └── petstore-request-body-required-b.yaml
│ │ ├── response/
│ │ │ ├── petstore-response-add-a.yaml
│ │ │ └── petstore-response-add-b.yaml
│ │ └── schema/
│ │ ├── petstore-schema-discriminator-a.yaml
│ │ ├── petstore-schema-discriminator-b.yaml
│ │ ├── petstore-schema-read-only-a.yaml
│ │ ├── petstore-schema-read-only-b.yaml
│ │ ├── petstore-schema-write-only-a.yaml
│ │ ├── petstore-schema-write-only-b.yaml
│ │ ├── petstore-schema-xml-a.yaml
│ │ ├── petstore-schema-xml-b.yaml
│ │ ├── request/
│ │ │ ├── petstore-schema-enum-in-request-a.yaml
│ │ │ ├── petstore-schema-enum-in-request-b.yaml
│ │ │ ├── petstore-schema-exclusive-maximum-in-request-a.yaml
│ │ │ ├── petstore-schema-exclusive-maximum-in-request-b.yaml
│ │ │ ├── petstore-schema-exclusive-minimum-in-request-a.yaml
│ │ │ ├── petstore-schema-exclusive-minimum-in-request-b.yaml
│ │ │ ├── petstore-schema-max-items-in-request-a.yaml
│ │ │ ├── petstore-schema-max-items-in-request-b.yaml
│ │ │ ├── petstore-schema-max-length-in-request-a.yaml
│ │ │ ├── petstore-schema-max-length-in-request-b.yaml
│ │ │ ├── petstore-schema-max-properties-in-request-a.yaml
│ │ │ ├── petstore-schema-max-properties-in-request-b.yaml
│ │ │ ├── petstore-schema-maximum-in-request-a.yaml
│ │ │ ├── petstore-schema-maximum-in-request-b.yaml
│ │ │ ├── petstore-schema-min-items-in-request-a.yaml
│ │ │ ├── petstore-schema-min-items-in-request-b.yaml
│ │ │ ├── petstore-schema-min-length-in-request-a.yaml
│ │ │ ├── petstore-schema-min-length-in-request-b.yaml
│ │ │ ├── petstore-schema-min-properties-in-request-a.yaml
│ │ │ ├── petstore-schema-min-properties-in-request-b.yaml
│ │ │ ├── petstore-schema-minimum-in-request-a.yaml
│ │ │ ├── petstore-schema-minimum-in-request-b.yaml
│ │ │ ├── petstore-schema-multiple-of-in-request-a.yaml
│ │ │ ├── petstore-schema-multiple-of-in-request-b.yaml
│ │ │ ├── petstore-schema-nullable-in-request-a.yaml
│ │ │ ├── petstore-schema-nullable-in-request-b.yaml
│ │ │ ├── petstore-schema-required-in-request-a.yaml
│ │ │ ├── petstore-schema-required-in-request-b.yaml
│ │ │ ├── petstore-schema-type-format-in-request-a.yaml
│ │ │ ├── petstore-schema-type-format-in-request-b.yaml
│ │ │ ├── petstore-schema-unique-items-in-request-a.yaml
│ │ │ └── petstore-schema-unique-items-in-request-b.yaml
│ │ └── response/
│ │ ├── petstore-schema-enum-in-response-a.yaml
│ │ ├── petstore-schema-enum-in-response-b.yaml
│ │ ├── petstore-schema-exclusive-maximum-in-response-a.yaml
│ │ ├── petstore-schema-exclusive-maximum-in-response-b.yaml
│ │ ├── petstore-schema-exclusive-minimum-in-response-a.yaml
│ │ ├── petstore-schema-exclusive-minimum-in-response-b.yaml
│ │ ├── petstore-schema-max-items-in-response-a.yaml
│ │ ├── petstore-schema-max-items-in-response-b.yaml
│ │ ├── petstore-schema-max-length-in-response-a.yaml
│ │ ├── petstore-schema-max-length-in-response-b.yaml
│ │ ├── petstore-schema-max-properties-in-response-a.yaml
│ │ ├── petstore-schema-max-properties-in-response-b.yaml
│ │ ├── petstore-schema-maximum-in-response-a.yaml
│ │ ├── petstore-schema-maximum-in-response-b.yaml
│ │ ├── petstore-schema-min-items-in-response-a.yaml
│ │ ├── petstore-schema-min-items-in-response-b.yaml
│ │ ├── petstore-schema-min-length-in-response-a.yaml
│ │ ├── petstore-schema-min-length-in-response-b.yaml
│ │ ├── petstore-schema-min-properties-in-response-a.yaml
│ │ ├── petstore-schema-min-properties-in-response-b.yaml
│ │ ├── petstore-schema-minimum-in-response-a.yaml
│ │ ├── petstore-schema-minimum-in-response-b.yaml
│ │ ├── petstore-schema-multiple-of-in-response-a.yaml
│ │ ├── petstore-schema-multiple-of-in-response-b.yaml
│ │ ├── petstore-schema-nullable-in-response-a.yaml
│ │ ├── petstore-schema-nullable-in-response-b.yaml
│ │ ├── petstore-schema-required-in-response-a.yaml
│ │ ├── petstore-schema-required-in-response-b.yaml
│ │ ├── petstore-schema-type-format-in-response-a.yaml
│ │ ├── petstore-schema-type-format-in-response-b.yaml
│ │ ├── petstore-schema-unique-items-in-response-a.yaml
│ │ └── petstore-schema-unique-items-in-response-b.yaml
│ ├── oas-validator-compatibility-spring/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── oasv/
│ │ │ │ └── compatibility/
│ │ │ │ └── config/
│ │ │ │ ├── EncodingDiffValidatorsConfiguration.java
│ │ │ │ ├── HeaderDiffValidatorsConfiguration.java
│ │ │ │ ├── MediaTypeDiffValidatorsConfiguration.java
│ │ │ │ ├── OperationDiffValidatorsConfiguration.java
│ │ │ │ ├── ParameterDiffValidatorsConfiguration.java
│ │ │ │ ├── PathItemDiffValidatorsConfiguration.java
│ │ │ │ ├── RequestBodyDiffValidatorsConfiguration.java
│ │ │ │ ├── ResponseDiffValidatorsConfiguration.java
│ │ │ │ └── SchemaDiffValidatorsConfiguration.java
│ │ │ └── resources/
│ │ │ └── META-INF/
│ │ │ └── spring.factories
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── compatibility/
│ │ │ └── config/
│ │ │ └── ValidatorConfigurationsTest.java
│ │ └── resources/
│ │ └── logback-test.xml
│ ├── oas-validator-core/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ ├── FactoryOptions.java
│ │ │ ├── common/
│ │ │ │ ├── OasObjectProperty.java
│ │ │ │ ├── OasObjectPropertyLocation.java
│ │ │ │ └── OasObjectType.java
│ │ │ ├── diffvalidation/
│ │ │ │ ├── api/
│ │ │ │ │ ├── CallbackDiffValidator.java
│ │ │ │ │ ├── ComponentsDiffValidator.java
│ │ │ │ │ ├── DefaultOasSpecDiffValidator.java
│ │ │ │ │ ├── DiffViolationMessages.java
│ │ │ │ │ ├── EncodingDiffValidator.java
│ │ │ │ │ ├── HeaderDiffValidator.java
│ │ │ │ │ ├── InfoDiffValidator.java
│ │ │ │ │ ├── LinkDiffValidator.java
│ │ │ │ │ ├── ListPropertyDiffValidator.java
│ │ │ │ │ ├── MapPropertyDiffValidator.java
│ │ │ │ │ ├── MediaTypeDiffValidator.java
│ │ │ │ │ ├── OasDiffValidationContext.java
│ │ │ │ │ ├── OasDiffValidationException.java
│ │ │ │ │ ├── OasDiffViolation.java
│ │ │ │ │ ├── OasObjectDiffValidator.java
│ │ │ │ │ ├── OasObjectDiffValidatorTemplate.java
│ │ │ │ │ ├── OasSpecDiffValidator.java
│ │ │ │ │ ├── ObjectPropertyDiffValidator.java
│ │ │ │ │ ├── OpenApiDiffValidator.java
│ │ │ │ │ ├── OperationDiffValidator.java
│ │ │ │ │ ├── ParameterDiffValidator.java
│ │ │ │ │ ├── PathItemDiffValidator.java
│ │ │ │ │ ├── PathsDiffValidator.java
│ │ │ │ │ ├── RequestBodyDiffValidator.java
│ │ │ │ │ ├── ResponseDiffValidator.java
│ │ │ │ │ ├── ResponsesDiffValidator.java
│ │ │ │ │ ├── SchemaAddValidator.java
│ │ │ │ │ ├── SchemaCompareValidator.java
│ │ │ │ │ ├── SchemaDelValidator.java
│ │ │ │ │ ├── SchemaDiffValidator.java
│ │ │ │ │ ├── SecuritySchemeDiffValidator.java
│ │ │ │ │ ├── ServerDiffValidator.java
│ │ │ │ │ └── TagDiffValidator.java
│ │ │ │ ├── factory/
│ │ │ │ │ ├── CallbackDiffValidatorFactory.java
│ │ │ │ │ ├── ComponentsDiffValidatorFactory.java
│ │ │ │ │ ├── EncodingDiffValidatorFactory.java
│ │ │ │ │ ├── HeaderDiffValidatorFactory.java
│ │ │ │ │ ├── InfoDiffValidatorFactory.java
│ │ │ │ │ ├── LinkDiffValidatorFactory.java
│ │ │ │ │ ├── MediaTypeDiffValidatorFactory.java
│ │ │ │ │ ├── OasObjectDiffValidatorFactory.java
│ │ │ │ │ ├── OasSpecDiffValidatorFactory.java
│ │ │ │ │ ├── OpenApiDiffValidatorFactory.java
│ │ │ │ │ ├── OperationDiffValidatorFactory.java
│ │ │ │ │ ├── ParameterDiffValidatorFactory.java
│ │ │ │ │ ├── PathItemDiffValidatorFactory.java
│ │ │ │ │ ├── PathsDiffValidatorFactory.java
│ │ │ │ │ ├── RequestBodyDiffValidatorFactory.java
│ │ │ │ │ ├── ResponseDiffValidatorFactory.java
│ │ │ │ │ ├── ResponsesDiffValidatorFactory.java
│ │ │ │ │ ├── SchemaDiffValidatorFactory.java
│ │ │ │ │ ├── SecuritySchemeDiffValidatorFactory.java
│ │ │ │ │ ├── ServerDiffValidatorFactory.java
│ │ │ │ │ └── TagDiffValidatorFactory.java
│ │ │ │ ├── skeleton/
│ │ │ │ │ ├── components/
│ │ │ │ │ │ ├── ComponentsCallbacksDiffValidator.java
│ │ │ │ │ │ ├── ComponentsHeadersDiffValidator.java
│ │ │ │ │ │ ├── ComponentsLinksDiffValidator.java
│ │ │ │ │ │ ├── ComponentsParametersDiffValidator.java
│ │ │ │ │ │ ├── ComponentsRequestBodiesDiffValidator.java
│ │ │ │ │ │ └── ComponentsResponsesDiffValidator.java
│ │ │ │ │ ├── encoding/
│ │ │ │ │ │ └── EncodingHeadersDiffValidator.java
│ │ │ │ │ ├── header/
│ │ │ │ │ │ └── HeaderSchemaDiffValidator.java
│ │ │ │ │ ├── mediatype/
│ │ │ │ │ │ ├── MediaTypeEncodingDiffValidator.java
│ │ │ │ │ │ └── MediaTypeSchemaDiffValidator.java
│ │ │ │ │ ├── openapi/
│ │ │ │ │ │ ├── OpenApiComponentsDiffValidator.java
│ │ │ │ │ │ ├── OpenApiInfoDiffValidator.java
│ │ │ │ │ │ ├── OpenApiPathsDiffValidator.java
│ │ │ │ │ │ ├── OpenApiServersDiffValidator.java
│ │ │ │ │ │ └── OpenApiTagsDiffValidator.java
│ │ │ │ │ ├── operation/
│ │ │ │ │ │ ├── OperationParametersDiffValidator.java
│ │ │ │ │ │ ├── OperationRequestBodyDiffValidator.java
│ │ │ │ │ │ └── OperationResponsesDiffValidator.java
│ │ │ │ │ ├── parameter/
│ │ │ │ │ │ ├── ParameterContentDiffValidator.java
│ │ │ │ │ │ └── ParameterSchemaDiffValidator.java
│ │ │ │ │ ├── pathitem/
│ │ │ │ │ │ ├── PathItemOperationsDiffValidator.java
│ │ │ │ │ │ └── PathItemParametersDiffValidator.java
│ │ │ │ │ ├── paths/
│ │ │ │ │ │ └── PathsPathItemsDiffValidator.java
│ │ │ │ │ ├── requestbody/
│ │ │ │ │ │ └── RequestBodyContentDiffValidator.java
│ │ │ │ │ ├── response/
│ │ │ │ │ │ ├── ResponseContentDiffValidator.java
│ │ │ │ │ │ └── ResponseHeadersDiffValidator.java
│ │ │ │ │ ├── responses/
│ │ │ │ │ │ └── ResponsesResponsesDiffValidator.java
│ │ │ │ │ └── schema/
│ │ │ │ │ └── SchemaDiffValidatorEngine.java
│ │ │ │ └── util/
│ │ │ │ ├── ChangeRangeCheckUtils.java
│ │ │ │ ├── OasDiffValidationContextUtils.java
│ │ │ │ ├── OasObjectDiffValidatorUtils.java
│ │ │ │ └── ParameterUtils.java
│ │ │ ├── util/
│ │ │ │ ├── StringCaseUtils.java
│ │ │ │ └── SyntaxChecker.java
│ │ │ └── validation/
│ │ │ ├── api/
│ │ │ │ ├── CallbackValidator.java
│ │ │ │ ├── ComponentsValidator.java
│ │ │ │ ├── DefaultOasSpecValidator.java
│ │ │ │ ├── EncodingValidator.java
│ │ │ │ ├── ExampleValidator.java
│ │ │ │ ├── HeaderValidator.java
│ │ │ │ ├── InfoValidator.java
│ │ │ │ ├── LinkValidator.java
│ │ │ │ ├── ListPropertyRequiredValidator.java
│ │ │ │ ├── ListPropertyValidator.java
│ │ │ │ ├── MapPropertyKeysValidator.java
│ │ │ │ ├── MapPropertyValuesValidator.java
│ │ │ │ ├── MediaTypeValidator.java
│ │ │ │ ├── OasObjectValidator.java
│ │ │ │ ├── OasSpecValidator.java
│ │ │ │ ├── OasValidationContext.java
│ │ │ │ ├── OasViolation.java
│ │ │ │ ├── ObjectPropertyRequiredValidator.java
│ │ │ │ ├── ObjectPropertyValidator.java
│ │ │ │ ├── OpenApiValidator.java
│ │ │ │ ├── OperationValidator.java
│ │ │ │ ├── ParameterValidator.java
│ │ │ │ ├── PathItemValidator.java
│ │ │ │ ├── PathsValidator.java
│ │ │ │ ├── RequestBodyValidator.java
│ │ │ │ ├── ResponseValidator.java
│ │ │ │ ├── ResponsesValidator.java
│ │ │ │ ├── SchemaValidator.java
│ │ │ │ ├── SecuritySchemeValidator.java
│ │ │ │ ├── ServerValidator.java
│ │ │ │ ├── TagValidator.java
│ │ │ │ └── ViolationMessages.java
│ │ │ ├── factory/
│ │ │ │ ├── CallbackValidatorFactory.java
│ │ │ │ ├── ComponentsValidatorFactory.java
│ │ │ │ ├── EncodingValidatorFactory.java
│ │ │ │ ├── ExampleValidatorFactory.java
│ │ │ │ ├── HeaderValidatorFactory.java
│ │ │ │ ├── InfoValidatorFactory.java
│ │ │ │ ├── LinkValidatorFactory.java
│ │ │ │ ├── MediaTypeValidatorFactory.java
│ │ │ │ ├── OasObjectValidatorFactory.java
│ │ │ │ ├── OasSpecValidatorFactory.java
│ │ │ │ ├── OpenApiValidatorFactory.java
│ │ │ │ ├── OperationValidatorFactory.java
│ │ │ │ ├── ParameterValidatorFactory.java
│ │ │ │ ├── PathItemValidatorFactory.java
│ │ │ │ ├── PathsValidatorFactory.java
│ │ │ │ ├── RequestBodyValidatorFactory.java
│ │ │ │ ├── ResponseValidatorFactory.java
│ │ │ │ ├── ResponsesValidatorFactory.java
│ │ │ │ ├── SchemaValidatorFactory.java
│ │ │ │ ├── SecuritySchemeValidatorFactory.java
│ │ │ │ ├── ServerValidatorFactory.java
│ │ │ │ └── TagValidatorFactory.java
│ │ │ ├── skeleton/
│ │ │ │ ├── components/
│ │ │ │ │ ├── ComponentsCallbacksKeysValidator.java
│ │ │ │ │ ├── ComponentsCallbacksValuesValidator.java
│ │ │ │ │ ├── ComponentsExamplesKeysValidator.java
│ │ │ │ │ ├── ComponentsExamplesValuesValidator.java
│ │ │ │ │ ├── ComponentsHeadersKeysValidator.java
│ │ │ │ │ ├── ComponentsHeadersValuesValidator.java
│ │ │ │ │ ├── ComponentsLinksKeysValidator.java
│ │ │ │ │ ├── ComponentsLinksValuesValidator.java
│ │ │ │ │ ├── ComponentsParametersKeysValidator.java
│ │ │ │ │ ├── ComponentsParametersValuesValidator.java
│ │ │ │ │ ├── ComponentsRequestBodiesKeysValidator.java
│ │ │ │ │ ├── ComponentsRequestBodiesValuesValidator.java
│ │ │ │ │ ├── ComponentsResponsesKeysValidator.java
│ │ │ │ │ ├── ComponentsResponsesValuesValidator.java
│ │ │ │ │ ├── ComponentsSchemasKeysValidator.java
│ │ │ │ │ ├── ComponentsSchemasValuesValidator.java
│ │ │ │ │ ├── ComponentsSecuritySchemesKeysValidator.java
│ │ │ │ │ └── ComponentsSecuritySchemesValuesValidator.java
│ │ │ │ ├── encoding/
│ │ │ │ │ ├── EncodingHeadersKeysValidator.java
│ │ │ │ │ └── EncodingHeadersValuesValidator.java
│ │ │ │ ├── header/
│ │ │ │ │ └── HeaderSchemaValidator.java
│ │ │ │ ├── mediatype/
│ │ │ │ │ ├── MediaTypeEncodingValidator.java
│ │ │ │ │ └── MediaTypeSchemaValidator.java
│ │ │ │ ├── openapi/
│ │ │ │ │ ├── OpenApiComponentsValidator.java
│ │ │ │ │ ├── OpenApiInfoValidator.java
│ │ │ │ │ ├── OpenApiPathsValidator.java
│ │ │ │ │ ├── OpenApiServersValidator.java
│ │ │ │ │ └── OpenApiTagsValidator.java
│ │ │ │ ├── operation/
│ │ │ │ │ ├── OperationParametersValidator.java
│ │ │ │ │ ├── OperationRequestBodyValidator.java
│ │ │ │ │ └── OperationResponsesValidator.java
│ │ │ │ ├── parameter/
│ │ │ │ │ ├── ParameterContentValidator.java
│ │ │ │ │ └── ParameterSchemaValidator.java
│ │ │ │ ├── pathitem/
│ │ │ │ │ ├── PathItemOperationsValidator.java
│ │ │ │ │ └── PathItemParametersValidator.java
│ │ │ │ ├── paths/
│ │ │ │ │ └── PathsPathItemsValidator.java
│ │ │ │ ├── requestbody/
│ │ │ │ │ └── RequestBodyContentValidator.java
│ │ │ │ ├── response/
│ │ │ │ │ ├── ResponseContentValidator.java
│ │ │ │ │ ├── ResponseHeadersKeysValidator.java
│ │ │ │ │ └── ResponseHeadersValuesValidator.java
│ │ │ │ ├── responses/
│ │ │ │ │ └── ResponsesResponsesValidator.java
│ │ │ │ └── schema/
│ │ │ │ ├── SchemaPropertiesKeysValidator.java
│ │ │ │ └── SchemaRecursiveValidatorTemplate.java
│ │ │ └── util/
│ │ │ └── OasObjectValidatorUtils.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ ├── common/
│ │ │ │ └── OasObjectPropertyLocationTest.java
│ │ │ └── util/
│ │ │ ├── StringCaseUtilsTest.java
│ │ │ └── SyntaxCheckerTest.java
│ │ └── resources/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ └── util/
│ │ ├── syntax-bad.yaml
│ │ └── syntax-good.yaml
│ ├── oas-validator-core-spring/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── diffvalidation/
│ │ │ └── config/
│ │ │ └── OasDiffValidatorsSkeletonConfiguration.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── spring.factories
│ ├── oas-validator-style/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── style/
│ │ │ ├── StyleCheckParser.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultComponentsValidatorFactory.java
│ │ │ │ ├── DefaultEncodingValidatorFactory.java
│ │ │ │ ├── DefaultHeaderValidatorFactory.java
│ │ │ │ ├── DefaultInfoValidatorFactory.java
│ │ │ │ ├── DefaultMediaTypeValidatorFactory.java
│ │ │ │ ├── DefaultOasSpecValidatorFactory.java
│ │ │ │ ├── DefaultOpenApiValidatorFactory.java
│ │ │ │ ├── DefaultOperationValidatorFactory.java
│ │ │ │ ├── DefaultParameterValidatorFactory.java
│ │ │ │ ├── DefaultPathItemValidatorFactory.java
│ │ │ │ ├── DefaultPathsValidatorFactory.java
│ │ │ │ ├── DefaultRequestBodyValidatorFactory.java
│ │ │ │ ├── DefaultResponseValidatorFactory.java
│ │ │ │ ├── DefaultResponsesValidatorFactory.java
│ │ │ │ ├── DefaultSchemaValidatorFactory.java
│ │ │ │ ├── DefaultSecuritySchemeValidatorFactory.java
│ │ │ │ ├── DefaultServerValidatorFactory.java
│ │ │ │ ├── DefaultTagValidatorFactory.java
│ │ │ │ └── ValidatorFactoryComponents.java
│ │ │ └── validator/
│ │ │ ├── components/
│ │ │ │ ├── ComponentsCallbacksKeysCaseValidator.java
│ │ │ │ ├── ComponentsExamplesKeysCaseValidator.java
│ │ │ │ ├── ComponentsHeadersKeysCaseValidator.java
│ │ │ │ ├── ComponentsLinksKeysCaseValidator.java
│ │ │ │ ├── ComponentsParametersKeysCaseValidator.java
│ │ │ │ ├── ComponentsRequestBodiesKeysCaseValidator.java
│ │ │ │ ├── ComponentsResponsesKeysCaseValidator.java
│ │ │ │ ├── ComponentsSchemasKeysCaseValidator.java
│ │ │ │ └── ComponentsSecuritySchemesKeysCaseValidator.java
│ │ │ ├── encoding/
│ │ │ │ └── EncodingHeadersKeysCaseValidator.java
│ │ │ ├── header/
│ │ │ │ └── HeaderDescriptionRequiredValidator.java
│ │ │ ├── info/
│ │ │ │ └── InfoDescriptionRequiredValidator.java
│ │ │ ├── openapi/
│ │ │ │ ├── OpenApiSecuritySizeEqValidator.java
│ │ │ │ ├── OpenApiTagsSizeGteValidator.java
│ │ │ │ └── OpenApiVersionGteValidator.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationIdCaseValidator.java
│ │ │ │ ├── OperationServersSizeEqValidator.java
│ │ │ │ ├── OperationSummaryRequiredValidator.java
│ │ │ │ ├── OperationTagsReferenceValidator.java
│ │ │ │ └── OperationTagsSizeEqValidator.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterDescriptionRequiredValidator.java
│ │ │ │ ├── ParameterNameCookieCaseValidator.java
│ │ │ │ ├── ParameterNameHeaderCaseValidator.java
│ │ │ │ ├── ParameterNamePathCaseValidator.java
│ │ │ │ └── ParameterNameQueryCaseValidator.java
│ │ │ ├── paths/
│ │ │ │ └── PathsKeyCaseValidator.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyDescriptionRequiredValidator.java
│ │ │ ├── response/
│ │ │ │ └── ResponseHeadersKeysCaseValidator.java
│ │ │ ├── schema/
│ │ │ │ ├── SchemaPropertiesKeysCaseValidator.java
│ │ │ │ └── SchemaTitleRequiredValidator.java
│ │ │ └── tag/
│ │ │ ├── TagDescriptionRequiredValidator.java
│ │ │ ├── TagMustBeReferencedValidator.java
│ │ │ └── TagNameCaseValidator.java
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── style/
│ │ │ ├── StyleCheckParserTest.java
│ │ │ ├── factory/
│ │ │ │ ├── DefaultComponentsValidatorFactoryTest.java
│ │ │ │ ├── DefaultEncodingValidatorFactoryTest.java
│ │ │ │ ├── DefaultHeaderValidatorFactoryTest.java
│ │ │ │ ├── DefaultInfoValidatorFactoryTest.java
│ │ │ │ ├── DefaultMediaTypeValidatorFactoryTest.java
│ │ │ │ ├── DefaultOasSpecValidatorFactoryTest.java
│ │ │ │ ├── DefaultOpenApiValidatorFactoryTest.java
│ │ │ │ ├── DefaultOperationValidatorFactoryTest.java
│ │ │ │ ├── DefaultParameterValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathItemValidatorFactoryTest.java
│ │ │ │ ├── DefaultPathsValidatorFactoryTest.java
│ │ │ │ ├── DefaultRequestBodyValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponseValidatorFactoryTest.java
│ │ │ │ ├── DefaultResponsesValidatorFactoryTest.java
│ │ │ │ ├── DefaultSchemaValidatorFactoryTest.java
│ │ │ │ ├── DefaultSecuritySchemeValidatorFactoryTest.java
│ │ │ │ ├── DefaultServerValidatorFactoryTest.java
│ │ │ │ └── DefaultTagValidatorFactoryTest.java
│ │ │ └── validator/
│ │ │ ├── OasStyleCheckTestBase.java
│ │ │ ├── components/
│ │ │ │ ├── ComponentsCallbacksKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsExamplesKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsHeadersKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsLinksKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsParametersKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsRequestBodiesKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsResponsesKeysCaseValidatorTest.java
│ │ │ │ ├── ComponentsSchemasKeysCaseValidatorTest.java
│ │ │ │ └── ComponentsSecuritySchemesKeysCaseValidatorTest.java
│ │ │ ├── encoding/
│ │ │ │ └── EncodingHeadersKeysCaseValidatorTest.java
│ │ │ ├── header/
│ │ │ │ └── HeaderDescriptionRequiredValidatorTest.java
│ │ │ ├── info/
│ │ │ │ └── InfoDescriptionRequiredValidatorTest.java
│ │ │ ├── openapi/
│ │ │ │ ├── OpenApiSecuritySizeEqValidatorTest.java
│ │ │ │ ├── OpenApiTagsSizeGteValidatorTest.java
│ │ │ │ └── OpenApiVersionGteValidatorTest.java
│ │ │ ├── operation/
│ │ │ │ ├── OperationIdCaseValidatorTest.java
│ │ │ │ ├── OperationServersSizeEqValidatorTest.java
│ │ │ │ ├── OperationSummaryRequiredValidatorTest.java
│ │ │ │ ├── OperationTagsReferenceValidatorTest.java
│ │ │ │ └── OperationTagsSizeEqValidatorTest.java
│ │ │ ├── parameter/
│ │ │ │ ├── ParameterDescriptionRequiredValidatorTest.java
│ │ │ │ ├── ParameterNameCookieCaseValidatorTest.java
│ │ │ │ ├── ParameterNameHeaderCaseValidatorTest.java
│ │ │ │ ├── ParameterNamePathCaseValidatorTest.java
│ │ │ │ └── ParameterNameQueryCaseValidatorTest.java
│ │ │ ├── paths/
│ │ │ │ └── PathsKeyCaseValidatorTest.java
│ │ │ ├── requestbody/
│ │ │ │ └── RequestBodyDescriptionRequiredValidatorTest.java
│ │ │ ├── response/
│ │ │ │ └── ResponseHeadersKeysCaseValidatorTest.java
│ │ │ ├── schema/
│ │ │ │ ├── SchemaPropertiesKeysCaseValidatorTest.java
│ │ │ │ └── SchemaTitleRequiredValidatorTest.java
│ │ │ └── tag/
│ │ │ ├── TagDescriptionRequiredValidatorTest.java
│ │ │ ├── TagMustBeReferencedValidatorTest.java
│ │ │ └── TagNameCaseValidatorTest.java
│ │ └── resources/
│ │ ├── logback-test.xml
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ └── style/
│ │ ├── parser-test.yaml
│ │ └── validator/
│ │ ├── components/
│ │ │ ├── petstore-callbacks-upper-camel-case.yaml
│ │ │ ├── petstore-examples-upper-camel-case.yaml
│ │ │ ├── petstore-headers-upper-camel-case.yaml
│ │ │ ├── petstore-links-upper-camel-case.yaml
│ │ │ ├── petstore-parameters-upper-camel-case.yaml
│ │ │ ├── petstore-request-bodies-upper-camel-case.yaml
│ │ │ ├── petstore-responses-upper-camel-case.yaml
│ │ │ ├── petstore-schemas-upper-camel-case.yaml
│ │ │ └── petstore-security-schemes-upper-camel-case.yaml
│ │ ├── encoding/
│ │ │ ├── petstore-encoding-headers-key-case-1.yaml
│ │ │ ├── petstore-encoding-headers-key-case-2.yaml
│ │ │ ├── petstore-encoding-headers-key-case-3.yaml
│ │ │ └── petstore-encoding-headers-key-case-4.yaml
│ │ ├── header/
│ │ │ └── petstore-header-no-desc.yaml
│ │ ├── info/
│ │ │ └── petstore-info-no-desc.yaml
│ │ ├── openapi/
│ │ │ ├── petstore-openapi-wrong.yaml
│ │ │ ├── petstore-security-empty-good.yaml
│ │ │ ├── petstore-security-empty.yaml
│ │ │ └── petstore-tag-not-provided.yaml
│ │ ├── operation/
│ │ │ ├── petstore-operation-id-lower-camel-case.yaml
│ │ │ ├── petstore-operation-servers-empty.yaml
│ │ │ ├── petstore-operation-summary-required.yaml
│ │ │ ├── petstore-operation-tags-only-one.yaml
│ │ │ └── petstore-operation-tags-reference.yaml
│ │ ├── parameter/
│ │ │ ├── petstore-parameter-cookie-lower-camel-case.yaml
│ │ │ ├── petstore-parameter-desc-none.yaml
│ │ │ ├── petstore-parameter-header-upper-hyphen-case.yaml
│ │ │ ├── petstore-parameter-path-lower-camel-case.yaml
│ │ │ └── petstore-parameter-query-lower-camel-case.yaml
│ │ ├── paths/
│ │ │ └── petstore-paths-lower-camel-case.yaml
│ │ ├── requestbody/
│ │ │ └── petstore-request-body-desc-required.yaml
│ │ ├── response/
│ │ │ └── petstore-response-headers-key-case.yaml
│ │ ├── schema/
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-all-of.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-any-of.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-array.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-comp.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-nested.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-one-of.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-param-1.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-param-2.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-req-1.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-req-2.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-resp-1.yaml
│ │ │ ├── petstore-schema-p-keys-lower-camel-case-resp-2.yaml
│ │ │ ├── petstore-schema-title-comp.yaml
│ │ │ ├── petstore-schema-title-nested.yaml
│ │ │ ├── petstore-schema-title-param.yaml
│ │ │ ├── petstore-schema-title-req.yaml
│ │ │ └── petstore-schema-title-resp.yaml
│ │ └── tag/
│ │ ├── petstore-tag-name-not-upper-camel-case.yaml
│ │ ├── petstore-tag-no-desc.yaml
│ │ └── petstore-tag-redundant.yaml
│ ├── oas-validator-test/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── oasv/
│ │ ├── OasSpecLoader.java
│ │ ├── diffvalidation/
│ │ │ └── test/
│ │ │ └── OasDiffValidatorTestBase.java
│ │ └── validation/
│ │ └── test/
│ │ └── OasValidatorTestBase.java
│ ├── oas-validator-web/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── apache/
│ │ │ └── servicecomb/
│ │ │ └── toolkit/
│ │ │ └── oasv/
│ │ │ └── web/
│ │ │ ├── Application.java
│ │ │ ├── api/
│ │ │ │ └── controller/
│ │ │ │ ├── CompatibilityController.java
│ │ │ │ ├── ImportError.java
│ │ │ │ ├── ImportError2.java
│ │ │ │ └── StyleController.java
│ │ │ ├── config/
│ │ │ │ └── StyleCheckValidatorsConfiguration.java
│ │ │ └── page/
│ │ │ └── controller/
│ │ │ ├── EditorController.java
│ │ │ ├── IndexController.java
│ │ │ ├── ValidatorController.java
│ │ │ └── ViewerController.java
│ │ └── resources/
│ │ ├── application.properties
│ │ ├── samples/
│ │ │ └── petstore-openapi-wrong.yaml
│ │ ├── style-check-rules.properties
│ │ └── templates/
│ │ ├── index.html
│ │ └── validator/
│ │ ├── compatibility.html
│ │ └── style.html
│ └── pom.xml
├── pom.xml
├── samples/
│ ├── README-ZH.md
│ ├── README.md
│ ├── generate-from-code-sample/
│ │ ├── GoodbyeService/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── goodbye/
│ │ │ │ ├── GoodbyeApplication.java
│ │ │ │ └── GoodbyeController.java
│ │ │ └── resources/
│ │ │ └── application.yaml
│ │ ├── HelloService/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── apache/
│ │ │ │ └── servicecomb/
│ │ │ │ └── toolkit/
│ │ │ │ └── hello/
│ │ │ │ ├── HelloApplication.java
│ │ │ │ └── HelloController.java
│ │ │ └── resources/
│ │ │ └── application.yaml
│ │ ├── README-ZH.md
│ │ ├── README.md
│ │ └── pom.xml
│ ├── generate-from-contract-sample/
│ │ ├── README-ZH.md
│ │ ├── README.md
│ │ ├── contract/
│ │ │ ├── GoodByeService/
│ │ │ │ └── GoodbyeController.yaml
│ │ │ └── HelloService/
│ │ │ └── HelloController.yaml
│ │ └── pom.xml
│ ├── pom.xml
│ └── verify-with-code-sample/
│ ├── GreetingService/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── apache/
│ │ └── servicecomb/
│ │ └── toolkit/
│ │ └── goodbye/
│ │ ├── GreetingController.java
│ │ └── GreetingService.java
│ ├── README-ZH.md
│ ├── README.md
│ ├── contract/
│ │ └── GreetingService/
│ │ └── GreetingController.yaml
│ └── pom.xml
├── scripts/
│ ├── cliTest.sh
│ ├── deploy.sh
│ └── test.sh
├── toolkit-distribution/
│ ├── pom.xml
│ └── src/
│ ├── assembly/
│ │ ├── bin.xml
│ │ └── src.xml
│ └── release/
│ ├── LICENSE
│ ├── NOTICE
│ └── licenses/
│ ├── LICENSE-asm
│ ├── LICENSE-automaton
│ ├── LICENSE-cal10n
│ ├── LICENSE-cc0
│ ├── LICENSE-cddl
│ ├── LICENSE-commonmark
│ ├── LICENSE-epl-v10
│ ├── LICENSE-hamcrest
│ ├── LICENSE-jmustache
│ ├── LICENSE-jopt
│ ├── LICENSE-jsch
│ ├── LICENSE-jzlib
│ ├── LICENSE-lombok
│ ├── LICENSE-mit
│ ├── LICENSE-mockito
│ ├── LICENSE-mozilla-v20
│ ├── LICENSE-slf4j
│ ├── LICENSE-threetenbp
│ ├── LICENSE-webjars
│ ├── LICENSE-woodstox-stax2-api
│ ├── NOTICE-airline
│ ├── NOTICE-apache-commons-cli
│ ├── NOTICE-apache-commons-codec
│ └── NOTICE-servicecomb-java-chassis
└── toolkit-maven-plugin/
├── pom.xml
└── src/
├── main/
│ └── java/
│ └── org/
│ └── apache/
│ └── servicecomb/
│ └── toolkit/
│ └── plugin/
│ ├── GenerateMojo.java
│ ├── GenerateUtil.java
│ ├── MavenPluginUtil.java
│ ├── ServiceConfig.java
│ └── VerifyMojo.java
└── test/
├── java/
│ └── org/
│ └── apache/
│ └── servicecomb/
│ └── toolkit/
│ └── plugin/
│ ├── GenerateMojoTest.java
│ ├── GenerateUtilTest.java
│ ├── InvokeStaticMethodTest.java
│ ├── MavenPluginUtilTest.java
│ ├── TestResourcesEx.java
│ └── VerifyMojoTest.java
├── projects/
│ ├── contract-destination/
│ │ └── HelloEndPoint.yaml
│ ├── contract-source/
│ │ └── HelloEndPoint.yaml
│ ├── demo-multi-module/
│ │ ├── first-module/
│ │ │ └── pom.xml
│ │ └── pom.xml
│ ├── demo-with-contract/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── demo/
│ │ ├── Application.java
│ │ └── HelloEndPoint.java
│ └── demo-without-contract/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── demo/
│ └── Application.java
└── resources/
└── log4j2-test.xml
Showing preview only (288K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2566 symbols across 639 files)
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibility.java
class CheckCompatibility (line 22) | @Command(name = "checkcompatibility",
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibilityAbbr.java
class CheckCompatibilityAbbr (line 22) | @Command(name = "cc",
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibilityBase.java
class CheckCompatibilityBase (line 43) | public class CheckCompatibilityBase implements Runnable {
method run (line 53) | @Override
method loadOpenApi (line 88) | private OpenAPI loadOpenApi(String filePath) throws IOException {
method createOasSpecDiffValidator (line 106) | private OasSpecDiffValidator createOasSpecDiffValidator() {
method loadFileContent (line 118) | private String loadFileContent(String filePath) throws IOException {
method createContext (line 124) | private OasDiffValidationContext createContext(OpenAPI leftOpenAPI, Op...
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyle.java
class CheckStyle (line 22) | @Command(name = "checkstyle",
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleAbbr.java
class CheckStyleAbbr (line 22) | @Command(name = "cs",
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleBase.java
class CheckStyleBase (line 46) | public class CheckStyleBase implements Runnable {
method run (line 58) | @Override
method createOasSpecValidator (line 100) | private OasSpecValidator createOasSpecValidator(FactoryOptions factory...
method loadFileContent (line 113) | private String loadFileContent(String filePath) throws IOException {
method createContext (line 118) | private OasValidationContext createContext(OpenAPI openAPI) {
method loadFactoryOptions (line 124) | private FactoryOptions loadFactoryOptions() throws IOException {
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/CodeGenerate.java
class CodeGenerate (line 44) | @Command(name = "codegenerate",
method run (line 98) | @Override
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java
class DocGenerate (line 42) | @Command(name = "docgenerate", description = "Generate document by OpenA...
method run (line 60) | @Override
method parseOpenApi (line 110) | public OpenAPI parseOpenApi(Path file) {
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java
class ToolkitMain (line 29) | public class ToolkitMain {
method main (line 33) | @SuppressWarnings("unchecked")
method initialProjectVersion (line 65) | private static void initialProjectVersion() {
FILE: cli/src/main/java/org/apache/servicecomb/toolkit/cli/ValidationFailedException.java
class ValidationFailedException (line 21) | public class ValidationFailedException extends RuntimeException {
method ValidationFailedException (line 22) | public ValidationFailedException(String msg) {
FILE: cli/src/test/java/org/apache/servicecomb/toolkit/cli/CliTest.java
class CliTest (line 33) | public class CliTest {
method testGenerateServiceCombCodeFromSingleContract (line 37) | @Test
method testGenerateCodeFromMultiContract (line 71) | @Test
method testCheckStyle (line 102) | @Test
method testCheckStyleAbbr (line 115) | @Test
method testCheckCompatibility (line 128) | @Test
method testCheckCompatibilityAbbr (line 139) | @Test
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractConsumerDirectoryStrategy.java
class AbstractConsumerDirectoryStrategy (line 25) | public abstract class AbstractConsumerDirectoryStrategy extends Abstract...
method processSupportingFile (line 27) | @Override
method correctServiceId (line 32) | private void correctServiceId() {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractDirectoryStrategy.java
class AbstractDirectoryStrategy (line 27) | public abstract class AbstractDirectoryStrategy implements DirectoryStra...
method addCustomProperties (line 35) | @Override
method mainClassFolder (line 40) | protected String mainClassFolder(String projectPath) {
method resourcesFolder (line 45) | protected String resourcesFolder(String projectPath) {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractJavaCodegenExt.java
class AbstractJavaCodegenExt (line 30) | public abstract class AbstractJavaCodegenExt extends AbstractJavaCodegen {
method AbstractJavaCodegenExt (line 38) | public AbstractJavaCodegenExt() {
method processOpts (line 52) | @Override
method postProcessModelsEnum (line 63) | @Override
method postProcessOperationsWithModels (line 70) | @Override
method postProcessModelProperty (line 76) | @Override
method addDirectoryStrategy (line 92) | public void addDirectoryStrategy(DirectoryStrategy strategy, String......
method getStrategyMap (line 101) | public Map<String, DirectoryStrategy> getStrategyMap() {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractMultiDirectoryStrategy.java
class AbstractMultiDirectoryStrategy (line 25) | public abstract class AbstractMultiDirectoryStrategy extends AbstractDir...
method processSupportingFile (line 27) | @Override
method correctServiceId (line 32) | private void correctServiceId() {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractProviderDirectoryStrategy.java
class AbstractProviderDirectoryStrategy (line 24) | public abstract class AbstractProviderDirectoryStrategy extends Abstract...
method processSupportingFile (line 26) | @Override
method correctServiceId (line 31) | private void correctServiceId() {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ConsumerDirectoryStrategy.java
class ConsumerDirectoryStrategy (line 25) | public class ConsumerDirectoryStrategy extends AbstractConsumerDirectory...
method modelDirectory (line 35) | @Override
method providerDirectory (line 40) | @Override
method consumerDirectory (line 45) | @Override
method processSupportingFile (line 50) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DefaultCodeGenerator.java
class DefaultCodeGenerator (line 26) | public class DefaultCodeGenerator implements CodeGenerator {
method canProcess (line 30) | @Override
method configure (line 35) | @Override
method generate (line 49) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DefaultDirectoryStrategy.java
class DefaultDirectoryStrategy (line 26) | public class DefaultDirectoryStrategy extends AbstractMultiDirectoryStra...
method modelDirectory (line 38) | @Override
method providerDirectory (line 44) | @Override
method consumerDirectory (line 50) | @Override
method processSupportingFile (line 56) | @Override
method processParentProjectOpts (line 66) | private void processParentProjectOpts(List<SupportingFile> supportingF...
method processModel (line 74) | private void processModel(List<SupportingFile> supportingFiles) {
method processConsumer (line 84) | private void processConsumer(List<SupportingFile> supportingFiles) {
method processProvider (line 129) | private void processProvider(List<SupportingFile> supportingFiles) {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DirectoryStrategy.java
type DirectoryStrategy (line 22) | public interface DirectoryStrategy<T> {
method modelDirectory (line 24) | String modelDirectory();
method providerDirectory (line 26) | String providerDirectory();
method consumerDirectory (line 28) | String consumerDirectory();
method processSupportingFile (line 30) | void processSupportingFile(T t);
method addCustomProperties (line 32) | void addCustomProperties(Map<String, Object> propertiesMap);
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GeneratorExternalConfigConstant.java
class GeneratorExternalConfigConstant (line 20) | public class GeneratorExternalConfigConstant {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GetGenericClassTypeLambda.java
class GetGenericClassTypeLambda (line 27) | public class GetGenericClassTypeLambda implements Mustache.Lambda {
method execute (line 28) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GetRelativeBasePathLambda.java
class GetRelativeBasePathLambda (line 27) | public class GetRelativeBasePathLambda implements Mustache.Lambda {
method execute (line 31) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/MicroServiceFramework.java
type MicroServiceFramework (line 20) | public enum MicroServiceFramework {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/MultiContractGenerator.java
class MultiContractGenerator (line 34) | public class MultiContractGenerator extends DefaultGenerator {
method addOpts (line 38) | public Generator addOpts(ClientOptInput opts) {
method generateParentProject (line 43) | public void generateParentProject(List<File> files, List<Map<String, O...
method generate (line 60) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ProjectMetaConstant.java
class ProjectMetaConstant (line 20) | public class ProjectMetaConstant {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ProviderDirectoryStrategy.java
class ProviderDirectoryStrategy (line 24) | public class ProviderDirectoryStrategy extends AbstractProviderDirectory...
method modelDirectory (line 28) | @Override
method providerDirectory (line 33) | @Override
method consumerDirectory (line 38) | @Override
method processSupportingFile (line 43) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegen.java
class ServiceCombCodegen (line 36) | public class ServiceCombCodegen extends AbstractJavaCodegenExt {
method getTag (line 52) | @Override
method getName (line 57) | @Override
method getHelp (line 62) | @Override
method ServiceCombCodegen (line 67) | public ServiceCombCodegen() {
method modelFileFolder (line 94) | @Override
method apiFileFolder (line 100) | @Override
method apiFilename (line 106) | @Override
method apiConsumerFolder (line 117) | private String apiConsumerFolder() {
method postProcessOperationsWithModels (line 122) | @Override
method processOpts (line 132) | @Override
method postProcessModelProperty (line 164) | @Override
method postProcessModelsEnum (line 171) | @Override
method toApiName (line 178) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceType.java
type ServiceType (line 20) | public enum ServiceType {
method getValue (line 37) | public String getValue() {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ShowBasePathLambda.java
class ShowBasePathLambda (line 29) | public class ShowBasePathLambda implements Mustache.Lambda {
method execute (line 33) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudCodegen.java
class SpringCloudCodegen (line 31) | public class SpringCloudCodegen extends AbstractJavaCodegenExt {
method SpringCloudCodegen (line 45) | public SpringCloudCodegen() {
method processOpts (line 60) | @Override
method toApiName (line 88) | @Override
method apiFileFolder (line 102) | @Override
method apiFilename (line 108) | @Override
method apiConsumerFolder (line 119) | private String apiConsumerFolder() {
method modelFileFolder (line 124) | @Override
method postProcessOperationsWithModels (line 130) | @Override
method getTag (line 141) | @Override
method getName (line 146) | @Override
method getHelp (line 151) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudConsumerDirectoryStrategy.java
class SpringCloudConsumerDirectoryStrategy (line 26) | public class SpringCloudConsumerDirectoryStrategy extends AbstractConsum...
method modelDirectory (line 32) | @Override
method providerDirectory (line 37) | @Override
method consumerDirectory (line 42) | @Override
method processSupportingFile (line 47) | @Override
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudMultiDirectoryStrategy.java
class SpringCloudMultiDirectoryStrategy (line 26) | public class SpringCloudMultiDirectoryStrategy extends AbstractMultiDire...
method modelDirectory (line 34) | @Override
method providerDirectory (line 40) | @Override
method consumerDirectory (line 46) | @Override
method processSupportingFile (line 52) | @Override
method processModel (line 67) | private void processModel(List<SupportingFile> supportingFiles) {
method processProvider (line 79) | private void processProvider(List<SupportingFile> supportingFiles) {
method processConsumer (line 101) | private void processConsumer(List<SupportingFile> supportingFiles) {
FILE: codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudProviderDirectoryStrategy.java
class SpringCloudProviderDirectoryStrategy (line 24) | public class SpringCloudProviderDirectoryStrategy extends AbstractProvid...
method modelDirectory (line 28) | @Override
method providerDirectory (line 33) | @Override
method consumerDirectory (line 38) | @Override
method processSupportingFile (line 43) | @Override
FILE: codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/CustomPropertiesTest.java
class CustomPropertiesTest (line 23) | public class CustomPropertiesTest {
method customMainClassPackage (line 25) | @Test
method customApiPackage (line 37) | @Test
FILE: codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/GeneratorTest.java
class GeneratorTest (line 36) | public class GeneratorTest {
method testGenerateProgrammingModels (line 38) | @Test
method generateServiceCombCode (line 48) | private void generateServiceCombCode(String programmingModel)
method testGetCodeGeneratorInstanse (line 82) | @Test
method generateSpringCloudProject (line 93) | @Test
FILE: codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/ReflectUtils.java
class ReflectUtils (line 22) | class ReflectUtils {
method getProperty (line 24) | static Object getProperty(Object obj, String propName) throws IllegalA...
method getFiled (line 36) | private static Field getFiled(Class cls, String propName) throws NoSuc...
FILE: codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegenTest.java
class ServiceCombCodegenTest (line 30) | public class ServiceCombCodegenTest {
method testLoadImpl (line 32) | @Test
method providerDirectoryStrategy (line 38) | @Test
method consumerDirectoryStrategy (line 58) | @Test
method defaultDirectoryStrategy (line 80) | @Test
method spirngCloudMultiDirectoryStrategy (line 96) | @Test
method spirngCloudConsumerDirectoryStrategy (line 112) | @Test
method spirngCloudProviderDirectoryStrategy (line 134) | @Test
method defaultValue (line 154) | @Test
FILE: codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/SpringCloudCodegenTest.java
class SpringCloudCodegenTest (line 25) | public class SpringCloudCodegenTest {
method testLoadImpl (line 27) | @Test
FILE: codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/TemplateTest.java
class TemplateTest (line 53) | public class TemplateTest {
method generateApisWithNoModel (line 64) | @Test
method generateApisWithModel (line 87) | @Test
method readSwaggerModelInfo (line 110) | private Map<String, Object> readSwaggerModelInfo(String swaggerYamlFil...
method renderTemplate (line 140) | private String renderTemplate(Map<String, Object> templateData, String...
method readResourceInClasspath (line 147) | private String readResourceInClasspath(String resourceName) throws IOE...
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/ClassMaker.java
class ClassMaker (line 29) | public class ClassMaker {
method compile (line 31) | public static void compile(String projectPath) throws IOException, Tim...
class Worker (line 59) | private static class Worker extends Thread {
method Worker (line 64) | private Worker(Process process) {
method run (line 69) | @Override
method getProcessStatus (line 92) | ProcessStatus getProcessStatus() {
class ProcessStatus (line 97) | public static class ProcessStatus {
class ExecReader (line 107) | private static abstract class ExecReader extends Thread {
method ExecReader (line 115) | public ExecReader(InputStream is, String readerName) {
method run (line 121) | @Override
method afterReadLine (line 135) | public abstract void afterReadLine(String line);
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/CompareAlgorithm.java
type CompareAlgorithm (line 22) | public interface CompareAlgorithm {
method compare (line 24) | List<Comparison> compare(String source, String dest);
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/ComparisionType.java
type ComparisionType (line 20) | public enum ComparisionType {
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/Comparison.java
class Comparison (line 20) | public class Comparison {
method Comparison (line 32) | public Comparison(ComparisionType type, int originalPointBegin, int or...
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/ContractComparator.java
class ContractComparator (line 27) | public class ContractComparator {
method ContractComparator (line 39) | public ContractComparator(String source, String dest) {
method ContractComparator (line 43) | public ContractComparator(String source, String dest, CompareAlgorithm...
method setAlgorithm (line 50) | public void setAlgorithm(CompareAlgorithm algorithm) {
method getAlgorithm (line 54) | public CompareAlgorithm getAlgorithm() {
method compare (line 58) | public List<Comparison> compare() {
method equals (line 62) | public boolean equals() {
method splitPrintToScreen (line 70) | public void splitPrintToScreen() {
method splitPrint (line 74) | public void splitPrint(OutputStream outputStream) {
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/ContractFileType.java
type ContractFileType (line 22) | public enum ContractFileType {
method ContractFileType (line 28) | ContractFileType(String suffix) {
method getFileSuffix (line 32) | public String getFileSuffix() {
method getValue (line 36) | public static ContractFileType getValue(String name) {
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/DocumentType.java
type DocumentType (line 20) | public enum DocumentType {
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/FileUtils.java
class FileUtils (line 32) | public class FileUtils {
method createDirectory (line 34) | public static void createDirectory(String pathName) throws IOException {
method createTempDirectory (line 50) | public static Path createTempDirectory(String pathName) throws IOExcep...
method getFilesGroupByFilename (line 57) | public static Map<String, byte[]> getFilesGroupByFilename(String pathN...
method deleteDirectory (line 81) | public static void deleteDirectory(String pathName) throws IOException {
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java
class ImmediateClassLoader (line 27) | public class ImmediateClassLoader extends URLClassLoader {
method ImmediateClassLoader (line 33) | public ImmediateClassLoader(URL[] urls, ClassLoader parent) {
method scanClassFile (line 44) | private void scanClassFile(File file) {
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/MyersAlgorithm.java
class MyersAlgorithm (line 30) | public class MyersAlgorithm implements CompareAlgorithm {
method compare (line 34) | @Override
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/SourceType.java
type SourceType (line 20) | public enum SourceType {
FILE: common/src/main/java/org/apache/servicecomb/toolkit/common/SplitDiffFormatter.java
class SplitDiffFormatter (line 27) | public class SplitDiffFormatter extends DiffFormatter {
method SplitDiffFormatter (line 39) | public SplitDiffFormatter(OutputStream out) {
method format (line 44) | public void format(List<Comparison> comparisons, String source, String...
method getMaxLineSize (line 93) | public int getMaxLineSize(String text) {
method readStringAsLines (line 104) | private List<String> readStringAsLines(String text) {
method writeReplaceLine (line 108) | protected void writeReplaceLine(List<String> text, int line, List<Stri...
method writeContextLine (line 112) | protected void writeContextLine(List<String> text, int line, List<Stri...
method writeRemovedLine (line 116) | protected void writeRemovedLine(List<String> text, int line, List<Stri...
method writeAddedLine (line 120) | protected void writeAddedLine(List<String> text, int line, List<String...
method writeLine (line 126) | protected void writeLine(final String content) throws IOException {
method buildFormatLineLeft (line 130) | private String buildFormatLineLeft(List<String> text, int line, String...
method buildFormatLineRight (line 134) | private String buildFormatLineRight(List<String> text, int line, Strin...
method getOutputFormat (line 139) | private String getOutputFormat(int len) {
method end (line 143) | private static boolean end(Comparison edit, int a, int b) {
method findOutputEndIndex (line 147) | private int findOutputEndIndex(List<Comparison> edits, int i) {
method isOriginalEnd (line 156) | private boolean isOriginalEnd(List<Comparison> e, int i) {
method isDestinationEnd (line 160) | private boolean isDestinationEnd(List<Comparison> e, int i) {
FILE: common/src/test/java/org/apache/servicecomb/toolkit/common/ClassMakerTest.java
class ClassMakerTest (line 28) | public class ClassMakerTest {
method runWithCorrectMavenProjectPath (line 33) | @Test
method runWithInvalidMavenProjectPath (line 42) | @Test
FILE: common/src/test/java/org/apache/servicecomb/toolkit/common/FileUtilsTest.java
class FileUtilsTest (line 31) | public class FileUtilsTest {
method createDirectoryTest (line 33) | @Test
method getFilesGroupByFilenameTest (line 51) | @Test
FILE: common/src/test/java/org/apache/servicecomb/toolkit/common/TextCompareTest.java
class TextCompareTest (line 39) | public class TextCompareTest {
method testContractCompareText (line 45) | @Test
method testContractCompareResultPrint (line 56) | @Test
method testContractCompareAnotherAlgorithm (line 68) | @Test
method hasNewLine (line 115) | private boolean hasNewLine(String s) {
method testContractCompareException (line 119) | @Test
FILE: contractgen/src/main/java/org/apache/servicecomb/toolkit/contractgen/DefaultContractsGenerator.java
class DefaultContractsGenerator (line 49) | public class DefaultContractsGenerator implements ContractsGenerator {
method canProcess (line 61) | @Override
method configure (line 66) | @SuppressWarnings("unchecked")
method generate (line 91) | @SuppressWarnings("ResultOfMethodCallIgnored")
method checkConfig (line 152) | private boolean checkConfig() {
method canProcess (line 156) | private static boolean canProcess(Class<?> loadClass) {
method getAllClass (line 188) | private static Vector getAllClass(ClassLoader classLoader) {
FILE: contractgen/src/test/java/org/apache/servicecomb/toolkit/contractgen/ContractTestUtil.java
class ContractTestUtil (line 26) | public class ContractTestUtil {
method createCtClass (line 28) | public CtClass createCtClass(String className) throws Exception {
method putAnnotationToClass (line 35) | public Class putAnnotationToClass(String className, Class annotationCl...
FILE: contractgen/src/test/java/org/apache/servicecomb/toolkit/contractgen/DefaultContractsGeneratorTest.java
class DefaultContractsGeneratorTest (line 56) | public class DefaultContractsGeneratorTest {
method testCanProcess (line 63) | @Test
method testConfigure (line 69) | @Test
method testGenerate (line 79) | @Test
method testCheckConfig (line 105) | @Test
method testPrivateCanProcess (line 126) | @Test
method testgetAllClass (line 156) | @Test
method testGetContractsGeneratorInstance (line 173) | @Test
FILE: contractgen/src/test/projects/demo/src/main/java/demo/Application.java
class Application (line 23) | @SpringBootApplication
method Application (line 25) | public Application() {
method main (line 28) | public static void main(String[] args) {
FILE: contractgen/src/test/projects/demo/src/main/java/demo/HelloEndPoint.java
class HelloEndPoint (line 24) | @RestController
method HelloEndPoint (line 27) | public HelloEndPoint() {
method sayHello (line 30) | @GetMapping({"/sayHello"})
method sayHi (line 35) | @GetMapping({"/sayHi"})
FILE: core/src/main/java/org/apache/servicecomb/toolkit/CodeGenerator.java
type CodeGenerator (line 20) | public interface CodeGenerator extends Generator {
FILE: core/src/main/java/org/apache/servicecomb/toolkit/ContractsGenerator.java
type ContractsGenerator (line 20) | public interface ContractsGenerator extends Generator {
FILE: core/src/main/java/org/apache/servicecomb/toolkit/DocGenerator.java
type DocGenerator (line 20) | public interface DocGenerator extends Generator {
FILE: core/src/main/java/org/apache/servicecomb/toolkit/Generator.java
type Generator (line 22) | public interface Generator {
method canProcess (line 24) | boolean canProcess(String type);
method configure (line 26) | void configure(Map<String, Object> config);
method generate (line 28) | void generate();
FILE: core/src/main/java/org/apache/servicecomb/toolkit/GeneratorFactory.java
class GeneratorFactory (line 26) | public class GeneratorFactory {
method addGeneratorType (line 36) | public static void addGeneratorType(Class<? extends Generator> generat...
method loadInitialCodeGenerators (line 43) | private static List<Generator> loadInitialCodeGenerators(Class<? exten...
method getGenerator (line 49) | public static <T extends Generator> T getGenerator(Class<? extends T> ...
FILE: docgen/src/main/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGenerator.java
class ContractsSwaggerUIGenerator (line 38) | public class ContractsSwaggerUIGenerator implements DocGenerator {
method canProcess (line 50) | @Override
method configure (line 56) | @Override
method checkConfig (line 62) | private boolean checkConfig() {
method generate (line 69) | @Override
method correctPath (line 97) | private String correctPath(String filepath) {
method renderHtml (line 106) | private String renderHtml(String html, Map<String, String> args) {
method getSwaggerUiHtml (line 119) | private String getSwaggerUiHtml() throws IOException {
FILE: docgen/src/test/java/org/apache/servicecomb/toolkit/docgen/ContractsSwaggerUIGeneratorTest.java
class ContractsSwaggerUIGeneratorTest (line 39) | public class ContractsSwaggerUIGeneratorTest {
method testContractTransferToSwaggerUI (line 41) | @Test
method testContractTransferToOther (line 70) | @Test
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/HttpStatuses.java
class HttpStatuses (line 20) | public class HttpStatuses {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/MediaTypes.java
class MediaTypes (line 25) | public class MediaTypes {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/AnnotationProcessor.java
type AnnotationProcessor (line 20) | public interface AnnotationProcessor<Annotation, Context> {
method process (line 21) | void process(Annotation annotation, Context context);
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/ApiResponseMethodAnnotationProcessor.java
class ApiResponseMethodAnnotationProcessor (line 30) | public class ApiResponseMethodAnnotationProcessor implements
method process (line 32) | @Override
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/ApiResponsesMethodAnnotationProcessor.java
class ApiResponsesMethodAnnotationProcessor (line 27) | public class ApiResponsesMethodAnnotationProcessor implements
method process (line 29) | @Override
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/ClassAnnotationProcessor.java
type ClassAnnotationProcessor (line 20) | public interface ClassAnnotationProcessor<Annotation, Context> extends A...
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/MethodAnnotationProcessor.java
type MethodAnnotationProcessor (line 20) | public interface MethodAnnotationProcessor<Annotation, Context> extends ...
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/ModelInterceptor.java
type ModelInterceptor (line 25) | public interface ModelInterceptor {
method order (line 27) | int order();
method process (line 29) | Schema process(Type cls, Components components);
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/OpenApiDefinitionClassAnnotationProcessor.java
class OpenApiDefinitionClassAnnotationProcessor (line 32) | public class OpenApiDefinitionClassAnnotationProcessor implements
method process (line 35) | @Override
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/OperationMethodAnnotationProcessor.java
class OperationMethodAnnotationProcessor (line 30) | public class OperationMethodAnnotationProcessor implements MethodAnnotat...
method process (line 32) | @Override
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/ParamAnnotationProcessor.java
type ParamAnnotationProcessor (line 20) | public interface ParamAnnotationProcessor<Annotation, ParameterContext> ...
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/ParameterAnnotationProcessor.java
class ParameterAnnotationProcessor (line 30) | public class ParameterAnnotationProcessor implements ParamAnnotationProc...
method process (line 32) | @Override
method getExplode (line 71) | private Boolean getExplode(Explode explode) {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/RequestBodyParamAnnotationProcessor.java
class RequestBodyParamAnnotationProcessor (line 31) | public class RequestBodyParamAnnotationProcessor implements ParamAnnotat...
method process (line 33) | @Override
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/Context.java
type Context (line 22) | public interface Context {
method getParser (line 23) | OpenApiAnnotationParser getParser();
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/IExtensionsContext.java
type IExtensionsContext (line 22) | public interface IExtensionsContext extends Context {
method addExtension (line 24) | void addExtension(String name, Object value);
method getExtensions (line 26) | Map<String, Object> getExtensions();
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/ISchemaContext.java
type ISchemaContext (line 22) | public interface ISchemaContext extends Context, IExtensionsContext {
method getSchema (line 24) | Schema getSchema();
method setSchema (line 26) | void setSchema(Schema schema);
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/OasContext.java
class OasContext (line 36) | public class OasContext implements IExtensionsContext {
method OasContext (line 58) | public OasContext(OpenApiAnnotationParser parser) {
method OasContext (line 62) | public OasContext(OpenAPI openAPI, OpenApiAnnotationParser parser) {
method toOpenAPI (line 67) | public OpenAPI toOpenAPI() {
method correctComponents (line 101) | private void correctComponents() {
method correctBasepath (line 108) | private void correctBasepath() {
method getComponents (line 118) | public Components getComponents() {
method ensurePaths (line 125) | private void ensurePaths() {
method getParser (line 131) | @Override
method setParser (line 136) | public void setParser(OpenApiAnnotationParser parser) {
method getOpenAPI (line 140) | public OpenAPI getOpenAPI() {
method getBasePath (line 144) | public String getBasePath() {
method getCls (line 148) | public Class<?> getCls() {
method setCls (line 152) | public void setCls(Class<?> cls) {
method setBasePath (line 156) | public void setBasePath(String basePath) {
method addOperation (line 160) | public void addOperation(OperationContext operation) {
method addExtension (line 164) | @Override
method getExtensions (line 169) | @Override
method getHttpMethod (line 174) | public String getHttpMethod() {
method setHttpMethod (line 178) | public void setHttpMethod(String httpMethod) {
method getConsumers (line 182) | public String[] getConsumers() {
method setConsumers (line 186) | public void setConsumers(String[] consumes) {
method getProduces (line 190) | public String[] getProduces() {
method setProduces (line 194) | public void setProduces(String[] produces) {
method getHeaders (line 198) | public String[] getHeaders() {
method setHeaders (line 202) | public void setHeaders(String[] headers) {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/OasGenerator.java
class OasGenerator (line 31) | public class OasGenerator {
method generate (line 40) | public OpenAPI generate(Class<?> cls) {
method generate (line 53) | public List<OpenAPI> generate(Set<Class> classes) {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/OperationContext.java
class OperationContext (line 49) | public class OperationContext implements IExtensionsContext {
method OperationContext (line 85) | public OperationContext(Method method, OasContext parentContext) {
method getParser (line 92) | @Override
method hasOperation (line 97) | public boolean hasOperation() {
method toOperation (line 101) | public Operation toOperation() {
method processHeaders (line 169) | private void processHeaders() {
method processProduces (line 188) | private void processProduces() {
method setRequestBody (line 213) | public void setRequestBody(RequestBody requestBody) {
method correctResponse (line 217) | public void correctResponse(ApiResponses apiResponses) {
method getComponents (line 246) | public Components getComponents() {
method addResponse (line 250) | public void addResponse(String key, ApiResponse response) {
method getApiResponses (line 254) | public ApiResponses getApiResponses() {
method setApiResponses (line 258) | public void setApiResponses(ApiResponses apiResponses) {
method getOperationId (line 262) | public String getOperationId() {
method setOperationId (line 266) | public void setOperationId(String operationId) {
method getPath (line 270) | public String getPath() {
method setPath (line 274) | public void setPath(String path) {
method getOperation (line 278) | public Operation getOperation() {
method getOpenAPI (line 282) | public OpenAPI getOpenAPI() {
method getMethod (line 286) | public Method getMethod() {
method getOpenApiContext (line 290) | public OasContext getOpenApiContext() {
method getHttpMethod (line 294) | public String getHttpMethod() {
method setHttpMethod (line 298) | public void setHttpMethod(String httpMethod) {
method getDeprecated (line 305) | public Boolean getDeprecated() {
method setDeprecated (line 309) | public void setDeprecated(Boolean deprecated) {
method getDescription (line 313) | public String getDescription() {
method setDescription (line 317) | public void setDescription(String description) {
method getSummary (line 321) | public String getSummary() {
method setSummary (line 325) | public void setSummary(String summary) {
method getTags (line 329) | public List<String> getTags() {
method setTags (line 333) | public void setTags(List<String> tags) {
method addTag (line 337) | public void addTag(String tag) {
method addExtension (line 344) | @Override
method getExtensions (line 349) | @Override
method getConsumers (line 354) | public String[] getConsumers() {
method setConsumers (line 358) | public void setConsumers(String[] consumes) {
method addParamCtx (line 362) | public void addParamCtx(ParameterContext ctx) {
method getProduces (line 366) | public String[] getProduces() {
method setProduces (line 375) | public void setProduces(String[] produces) {
method getHeaders (line 379) | public String[] getHeaders() {
method setHeaders (line 388) | public void setHeaders(String[] headers) {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/context/ParameterContext.java
class ParameterContext (line 43) | public class ParameterContext implements ISchemaContext, IExtensionsCont...
method ParameterContext (line 87) | public ParameterContext(OperationContext parentContext, Parameter para...
method toParameter (line 93) | public io.swagger.v3.oas.models.parameters.Parameter toParameter() {
method isRequestBody (line 138) | public boolean isRequestBody() {
method applyAnnotations (line 145) | public void applyAnnotations(List<Annotation> annotations) {
method ensureName (line 152) | private void ensureName() {
method getOperationContext (line 165) | public OperationContext getOperationContext() {
method getDefaultValue (line 169) | public Object getDefaultValue() {
method setDefaultValue (line 173) | public void setDefaultValue(Object defaultValue) {
method getComponents (line 177) | public Components getComponents() {
method getOasParameter (line 181) | public io.swagger.v3.oas.models.parameters.Parameter getOasParameter() {
method getParameter (line 185) | public Parameter getParameter() {
method setParameter (line 189) | public void setParameter(Parameter parameter) {
method isRequired (line 193) | public boolean isRequired() {
method getType (line 197) | public Type getType() {
method addConsume (line 210) | public void addConsume(String consume) {
method getConsumers (line 217) | public List<String> getConsumers() {
method getRealType (line 221) | public Type getRealType() {
method setRequestBody (line 225) | public void setRequestBody(RequestBody requestBody) {
method getRequestBody (line 231) | public RequestBody getRequestBody() {
method getSchema (line 235) | @Override
method setSchema (line 247) | @Override
method addExtension (line 252) | @Override
method getExtensions (line 257) | @Override
method getParser (line 262) | @Override
method getName (line 267) | public String getName() {
method setName (line 272) | public void setName(String name) {
method getIn (line 276) | public InType getIn() {
method setIn (line 280) | public void setIn(InType in) {
method getDescription (line 284) | public String getDescription() {
method setDescription (line 288) | public void setDescription(String description) {
method getRequired (line 292) | public Boolean getRequired() {
method setRequired (line 296) | public void setRequired(Boolean required) {
method getDeprecated (line 300) | public Boolean getDeprecated() {
method setDeprecated (line 304) | public void setDeprecated(Boolean deprecated) {
method getAllowEmptyValue (line 308) | public Boolean getAllowEmptyValue() {
method setAllowEmptyValue (line 312) | public void setAllowEmptyValue(Boolean allowEmptyValue) {
method getStyle (line 316) | public ParameterStyle getStyle() {
method setStyle (line 320) | public void setStyle(ParameterStyle style) {
method getExplode (line 324) | public Boolean getExplode() {
method setExplode (line 328) | public void setExplode(Boolean explode) {
method getAllowReserved (line 332) | public Boolean getAllowReserved() {
method setAllowReserved (line 336) | public void setAllowReserved(Boolean allowReserved) {
method getExample (line 340) | public Object getExample() {
method setExample (line 344) | public void setExample(Object example) {
method getExamples (line 348) | public Map<String, Example> getExamples() {
method setExamples (line 352) | public void setExamples(Map<String, Example> examples) {
method getContent (line 356) | public Content getContent() {
method setContent (line 360) | public void setContent(Content content) {
method getRef (line 364) | public String getRef() {
method setRef (line 368) | public void setRef(String ref) {
type InType (line 372) | public enum InType {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/parser/AbstractAnnotationParser.java
class AbstractAnnotationParser (line 50) | public abstract class AbstractAnnotationParser implements OpenApiAnnotat...
method AbstractAnnotationParser (line 62) | public AbstractAnnotationParser() {
method parser (line 68) | @Override
method postParseClassAnnotaion (line 116) | @Override
method postParseMethodAnnotation (line 120) | @Override
method postParseParameterAnnotation (line 124) | @Override
method initMethodAnnotationProcessor (line 128) | public void initMethodAnnotationProcessor() {
method initClassAnnotationProcessor (line 134) | public void initClassAnnotationProcessor() {
method initParameterAnnotationProcessor (line 138) | public void initParameterAnnotationProcessor() {
method findClassAnnotationProcessor (line 143) | @Override
method findMethodAnnotationProcessor (line 148) | @Override
method findParameterAnnotationProcessor (line 153) | @Override
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/parser/api/OpenApiAnnotationParser.java
type OpenApiAnnotationParser (line 29) | public interface OpenApiAnnotationParser {
method parser (line 36) | void parser(Class<?> cls, OasContext context);
method getOrder (line 43) | int getOrder();
method canProcess (line 45) | boolean canProcess(Class<?> cls);
method postParseClassAnnotaion (line 47) | void postParseClassAnnotaion(OasContext context);
method postParseMethodAnnotation (line 49) | void postParseMethodAnnotation(OperationContext context);
method postParseParameterAnnotation (line 51) | void postParseParameterAnnotation(ParameterContext context);
method findClassAnnotationProcessor (line 53) | ClassAnnotationProcessor findClassAnnotationProcessor(Class<? extends ...
method findMethodAnnotationProcessor (line 55) | MethodAnnotationProcessor findMethodAnnotationProcessor(Class<? extend...
method findParameterAnnotationProcessor (line 57) | ParamAnnotationProcessor findParameterAnnotationProcessor(Class<? exte...
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/ArrayModelConverter.java
class ArrayModelConverter (line 32) | public class ArrayModelConverter extends AbstractModelConverter {
method ArrayModelConverter (line 34) | protected ArrayModelConverter(ObjectMapper mapper) {
method resolve (line 38) | @Override
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/LocalVariableVisitor.java
class LocalVariableVisitor (line 24) | public class LocalVariableVisitor extends MethodVisitor {
method LocalVariableVisitor (line 32) | public LocalVariableVisitor(int api, String desc, boolean isStatic, St...
method visitLocalVariable (line 39) | @Override
method computeLvtSlotIndices (line 51) | int[] computeLvtSlotIndices(boolean isStatic, Type[] paramTypes) {
method isWideType (line 65) | private boolean isWideType(Type aType) {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/ModelConverter.java
class ModelConverter (line 48) | public class ModelConverter {
method registerInterceptor (line 64) | public static void registerInterceptor(ModelInterceptor interceptor) {
method unRegisterInterceptor (line 69) | public static void unRegisterInterceptor(ModelInterceptor interceptor) {
method getSchema (line 73) | public static Schema getSchema(Type cls) {
method getSchema (line 77) | public static Schema getSchema(Type cls, Components components, Reques...
method ensureSchemaNameExist (line 161) | private static void ensureSchemaNameExist(Schema schema) {
method shouldExtractRef (line 172) | public static boolean shouldExtractRef(Schema schema) {
method mapper (line 180) | public static ObjectMapper mapper() {
method getRequestBeanTypes (line 189) | public static List<Type> getRequestBeanTypes(Class cls) {
method getResponseBeanTypes (line 215) | public static List<Type> getResponseBeanTypes(Class cls) {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/ParamUtils.java
class ParamUtils (line 35) | public class ParamUtils {
method getParameterName (line 41) | public static String getParameterName(Method method, Parameter paramet...
method getParamIndex (line 60) | private static int getParamIndex(Method method, Parameter parameter) {
method initParameterNames (line 70) | private static String[] initParameterNames(Method m) {
method isSyntheticOrBridged (line 119) | private static boolean isSyntheticOrBridged(int access) {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/RequestResponse.java
type RequestResponse (line 20) | public enum RequestResponse {
FILE: oas-generator/oas-generator-core/src/main/java/org/apache/servicecomb/toolkit/generator/util/SwaggerAnnotationUtils.java
class SwaggerAnnotationUtils (line 33) | public class SwaggerAnnotationUtils {
method getContentFromAnnotation (line 35) | public static List<Content> getContentFromAnnotation(
method getSchemaFromAnnotation (line 63) | public static Schema getSchemaFromAnnotation(io.swagger.v3.oas.annotat...
method getExtensionsFromAnnotation (line 81) | public static Map<String, Object> getExtensionsFromAnnotation(Extensio...
FILE: oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/AnnotationProcessorTest.java
class AnnotationProcessorTest (line 62) | public class AnnotationProcessorTest {
method processApiResponseAnnotation (line 64) | @Test
method processApiResponsesAnnotation (line 82) | @Test
method processOperationAnnotation (line 114) | @Test
method processOpenApiDefinitionClassAnnotation (line 139) | @Test
method processRequestBodyAnnotation (line 162) | @Test
method processParameterAnnotation (line 180) | @Test
class ParameterClass (line 204) | class ParameterClass {
method parameter (line 205) | public void parameter(@Parameter(required = true) String param) {
class OpenapiDef (line 209) | @OpenAPIDefinition(
method hello (line 332) | @Operation(
FILE: oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/ContextTest.java
class ContextTest (line 42) | public class ContextTest {
method realParameterContext (line 44) | @Test
method operationContext (line 112) | @Test
FILE: oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/OasGeneratorTest.java
class OasGeneratorTest (line 36) | public class OasGeneratorTest {
method generatorOas (line 38) | @Test
method constructOasContext (line 48) | @Test
class NoResource (line 85) | class NoResource {
class OneResource (line 89) | class OneResource {
method name (line 90) | public String name(String name) {
FILE: oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/ParserTest.java
class ParserTest (line 27) | public class ParserTest {
method parse (line 29) | @Test
class TestParser (line 36) | class TestParser extends AbstractAnnotationParser {
method getOrder (line 38) | @Override
method canProcess (line 43) | @Override
class UnParser (line 49) | @OpenAPIDefinition
method name (line 51) | @ApiResponse
FILE: oas-generator/oas-generator-core/src/test/java/org/apache/servicecomb/toolkit/generator/UtilsTest.java
class UtilsTest (line 43) | public class UtilsTest {
method getParameterName (line 45) | @Test
method getSchema (line 54) | @Test
method getRequestOrResponseBean (line 139) | @Test
method getContentFromAnnotation (line 154) | @Test
class RequestBeanClass (line 164) | class RequestBeanClass {
method setValue (line 166) | public void setValue(Value value) {
method setName (line 169) | public void setName(String name, String alias) {
method getSomething (line 172) | public Integer getSomething() {
class ResponseBeanClass (line 177) | class ResponseBeanClass {
method getValue (line 179) | public Value getValue() {
method getName (line 183) | public String getName(String name) {
method setSomething (line 187) | public void setSomething(Integer something) {
class ParameterClass (line 191) | class ParameterClass {
method method (line 192) | public void method(String param) {
class BeanClass (line 196) | class BeanClass {
method getList (line 222) | public List getList() {
method setList (line 226) | public void setList(List list) {
method getIntVal (line 230) | public int getIntVal() {
method setIntVal (line 234) | public void setIntVal(int intVal) {
method getLongVal (line 238) | public long getLongVal() {
method setLongVal (line 242) | public void setLongVal(long longVal) {
method getDoubleVal (line 246) | public double getDoubleVal() {
method setDoubleVal (line 250) | public void setDoubleVal(double doubleVal) {
method getIntObj (line 254) | public Integer getIntObj() {
method setIntObj (line 258) | public void setIntObj(Integer intObj) {
method getLongObj (line 262) | public Long getLongObj() {
method setLongObj (line 266) | public void setLongObj(Long longObj) {
method getDoubleObj (line 270) | public Double getDoubleObj() {
method setDoubleObj (line 274) | public void setDoubleObj(Double doubleObj) {
method getValues (line 278) | public List<Value> getValues() {
method setValues (line 282) | public void setValues(List<Value> values) {
method getNumbers (line 286) | public List<Integer> getNumbers() {
method setNumbers (line 290) | public void setNumbers(List<Integer> numbers) {
method getProps (line 294) | public List<String> getProps() {
method setProps (line 298) | public void setProps(List<String> props) {
method getName (line 302) | public String getName() {
method setName (line 306) | public void setName(String name) {
method getValue (line 310) | public Value getValue() {
method setValue (line 314) | public void setValue(Value value) {
class Value (line 319) | class Value {
method getProp1 (line 324) | public String getProp1() {
method setProp1 (line 328) | public void setProp1(String prop1) {
method getProp2 (line 332) | public String getProp2() {
method setProp2 (line 336) | public void setProp2(String prop2) {
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/ConsumesAnnotationProcessor.java
class ConsumesAnnotationProcessor (line 24) | public class ConsumesAnnotationProcessor implements MethodAnnotationProc...
method process (line 25) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/CookieParamAnnotationProcessor.java
class CookieParamAnnotationProcessor (line 25) | public class CookieParamAnnotationProcessor implements ParamAnnotationPr...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/FormParamAnnotationProcessor.java
class FormParamAnnotationProcessor (line 25) | public class FormParamAnnotationProcessor implements ParamAnnotationProc...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/HeaderParamAnnotationProcessor.java
class HeaderParamAnnotationProcessor (line 26) | public class HeaderParamAnnotationProcessor implements ParamAnnotationPr...
method process (line 27) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/HttpMethodAnnotationProcessor.java
class HttpMethodAnnotationProcessor (line 26) | public class HttpMethodAnnotationProcessor implements MethodAnnotationPr...
method process (line 27) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/PathClassAnnotationProcessor.java
class PathClassAnnotationProcessor (line 24) | public class PathClassAnnotationProcessor implements ClassAnnotationProc...
method process (line 25) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/PathMethodAnnotationProcessor.java
class PathMethodAnnotationProcessor (line 24) | public class PathMethodAnnotationProcessor implements MethodAnnotationPr...
method process (line 25) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/PathParamAnnotationProcessor.java
class PathParamAnnotationProcessor (line 25) | public class PathParamAnnotationProcessor implements ParamAnnotationProc...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/QueryParamAnnotationProcessor.java
class QueryParamAnnotationProcessor (line 25) | public class QueryParamAnnotationProcessor implements ParamAnnotationPro...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/main/java/org/apache/servicecomb/toolkit/generator/parser/JaxRsAnnotationParser.java
class JaxRsAnnotationParser (line 46) | public class JaxRsAnnotationParser extends AbstractAnnotationParser {
method initClassAnnotationProcessor (line 48) | @Override
method initMethodAnnotationProcessor (line 54) | @Override
method initParameterAnnotationProcessor (line 70) | @Override
method getOrder (line 81) | @Override
method canProcess (line 86) | @Override
FILE: oas-generator/oas-generator-jaxrs/src/test/java/org/apache/servicecomb/toolkit/generator/JaxrsAnnotationProcessorTest.java
class JaxrsAnnotationProcessorTest (line 47) | public class JaxrsAnnotationProcessorTest {
method processApiResponseAnnotation (line 49) | @Test
method processPathClassAnnotation (line 62) | @Test
method processPathMethodAnnotation (line 75) | @Test
method processConsumersAnnotation (line 89) | @Test
method processCookieParamAnnotation (line 103) | @Test
method processFormParamAnnotation (line 118) | @Test
method processHeaderParamAnnotation (line 134) | @Test
method processPathParamAnnotation (line 150) | @Test
method processQueryParamAnnotation (line 167) | @Test
class GetClass (line 183) | class GetClass {
method get (line 184) | @GET
FILE: oas-generator/oas-generator-jaxrs/src/test/java/org/apache/servicecomb/toolkit/generator/JaxrsParserTest.java
class JaxrsParserTest (line 29) | public class JaxrsParserTest {
method parseJaxrs (line 31) | @Test
class NoResource (line 45) | class NoResource {
method name (line 46) | public String name() {
class OneResource (line 51) | @Path("/path")
method name (line 54) | @Path("/name")
FILE: oas-generator/oas-generator-servicecomb/src/main/java/org/apache/servicecomb/toolkit/generator/parser/ServicecombJaxrsParser.java
class ServicecombJaxrsParser (line 24) | public class ServicecombJaxrsParser extends JaxRsAnnotationParser {
method canProcess (line 26) | @Override
FILE: oas-generator/oas-generator-servicecomb/src/main/java/org/apache/servicecomb/toolkit/generator/parser/ServicecombPojoParser.java
class ServicecombPojoParser (line 28) | public class ServicecombPojoParser extends AbstractAnnotationParser {
method getOrder (line 30) | @Override
method canProcess (line 35) | @Override
method postParseMethodAnnotation (line 45) | @Override
method correctPath (line 68) | private String correctPath(String path) {
FILE: oas-generator/oas-generator-servicecomb/src/main/java/org/apache/servicecomb/toolkit/generator/parser/ServicecombSpringmvcParser.java
class ServicecombSpringmvcParser (line 23) | public class ServicecombSpringmvcParser extends SpringmvcAnnotationParser {
method canProcess (line 25) | @Override
FILE: oas-generator/oas-generator-servicecomb/src/test/java/org/apache/servicecomb/toolkit/generator/ServiceCombParserTest.java
class ServiceCombParserTest (line 32) | public class ServiceCombParserTest {
method parse (line 34) | @Test
class ServicecombJaxrs (line 64) | @RestSchema(schemaId = "servicecombJaxrs")
method path (line 68) | @Path("/path")
class ServicecombSpringmvc (line 74) | @RestSchema(schemaId = "servicecombSpringmvc")
class ServicecombPojo (line 79) | @RpcSchema
method path (line 81) | public Object path() {
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/MultipartFileInterceptor.java
class MultipartFileInterceptor (line 30) | public class MultipartFileInterceptor implements ModelInterceptor {
method order (line 32) | @Override
method process (line 37) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/AbstractHttpMethodMappingAnnotationProcessor.java
class AbstractHttpMethodMappingAnnotationProcessor (line 23) | public abstract class AbstractHttpMethodMappingAnnotationProcessor<Annot...
method processPath (line 26) | protected void processPath(String[] paths, OperationContext operationC...
method processMethod (line 40) | protected void processMethod(RequestMethod requestMethod, OperationCon...
method processConsumes (line 44) | protected void processConsumes(String[] consumes, OperationContext ope...
method processProduces (line 52) | protected void processProduces(String[] produces, OperationContext ope...
method processHeaders (line 60) | protected void processHeaders(String[] headers, OperationContext opera...
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/DeleteMappingMethodAnnotationProcessor.java
class DeleteMappingMethodAnnotationProcessor (line 24) | public class DeleteMappingMethodAnnotationProcessor extends
method process (line 27) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/GetMappingMethodAnnotationProcessor.java
class GetMappingMethodAnnotationProcessor (line 24) | public class GetMappingMethodAnnotationProcessor extends AbstractHttpMet...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/PathVariableAnnotationProcessor.java
class PathVariableAnnotationProcessor (line 26) | public class PathVariableAnnotationProcessor implements ParamAnnotationP...
method process (line 27) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/PostMappingMethodAnnotationProcessor.java
class PostMappingMethodAnnotationProcessor (line 24) | public class PostMappingMethodAnnotationProcessor extends AbstractHttpMe...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/PutMappingMethodAnnotationProcessor.java
class PutMappingMethodAnnotationProcessor (line 24) | public class PutMappingMethodAnnotationProcessor extends AbstractHttpMet...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/RequestBodyAnnotationProcessor.java
class RequestBodyAnnotationProcessor (line 24) | public class RequestBodyAnnotationProcessor implements ParamAnnotationPr...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/RequestHeaderAnnotationProcessor.java
class RequestHeaderAnnotationProcessor (line 27) | public class RequestHeaderAnnotationProcessor implements ParamAnnotation...
method process (line 29) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/RequestMappingClassAnnotationProcessor.java
class RequestMappingClassAnnotationProcessor (line 24) | public class RequestMappingClassAnnotationProcessor implements
method process (line 27) | @Override
method processMethod (line 48) | protected void processMethod(RequestMethod[] requestMethods, OasContex...
method processConsumes (line 61) | protected void processConsumes(String[] consumes, OasContext oasContex...
method processProduces (line 68) | protected void processProduces(String[] produces, OasContext oasContex...
method processHeaders (line 75) | protected void processHeaders(String[] headers, OasContext oasContext) {
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/RequestMappingMethodAnnotationProcessor.java
class RequestMappingMethodAnnotationProcessor (line 24) | public class RequestMappingMethodAnnotationProcessor extends
method process (line 27) | @Override
method processMethod (line 38) | protected void processMethod(RequestMethod[] requestMethods, Operation...
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/RequestParamAnnotationProcessor.java
class RequestParamAnnotationProcessor (line 27) | public class RequestParamAnnotationProcessor implements ParamAnnotationP...
method process (line 29) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/annotation/RequestPartAnnotationProcessor.java
class RequestPartAnnotationProcessor (line 25) | public class RequestPartAnnotationProcessor implements ParamAnnotationPr...
method process (line 26) | @Override
FILE: oas-generator/oas-generator-spring/src/main/java/org/apache/servicecomb/toolkit/generator/parser/SpringmvcAnnotationParser.java
class SpringmvcAnnotationParser (line 46) | public class SpringmvcAnnotationParser extends AbstractAnnotationParser {
method getOrder (line 48) | @Override
method parser (line 53) | @Override
method canProcess (line 58) | @Override
method initClassAnnotationProcessor (line 66) | @Override
method initMethodAnnotationProcessor (line 72) | @Override
method initParameterAnnotationProcessor (line 81) | @Override
FILE: oas-generator/oas-generator-spring/src/test/java/org/apache/servicecomb/toolkit/generator/SpringAnnotationProcessorTest.java
class SpringAnnotationProcessorTest (line 56) | public class SpringAnnotationProcessorTest {
method methodOfRequestMapping (line 58) | @Test
method pathOfRequestMapping (line 86) | @Test
method headersOfRequestMapping (line 97) | @Test
method consumesOfRequestMapping (line 110) | @Test
method producesOfRequestMapping (line 123) | @Test
method methodOfGetMapping (line 137) | @Test
method methodOfPostMapping (line 153) | @Test
method methodOfPutMapping (line 169) | @Test
method methodOfDeleteMapping (line 185) | @Test
method parseParameter (line 200) | @Test
method interceptorModel (line 266) | @Test
class HttpMethodResource (line 272) | @RestController
method request (line 276) | @RequestMapping(value = "/request", method = RequestMethod.POST, hea...
method getRequest (line 281) | @RequestMapping(value = "/getRequest")
method get (line 286) | @GetMapping(value = "/get", consumes = {"application/json"}, produce...
method post (line 291) | @PostMapping("/post")
method put (line 296) | @PutMapping("/put")
method delete (line 301) | @DeleteMapping("/delete")
class ParamAnnotationResource (line 308) | class ParamAnnotationResource {
method requestParam (line 310) | public void requestParam(@RequestParam("param") String param) {
method requestBody (line 313) | public void requestBody(@RequestBody String param) {
method requestHeader (line 316) | public void requestHeader(@RequestHeader String headerParam) {
method requestPart (line 319) | public void requestPart(@RequestPart MultipartFile file) {
method pathVariable (line 322) | public void pathVariable(@PathVariable String path) {
FILE: oas-generator/oas-generator-spring/src/test/java/org/apache/servicecomb/toolkit/generator/SpringParserTest.java
class SpringParserTest (line 26) | public class SpringParserTest {
method parse (line 28) | @Test
class SpringmvcController (line 43) | @RestController
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/EncodingDiffValidatorsConfiguration.java
class EncodingDiffValidatorsConfiguration (line 25) | @Configuration
method encodingAddNotAllowedDiffValidator (line 28) | @Bean
method encodingDelNotAllowedDiffValidator (line 33) | @Bean
method encodingAllowedReservedChangeDiffValidator (line 38) | @Bean
method encodingContentTypeNotSameDiffValidator (line 43) | @Bean
method encodingExplodeNotSameDiffValidator (line 48) | @Bean
method encodingStyleNotSameDiffValidator (line 53) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/HeaderDiffValidatorsConfiguration.java
class HeaderDiffValidatorsConfiguration (line 26) | @Configuration
method headerAddInRequestBodyNotAllowedDiffValidator (line 29) | @Bean
method headerDelInResponseNotAllowedDiffValidator (line 34) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/MediaTypeDiffValidatorsConfiguration.java
class MediaTypeDiffValidatorsConfiguration (line 28) | @Configuration
method mediaTypeAddInParameterNotAllowedDiffValidator (line 31) | @Bean
method mediaTypeDelInParameterNotAllowedDiffValidator (line 36) | @Bean
method mediaTypeDelInRequestBodyNotAllowedDiffValidator (line 41) | @Bean
method mediaTypeDelInResponseNotAllowedDiffValidator (line 46) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/OperationDiffValidatorsConfiguration.java
class OperationDiffValidatorsConfiguration (line 26) | @Configuration
method operationDeleteNotAllowedDiffValidator (line 29) | @Bean
method operationIdNotSameDiffValidator (line 34) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/ParameterDiffValidatorsConfiguration.java
class ParameterDiffValidatorsConfiguration (line 25) | @Configuration
method parameterAddDiffValidator (line 28) | @Bean
method parameterRequiredChangeDiffValidator (line 33) | @Bean
method parameterAllowEmptyValueChangeDiffValidator (line 38) | @Bean
method parameterStyleNotSameDiffValidator (line 43) | @Bean
method parameterExplodeNotSameDiffValidator (line 48) | @Bean
method parameterAllowReservedChangeDiffValidator (line 53) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/PathItemDiffValidatorsConfiguration.java
class PathItemDiffValidatorsConfiguration (line 25) | @Configuration
method pathItemDeleteNotAllowedValidator (line 28) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/RequestBodyDiffValidatorsConfiguration.java
class RequestBodyDiffValidatorsConfiguration (line 25) | @Configuration
method requestBodyRequiredChangeDiffValidator (line 28) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/ResponseDiffValidatorsConfiguration.java
class ResponseDiffValidatorsConfiguration (line 25) | @Configuration
method responseAddNotAllowedDiffValidator (line 28) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/SchemaDiffValidatorsConfiguration.java
class SchemaDiffValidatorsConfiguration (line 30) | @Configuration
method schemaTypeFormatInRequestCompareValidator (line 33) | @Bean
method schemaTypeFormatInResponseCompareValidator (line 38) | @Bean
method schemaMultipleOfChangeInRequestValidator (line 43) | @Bean
method schemaMaximumChangeInResponseValidator (line 48) | @Bean
method schemaMaximumChangeInRequestValidator (line 53) | @Bean
method schemaExclusiveMinimumChangeInRequestValidator (line 58) | @Bean
method schemaExclusiveMaximumChangeInRequestValidator (line 63) | @Bean
method schemaExclusiveMaximumChangeInResponseValidator (line 68) | @Bean
method schemaExclusiveMinimumChangeInResponseValidator (line 73) | @Bean
method schemaMaxItemsChangeInRequestValidator (line 78) | @Bean
method schemaMaxLengthChangeInRequestValidator (line 83) | @Bean
method schemaMaxPropertiesChangeInRequestValidator (line 88) | @Bean
method schemaMinimumChangeInRequestValidator (line 93) | @Bean
method schemaMinItemsChangeInRequestValidator (line 98) | @Bean
method schemaMinLengthChangeInRequestValidator (line 103) | @Bean
method schemaMinPropertiesChangeInRequestValidator (line 108) | @Bean
method schemaUniqueItemsChangeInRequestValidator (line 113) | @Bean
method schemaRequiredChangeInRequestValidator (line 118) | @Bean
method schemaEnumChangeInRequestValidator (line 123) | @Bean
method schemaNullableChangeInRequestValidator (line 128) | @Bean
method schemaReadOnlyChangeValidator (line 133) | @Bean
method schemaWriteOnlyChangeValidator (line 138) | @Bean
method schemaXmlChangeValidator (line 143) | @Bean
method schemaDiscriminatorChangeValidator (line 148) | @Bean
method schemaMultipleOfChangeInResponseValidator (line 153) | @Bean
method schemaMaxItemsChangeInResponseValidator (line 158) | @Bean
method schemaMaxLengthChangeInResponseValidator (line 163) | @Bean
method schemaMaxPropertiesChangeInResponseValidator (line 168) | @Bean
method schemaMinimumChangeInResponseValidator (line 173) | @Bean
method schemaMinItemsChangeInResponseValidator (line 178) | @Bean
method schemaMinLengthChangeInResponseValidator (line 183) | @Bean
method schemaMinPropertiesChangeInResponseValidator (line 188) | @Bean
method schemaUniqueItemsChangeInResponseValidator (line 193) | @Bean
method schemaRequiredChangeInResponseValidator (line 198) | @Bean
method schemaEnumChangeInResponseValidator (line 203) | @Bean
method schemaNullableChangeInResponseValidator (line 208) | @Bean
FILE: oas-validator/oas-validator-compatibility-spring/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/config/ValidatorConfigurationsTest.java
class ValidatorConfigurationsTest (line 40) | @RunWith(SpringRunner.class)
method testConfigurations (line 47) | @Test
method setApplicationContext (line 60) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParser.java
class CompatibilityCheckParser (line 24) | public abstract class CompatibilityCheckParser {
method CompatibilityCheckParser (line 26) | private CompatibilityCheckParser() {
method parseYaml (line 30) | public static SwaggerParseResult parseYaml(String yaml) {
method createParseOptions (line 35) | private static ParseOptions createParseOptions() {
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultCallbackDiffValidatorFactory.java
class DefaultCallbackDiffValidatorFactory (line 27) | @Component
method create (line 30) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultComponentsDiffValidatorFactory.java
class DefaultComponentsDiffValidatorFactory (line 40) | @Component
method DefaultComponentsDiffValidatorFactory (line 55) | public DefaultComponentsDiffValidatorFactory(
method create (line 70) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultEncodingDiffValidatorFactory.java
class DefaultEncodingDiffValidatorFactory (line 36) | @Component
method DefaultEncodingDiffValidatorFactory (line 41) | public DefaultEncodingDiffValidatorFactory(
method create (line 46) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultHeaderDiffValidatorFactory.java
class DefaultHeaderDiffValidatorFactory (line 32) | @Component
method DefaultHeaderDiffValidatorFactory (line 37) | public DefaultHeaderDiffValidatorFactory(
method create (line 42) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultInfoDiffValidatorFactory.java
class DefaultInfoDiffValidatorFactory (line 27) | @Component
method create (line 30) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultLinkDiffValidatorFactory.java
class DefaultLinkDiffValidatorFactory (line 27) | @Component
method create (line 30) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultMediaTypeDiffValidatorFactory.java
class DefaultMediaTypeDiffValidatorFactory (line 36) | @Component
method DefaultMediaTypeDiffValidatorFactory (line 43) | public DefaultMediaTypeDiffValidatorFactory(
method create (line 50) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultOasSpecDiffValidatorFactory.java
class DefaultOasSpecDiffValidatorFactory (line 26) | @Component
method DefaultOasSpecDiffValidatorFactory (line 31) | public DefaultOasSpecDiffValidatorFactory(
method create (line 36) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultOpenApiDiffValidatorFactory.java
class DefaultOpenApiDiffValidatorFactory (line 38) | @Component
method DefaultOpenApiDiffValidatorFactory (line 51) | public DefaultOpenApiDiffValidatorFactory(
method create (line 64) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultOperationDiffValidatorFactory.java
class DefaultOperationDiffValidatorFactory (line 36) | @Component
method DefaultOperationDiffValidatorFactory (line 45) | public DefaultOperationDiffValidatorFactory(
method create (line 54) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultParameterDiffValidatorFactory.java
class DefaultParameterDiffValidatorFactory (line 38) | @Component
method DefaultParameterDiffValidatorFactory (line 46) | public DefaultParameterDiffValidatorFactory(
method create (line 53) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultPathItemDiffValidatorFactory.java
class DefaultPathItemDiffValidatorFactory (line 34) | @Component
method DefaultPathItemDiffValidatorFactory (line 40) | public DefaultPathItemDiffValidatorFactory(
method create (line 47) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultPathsDiffValidatorFactory.java
class DefaultPathsDiffValidatorFactory (line 30) | @Component
method DefaultPathsDiffValidatorFactory (line 35) | public DefaultPathsDiffValidatorFactory(
method create (line 40) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultRequestBodyDiffValidatorFactory.java
class DefaultRequestBodyDiffValidatorFactory (line 31) | @Component
method DefaultRequestBodyDiffValidatorFactory (line 36) | public DefaultRequestBodyDiffValidatorFactory(
method create (line 41) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultResponseDiffValidatorFactory.java
class DefaultResponseDiffValidatorFactory (line 33) | @Component
method DefaultResponseDiffValidatorFactory (line 40) | public DefaultResponseDiffValidatorFactory(
method create (line 47) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultResponsesDiffValidatorFactory.java
class DefaultResponsesDiffValidatorFactory (line 30) | @Component
method DefaultResponsesDiffValidatorFactory (line 35) | public DefaultResponsesDiffValidatorFactory(
method create (line 40) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultSchemaDiffValidatorFactory.java
class DefaultSchemaDiffValidatorFactory (line 66) | @Component
method create (line 70) | @Override
method compareValidators (line 87) | private List<SchemaCompareValidator> compareValidators() {
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultSecuritySchemeDiffValidatorFactory.java
class DefaultSecuritySchemeDiffValidatorFactory (line 27) | @Component
method create (line 31) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultServerDiffValidatorFactory.java
class DefaultServerDiffValidatorFactory (line 27) | @Component
method create (line 30) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultTagDiffValidatorFactory.java
class DefaultTagDiffValidatorFactory (line 27) | @Component
method create (line 30) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingAddNotAllowedDiffValidator.java
class EncodingAddNotAllowedDiffValidator (line 28) | public class EncodingAddNotAllowedDiffValidator
method validateAdd (line 32) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingAllowedReservedChangeDiffValidator.java
class EncodingAllowedReservedChangeDiffValidator (line 35) | public class EncodingAllowedReservedChangeDiffValidator
method validateCompare (line 39) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingContentTypeNotSameDiffValidator.java
class EncodingContentTypeNotSameDiffValidator (line 30) | public class EncodingContentTypeNotSameDiffValidator
method validateCompare (line 34) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingDelNotAllowedDiffValidator.java
class EncodingDelNotAllowedDiffValidator (line 28) | public class EncodingDelNotAllowedDiffValidator
method validateDel (line 32) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingExplodeNotSameDiffValidator.java
class EncodingExplodeNotSameDiffValidator (line 30) | public class EncodingExplodeNotSameDiffValidator
method validateCompare (line 34) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingStyleNotSameDiffValidator.java
class EncodingStyleNotSameDiffValidator (line 30) | public class EncodingStyleNotSameDiffValidator
method validateCompare (line 34) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/header/HeaderAddInRequestBodyNotAllowedDiffValidator.java
class HeaderAddInRequestBodyNotAllowedDiffValidator (line 33) | public class HeaderAddInRequestBodyNotAllowedDiffValidator extends OasOb...
method validateAdd (line 36) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/header/HeaderDelInResponseNotAllowedDiffValidator.java
class HeaderDelInResponseNotAllowedDiffValidator (line 33) | public class HeaderDelInResponseNotAllowedDiffValidator extends OasObjec...
method validateDel (line 36) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeAddInParameterNotAllowedDiffValidator.java
class MediaTypeAddInParameterNotAllowedDiffValidator (line 33) | public class MediaTypeAddInParameterNotAllowedDiffValidator
method validateAdd (line 37) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeDelInParameterNotAllowedDiffValidator.java
class MediaTypeDelInParameterNotAllowedDiffValidator (line 33) | public class MediaTypeDelInParameterNotAllowedDiffValidator
method validateDel (line 37) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeDelInRequestBodyNotAllowedDiffValidator.java
class MediaTypeDelInRequestBodyNotAllowedDiffValidator (line 33) | public class MediaTypeDelInRequestBodyNotAllowedDiffValidator
method validateDel (line 37) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeDelInResponseNotAllowedDiffValidator.java
class MediaTypeDelInResponseNotAllowedDiffValidator (line 33) | public class MediaTypeDelInResponseNotAllowedDiffValidator
method validateDel (line 37) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/operation/OperationDeleteNotAllowedDiffValidator.java
class OperationDeleteNotAllowedDiffValidator (line 28) | public class OperationDeleteNotAllowedDiffValidator
method validateDel (line 32) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/operation/OperationIdNotSameDiffValidator.java
class OperationIdNotSameDiffValidator (line 29) | public class OperationIdNotSameDiffValidator
method validateCompare (line 33) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterAddDiffValidator.java
class ParameterAddDiffValidator (line 33) | public class ParameterAddDiffValidator
method validateAdd (line 39) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterAllowEmptyValueChangeDiffValidator.java
class ParameterAllowEmptyValueChangeDiffValidator (line 39) | public class ParameterAllowEmptyValueChangeDiffValidator
method validateCompare (line 43) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterAllowReservedChangeDiffValidator.java
class ParameterAllowReservedChangeDiffValidator (line 39) | public class ParameterAllowReservedChangeDiffValidator
method validateCompare (line 43) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterExplodeNotSameDiffValidator.java
class ParameterExplodeNotSameDiffValidator (line 31) | public class ParameterExplodeNotSameDiffValidator
method validateCompare (line 35) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterRequiredChangeDiffValidator.java
class ParameterRequiredChangeDiffValidator (line 39) | public class ParameterRequiredChangeDiffValidator
method validateCompare (line 43) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterStyleNotSameDiffValidator.java
class ParameterStyleNotSameDiffValidator (line 31) | public class ParameterStyleNotSameDiffValidator
method validateCompare (line 35) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/pathitem/PathItemDeleteNotAllowedDiffValidator.java
class PathItemDeleteNotAllowedDiffValidator (line 28) | public class PathItemDeleteNotAllowedDiffValidator
method validateDel (line 32) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/requestbody/RequestBodyRequiredChangeDiffValidator.java
class RequestBodyRequiredChangeDiffValidator (line 38) | public class RequestBodyRequiredChangeDiffValidator
method validateCompare (line 42) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/response/ResponseAddNotAllowedDiffValidator.java
class ResponseAddNotAllowedDiffValidator (line 32) | public class ResponseAddNotAllowedDiffValidator
method validateAdd (line 36) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaDiscriminatorChangeValidator.java
class SchemaDiscriminatorChangeValidator (line 25) | public class SchemaDiscriminatorChangeValidator extends SchemaPropertyCh...
method getProperty (line 27) | @Override
method getPropertyName (line 32) | @Override
method isAllowed (line 37) | @Override
method getMessage (line 42) | @Override
method needValidate (line 47) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaPropertyChangeValidator.java
class SchemaPropertyChangeValidator (line 32) | public abstract class SchemaPropertyChangeValidator<T> implements Schema...
method validate (line 34) | @Override
method getProperty (line 74) | protected abstract T getProperty(Schema schema);
method getPropertyName (line 76) | protected abstract String getPropertyName();
method getMessage (line 78) | protected abstract String getMessage(T leftProperty, T rightProperty);
method isAllowed (line 80) | protected abstract boolean isAllowed(T leftProperty, T rightProperty);
method needValidate (line 82) | protected abstract boolean needValidate(OasDiffValidationContext conte...
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaReadOnlyChangeValidator.java
class SchemaReadOnlyChangeValidator (line 25) | public class SchemaReadOnlyChangeValidator extends SchemaPropertyChangeV...
method getProperty (line 27) | @Override
method getPropertyName (line 32) | @Override
method isAllowed (line 37) | @Override
method getMessage (line 42) | @Override
method needValidate (line 47) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaTypeFormatChangeValidator.java
class SchemaTypeFormatChangeValidator (line 32) | public abstract class SchemaTypeFormatChangeValidator implements SchemaC...
method validate (line 34) | @Override
method getAllowedChangedList (line 68) | protected abstract List<Object[]> getAllowedChangedList();
method needValidate (line 70) | protected abstract boolean needValidate(OasDiffValidationContext conte...
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaWriteOnlyChangeValidator.java
class SchemaWriteOnlyChangeValidator (line 25) | public class SchemaWriteOnlyChangeValidator extends SchemaPropertyChange...
method getProperty (line 27) | @Override
method getPropertyName (line 32) | @Override
method isAllowed (line 37) | @Override
method getMessage (line 42) | @Override
method needValidate (line 47) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaXmlChangeValidator.java
class SchemaXmlChangeValidator (line 25) | public class SchemaXmlChangeValidator extends SchemaPropertyChangeValida...
method getProperty (line 27) | @Override
method getPropertyName (line 32) | @Override
method isAllowed (line 37) | @Override
method getMessage (line 42) | @Override
method needValidate (line 47) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/TypeFormat.java
class TypeFormat (line 25) | public class TypeFormat {
method TypeFormat (line 29) | public TypeFormat(String type, String format) {
method TypeFormat (line 34) | public TypeFormat(Schema schema) {
method equals (line 39) | @Override
method hashCode (line 48) | @Override
method toString (line 53) | @Override
method getType (line 61) | public String getType() {
method getFormat (line 65) | public String getFormat() {
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaEnumChangeInRequestValidator.java
class SchemaEnumChangeInRequestValidator (line 31) | public class SchemaEnumChangeInRequestValidator extends SchemaPropertyCh...
method getProperty (line 35) | @Override
method getPropertyName (line 40) | @Override
method isAllowed (line 45) | @Override
method getMessage (line 50) | @Override
method needValidate (line 55) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaExclusiveMaximumChangeInRequestValidator.java
class SchemaExclusiveMaximumChangeInRequestValidator (line 31) | public class SchemaExclusiveMaximumChangeInRequestValidator extends Sche...
method getProperty (line 33) | @Override
method getPropertyName (line 38) | @Override
method isAllowed (line 43) | @Override
method getMessage (line 51) | @Override
method needValidate (line 56) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaExclusiveMinimumChangeInRequestValidator.java
class SchemaExclusiveMinimumChangeInRequestValidator (line 31) | public class SchemaExclusiveMinimumChangeInRequestValidator extends Sche...
method getProperty (line 33) | @Override
method getPropertyName (line 38) | @Override
method isAllowed (line 43) | @Override
method getMessage (line 49) | @Override
method needValidate (line 54) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaxItemsChangeInRequestValidator.java
class SchemaMaxItemsChangeInRequestValidator (line 28) | public class SchemaMaxItemsChangeInRequestValidator extends SchemaProper...
method getProperty (line 30) | @Override
method getPropertyName (line 35) | @Override
method isAllowed (line 40) | @Override
method getMessage (line 45) | @Override
method needValidate (line 50) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaxLengthChangeInRequestValidator.java
class SchemaMaxLengthChangeInRequestValidator (line 28) | public class SchemaMaxLengthChangeInRequestValidator extends SchemaPrope...
method getProperty (line 30) | @Override
method getPropertyName (line 35) | @Override
method isAllowed (line 40) | @Override
method getMessage (line 45) | @Override
method needValidate (line 50) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaxPropertiesChangeInRequestValidator.java
class SchemaMaxPropertiesChangeInRequestValidator (line 28) | public class SchemaMaxPropertiesChangeInRequestValidator extends SchemaP...
method getProperty (line 30) | @Override
method getPropertyName (line 35) | @Override
method isAllowed (line 40) | @Override
method getMessage (line 45) | @Override
method needValidate (line 50) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaximumChangeInRequestValidator.java
class SchemaMaximumChangeInRequestValidator (line 30) | public class SchemaMaximumChangeInRequestValidator extends SchemaPropert...
method getProperty (line 32) | @Override
method getPropertyName (line 37) | @Override
method isAllowed (line 42) | @Override
method getMessage (line 47) | @Override
method needValidate (line 52) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinItemsChangeInRequestValidator.java
class SchemaMinItemsChangeInRequestValidator (line 28) | public class SchemaMinItemsChangeInRequestValidator extends SchemaProper...
method getProperty (line 30) | @Override
method getPropertyName (line 35) | @Override
method isAllowed (line 40) | @Override
method getMessage (line 45) | @Override
method needValidate (line 50) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinLengthChangeInRequestValidator.java
class SchemaMinLengthChangeInRequestValidator (line 28) | public class SchemaMinLengthChangeInRequestValidator extends SchemaPrope...
method getProperty (line 30) | @Override
method getPropertyName (line 35) | @Override
method isAllowed (line 40) | @Override
method getMessage (line 45) | @Override
method needValidate (line 50) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinPropertiesChangeInRequestValidator.java
class SchemaMinPropertiesChangeInRequestValidator (line 28) | public class SchemaMinPropertiesChangeInRequestValidator extends SchemaP...
method getProperty (line 30) | @Override
method getPropertyName (line 35) | @Override
method isAllowed (line 40) | @Override
method getMessage (line 45) | @Override
method needValidate (line 50) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinimumChangeInRequestValidator.java
class SchemaMinimumChangeInRequestValidator (line 30) | public class SchemaMinimumChangeInRequestValidator extends SchemaPropert...
method getProperty (line 32) | @Override
method getPropertyName (line 37) | @Override
method isAllowed (line 42) | @Override
method getMessage (line 47) | @Override
method needValidate (line 52) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMultipleOfChangeInRequestValidator.java
class SchemaMultipleOfChangeInRequestValidator (line 29) | public class SchemaMultipleOfChangeInRequestValidator extends SchemaProp...
method getProperty (line 33) | @Override
method getPropertyName (line 38) | @Override
method getMessage (line 43) | @Override
method isAllowed (line 48) | @Override
method needValidate (line 53) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaNullableChangeInRequestValidator.java
class SchemaNullableChangeInRequestValidator (line 31) | public class SchemaNullableChangeInRequestValidator extends SchemaProper...
method getProperty (line 33) | @Override
method getPropertyName (line 38) | @Override
method isAllowed (line 43) | @Override
method getMessage (line 49) | @Override
method needValidate (line 54) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaRequiredChangeInRequestValidator.java
class SchemaRequiredChangeInRequestValidator (line 31) | public class SchemaRequiredChangeInRequestValidator extends SchemaProper...
method getProperty (line 35) | @Override
method getPropertyName (line 40) | @Override
method isAllowed (line 45) | @Override
method getMessage (line 50) | @Override
method needValidate (line 55) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaTypeFormatChangeInRequestValidator.java
class SchemaTypeFormatChangeInRequestValidator (line 31) | public class SchemaTypeFormatChangeInRequestValidator extends SchemaType...
method getAllowedChangedList (line 65) | @Override
method needValidate (line 70) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaUniqueItemsChangeInRequestValidator.java
class SchemaUniqueItemsChangeInRequestValidator (line 30) | public class SchemaUniqueItemsChangeInRequestValidator extends SchemaPro...
method getProperty (line 32) | @Override
method getPropertyName (line 37) | @Override
method isAllowed (line 42) | @Override
method getMessage (line 48) | @Override
method needValidate (line 53) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaEnumChangeInResponseValidator.java
class SchemaEnumChangeInResponseValidator (line 30) | public class SchemaEnumChangeInResponseValidator extends SchemaPropertyC...
method getProperty (line 34) | @Override
method getPropertyName (line 39) | @Override
method isAllowed (line 44) | @Override
method getMessage (line 49) | @Override
method needValidate (line 54) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaExclusiveMaximumChangeInResponseValidator.java
class SchemaExclusiveMaximumChangeInResponseValidator (line 30) | public class SchemaExclusiveMaximumChangeInResponseValidator extends Sch...
method getProperty (line 32) | @Override
method getPropertyName (line 37) | @Override
method isAllowed (line 42) | @Override
method getMessage (line 50) | @Override
method needValidate (line 55) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaExclusiveMinimumChangeInResponseValidator.java
class SchemaExclusiveMinimumChangeInResponseValidator (line 30) | public class SchemaExclusiveMinimumChangeInResponseValidator extends Sch...
method getProperty (line 32) | @Override
method getPropertyName (line 37) | @Override
method isAllowed (line 42) | @Override
method getMessage (line 50) | @Override
method needValidate (line 55) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaxItemsChangeInResponseValidator.java
class SchemaMaxItemsChangeInResponseValidator (line 27) | public class SchemaMaxItemsChangeInResponseValidator extends SchemaPrope...
method getProperty (line 29) | @Override
method getPropertyName (line 34) | @Override
method isAllowed (line 39) | @Override
method getMessage (line 44) | @Override
method needValidate (line 49) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaxLengthChangeInResponseValidator.java
class SchemaMaxLengthChangeInResponseValidator (line 27) | public class SchemaMaxLengthChangeInResponseValidator extends SchemaProp...
method getProperty (line 29) | @Override
method getPropertyName (line 34) | @Override
method isAllowed (line 39) | @Override
method getMessage (line 44) | @Override
method needValidate (line 49) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaxPropertiesChangeInResponseValidator.java
class SchemaMaxPropertiesChangeInResponseValidator (line 27) | public class SchemaMaxPropertiesChangeInResponseValidator extends Schema...
method getProperty (line 29) | @Override
method getPropertyName (line 34) | @Override
method isAllowed (line 39) | @Override
method getMessage (line 44) | @Override
method needValidate (line 49) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaximumChangeInResponseValidator.java
class SchemaMaximumChangeInResponseValidator (line 29) | public class SchemaMaximumChangeInResponseValidator extends SchemaProper...
method getProperty (line 31) | @Override
method getPropertyName (line 36) | @Override
method isAllowed (line 41) | @Override
method getMessage (line 46) | @Override
method needValidate (line 51) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinItemsChangeInResponseValidator.java
class SchemaMinItemsChangeInResponseValidator (line 27) | public class SchemaMinItemsChangeInResponseValidator extends SchemaPrope...
method getProperty (line 29) | @Override
method getPropertyName (line 34) | @Override
method isAllowed (line 39) | @Override
method getMessage (line 44) | @Override
method needValidate (line 49) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinLengthChangeInResponseValidator.java
class SchemaMinLengthChangeInResponseValidator (line 27) | public class SchemaMinLengthChangeInResponseValidator extends SchemaProp...
method getProperty (line 29) | @Override
method getPropertyName (line 34) | @Override
method isAllowed (line 39) | @Override
method getMessage (line 44) | @Override
method needValidate (line 49) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinPropertiesChangeInResponseValidator.java
class SchemaMinPropertiesChangeInResponseValidator (line 27) | public class SchemaMinPropertiesChangeInResponseValidator extends Schema...
method getProperty (line 29) | @Override
method getPropertyName (line 34) | @Override
method isAllowed (line 39) | @Override
method getMessage (line 44) | @Override
method needValidate (line 49) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinimumChangeInResponseValidator.java
class SchemaMinimumChangeInResponseValidator (line 29) | public class SchemaMinimumChangeInResponseValidator extends SchemaProper...
method getProperty (line 31) | @Override
method getPropertyName (line 36) | @Override
method isAllowed (line 41) | @Override
method getMessage (line 46) | @Override
method needValidate (line 51) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMultipleOfChangeInResponseValidator.java
class SchemaMultipleOfChangeInResponseValidator (line 28) | public class SchemaMultipleOfChangeInResponseValidator extends SchemaPro...
method getProperty (line 32) | @Override
method getPropertyName (line 37) | @Override
method getMessage (line 42) | @Override
method isAllowed (line 47) | @Override
method needValidate (line 52) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaNullableChangeInResponseValidator.java
class SchemaNullableChangeInResponseValidator (line 30) | public class SchemaNullableChangeInResponseValidator extends SchemaPrope...
method getProperty (line 32) | @Override
method getPropertyName (line 37) | @Override
method isAllowed (line 42) | @Override
method getMessage (line 48) | @Override
method needValidate (line 53) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaRequiredChangeInResponseValidator.java
class SchemaRequiredChangeInResponseValidator (line 30) | public class SchemaRequiredChangeInResponseValidator extends SchemaPrope...
method getProperty (line 34) | @Override
method getPropertyName (line 39) | @Override
method isAllowed (line 44) | @Override
method getMessage (line 49) | @Override
method needValidate (line 54) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaTypeFormatChangeInResponseValidator.java
class SchemaTypeFormatChangeInResponseValidator (line 30) | public class SchemaTypeFormatChangeInResponseValidator extends SchemaTyp...
method getAllowedChangedList (line 55) | @Override
method needValidate (line 60) | @Override
FILE: oas-validator/oas-validator-compatibility/src/main/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaUniqueItemsChangeInResponseValidator.java
class SchemaUniqueItemsChangeInResponseValidator (line 29) | public class SchemaUniqueItemsChangeInResponseValidator extends SchemaPr...
method getProperty (line 31) | @Override
method getPropertyName (line 36) | @Override
method isAllowed (line 41) | @Override
method getMessage (line 47) | @Override
method needValidate (line 52) | @Override
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/CompatibilityCheckParserTest.java
class CompatibilityCheckParserTest (line 28) | public class CompatibilityCheckParserTest {
method parseYaml (line 30) | @Test
method loadRelative (line 39) | private String loadRelative(String filename) {
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultCallbackDiffValidatorFactoryTest.java
class DefaultCallbackDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultComponentsDiffValidatorFactoryTest.java
class DefaultComponentsDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultEncodingDiffValidatorFactoryTest.java
class DefaultEncodingDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultInfoDiffValidatorFactoryTest.java
class DefaultInfoDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultLinkDiffValidatorFactoryTest.java
class DefaultLinkDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultMediaTypeDiffValidatorFactoryTest.java
class DefaultMediaTypeDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultOasSpecDiffValidatorFactoryTest.java
class DefaultOasSpecDiffValidatorFactoryTest (line 28) | @RunWith(SpringRunner.class)
method create (line 35) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultOpenApiDiffValidatorFactoryTest.java
class DefaultOpenApiDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultOperationDiffValidatorFactoryTest.java
class DefaultOperationDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultParameterDiffValidatorFactoryTest.java
class DefaultParameterDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultPathItemDiffValidatorFactoryTest.java
class DefaultPathItemDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultPathsDiffValidatorFactoryTest.java
class DefaultPathsDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultRequestBodyDiffValidatorFactoryTest.java
class DefaultRequestBodyDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultResponseDiffValidatorFactoryTest.java
class DefaultResponseDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultResponsesDiffValidatorFactoryTest.java
class DefaultResponsesDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultSchemaDiffValidatorFactoryTest.java
class DefaultSchemaDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultSecuritySchemeDiffValidatorFactoryTest.java
class DefaultSecuritySchemeDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultServerDiffValidatorFactoryTest.java
class DefaultServerDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DefaultTagDiffValidatorFactoryTest.java
class DefaultTagDiffValidatorFactoryTest (line 31) | @RunWith(SpringRunner.class)
method create (line 38) | @Test
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/factory/DiffValidatorFactoryTestConfiguration.java
class DiffValidatorFactoryTestConfiguration (line 23) | @Configuration
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/OasCompatibilityTestBase.java
class OasCompatibilityTestBase (line 26) | public class OasCompatibilityTestBase extends OasDiffValidatorTestBase {
method parseAbsolute (line 28) | @Override
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingAddNotAllowedDiffValidatorTest.java
class EncodingAddNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = EncodingAddNotAllowedDiffValidatorTest.T...
method validate (line 41) | @Test
class TestConfiguration (line 65) | @Configuration
method encodingAddNotAllowedDiffValidator (line 69) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingAllowedReservedChangeDiffValidatorTest.java
class EncodingAllowedReservedChangeDiffValidatorTest (line 38) | @ContextConfiguration(classes = EncodingAllowedReservedChangeDiffValidat...
method validate (line 41) | @Test
class TestConfiguration (line 75) | @Configuration
method encodingAllowedReservedChangeDiffValidator (line 79) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingContentTypeNotSameDiffValidatorTest.java
class EncodingContentTypeNotSameDiffValidatorTest (line 38) | @ContextConfiguration(classes = EncodingContentTypeNotSameDiffValidatorT...
method validate (line 41) | @Test
class TestConfiguration (line 75) | @Configuration
method encodingContentTypeNotSameDiffValidator (line 79) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingDelNotAllowedDiffValidatorTest.java
class EncodingDelNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = EncodingDelNotAllowedDiffValidatorTest.T...
method validate (line 41) | @Test
class TestConfiguration (line 65) | @Configuration
method encodingDelNotAllowedDiffValidator (line 69) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingExplodeNotSameDiffValidatorTest.java
class EncodingExplodeNotSameDiffValidatorTest (line 38) | @ContextConfiguration(classes = EncodingExplodeNotSameDiffValidatorTest....
method validate (line 41) | @Test
class TestConfiguration (line 75) | @Configuration
method encodingExplodeNotSameDiffValidator (line 79) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/encoding/EncodingStyleNotSameDiffValidatorTest.java
class EncodingStyleNotSameDiffValidatorTest (line 38) | @ContextConfiguration(classes = EncodingStyleNotSameDiffValidatorTest.Te...
method validate (line 41) | @Test
class TestConfiguration (line 75) | @Configuration
method encodingStyleNotSameDiffValidator (line 79) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/header/HeaderAddInRequestBodyNotAllowedDiffValidatorTest.java
class HeaderAddInRequestBodyNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = HeaderAddInRequestBodyNotAllowedDiffVali...
method validate (line 41) | @Test
class TestConfiguration (line 66) | @Configuration
method headerAddInRequestBodyNotAllowed (line 70) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/header/HeaderDelInResponseNotAllowedDiffValidatorTest.java
class HeaderDelInResponseNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = HeaderDelInResponseNotAllowedDiffValidat...
method validate (line 41) | @Test
class TestConfiguration (line 65) | @Configuration
method headerDelInResponseNotAllowed (line 69) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeAddInParameterNotAllowedDiffValidatorTest.java
class MediaTypeAddInParameterNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = MediaTypeAddInParameterNotAllowedDiffVal...
method validate (line 41) | @Test
class TestConfiguration (line 64) | @Configuration
method mediaTypeAddInParameterNotAllowedDiffValidator (line 68) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeDelInParameterNotAllowedDiffValidatorTest.java
class MediaTypeDelInParameterNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = MediaTypeDelInParameterNotAllowedDiffVal...
method validate (line 41) | @Test
class TestConfiguration (line 64) | @Configuration
method mediaTypeDelInParameterNotAllowedDiffValidator (line 68) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeDelInRequestBodyNotAllowedDiffValidatorTest.java
class MediaTypeDelInRequestBodyNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = MediaTypeDelInRequestBodyNotAllowedDiffV...
method validate (line 41) | @Test
class TestConfiguration (line 64) | @Configuration
method mediaTypeDelInRequestBodyNotAllowedDiffValidator (line 68) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/mediatype/MediaTypeDelInResponseNotAllowedDiffValidatorTest.java
class MediaTypeDelInResponseNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = MediaTypeDelInResponseNotAllowedDiffVali...
method validate (line 41) | @Test
class TestConfiguration (line 65) | @Configuration
method mediaTypeDelInResponseNotAllowedDiffValidator (line 69) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/operation/OperationDeleteNotAllowedDiffValidatorTest.java
class OperationDeleteNotAllowedDiffValidatorTest (line 38) | @ContextConfiguration(classes = OperationDeleteNotAllowedDiffValidatorTe...
method validate (line 41) | @Test
class TestConfiguration (line 62) | @Configuration
method operationDeleteNotAllowedDiffValidator (line 66) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/operation/OperationIdNotSameDiffValidatorTest.java
class OperationIdNotSameDiffValidatorTest (line 38) | @ContextConfiguration(classes = OperationIdNotSameDiffValidatorTest.Test...
method validate (line 41) | @Test
class TestConfiguration (line 63) | @Configuration
method operationIdNotSameDiffValidator (line 67) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterAddDiffValidatorTest.java
class ParameterAddDiffValidatorTest (line 38) | @ContextConfiguration(classes = ParameterAddDiffValidatorTest.TestConfig...
method validate (line 41) | @Test
class TestConfiguration (line 64) | @Configuration
method parameterAddDiffValidator (line 68) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterAllowEmptyValueChangeDiffValidatorTest.java
class ParameterAllowEmptyValueChangeDiffValidatorTest (line 38) | @ContextConfiguration(classes = ParameterAllowEmptyValueChangeDiffValida...
method validate (line 41) | @Test
class TestConfiguration (line 71) | @Configuration
method parameterAllowEmptyValueChangeDiffValidator (line 75) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterAllowReservedChangeDiffValidatorTest.java
class ParameterAllowReservedChangeDiffValidatorTest (line 38) | @ContextConfiguration(classes = ParameterAllowReservedChangeDiffValidato...
method validate (line 41) | @Test
method validateBroken (line 45) | @Test
class TestConfiguration (line 75) | @Configuration
method parameterAllowReservedChangeDiffValidator (line 79) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterExplodeNotSameDiffValidatorTest.java
class ParameterExplodeNotSameDiffValidatorTest (line 38) | @ContextConfiguration(classes = ParameterExplodeNotSameDiffValidatorTest...
method validate (line 41) | @Test
class TestConfiguration (line 71) | @Configuration
method parameterExplodeNotSameDiffValidator (line 75) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterRequiredChangeDiffValidatorTest.java
class ParameterRequiredChangeDiffValidatorTest (line 38) | @ContextConfiguration(classes = ParameterRequiredChangeDiffValidatorTest...
method validate (line 41) | @Test
class TestConfiguration (line 71) | @Configuration
method parameterRequiredChangeDiffValidator (line 75) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/parameter/ParameterStyleNotSameDiffValidatorTest.java
class ParameterStyleNotSameDiffValidatorTest (line 38) | @ContextConfiguration(classes = ParameterStyleNotSameDiffValidatorTest.T...
method validate (line 41) | @Test
class TestConfiguration (line 71) | @Configuration
method parameterStyleNotSameDiffValidator (line 75) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/pathitem/PathItemDeleteNotAllowedDiffValidatorTest.java
class PathItemDeleteNotAllowedDiffValidatorTest (line 39) | @ContextConfiguration(classes = PathItemDeleteNotAllowedDiffValidatorTes...
method validate (line 42) | @Test
class TestConfiguration (line 59) | @Configuration
method pathItemDeleteNotAllowedValidator (line 63) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/requestbody/RequestBodyRequiredChangeDiffValidatorTest.java
class RequestBodyRequiredChangeDiffValidatorTest (line 38) | @ContextConfiguration(classes = RequestBodyRequiredChangeDiffValidatorTe...
method validate (line 41) | @Test
class TestConfiguration (line 64) | @Configuration
method requestBodyRequiredChangeDiffValidator (line 68) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/response/ResponseAddNotAllowedDiffValidatorTest.java
class ResponseAddNotAllowedDiffValidatorTest (line 36) | public class ResponseAddNotAllowedDiffValidatorTest extends OasCompatibi...
method validate (line 38) | @Test
class TestConfiguration (line 71) | @Configuration
method responseAddNotAllowedDiffValidator (line 75) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaDiscriminatorChangeValidatorTest.java
class SchemaDiscriminatorChangeValidatorTest (line 38) | @ContextConfiguration(classes = SchemaDiscriminatorChangeValidatorTest.T...
method validate (line 41) | @Test
class TestConfiguration (line 93) | @Configuration
method schemaDiscriminatorChangeValidator (line 97) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaReadOnlyChangeValidatorTest.java
class SchemaReadOnlyChangeValidatorTest (line 38) | @ContextConfiguration(classes = SchemaReadOnlyChangeValidatorTest.TestCo...
method validate (line 41) | @Test
class TestConfiguration (line 93) | @Configuration
method schemaReadOnlyChangeValidator (line 97) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaWriteOnlyChangeValidatorTest.java
class SchemaWriteOnlyChangeValidatorTest (line 38) | @ContextConfiguration(classes = SchemaWriteOnlyChangeValidatorTest.TestC...
method validate (line 41) | @Test
class TestConfiguration (line 93) | @Configuration
method schemaWriteOnlyChangeValidator (line 97) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/SchemaXmlChangeValidatorTest.java
class SchemaXmlChangeValidatorTest (line 38) | @ContextConfiguration(classes = SchemaXmlChangeValidatorTest.TestConfigu...
method validate (line 41) | @Test
class TestConfiguration (line 93) | @Configuration
method schemaXmlChangeValidator (line 97) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaEnumChangeInRequestValidatorTest.java
class SchemaEnumChangeInRequestValidatorTest (line 43) | @ContextConfiguration(classes = SchemaEnumChangeInRequestValidatorTest.T...
method validate (line 46) | @Test
class TestConfiguration (line 84) | @Configuration
method schemaEnumChangeInRequestValidator (line 88) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaExclusiveMaximumChangeInRequestValidatorTest.java
class SchemaExclusiveMaximumChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaExclusiveMaximumChangeInRequestVal...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaExclusiveMaximumChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaExclusiveMinimumChangeInRequestValidatorTest.java
class SchemaExclusiveMinimumChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaExclusiveMinimumChangeInRequestVal...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaExclusiveMinimumChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaxItemsChangeInRequestValidatorTest.java
class SchemaMaxItemsChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaxItemsChangeInRequestValidatorTe...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMaxItemsChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaxLengthChangeInRequestValidatorTest.java
class SchemaMaxLengthChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaxLengthChangeInRequestValidatorT...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMaxLengthChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaxPropertiesChangeInRequestValidatorTest.java
class SchemaMaxPropertiesChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaxPropertiesChangeInRequestValida...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMaxPropertiesChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMaximumChangeInRequestValidatorTest.java
class SchemaMaximumChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaximumChangeInRequestValidatorTes...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMaximumChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinItemsChangeInRequestValidatorTest.java
class SchemaMinItemsChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinItemsChangeInRequestValidatorTe...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMinItemsChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinLengthChangeInRequestValidatorTest.java
class SchemaMinLengthChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinLengthChangeInRequestValidatorT...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMinLengthChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinPropertiesChangeInRequestValidatorTest.java
class SchemaMinPropertiesChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinPropertiesChangeInRequestValida...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMinPropertiesChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMinimumChangeInRequestValidatorTest.java
class SchemaMinimumChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinimumChangeInRequestValidatorTes...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaMinimumChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaMultipleOfChangeInRequestValidatorTest.java
class SchemaMultipleOfChangeInRequestValidatorTest (line 37) | @ContextConfiguration(classes = SchemaMultipleOfChangeInRequestValidator...
method validate (line 40) | @Test
class TestConfiguration (line 78) | @Configuration
method schemaMultipleOfChangeValidator (line 82) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaNullableChangeInRequestValidatorTest.java
class SchemaNullableChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaNullableChangeInRequestValidatorTe...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaNullableChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaRequiredChangeInRequestValidatorTest.java
class SchemaRequiredChangeInRequestValidatorTest (line 37) | @ContextConfiguration(classes = SchemaRequiredChangeInRequestValidatorTe...
method validate (line 40) | @Test
class TestConfiguration (line 76) | @Configuration
method schemaRequiredChangeInRequestValidator (line 80) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaTypeFormatChangeInRequestValidatorTest.java
class SchemaTypeFormatChangeInRequestValidatorTest (line 37) | @ContextConfiguration(classes = SchemaTypeFormatChangeInRequestValidator...
method validate (line 40) | @Test
class TestConfiguration (line 77) | @Configuration
method schemaTypeFormatInRequestCompareValidator (line 81) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/request/SchemaUniqueItemsChangeInRequestValidatorTest.java
class SchemaUniqueItemsChangeInRequestValidatorTest (line 38) | @ContextConfiguration(classes = SchemaUniqueItemsChangeInRequestValidato...
method validate (line 41) | @Test
class TestConfiguration (line 79) | @Configuration
method schemaUniqueItemsChangeInRequestValidator (line 83) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaEnumChangeInResponseValidatorTest.java
class SchemaEnumChangeInResponseValidatorTest (line 37) | @ContextConfiguration(classes = SchemaEnumChangeInResponseValidatorTest....
method validate (line 40) | @Test
class TestConfiguration (line 67) | @Configuration
method schemaEnumChangeInResponseValidator (line 71) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaExclusiveMaximumChangeInResponseValidatorTest.java
class SchemaExclusiveMaximumChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaExclusiveMaximumChangeInResponseVa...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaExclusiveMaximumChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaExclusiveMinimumChangeInResponseValidatorTest.java
class SchemaExclusiveMinimumChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaExclusiveMinimumChangeInResponseVa...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaExclusiveMinimumChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaxItemsChangeInResponseValidatorTest.java
class SchemaMaxItemsChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaxItemsChangeInResponseValidatorT...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMaxItemsChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaxLengthChangeInResponseValidatorTest.java
class SchemaMaxLengthChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaxLengthChangeInResponseValidator...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMaxLengthChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaxPropertiesChangeInResponseValidatorTest.java
class SchemaMaxPropertiesChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaxPropertiesChangeInResponseValid...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMaxPropertiesChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMaximumChangeInResponseValidatorTest.java
class SchemaMaximumChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMaximumChangeInResponseValidatorTe...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMaximumChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinItemsChangeInResponseValidatorTest.java
class SchemaMinItemsChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinItemsChangeInResponseValidatorT...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMinItemsChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinLengthChangeInResponseValidatorTest.java
class SchemaMinLengthChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinLengthChangeInResponseValidator...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMinLengthChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinPropertiesChangeInResponseValidatorTest.java
class SchemaMinPropertiesChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinPropertiesChangeInResponseValid...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMinPropertiesChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMinimumChangeInResponseValidatorTest.java
class SchemaMinimumChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaMinimumChangeInResponseValidatorTe...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaMinimumChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaMultipleOfChangeInResponseValidatorTest.java
class SchemaMultipleOfChangeInResponseValidatorTest (line 37) | @ContextConfiguration(classes = SchemaMultipleOfChangeInResponseValidato...
method validate (line 40) | @Test
class TestConfiguration (line 67) | @Configuration
method schemaMultipleOfChangeValidator (line 71) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaNullableChangeInResponseValidatorTest.java
class SchemaNullableChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaNullableChangeInResponseValidatorT...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaNullableChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaRequiredChangeInResponseValidatorTest.java
class SchemaRequiredChangeInResponseValidatorTest (line 37) | @ContextConfiguration(classes = SchemaRequiredChangeInResponseValidatorT...
method validate (line 40) | @Test
class TestConfiguration (line 66) | @Configuration
method schemaRequiredChangeInResponseValidator (line 70) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaTypeFormatChangeInResponseValidatorTest.java
class SchemaTypeFormatChangeInResponseValidatorTest (line 37) | @ContextConfiguration(classes = SchemaTypeFormatChangeInResponseValidato...
method validate (line 40) | @Test
class TestConfiguration (line 66) | @Configuration
method schemaTypeFormatInResponseCompareValidator (line 70) | @Bean
FILE: oas-validator/oas-validator-compatibility/src/test/java/org/apache/servicecomb/toolkit/oasv/compatibility/validators/schema/response/SchemaUniqueItemsChangeInResponseValidatorTest.java
class SchemaUniqueItemsChangeInResponseValidatorTest (line 38) | @ContextConfiguration(classes = SchemaUniqueItemsChangeInResponseValidat...
method validate (line 41) | @Test
class TestConfiguration (line 68) | @Configuration
method schemaUniqueItemsChangeInResponseValidator (line 72) | @Bean
FILE: oas-validator/oas-validator-core-spring/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/config/OasDiffValidatorsSkeletonConfiguration.java
class OasDiffValidatorsSkeletonConfiguration (line 76) | @Configuration
method oasSpecDiffValidator (line 79) | @Bean
method componentsCallbacksDiffValidator (line 84) | @Bean
method componentsHeadersDiffValidator (line 90) | @Bean
method componentsLinksDiffValidator (line 96) | @Bean
method componentsParametersDiffValidator (line 102) | @Bean
method componentsRequestBodiesDiffValidator (line 108) | @Bean
method componentsResponsesDiffValidator (line 114) | @Bean
method encodingHeadersDiffValidator (line 120) | @Bean
method headerSchemaDiffValidator (line 126) | @Bean
method mediaTypeEncodingDiffValidator (line 132) | @Bean
method mediaTypeSchemaDiffValidator (line 138) | @Bean
method openApiComponentsDiffValidator (line 144) | @Bean
method openApiInfoDiffValidator (line 150) | @Bean
method openApiPathsDiffValidator (line 156) | @Bean
method openApiServersDiffValidator (line 162) | @Bean
method openApiTagsDiffValidator (line 168) | @Bean
method operationParametersDiffValidator (line 174) | @Bean
method operationRequestBodyDiffValidator (line 180) | @Bean
method operationResponsesDiffValidator (line 186) | @Bean
method parameterContentDiffValidator (line 192) | @Bean
method parameterSchemaDiffValidator (line 198) | @Bean
method pathItemOperationsDiffValidator (line 204) | @Bean
method pathItemParametersDiffValidator (line 210) | @Bean
method pathsPathItemsDiffValidator (line 216) | @Bean
method requestBodyContentDiffValidator (line 222) | @Bean
method responseContentDiffValidator (line 228) | @Bean
method responseHeadersDiffValidator (line 234) | @Bean
method responsesResponsesDiffValidator (line 240) | @Bean
method schemaDiffValidatorEngine (line 246) | @Bean
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/FactoryOptions.java
class FactoryOptions (line 24) | public class FactoryOptions {
method FactoryOptions (line 28) | public FactoryOptions(Map<String, String> options) {
method FactoryOptions (line 32) | public FactoryOptions(Properties properties) {
method getString (line 41) | public String getString(String key) {
method getBoolean (line 49) | public Boolean getBoolean(String key) {
method getInteger (line 57) | public Integer getInteger(String key) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/common/OasObjectProperty.java
class OasObjectProperty (line 26) | public class OasObjectProperty {
method OasObjectProperty (line 38) | public OasObjectProperty(String name) {
method OasObjectProperty (line 42) | public OasObjectProperty(OasObjectType objectType, String name) {
method getObjectType (line 47) | public OasObjectType getObjectType() {
method getName (line 51) | public String getName() {
method equals (line 55) | @Override
method hashCode (line 64) | @Override
method toString (line 69) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/common/OasObjectPropertyLocation.java
class OasObjectPropertyLocation (line 30) | public class OasObjectPropertyLocation {
method OasObjectPropertyLocation (line 39) | private OasObjectPropertyLocation(OasObjectProperty path) {
method OasObjectPropertyLocation (line 43) | private OasObjectPropertyLocation(List<OasObjectProperty> path) {
method root (line 52) | public static OasObjectPropertyLocation root() {
method property (line 63) | public OasObjectPropertyLocation property(String propertyName, OasObje...
method property (line 75) | public OasObjectPropertyLocation property(String propertyName) {
method getPath (line 86) | public List<OasObjectProperty> getPath() {
method getParent (line 95) | @JsonIgnore
method equals (line 103) | @Override
method hashCode (line 111) | @Override
method toString (line 116) | @Override
method toPathString (line 123) | public static String toPathString(OasObjectPropertyLocation location) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/common/OasObjectType.java
type OasObjectType (line 26) | public enum OasObjectType {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/CallbackDiffValidator.java
type CallbackDiffValidator (line 22) | public interface CallbackDiffValidator extends OasObjectDiffValidator<Ca...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/ComponentsDiffValidator.java
type ComponentsDiffValidator (line 22) | public interface ComponentsDiffValidator extends OasObjectDiffValidator<...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/DefaultOasSpecDiffValidator.java
class DefaultOasSpecDiffValidator (line 28) | public class DefaultOasSpecDiffValidator implements OasSpecDiffValidator {
method DefaultOasSpecDiffValidator (line 32) | public DefaultOasSpecDiffValidator(List<OpenApiDiffValidator> openApiD...
method validate (line 36) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/DiffViolationMessages.java
class DiffViolationMessages (line 20) | public abstract class DiffViolationMessages {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/EncodingDiffValidator.java
type EncodingDiffValidator (line 22) | public interface EncodingDiffValidator extends OasObjectDiffValidator<En...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/HeaderDiffValidator.java
type HeaderDiffValidator (line 22) | public interface HeaderDiffValidator extends OasObjectDiffValidator<Head...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/InfoDiffValidator.java
type InfoDiffValidator (line 22) | public interface InfoDiffValidator extends OasObjectDiffValidator<Info> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/LinkDiffValidator.java
type LinkDiffValidator (line 22) | public interface LinkDiffValidator extends OasObjectDiffValidator<Link> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/ListPropertyDiffValidator.java
class ListPropertyDiffValidator (line 28) | public abstract class ListPropertyDiffValidator<T, P>
method ListPropertyDiffValidator (line 35) | protected ListPropertyDiffValidator(
method validateCompare (line 42) | @Override
method getListProperty (line 61) | protected abstract List<P> getListProperty(T oasObject);
method getListPropertyName (line 63) | protected abstract String getListPropertyName();
method getElementType (line 65) | protected abstract OasObjectType getElementType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/MapPropertyDiffValidator.java
class MapPropertyDiffValidator (line 28) | public abstract class MapPropertyDiffValidator<T, P>
method MapPropertyDiffValidator (line 33) | protected MapPropertyDiffValidator(List<? extends OasObjectDiffValidat...
method validateCompare (line 37) | @Override
method getMapProperty (line 55) | protected abstract Map<String, P> getMapProperty(T oasObject);
method getMapPropertyName (line 57) | protected abstract String getMapPropertyName();
method getValueType (line 59) | protected abstract OasObjectType getValueType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/MediaTypeDiffValidator.java
type MediaTypeDiffValidator (line 22) | public interface MediaTypeDiffValidator extends OasObjectDiffValidator<M...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OasDiffValidationContext.java
class OasDiffValidationContext (line 25) | public class OasDiffValidationContext {
method OasDiffValidationContext (line 33) | public OasDiffValidationContext(OpenAPI leftOpenAPI, OpenAPI rightOpen...
method getLeftOpenAPI (line 38) | public OpenAPI getLeftOpenAPI() {
method getRightOpenAPI (line 42) | public OpenAPI getRightOpenAPI() {
method getAttribute (line 46) | public <T> T getAttribute(String name) {
method setAttribute (line 50) | public <T> void setAttribute(String name, T attr) {
method removeAttribute (line 54) | public void removeAttribute(String name) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OasDiffValidationException.java
class OasDiffValidationException (line 20) | public class OasDiffValidationException extends RuntimeException {
method OasDiffValidationException (line 21) | public OasDiffValidationException() {
method OasDiffValidationException (line 24) | public OasDiffValidationException(String message) {
method OasDiffValidationException (line 28) | public OasDiffValidationException(String message, Throwable cause) {
method OasDiffValidationException (line 32) | public OasDiffValidationException(Throwable cause) {
method OasDiffValidationException (line 36) | public OasDiffValidationException(String message, Throwable cause, boo...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OasDiffViolation.java
class OasDiffViolation (line 25) | public class OasDiffViolation {
method onlyLeft (line 39) | public static OasDiffViolation onlyLeft(OasObjectPropertyLocation loca...
method onlyRight (line 43) | public static OasDiffViolation onlyRight(OasObjectPropertyLocation loc...
method OasDiffViolation (line 47) | public OasDiffViolation(OasObjectPropertyLocation leftLocation,
method getLeftLocation (line 54) | public OasObjectPropertyLocation getLeftLocation() {
method getRightLocation (line 58) | public OasObjectPropertyLocation getRightLocation() {
method getError (line 62) | public String getError() {
method toString (line 66) | @Override
method equals (line 75) | @Override
method hashCode (line 85) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OasObjectDiffValidator.java
type OasObjectDiffValidator (line 29) | public interface OasObjectDiffValidator<T> {
method validate (line 41) | List<OasDiffViolation> validate(OasDiffValidationContext context,
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OasObjectDiffValidatorTemplate.java
class OasObjectDiffValidatorTemplate (line 27) | public class OasObjectDiffValidatorTemplate<T> implements OasObjectDiffV...
method validate (line 29) | @Override
method validateAdd (line 52) | protected List<OasDiffViolation> validateAdd(OasDiffValidationContext ...
method validateDel (line 65) | protected List<OasDiffViolation> validateDel(OasDiffValidationContext ...
method validateCompare (line 81) | protected List<OasDiffViolation> validateCompare(OasDiffValidationCont...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OasSpecDiffValidator.java
type OasSpecDiffValidator (line 27) | public interface OasSpecDiffValidator {
method validate (line 29) | List<OasDiffViolation> validate(OasDiffValidationContext context, Open...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/ObjectPropertyDiffValidator.java
class ObjectPropertyDiffValidator (line 33) | public abstract class ObjectPropertyDiffValidator<T, P>
method ObjectPropertyDiffValidator (line 38) | protected ObjectPropertyDiffValidator(List<? extends OasObjectDiffVali...
method validateCompare (line 42) | @Override
method getPropertyObject (line 64) | protected abstract P getPropertyObject(T oasObject);
method getPropertyName (line 66) | protected abstract String getPropertyName();
method getPropertyType (line 68) | protected abstract OasObjectType getPropertyType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OpenApiDiffValidator.java
type OpenApiDiffValidator (line 22) | public interface OpenApiDiffValidator extends OasObjectDiffValidator<Ope...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/OperationDiffValidator.java
type OperationDiffValidator (line 22) | public interface OperationDiffValidator extends OasObjectDiffValidator<O...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/ParameterDiffValidator.java
type ParameterDiffValidator (line 22) | public interface ParameterDiffValidator extends OasObjectDiffValidator<P...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/PathItemDiffValidator.java
type PathItemDiffValidator (line 22) | public interface PathItemDiffValidator extends OasObjectDiffValidator<Pa...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/PathsDiffValidator.java
type PathsDiffValidator (line 22) | public interface PathsDiffValidator extends OasObjectDiffValidator<Paths> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/RequestBodyDiffValidator.java
type RequestBodyDiffValidator (line 22) | public interface RequestBodyDiffValidator extends OasObjectDiffValidator...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/ResponseDiffValidator.java
type ResponseDiffValidator (line 22) | public interface ResponseDiffValidator extends OasObjectDiffValidator<Ap...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/ResponsesDiffValidator.java
type ResponsesDiffValidator (line 22) | public interface ResponsesDiffValidator extends OasObjectDiffValidator<A...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/SchemaAddValidator.java
type SchemaAddValidator (line 25) | public interface SchemaAddValidator {
method validate (line 35) | List<OasDiffViolation> validate(OasDiffValidationContext context, OasO...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/SchemaCompareValidator.java
type SchemaCompareValidator (line 26) | public interface SchemaCompareValidator {
method validate (line 42) | List<OasDiffViolation> validate(OasDiffValidationContext context,
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/SchemaDelValidator.java
type SchemaDelValidator (line 25) | public interface SchemaDelValidator {
method validate (line 35) | List<OasDiffViolation> validate(
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/SchemaDiffValidator.java
type SchemaDiffValidator (line 22) | public interface SchemaDiffValidator extends OasObjectDiffValidator<Sche...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/SecuritySchemeDiffValidator.java
type SecuritySchemeDiffValidator (line 22) | public interface SecuritySchemeDiffValidator extends OasObjectDiffValida...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/ServerDiffValidator.java
type ServerDiffValidator (line 22) | public interface ServerDiffValidator extends OasObjectDiffValidator<Serv...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/api/TagDiffValidator.java
type TagDiffValidator (line 22) | public interface TagDiffValidator extends OasObjectDiffValidator<Tag> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/CallbackDiffValidatorFactory.java
type CallbackDiffValidatorFactory (line 22) | public interface CallbackDiffValidatorFactory extends OasObjectDiffValid...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/ComponentsDiffValidatorFactory.java
type ComponentsDiffValidatorFactory (line 22) | public interface ComponentsDiffValidatorFactory extends OasObjectDiffVal...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/EncodingDiffValidatorFactory.java
type EncodingDiffValidatorFactory (line 22) | public interface EncodingDiffValidatorFactory extends OasObjectDiffValid...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/HeaderDiffValidatorFactory.java
type HeaderDiffValidatorFactory (line 22) | public interface HeaderDiffValidatorFactory extends OasObjectDiffValidat...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/InfoDiffValidatorFactory.java
type InfoDiffValidatorFactory (line 22) | public interface InfoDiffValidatorFactory extends OasObjectDiffValidator...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/LinkDiffValidatorFactory.java
type LinkDiffValidatorFactory (line 22) | public interface LinkDiffValidatorFactory extends OasObjectDiffValidator...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/MediaTypeDiffValidatorFactory.java
type MediaTypeDiffValidatorFactory (line 22) | public interface MediaTypeDiffValidatorFactory extends OasObjectDiffVali...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/OasObjectDiffValidatorFactory.java
type OasObjectDiffValidatorFactory (line 24) | public interface OasObjectDiffValidatorFactory<T extends OasObjectDiffVa...
method create (line 26) | List<T> create();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/OasSpecDiffValidatorFactory.java
type OasSpecDiffValidatorFactory (line 22) | public interface OasSpecDiffValidatorFactory {
method create (line 24) | OasSpecDiffValidator create();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/OpenApiDiffValidatorFactory.java
type OpenApiDiffValidatorFactory (line 22) | public interface OpenApiDiffValidatorFactory extends OasObjectDiffValida...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/OperationDiffValidatorFactory.java
type OperationDiffValidatorFactory (line 22) | public interface OperationDiffValidatorFactory extends OasObjectDiffVali...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/ParameterDiffValidatorFactory.java
type ParameterDiffValidatorFactory (line 22) | public interface ParameterDiffValidatorFactory extends OasObjectDiffVali...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/PathItemDiffValidatorFactory.java
type PathItemDiffValidatorFactory (line 22) | public interface PathItemDiffValidatorFactory extends OasObjectDiffValid...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/PathsDiffValidatorFactory.java
type PathsDiffValidatorFactory (line 22) | public interface PathsDiffValidatorFactory extends OasObjectDiffValidato...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/RequestBodyDiffValidatorFactory.java
type RequestBodyDiffValidatorFactory (line 22) | public interface RequestBodyDiffValidatorFactory extends OasObjectDiffVa...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/ResponseDiffValidatorFactory.java
type ResponseDiffValidatorFactory (line 22) | public interface ResponseDiffValidatorFactory extends OasObjectDiffValid...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/ResponsesDiffValidatorFactory.java
type ResponsesDiffValidatorFactory (line 22) | public interface ResponsesDiffValidatorFactory extends OasObjectDiffVali...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/SchemaDiffValidatorFactory.java
type SchemaDiffValidatorFactory (line 22) | public interface SchemaDiffValidatorFactory extends OasObjectDiffValidat...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/SecuritySchemeDiffValidatorFactory.java
type SecuritySchemeDiffValidatorFactory (line 22) | public interface SecuritySchemeDiffValidatorFactory extends OasObjectDif...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/ServerDiffValidatorFactory.java
type ServerDiffValidatorFactory (line 22) | public interface ServerDiffValidatorFactory extends OasObjectDiffValidat...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/factory/TagDiffValidatorFactory.java
type TagDiffValidatorFactory (line 22) | public interface TagDiffValidatorFactory extends OasObjectDiffValidatorF...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/components/ComponentsCallbacksDiffValidator.java
class ComponentsCallbacksDiffValidator (line 32) | public class ComponentsCallbacksDiffValidator
method ComponentsCallbacksDiffValidator (line 36) | public ComponentsCallbacksDiffValidator(List<CallbackDiffValidator> di...
method getMapProperty (line 40) | @Override
method getMapPropertyName (line 45) | @Override
method getValueType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/components/ComponentsHeadersDiffValidator.java
class ComponentsHeadersDiffValidator (line 32) | public class ComponentsHeadersDiffValidator
method ComponentsHeadersDiffValidator (line 36) | public ComponentsHeadersDiffValidator(List<HeaderDiffValidator> diffVa...
method getMapProperty (line 40) | @Override
method getMapPropertyName (line 45) | @Override
method getValueType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/components/ComponentsLinksDiffValidator.java
class ComponentsLinksDiffValidator (line 32) | public class ComponentsLinksDiffValidator
method ComponentsLinksDiffValidator (line 36) | public ComponentsLinksDiffValidator(List<LinkDiffValidator> diffValida...
method getMapProperty (line 40) | @Override
method getMapPropertyName (line 45) | @Override
method getValueType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/components/ComponentsParametersDiffValidator.java
class ComponentsParametersDiffValidator (line 32) | public class ComponentsParametersDiffValidator
method ComponentsParametersDiffValidator (line 36) | public ComponentsParametersDiffValidator(List<ParameterDiffValidator> ...
method getMapProperty (line 40) | @Override
method getMapPropertyName (line 45) | @Override
method getValueType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/components/ComponentsRequestBodiesDiffValidator.java
class ComponentsRequestBodiesDiffValidator (line 32) | public class ComponentsRequestBodiesDiffValidator
method ComponentsRequestBodiesDiffValidator (line 36) | public ComponentsRequestBodiesDiffValidator(List<RequestBodyDiffValida...
method getMapProperty (line 40) | @Override
method getMapPropertyName (line 45) | @Override
method getValueType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/components/ComponentsResponsesDiffValidator.java
class ComponentsResponsesDiffValidator (line 32) | public class ComponentsResponsesDiffValidator
method ComponentsResponsesDiffValidator (line 36) | public ComponentsResponsesDiffValidator(List<ResponseDiffValidator> di...
method getMapProperty (line 40) | @Override
method getMapPropertyName (line 45) | @Override
method getValueType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/encoding/EncodingHeadersDiffValidator.java
class EncodingHeadersDiffValidator (line 32) | public class EncodingHeadersDiffValidator
method EncodingHeadersDiffValidator (line 36) | public EncodingHeadersDiffValidator(List<HeaderDiffValidator> diffVali...
method getMapProperty (line 40) | @Override
method getMapPropertyName (line 45) | @Override
method getValueType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/header/HeaderSchemaDiffValidator.java
class HeaderSchemaDiffValidator (line 31) | public class HeaderSchemaDiffValidator
method HeaderSchemaDiffValidator (line 35) | public HeaderSchemaDiffValidator(List<SchemaDiffValidator> oasObjectVa...
method getPropertyObject (line 39) | @Override
method getPropertyName (line 44) | @Override
method getPropertyType (line 49) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/mediatype/MediaTypeEncodingDiffValidator.java
class MediaTypeEncodingDiffValidator (line 31) | public class MediaTypeEncodingDiffValidator
method MediaTypeEncodingDiffValidator (line 35) | public MediaTypeEncodingDiffValidator(List<EncodingDiffValidator> diff...
method validate (line 39) | @Override
method getMapProperty (line 49) | @Override
method getMapPropertyName (line 54) | @Override
method getValueType (line 59) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/mediatype/MediaTypeSchemaDiffValidator.java
class MediaTypeSchemaDiffValidator (line 31) | public class MediaTypeSchemaDiffValidator
method MediaTypeSchemaDiffValidator (line 35) | public MediaTypeSchemaDiffValidator(List<SchemaDiffValidator> oasObjec...
method getPropertyObject (line 39) | @Override
method getPropertyName (line 44) | @Override
method getPropertyType (line 49) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/openapi/OpenApiComponentsDiffValidator.java
class OpenApiComponentsDiffValidator (line 31) | public class OpenApiComponentsDiffValidator
method OpenApiComponentsDiffValidator (line 35) | public OpenApiComponentsDiffValidator(
method getPropertyObject (line 40) | @Override
method getPropertyName (line 45) | @Override
method getPropertyType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/openapi/OpenApiInfoDiffValidator.java
class OpenApiInfoDiffValidator (line 31) | public class OpenApiInfoDiffValidator
method OpenApiInfoDiffValidator (line 35) | public OpenApiInfoDiffValidator(List<InfoDiffValidator> pathsDiffValid...
method getPropertyObject (line 39) | @Override
method getPropertyName (line 44) | @Override
method getPropertyType (line 49) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/openapi/OpenApiPathsDiffValidator.java
class OpenApiPathsDiffValidator (line 31) | public class OpenApiPathsDiffValidator
method OpenApiPathsDiffValidator (line 35) | public OpenApiPathsDiffValidator(List<PathsDiffValidator> pathsDiffVal...
method getPropertyObject (line 39) | @Override
method getPropertyName (line 44) | @Override
method getPropertyType (line 49) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/openapi/OpenApiServersDiffValidator.java
class OpenApiServersDiffValidator (line 31) | public class OpenApiServersDiffValidator
method OpenApiServersDiffValidator (line 35) | public OpenApiServersDiffValidator(List<ServerDiffValidator> diffValid...
method getListProperty (line 39) | @Override
method getListPropertyName (line 44) | @Override
method getElementType (line 49) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/openapi/OpenApiTagsDiffValidator.java
class OpenApiTagsDiffValidator (line 31) | public class OpenApiTagsDiffValidator
method OpenApiTagsDiffValidator (line 35) | public OpenApiTagsDiffValidator(List<TagDiffValidator> diffValidators) {
method getListProperty (line 39) | @Override
method getListPropertyName (line 44) | @Override
method getElementType (line 49) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/operation/OperationParametersDiffValidator.java
class OperationParametersDiffValidator (line 31) | public class OperationParametersDiffValidator
method OperationParametersDiffValidator (line 35) | public OperationParametersDiffValidator(List<ParameterDiffValidator> p...
method getListProperty (line 39) | @Override
method getListPropertyName (line 44) | protected String getListPropertyName() {
method getElementType (line 48) | protected OasObjectType getElementType() {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/operation/OperationRequestBodyDiffValidator.java
class OperationRequestBodyDiffValidator (line 31) | public class OperationRequestBodyDiffValidator
method OperationRequestBodyDiffValidator (line 35) | public OperationRequestBodyDiffValidator(
method getPropertyObject (line 40) | @Override
method getPropertyName (line 45) | @Override
method getPropertyType (line 50) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/operation/OperationResponsesDiffValidator.java
class OperationResponsesDiffValidator (line 31) | public class OperationResponsesDiffValidator
method OperationResponsesDiffValidator (line 35) | public OperationResponsesDiffValidator(List<ResponsesDiffValidator> re...
method getPropertyObject (line 39) | @Override
method getPropertyName (line 44) | @Override
method getPropertyType (line 49) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/parameter/ParameterContentDiffValidator.java
class ParameterContentDiffValidator (line 32) | public class ParameterContentDiffValidator
method ParameterContentDiffValidator (line 36) | public ParameterContentDiffValidator(List<MediaTypeDiffValidator> medi...
method validate (line 40) | @Override
method getMapProperty (line 53) | @Override
method getMapPropertyName (line 58) | @Override
method getValueType (line 63) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/parameter/ParameterSchemaDiffValidator.java
class ParameterSchemaDiffValidator (line 31) | public class ParameterSchemaDiffValidator
method ParameterSchemaDiffValidator (line 35) | public ParameterSchemaDiffValidator(List<SchemaDiffValidator> schemaDi...
method validate (line 39) | @Override
method getPropertyObject (line 52) | @Override
method getPropertyName (line 57) | @Override
method getPropertyType (line 62) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/pathitem/PathItemOperationsDiffValidator.java
class PathItemOperationsDiffValidator (line 33) | public class PathItemOperationsDiffValidator
method PathItemOperationsDiffValidator (line 39) | public PathItemOperationsDiffValidator(List<OperationDiffValidator> op...
method validateCompare (line 43) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/pathitem/PathItemParametersDiffValidator.java
class PathItemParametersDiffValidator (line 35) | public class PathItemParametersDiffValidator
method PathItemParametersDiffValidator (line 39) | public PathItemParametersDiffValidator(List<ParameterDiffValidator> pa...
method getListProperty (line 43) | @Override
method getListPropertyName (line 48) | @Override
method getElementType (line 53) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/paths/PathsPathItemsDiffValidator.java
class PathsPathItemsDiffValidator (line 32) | public class PathsPathItemsDiffValidator
method PathsPathItemsDiffValidator (line 38) | public PathsPathItemsDiffValidator(List<PathItemDiffValidator> pathIte...
method validateCompare (line 42) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/requestbody/RequestBodyContentDiffValidator.java
class RequestBodyContentDiffValidator (line 32) | public class RequestBodyContentDiffValidator
method RequestBodyContentDiffValidator (line 36) | public RequestBodyContentDiffValidator(List<MediaTypeDiffValidator> me...
method validate (line 40) | @Override
method getMapProperty (line 53) | @Override
method getMapPropertyName (line 58) | @Override
method getValueType (line 63) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/response/ResponseContentDiffValidator.java
class ResponseContentDiffValidator (line 32) | public class ResponseContentDiffValidator
method ResponseContentDiffValidator (line 36) | public ResponseContentDiffValidator(List<MediaTypeDiffValidator> media...
method validate (line 40) | @Override
method getMapProperty (line 53) | @Override
method getMapPropertyName (line 58) | @Override
method getValueType (line 63) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/response/ResponseHeadersDiffValidator.java
class ResponseHeadersDiffValidator (line 33) | public class ResponseHeadersDiffValidator
method ResponseHeadersDiffValidator (line 37) | public ResponseHeadersDiffValidator(List<HeaderDiffValidator> valueVal...
method validate (line 41) | @Override
method getMapProperty (line 54) | @Override
method getMapPropertyName (line 59) | @Override
method getValueType (line 64) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/responses/ResponsesResponsesDiffValidator.java
class ResponsesResponsesDiffValidator (line 32) | public class ResponsesResponsesDiffValidator
method ResponsesResponsesDiffValidator (line 38) | public ResponsesResponsesDiffValidator(List<ResponseDiffValidator> res...
method validateCompare (line 42) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/schema/SchemaDiffValidatorEngine.java
class SchemaDiffValidatorEngine (line 38) | public class SchemaDiffValidatorEngine
method SchemaDiffValidatorEngine (line 46) | public SchemaDiffValidatorEngine(
method validateAdd (line 55) | @Override
method validateDel (line 67) | @Override
method validateCompare (line 79) | @Override
method validateCompareOrdinary (line 106) | private List<OasDiffViolation> validateCompareOrdinary(OasDiffValidati...
method validateCompareArray (line 123) | private List<OasDiffViolation> validateCompareArray(OasDiffValidationC...
method validateCompareComposed (line 152) | private List<OasDiffViolation> validateCompareComposed(OasDiffValidati...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/util/ChangeRangeCheckUtils.java
class ChangeRangeCheckUtils (line 23) | public class ChangeRangeCheckUtils {
method isNotViolated (line 25) | public static boolean isNotViolated(Object left, Object right, List<Ob...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/util/OasDiffValidationContextUtils.java
class OasDiffValidationContextUtils (line 22) | public class OasDiffValidationContextUtils {
method enterRequestBody (line 28) | public static void enterRequestBody(OasDiffValidationContext context) {
method leaveRequestBody (line 32) | public static void leaveRequestBody(OasDiffValidationContext context) {
method enterResponse (line 36) | public static void enterResponse(OasDiffValidationContext context) {
method leaveResponse (line 40) | public static void leaveResponse(OasDiffValidationContext context) {
method enterParameter (line 44) | public static void enterParameter(OasDiffValidationContext context) {
method leaveParameter (line 48) | public static void leaveParameter(OasDiffValidationContext context) {
method isInRequestBody (line 52) | public static boolean isInRequestBody(OasDiffValidationContext context) {
method isInResponse (line 56) | public static boolean isInResponse(OasDiffValidationContext context) {
method isInParameter (line 60) | public static boolean isInParameter(OasDiffValidationContext context) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/util/OasObjectDiffValidatorUtils.java
class OasObjectDiffValidatorUtils (line 35) | public abstract class OasObjectDiffValidatorUtils {
method OasObjectDiffValidatorUtils (line 37) | private OasObjectDiffValidatorUtils() {
method assertNullGood (line 50) | public static <T> void assertNullGood(
method doDiffValidateProperty (line 71) | public static <T> List<OasDiffViolation> doDiffValidateProperty(
method doDiffValidateListProperty (line 105) | public static <T> List<OasDiffViolation> doDiffValidateListProperty(
method indexOf (line 163) | private static <T> int indexOf(List<T> elementList, Object searchKey, ...
method doDiffValidateMapProperty (line 186) | public static <T> List<OasDiffViolation> doDiffValidateMapProperty(
method assertOwnerLocationNotNull (line 242) | private static void assertOwnerLocationNotNull(
method assertNullConsistent (line 253) | private static <T> void assertNullConsistent(
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/util/ParameterUtils.java
class ParameterUtils (line 22) | public abstract class ParameterUtils {
method getKeyString (line 24) | public static String getKeyString(Parameter parameter) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/StringCaseUtils.java
class StringCaseUtils (line 24) | public abstract class StringCaseUtils {
method StringCaseUtils (line 32) | private StringCaseUtils() {
method isLowerCamelCase (line 36) | public static boolean isLowerCamelCase(String string) {
method isUpperCamelCase (line 43) | public static boolean isUpperCamelCase(String string) {
method isUpperHyphenCase (line 50) | public static boolean isUpperHyphenCase(String string) {
method isMatchCase (line 57) | public static boolean isMatchCase(String expectedCase, String string) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/util/SyntaxChecker.java
class SyntaxChecker (line 28) | public class SyntaxChecker {
method SyntaxChecker (line 30) | private SyntaxChecker() {
method check (line 34) | public static List<String> check(String oasSpecContent) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/CallbackValidator.java
type CallbackValidator (line 25) | public interface CallbackValidator extends OasObjectValidator<Callback> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ComponentsValidator.java
type ComponentsValidator (line 25) | public interface ComponentsValidator extends OasObjectValidator<Componen...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/DefaultOasSpecValidator.java
class DefaultOasSpecValidator (line 27) | public class DefaultOasSpecValidator implements OasSpecValidator {
method DefaultOasSpecValidator (line 31) | public DefaultOasSpecValidator(List<OpenApiValidator> openApiValidator...
method validate (line 35) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/EncodingValidator.java
type EncodingValidator (line 25) | public interface EncodingValidator extends OasObjectValidator<Encoding> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ExampleValidator.java
type ExampleValidator (line 25) | public interface ExampleValidator extends OasObjectValidator<Example> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/HeaderValidator.java
type HeaderValidator (line 25) | public interface HeaderValidator extends OasObjectValidator<Header> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/InfoValidator.java
type InfoValidator (line 25) | public interface InfoValidator extends OasObjectValidator<Info> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/LinkValidator.java
type LinkValidator (line 25) | public interface LinkValidator extends OasObjectValidator<Link> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ListPropertyRequiredValidator.java
class ListPropertyRequiredValidator (line 30) | public abstract class ListPropertyRequiredValidator<T, P> implements Oas...
method validate (line 32) | @Override
method get$ref (line 49) | protected abstract String get$ref(T oasObject);
method getListProperty (line 51) | protected abstract List<P> getListProperty(T oasObject);
method getListPropertyName (line 53) | protected abstract String getListPropertyName();
method getElementType (line 55) | protected abstract OasObjectType getElementType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ListPropertyValidator.java
class ListPropertyValidator (line 29) | public abstract class ListPropertyValidator<T, P> implements OasObjectVa...
method ListPropertyValidator (line 33) | protected ListPropertyValidator(List<? extends OasObjectValidator<P>> ...
method validate (line 37) | @Override
method get$ref (line 55) | protected abstract String get$ref(T oasObject);
method getListProperty (line 57) | protected abstract List<P> getListProperty(T oasObject);
method getListPropertyName (line 59) | protected abstract String getListPropertyName();
method getElementType (line 61) | protected abstract OasObjectType getElementType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/MapPropertyKeysValidator.java
class MapPropertyKeysValidator (line 31) | public abstract class MapPropertyKeysValidator<T> implements OasObjectVa...
method MapPropertyKeysValidator (line 37) | public MapPropertyKeysValidator(Predicate<String> keyPredicate,
method validate (line 43) | @Override
method get$ref (line 61) | protected abstract String get$ref(T oasObject);
method getMapProperty (line 63) | protected abstract Map<String, ?> getMapProperty(T oasObject);
method getMapPropertyName (line 65) | protected abstract String getMapPropertyName();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/MapPropertyValuesValidator.java
class MapPropertyValuesValidator (line 30) | public abstract class MapPropertyValuesValidator<T, P> implements OasObj...
method MapPropertyValuesValidator (line 34) | protected MapPropertyValuesValidator(List<? extends OasObjectValidator...
method validate (line 38) | @Override
method get$ref (line 56) | protected abstract String get$ref(T oasObject);
method getMapProperty (line 58) | protected abstract Map<String, P> getMapProperty(T oasObject);
method getMapPropertyName (line 60) | protected abstract String getMapPropertyName();
method getValueType (line 62) | protected abstract OasObjectType getValueType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/MediaTypeValidator.java
type MediaTypeValidator (line 25) | public interface MediaTypeValidator extends OasObjectValidator<MediaType> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/OasObjectValidator.java
type OasObjectValidator (line 27) | public interface OasObjectValidator<T> {
method validate (line 35) | List<OasViolation> validate(OasValidationContext context, OasObjectPro...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/OasSpecValidator.java
type OasSpecValidator (line 27) | public interface OasSpecValidator {
method validate (line 29) | List<OasViolation> validate(OasValidationContext context, OpenAPI open...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/OasValidationContext.java
class OasValidationContext (line 28) | public class OasValidationContext {
method OasValidationContext (line 34) | public OasValidationContext(OpenAPI openAPI) {
method getOpenAPI (line 38) | public OpenAPI getOpenAPI() {
method getAttribute (line 42) | public <T> T getAttribute(String name) {
method setAttribute (line 46) | public <T> void setAttribute(String name, T attr) {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/OasViolation.java
class OasViolation (line 28) | public class OasViolation {
method OasViolation (line 40) | public OasViolation(OasObjectPropertyLocation location, String error) {
method getLocation (line 45) | public OasObjectPropertyLocation getLocation() {
method getError (line 49) | public String getError() {
method toString (line 53) | @Override
method equals (line 61) | @Override
method hashCode (line 70) | @Override
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ObjectPropertyRequiredValidator.java
class ObjectPropertyRequiredValidator (line 35) | public abstract class ObjectPropertyRequiredValidator<T, P> implements O...
method validate (line 37) | @Override
method get$ref (line 56) | protected abstract String get$ref(T oasObject);
method getPropertyObject (line 58) | protected abstract P getPropertyObject(T oasObject);
method getPropertyName (line 60) | protected abstract String getPropertyName();
method getPropertyType (line 62) | protected abstract OasObjectType getPropertyType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ObjectPropertyValidator.java
class ObjectPropertyValidator (line 35) | public abstract class ObjectPropertyValidator<T, P> implements OasObject...
method ObjectPropertyValidator (line 39) | protected ObjectPropertyValidator(List<? extends OasObjectValidator<P>...
method validate (line 43) | @Override
method get$ref (line 59) | protected abstract String get$ref(T oasObject);
method getPropertyObject (line 61) | protected abstract P getPropertyObject(T oasObject);
method getPropertyName (line 63) | protected abstract String getPropertyName();
method getPropertyType (line 65) | protected abstract OasObjectType getPropertyType();
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/OpenApiValidator.java
type OpenApiValidator (line 25) | public interface OpenApiValidator extends OasObjectValidator<OpenAPI> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/OperationValidator.java
type OperationValidator (line 25) | public interface OperationValidator extends OasObjectValidator<Operation> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ParameterValidator.java
type ParameterValidator (line 25) | public interface ParameterValidator extends OasObjectValidator<Parameter> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/PathItemValidator.java
type PathItemValidator (line 25) | public interface PathItemValidator extends OasObjectValidator<PathItem> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/PathsValidator.java
type PathsValidator (line 25) | public interface PathsValidator extends OasObjectValidator<Paths> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/RequestBodyValidator.java
type RequestBodyValidator (line 25) | public interface RequestBodyValidator extends OasObjectValidator<Request...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ResponseValidator.java
type ResponseValidator (line 25) | public interface ResponseValidator extends OasObjectValidator<ApiRespons...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ResponsesValidator.java
type ResponsesValidator (line 25) | public interface ResponsesValidator extends OasObjectValidator<ApiRespon...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/SchemaValidator.java
type SchemaValidator (line 25) | public interface SchemaValidator extends OasObjectValidator<Schema> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/SecuritySchemeValidator.java
type SecuritySchemeValidator (line 25) | public interface SecuritySchemeValidator extends OasObjectValidator<Secu...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ServerValidator.java
type ServerValidator (line 25) | public interface ServerValidator extends OasObjectValidator<Server> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/TagValidator.java
type TagValidator (line 25) | public interface TagValidator extends OasObjectValidator<Tag> {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/api/ViolationMessages.java
class ViolationMessages (line 20) | public abstract class ViolationMessages {
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/CallbackValidatorFactory.java
type CallbackValidatorFactory (line 22) | public interface CallbackValidatorFactory extends OasObjectValidatorFact...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/ComponentsValidatorFactory.java
type ComponentsValidatorFactory (line 22) | public interface ComponentsValidatorFactory extends OasObjectValidatorFa...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/EncodingValidatorFactory.java
type EncodingValidatorFactory (line 22) | public interface EncodingValidatorFactory extends OasObjectValidatorFact...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/ExampleValidatorFactory.java
type ExampleValidatorFactory (line 22) | public interface ExampleValidatorFactory extends OasObjectValidatorFacto...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/HeaderValidatorFactory.java
type HeaderValidatorFactory (line 22) | public interface HeaderValidatorFactory extends OasObjectValidatorFactor...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/InfoValidatorFactory.java
type InfoValidatorFactory (line 22) | public interface InfoValidatorFactory extends OasObjectValidatorFactory<...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/LinkValidatorFactory.java
type LinkValidatorFactory (line 22) | public interface LinkValidatorFactory extends OasObjectValidatorFactory<...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/MediaTypeValidatorFactory.java
type MediaTypeValidatorFactory (line 22) | public interface MediaTypeValidatorFactory extends OasObjectValidatorFac...
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasObjectValidatorFactory.java
type OasObjectValidatorFactory (line 25) | public interface OasObjectValidatorFactory<T extends OasObjectValidator> {
method create (line 27) | List<T> create(FactoryOptions options);
FILE: oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/factory/OasSpecValidatorFactory.java
type OasSpecValidatorFactory (line 23) | p
Condensed preview — 1059 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,795K chars).
[
{
"path": ".gitignore",
"chars": 720,
"preview": "# Output Directory\ntarget/\n\n# C pre-compile\n*.gch\n*.pch\n\n# C compile\n*.a\n*.o\n*.ko\n*.la\n*.lo\n*.obj\n*.elf\n*.so\n*.so.*\n*.dy"
},
{
"path": "LICENSE",
"chars": 12105,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "NOTICE",
"chars": 183,
"preview": "Apache ServiceComb Toolkit\nCopyright 2019-present The Apache Software Foundation\n\nThis product includes software develop"
},
{
"path": "README-ZH.md",
"chars": 9968,
"preview": "# Toolkit | [English](./README.md) []"
},
{
"path": "README.md",
"chars": 14975,
"preview": "# Toolkit | [中文](./README-ZH.md) [](h"
},
{
"path": "cli/pom.xml",
"chars": 4040,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "cli/scripts/cli.cmd",
"chars": 2037,
"preview": "@REM Licensed to the Apache Software Foundation (ASF) under one or more\r\n@REM contributor license agreements. See the N"
},
{
"path": "cli/scripts/cli.sh",
"chars": 1803,
"preview": "#!/bin/bash\n## ---------------------------------------------------------------------------\n## Licensed to the Apache Sof"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibility.java",
"chars": 1138,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibilityAbbr.java",
"chars": 1140,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckCompatibilityBase.java",
"chars": 4769,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyle.java",
"chars": 1043,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleAbbr.java",
"chars": 1035,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/CheckStyleBase.java",
"chars": 4992,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/CodeGenerate.java",
"chars": 6441,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/DocGenerate.java",
"chars": 4534,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/ToolkitMain.java",
"chars": 2436,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/java/org/apache/servicecomb/toolkit/cli/ValidationFailedException.java",
"chars": 986,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/main/resources/application.properties",
"chars": 812,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "cli/src/main/resources/log4j2.xml",
"chars": 1297,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "cli/src/test/java/org/apache/servicecomb/toolkit/cli/CliTest.java",
"chars": 4964,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "cli/src/test/resources/contracts/CalculateEndpoint.yaml",
"chars": 1884,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "cli/src/test/resources/contracts/HelloEndPoint.yaml",
"chars": 2152,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "cli/src/test/resources/contracts/pojo/CodeFirstHelloEndPoint.yaml",
"chars": 2181,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "cli/src/test/resources/log4j2-test.xml",
"chars": 1064,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "cli/src/test/resources/oas/compatibility-left.yaml",
"chars": 1747,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "cli/src/test/resources/oas/compatibility-right.yaml",
"chars": 1822,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "cli/src/test/resources/oas/style-rules.properties",
"chars": 2448,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "cli/src/test/resources/oas/style.yaml",
"chars": 1670,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "cli/src/test/resources/swagger.yaml",
"chars": 17541,
"preview": "---\nswagger: \"2.0\"\ninfo:\n description: \"This is a sample server Petstore server. You can find out more about\\\n \\ Sw"
},
{
"path": "codegen/pom.xml",
"chars": 3105,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractConsumerDirectoryStrategy.java",
"chars": 1738,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractDirectoryStrategy.java",
"chars": 1821,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractJavaCodegenExt.java",
"chars": 3777,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractMultiDirectoryStrategy.java",
"chars": 1771,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/AbstractProviderDirectoryStrategy.java",
"chars": 1314,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ConsumerDirectoryStrategy.java",
"chars": 3439,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DefaultCodeGenerator.java",
"chars": 1761,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DefaultDirectoryStrategy.java",
"chars": 5711,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/DirectoryStrategy.java",
"chars": 1107,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GeneratorExternalConfigConstant.java",
"chars": 1572,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GetGenericClassTypeLambda.java",
"chars": 1415,
"preview": "/*\r\n * Licensed to the Apache Software Foundation (ASF) under one or more\r\n * contributor license agreements. See the N"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/GetRelativeBasePathLambda.java",
"chars": 1387,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/MicroServiceFramework.java",
"chars": 955,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/MultiContractGenerator.java",
"chars": 3273,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ProjectMetaConstant.java",
"chars": 1078,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ProviderDirectoryStrategy.java",
"chars": 2610,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegen.java",
"chars": 7131,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ServiceType.java",
"chars": 1109,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/ShowBasePathLambda.java",
"chars": 1441,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudCodegen.java",
"chars": 5610,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudConsumerDirectoryStrategy.java",
"chars": 2688,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudMultiDirectoryStrategy.java",
"chars": 4514,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/java/org/apache/servicecomb/toolkit/codegen/SpringCloudProviderDirectoryStrategy.java",
"chars": 2241,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/main/resources/META-INF/services/org.apache.servicecomb.toolkit.CodeGenerator",
"chars": 845,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "codegen/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig",
"chars": 901,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/Application.mustache",
"chars": 212,
"preview": "package {{mainClassPackage}};\n\nimport org.apache.servicecomb.foundation.common.utils.BeanUtils;\n\npublic class Applicatio"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/apiConsumer.mustache",
"chars": 2530,
"preview": "package {{apiPackage}};\n\nimport static org.springframework.http.MediaType.*;\nimport java.util.List;\nimport java.util.Map"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/bodyParamsConsumer.mustache",
"chars": 61,
"preview": "{{#isBodyParam}} {{{dataType}}} {{paramName}}{{/isBodyParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/formParamsConsumer.mustache",
"chars": 179,
"preview": "{{#isFormParam}}{{^isFile}}{{{dataType}}} {{paramName}}{{/isFile}}{{#isFile}} {{#isPOJO}}File{{/isPOJO}}{{^isPOJO}}Multi"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/headerParamsConsumer.mustache",
"chars": 65,
"preview": "{{#isHeaderParam}} {{{dataType}}} {{paramName}}{{/isHeaderParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/microservice.mustache",
"chars": 619,
"preview": "#Indicates an application name\nAPPLICATION_ID: {{applicationId}}\nservice_description:\n#Indicates a microservice name\n#Th"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/pathParamsConsumer.mustache",
"chars": 61,
"preview": "{{#isPathParam}} {{{dataType}}} {{paramName}}{{/isPathParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/pojo/apiConsumer.mustache",
"chars": 1045,
"preview": "package {{apiPackage}};\n\nimport java.util.List;\n{{#imports}}import {{import}};\n{{/imports}}\nimport org.apache.servicecom"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/pojo/apiInterface.mustache",
"chars": 437,
"preview": "package {{apiPackage}};\n\nimport java.util.List;\nimport java.util.Map;\nimport java.util.HashMap;\nimport java.io.File;\n{{#"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/pom.mustache",
"chars": 3919,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/queryParamsConsumer.mustache",
"chars": 62,
"preview": "{{#isQueryParam}}{{{dataType}}} {{paramName}}{{/isQueryParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/springboot/Application.mustache",
"chars": 416,
"preview": "package {{mainClassPackage}};\n\nimport org.apache.servicecomb.springboot.starter.provider.EnableServiceComb;\nimport org.s"
},
{
"path": "codegen/src/main/resources/ServiceComb/consumer/springboot/pom.mustache",
"chars": 3965,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/enumClass.mustache",
"chars": 1462,
"preview": "public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} {\n{"
},
{
"path": "codegen/src/main/resources/ServiceComb/enumOuterClass.mustache",
"chars": 1448,
"preview": "public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} {"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/Application.mustache",
"chars": 212,
"preview": "package {{mainClassPackage}};\n\nimport org.apache.servicecomb.foundation.common.utils.BeanUtils;\n\npublic class Applicatio"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/api.mustache",
"chars": 1490,
"preview": "package {{apiPackage}};\n\nimport java.util.Map;\nimport java.util.List;\nimport java.io.InputStream;\nimport javax.servlet.S"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/bodyParams.mustache",
"chars": 61,
"preview": "{{#isBodyParam}} {{{dataType}}} {{paramName}}{{/isBodyParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/formParams.mustache",
"chars": 417,
"preview": "{{#isFormParam}}{{^isFile}} {{#vendorExtensions.x-multipart}} @FormDataParam(\"{{baseName}}\") {{{dataType}}} {{paramName"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/headerParams.mustache",
"chars": 93,
"preview": "{{#isHeaderParam}}@HeaderParam(\"{{baseName}}\") {{{dataType}}} {{paramName}}{{/isHeaderParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/pathParams.mustache",
"chars": 88,
"preview": "{{#isPathParam}}@PathParam(\"{{paramName}}\") {{{dataType}}} {{paramName}}{{/isPathParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/pom.mustache",
"chars": 3795,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/JAX-RS/queryParams.mustache",
"chars": 91,
"preview": "{{#isQueryParam}} @QueryParam(\"{{baseName}}\") {{{dataType}}} {{paramName}}{{/isQueryParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/Application.mustache",
"chars": 212,
"preview": "package {{mainClassPackage}};\n\nimport org.apache.servicecomb.foundation.common.utils.BeanUtils;\n\npublic class Applicatio"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/api.mustache",
"chars": 1279,
"preview": "package {{apiPackage}};\n\nimport static org.springframework.http.MediaType.*;\nimport java.util.List;\nimport java.util.Map"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/bodyParams.mustache",
"chars": 61,
"preview": "{{#isBodyParam}} {{{dataType}}} {{paramName}}{{/isBodyParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/formParams.mustache",
"chars": 122,
"preview": "{{#isFormParam}}{{^isFile}}{{{dataType}}} {{paramName}}{{/isFile}}{{#isFile}} File {{baseName}}{{/isFile}}{{/isFormParam"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/headerParams.mustache",
"chars": 65,
"preview": "{{#isHeaderParam}} {{{dataType}}} {{paramName}}{{/isHeaderParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/pathParams.mustache",
"chars": 61,
"preview": "{{#isPathParam}} {{{dataType}}} {{paramName}}{{/isPathParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/pom.mustache",
"chars": 3797,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/POJO/queryParams.mustache",
"chars": 63,
"preview": "{{#isQueryParam}} {{{dataType}}} {{paramName}}{{/isQueryParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/Application.mustache",
"chars": 416,
"preview": "package {{mainClassPackage}};\n\nimport org.apache.servicecomb.springboot.starter.provider.EnableServiceComb;\nimport org.s"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/api.mustache",
"chars": 1107,
"preview": "package {{apiPackage}};\n\nimport static org.springframework.http.MediaType.*;\nimport java.util.List;\nimport java.util.Map"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/bodyParams.mustache",
"chars": 73,
"preview": "{{#isBodyParam}}@RequestBody {{{dataType}}} {{paramName}}{{/isBodyParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/formParams.mustache",
"chars": 271,
"preview": "{{#isFormParam}}{{^isFile}}@RequestPart(value=\"{{paramName}}\"{{#required}}, required=true{{/required}}{{^required}}, req"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/headerParams.mustache",
"chars": 174,
"preview": "{{#isHeaderParam}}@RequestHeader(value=\"{{paramName}}\", required={{#required}}true{{/required}}{{^required}}false{{/requ"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/operationMethod.mustache",
"chars": 728,
"preview": "{{#operation}}\n\n @RequestMapping(value = \"{{path}}\", {{#hasProduces}}produces = { {{#produces}}\"{{mediaType}}\"{{#hasMor"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/pathParams.mustache",
"chars": 91,
"preview": "{{#isPathParam}}@PathVariable(\"{{paramName}}\") {{{dataType}}} {{paramName}}{{/isPathParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/pom.mustache",
"chars": 3712,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringBoot/queryParams.mustache",
"chars": 257,
"preview": "{{#isQueryParam}}@RequestParam(value = \"{{paramName}}\"{{#required}}, required = true{{/required}}{{^required}}, required"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/Application.mustache",
"chars": 212,
"preview": "package {{mainClassPackage}};\n\nimport org.apache.servicecomb.foundation.common.utils.BeanUtils;\n\npublic class Applicatio"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/api.mustache",
"chars": 1785,
"preview": "package {{apiPackage}};\n\nimport static org.springframework.http.MediaType.*;\nimport java.util.List;\nimport java.util.Map"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/bodyParams.mustache",
"chars": 73,
"preview": "{{#isBodyParam}}@RequestBody {{{dataType}}} {{paramName}}{{/isBodyParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/formParams.mustache",
"chars": 270,
"preview": "{{#isFormParam}}{{^isFile}}@RequestPart(value=\"{{baseName}}\"{{#required}}, required=true{{/required}}{{^required}}, requ"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/headerParams.mustache",
"chars": 174,
"preview": "{{#isHeaderParam}}@RequestHeader(value=\"{{paramName}}\", required={{#required}}true{{/required}}{{^required}}false{{/requ"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/pathParams.mustache",
"chars": 91,
"preview": "{{#isPathParam}}@PathVariable(\"{{paramName}}\") {{{dataType}}} {{paramName}}{{/isPathParam}}"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/pom.mustache",
"chars": 3362,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/libraries/SpringMVC/queryParams.mustache",
"chars": 257,
"preview": "{{#isQueryParam}}@RequestParam(value = \"{{paramName}}\"{{#required}}, required = true{{/required}}{{^required}}, required"
},
{
"path": "codegen/src/main/resources/ServiceComb/log4j2.mustache",
"chars": 725,
"preview": "<!--this is sample configuration, please modify as your wish-->\n<configuration>\n <Properties>\n <Property name=\"log_p"
},
{
"path": "codegen/src/main/resources/ServiceComb/model/model.mustache",
"chars": 252,
"preview": "package {{package}};\n\n{{#imports}}import {{import}};\n{{/imports}}\n{{#withXml}}\nimport javax.xml.bind.annotation.*;\n{{/wi"
},
{
"path": "codegen/src/main/resources/ServiceComb/model/pom.mustache",
"chars": 1189,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/pojo.mustache",
"chars": 2173,
"preview": "{{#useBeanValidation}}@Validated{{/useBeanValidation}}\n{{#discriminator}}{{/discriminator}}\npublic class {{classname}} {"
},
{
"path": "codegen/src/main/resources/ServiceComb/project/pom.mustache",
"chars": 1141,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/ServiceComb/provider/microservice.mustache",
"chars": 825,
"preview": "#Indicates an application name\nAPPLICATION_ID: {{applicationId}}\nservice_description:\n#Indicates a microservice name\n#Th"
},
{
"path": "codegen/src/main/resources/ServiceComb/returnTypes.mustache",
"chars": 223,
"preview": "{{#returnContainer}}{{#isMapContainer}}Map<String, {{{returnType}}}>{{/isMapContainer}}{{#isListContainer}}List<{{return"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/Application.mustache",
"chars": 601,
"preview": "package {{mainClassPackage}};\n\nimport org.springframework.boot.WebApplicationType;\nimport org.springframework.boot.autoc"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/apiConsumer.mustache",
"chars": 1797,
"preview": "package {{apiPackage}};\n\nimport static org.springframework.http.MediaType.*;\nimport java.util.List;\nimport java.util.Map"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/applicationYml.mustache",
"chars": 209,
"preview": "spring:\n application:\n name: {{consumerServiceId}}\nserver:\n port: 0\neureka:\n instance:\n hostname: localhost\n c"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/bodyParamsConsumer.mustache",
"chars": 73,
"preview": "{{#isBodyParam}}@RequestBody {{{dataType}}} {{paramName}}{{/isBodyParam}}"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/formParamsConsumer.mustache",
"chars": 270,
"preview": "{{#isFormParam}}{{^isFile}}@RequestPart(value=\"{{baseName}}\"{{#required}}, required=true{{/required}}{{^required}}, requ"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/headerParamsConsumer.mustache",
"chars": 174,
"preview": "{{#isHeaderParam}}@RequestHeader(value=\"{{paramName}}\", required={{#required}}true{{/required}}{{^required}}false{{/requ"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/pathParamsConsumer.mustache",
"chars": 91,
"preview": "{{#isPathParam}}@PathVariable(\"{{paramName}}\") {{{dataType}}} {{paramName}}{{/isPathParam}}"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/pom.mustache",
"chars": 3421,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/SpringCloud/consumer/openfeign/queryParamsConsumer.mustache",
"chars": 257,
"preview": "{{#isQueryParam}}@RequestParam(value = \"{{paramName}}\"{{#required}}, required = true{{/required}}{{^required}}, required"
},
{
"path": "codegen/src/main/resources/SpringCloud/model/enumClass.mustache",
"chars": 1462,
"preview": "public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} {\n{"
},
{
"path": "codegen/src/main/resources/SpringCloud/model/enumOuterClass.mustache",
"chars": 1448,
"preview": "public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{{classname}}}{{/datatypeWithEnum}} {"
},
{
"path": "codegen/src/main/resources/SpringCloud/model/model.mustache",
"chars": 264,
"preview": "package {{package}};\n\n{{#imports}}import {{import}};\n{{/imports}}\n{{#withXml}}\nimport javax.xml.bind.annotation.*;\n{{/wi"
},
{
"path": "codegen/src/main/resources/SpringCloud/model/pojo.mustache",
"chars": 2111,
"preview": "{{#useBeanValidation}}@Validated{{/useBeanValidation}}\n{{#discriminator}}{{/discriminator}}\npublic class {{classname}} {"
},
{
"path": "codegen/src/main/resources/SpringCloud/model/pom.mustache",
"chars": 999,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/SpringCloud/project/pom.mustache",
"chars": 1141,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:schemaLoc"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/Application.mustache",
"chars": 303,
"preview": "package {{mainClassPackage}};\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoco"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/api.mustache",
"chars": 1671,
"preview": "package {{apiPackage}};\n\nimport static org.springframework.http.MediaType.*;\nimport java.util.List;\nimport java.util.Map"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/applicationYml.mustache",
"chars": 209,
"preview": "spring:\n application:\n name: {{providerServiceId}}\nserver:\n port: 0\neureka:\n instance:\n hostname: localhost\n c"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/bodyParams.mustache",
"chars": 73,
"preview": "{{#isBodyParam}}@RequestBody {{{dataType}}} {{paramName}}{{/isBodyParam}}"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/formParams.mustache",
"chars": 271,
"preview": "{{#isFormParam}}{{^isFile}}@RequestPart(value=\"{{paramName}}\"{{#required}}, required=true{{/required}}{{^required}}, req"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/headerParams.mustache",
"chars": 174,
"preview": "{{#isHeaderParam}}@RequestHeader(value=\"{{paramName}}\", required={{#required}}true{{/required}}{{^required}}false{{/requ"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/pathParams.mustache",
"chars": 91,
"preview": "{{#isPathParam}}@PathVariable(\"{{paramName}}\") {{{dataType}}} {{paramName}}{{/isPathParam}}"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/pom.mustache",
"chars": 3021,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:sc"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/queryParams.mustache",
"chars": 257,
"preview": "{{#isQueryParam}}@RequestParam(value = \"{{paramName}}\"{{#required}}, required = true{{/required}}{{^required}}, required"
},
{
"path": "codegen/src/main/resources/SpringCloud/provider/servlet/returnTypes.mustache",
"chars": 223,
"preview": "{{#returnContainer}}{{#isMapContainer}}Map<String, {{{returnType}}}>{{/isMapContainer}}{{#isListContainer}}List<{{return"
},
{
"path": "codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/CustomPropertiesTest.java",
"chars": 1575,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/GeneratorTest.java",
"chars": 6091,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/ReflectUtils.java",
"chars": 1590,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/ServiceCombCodegenTest.java",
"chars": 7123,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/SpringCloudCodegenTest.java",
"chars": 1240,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/test/java/org/apache/servicecomb/toolkit/codegen/TemplateTest.java",
"chars": 6155,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/api-with-examples.json",
"chars": 5074,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"title\": \"Simple API overview\",\n \"version\": \"v2\"\n },\n \"paths\": {\n \"/\": {\n "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-expanded.json",
"chars": 6441,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"Swagger Petstore\",\n \"description\": \"A sample "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-minimal.json",
"chars": 1371,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"Swagger Petstore\",\n \"description\": \"A sample "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-separate/common/Error.json",
"chars": 208,
"preview": "{\n \"type\": \"object\",\n \"required\": [\n \"code\",\n \"message\"\n ],\n \"properties\": {\n \"code\": {\n \"type\": \"inte"
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-separate/spec/NewPet.json",
"chars": 256,
"preview": "{\n \"type\": \"object\",\n \"allOf\": [\n {\n \"$ref\": \"Pet.json\"\n },\n {\n \"required\": [\n \"name\"\n "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-separate/spec/Pet.json",
"chars": 241,
"preview": "{\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"name\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-separate/spec/parameters.json",
"chars": 412,
"preview": "{\n \"tagsParam\": {\n \"name\": \"tags\",\n \"in\": \"query\",\n \"description\": \"tags to filter by\",\n \"required\": false,"
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-separate/spec/swagger.json",
"chars": 5146,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"Swagger Petstore\",\n \"description\": \"A sample "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-simple.json",
"chars": 5189,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"Swagger Petstore\",\n \"description\": \"A sample "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore-with-external-docs.json",
"chars": 5567,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"Swagger Petstore\",\n \"description\": \"A sample "
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/petstore.json",
"chars": 3221,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"Swagger Petstore\",\n \"license\": {\n \"name\""
},
{
"path": "codegen/src/test/resources/examples/v2.0/json/uber.json",
"chars": 11679,
"preview": "{\n \"swagger\": \"2.0\",\n \"info\": {\n \"title\": \"Uber API\",\n \"description\": \"Move your app forward with the Uber API\","
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/api-with-examples.yaml",
"chars": 6103,
"preview": "swagger: \"2.0\"\ninfo:\n title: Simple API overview\n version: v2\npaths:\n /:\n get:\n operationId: listVersionsv2\n "
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-expanded.yaml",
"chars": 3454,
"preview": "swagger: \"2.0\"\ninfo:\n version: 1.0.0\n title: Swagger Petstore\n description: A sample API that uses a petstore as an e"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-minimal.yaml",
"chars": 1100,
"preview": "---\n swagger: \"2.0\"\n info: \n version: \"1.0.0\"\n title: \"Swagger Petstore\"\n description: \"A sample API that use"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-separate/common/Error.yaml",
"chars": 128,
"preview": "type: object\nrequired:\n - code\n - message\nproperties:\n code:\n type: integer\n format: int32\n message:\n type:"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-separate/spec/NewPet.yaml",
"chars": 147,
"preview": "type: object\nallOf:\n - $ref: 'Pet.yaml'\n - required:\n - name\n properties:\n description:\n type: int"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-separate/spec/Pet.yaml",
"chars": 142,
"preview": "type: object\nrequired:\n - id\n - name\nproperties:\n id:\n type: integer\n format: int64\n name:\n type: string\n "
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-separate/spec/parameters.yaml",
"chars": 291,
"preview": "tagsParam:\n name: tags\n in: query\n description: tags to filter by\n required: false\n type: array\n collectionFormat:"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-separate/spec/swagger.yaml",
"chars": 4078,
"preview": "swagger: \"2.0\"\ninfo:\n version: 1.0.0\n title: Swagger Petstore\n description: A sample API that uses a petstore as an e"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-simple.yaml",
"chars": 4179,
"preview": "---\n swagger: \"2.0\"\n info: \n version: \"1.0.0\"\n title: \"Swagger Petstore\"\n description: \"A sample API that use"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore-with-external-docs.yaml",
"chars": 4515,
"preview": "---\n swagger: \"2.0\"\n info: \n version: \"1.0.0\"\n title: \"Swagger Petstore\"\n description: \"A sample API that use"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/petstore.yaml",
"chars": 2185,
"preview": "swagger: \"2.0\"\ninfo:\n version: 1.0.0\n title: Swagger Petstore\n license:\n name: MIT\nhost: petstore.swagger.io\nbaseP"
},
{
"path": "codegen/src/test/resources/examples/v2.0/yaml/uber.yaml",
"chars": 9395,
"preview": "# this is an example of the Uber API\n# as a demonstration of an API spec in YAML\nswagger: \"2.0\"\ninfo:\n title: Uber API\n"
},
{
"path": "codegen/src/test/resources/examples/v3.0/api-with-examples.yaml",
"chars": 6337,
"preview": "openapi: \"3.0.0\"\ninfo:\n title: Simple API overview\n version: 2.0.0\npaths:\n /:\n get:\n operationId: listVersion"
},
{
"path": "codegen/src/test/resources/examples/v3.0/callback-example.yaml",
"chars": 2158,
"preview": "openapi: 3.0.0\ninfo:\n title: Callback Example\n version: 1.0.0\npaths:\n /streams:\n post:\n description: subscrib"
},
{
"path": "codegen/src/test/resources/examples/v3.0/link-example.yaml",
"chars": 5280,
"preview": "openapi: 3.0.0\ninfo: \n title: Link Example\n version: 1.0.0\npaths: \n /2.0/users/{username}: \n get: \n operation"
},
{
"path": "codegen/src/test/resources/examples/v3.0/petstore-expanded.yaml",
"chars": 5480,
"preview": "openapi: \"3.0.0\"\ninfo:\n version: 1.0.0\n title: Swagger Petstore\n description: A sample API that uses a petstore as an"
},
{
"path": "codegen/src/test/resources/examples/v3.0/petstore.yaml",
"chars": 2573,
"preview": "openapi: \"3.0.0\"\ninfo:\n version: 1.0.0\n title: Swagger Petstore\n license:\n name: MIT\nservers:\n - url: http://pets"
},
{
"path": "codegen/src/test/resources/examples/v3.0/uspto.yaml",
"chars": 7744,
"preview": "openapi: 3.0.1\nservers:\n - url: '{scheme}://developer.uspto.gov/ds-api'\n variables:\n scheme:\n descriptio"
},
{
"path": "codegen/src/test/resources/log4j2-test.xml",
"chars": 1064,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "codegen/src/test/resources/no-model.yaml",
"chars": 413,
"preview": "---\nswagger: \"2.0\"\ninfo:\n version: \"1.0.0\"\n title: \"no model\"\n license:\n name: \"Apache 2.0\"\n url: \"http://www.a"
},
{
"path": "codegen/src/test/resources/swagger.yaml",
"chars": 17541,
"preview": "---\nswagger: \"2.0\"\ninfo:\n description: \"This is a sample server Petstore server. You can find out more about\\\n \\ Sw"
},
{
"path": "codegen/src/test/resources/with-model.yaml",
"chars": 519,
"preview": "swagger: '2.0'\ninfo:\n version: \"1.0.0\"\n title: \"no-model\"\n license:\n name: \"Apache 2.0\"\n url: \"http://www.apach"
},
{
"path": "common/pom.xml",
"chars": 2504,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/ClassMaker.java",
"chars": 3920,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/CompareAlgorithm.java",
"chars": 970,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/ComparisionType.java",
"chars": 1028,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/Comparison.java",
"chars": 1458,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/ContractComparator.java",
"chars": 2238,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/ContractFileType.java",
"chars": 1229,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/DocumentType.java",
"chars": 887,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/FileUtils.java",
"chars": 2925,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/ImmediateClassLoader.java",
"chars": 2029,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/MyersAlgorithm.java",
"chars": 2441,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/SourceType.java",
"chars": 897,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/main/java/org/apache/servicecomb/toolkit/common/SplitDiffFormatter.java",
"chars": 6175,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/test/java/org/apache/servicecomb/toolkit/common/ClassMakerTest.java",
"chars": 2164,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/test/java/org/apache/servicecomb/toolkit/common/FileUtilsTest.java",
"chars": 2273,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/test/java/org/apache/servicecomb/toolkit/common/TextCompareTest.java",
"chars": 5049,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "common/src/test/resources/compare/HelloEndPoint.yaml",
"chars": 2153,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "common/src/test/resources/compare/HelloEndPoint2.yaml",
"chars": 2151,
"preview": "## ---------------------------------------------------------------------------\n## Licensed to the Apache Software Founda"
},
{
"path": "common/src/test/resources/projects/demo-with-correct-pom/pom.xml",
"chars": 1267,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "common/src/test/resources/projects/demo-with-invaild-pom/pom.xml",
"chars": 1287,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "contractgen/pom.xml",
"chars": 2701,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Licensed to the Apache Software Foundation (ASF) under one or more\n ~ c"
},
{
"path": "contractgen/src/main/java/org/apache/servicecomb/toolkit/contractgen/DefaultContractsGenerator.java",
"chars": 6040,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
},
{
"path": "contractgen/src/main/resources/META-INF/services/org.apache.servicecomb.toolkit.ContractsGenerator",
"chars": 854,
"preview": "#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements. See the NOTICE"
},
{
"path": "contractgen/src/test/java/org/apache/servicecomb/toolkit/contractgen/ContractTestUtil.java",
"chars": 1894,
"preview": "/*\n * Licensed to the Apache Software Foundation (ASF) under one or more\n * contributor license agreements. See the NOT"
}
]
// ... and 859 more files (download for full content)
About this extraction
This page contains the full source code of the apache/servicecomb-toolkit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1059 files (2.4 MB), approximately 718.5k tokens, and a symbol index with 2566 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.