@@ -9,6 +9,9 @@ import io.openapiprocessor.core.converter.ApiConverter
99import io.openapiprocessor.core.converter.ApiOptions
1010import io.openapiprocessor.core.converter.OptionsConverter
1111import io.openapiprocessor.core.parser.OpenApiParser
12+ import io.openapiprocessor.core.processor.JSON_SCHEMA_CORE
13+ import io.openapiprocessor.core.processor.MappingReader
14+ import io.openapiprocessor.core.processor.MappingValidator
1215import io.openapiprocessor.core.writer.SourceFormatter
1316import io.openapiprocessor.core.writer.java.*
1417import io.openapiprocessor.spring.Versions
@@ -32,15 +35,17 @@ class SpringProcessor : OpenApiProcessorTest {
3235 private var sourceRoot: String? = null
3336 private var resourceRoot: String? = null
3437
35- fun run (processorOptions : Map <String , * >) {
38+ fun run (processorOptions : Map <String , Any >) {
3639 try {
3740 val parser = OpenApiParser ()
3841 val openapi = parser.parse(processorOptions)
3942 if (processorOptions[" showWarnings" ] != null ) {
4043 openapi.printWarnings()
4144 }
4245
43- val kind = SpringAnnotations .valueOf(processorOptions[" annotations" ]?.toString())
46+ val options = convertOptions(processorOptions)
47+
48+ val kind = SpringAnnotations .valueOf(options.springAnnotations)
4449
4550 val annotations = when (kind) {
4651 EXCHANGE -> SpringFrameworkExchange ()
@@ -51,7 +56,6 @@ class SpringProcessor : OpenApiProcessorTest {
5156 else -> MappingAnnotationFactory (annotations)
5257 }
5358
54- val options = convertOptions(processorOptions)
5559 val identifier = JavaIdentifier (IdentifierOptions (
5660 options.identifierWordBreakFromDigitToLetter,
5761 options.identifierPrefixInvalidEnumStart))
@@ -147,9 +151,11 @@ class SpringProcessor : OpenApiProcessorTest {
147151 testMode = true
148152 }
149153
150- @Suppress(" UNCHECKED_CAST" )
151- private fun convertOptions (processorOptions : Map <String , * >): ApiOptions {
152- val options = OptionsConverter ().convertOptions (processorOptions as Map <String , Any >)
154+ private fun convertOptions (processorOptions : Map <String , Any >): SpringApiOptions {
155+ val options = SpringApiOptions ()
156+
157+ OptionsConverter (createCoreMappingReader()).fillOptions (processorOptions, options)
158+ SpringOptionsConverter (createSpringMappingReader()).fillOptions (processorOptions, options)
153159 options.validate ()
154160
155161 if (options.targetDirOptions.standardLayout) {
@@ -171,4 +177,13 @@ class SpringProcessor : OpenApiProcessorTest {
171177 private fun getFormatter (apiOptions : ApiOptions ): SourceFormatter {
172178 return SourceFormatterFactory ().getFormatter(apiOptions)
173179 }
180+
181+ private fun createCoreMappingReader (): MappingReader {
182+ return MappingReader (MappingValidator (JSON_SCHEMA_CORE ))
183+ }
184+
185+ private fun createSpringMappingReader (): SpringMappingReader {
186+ return SpringMappingReader (MappingValidator (
187+ JSON_SCHEMA_SPRING , listOf (JSON_SCHEMA_CORE )))
188+ }
174189}
0 commit comments