| 
									
										
										
										
											2022-05-03 19:38:05 -05:00
										 |  |  | import io.datahubproject.GenerateJsonSchemaTask | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-15 13:28:33 -06:00
										 |  |  | plugins { | 
					
						
							|  |  |  |   id 'pegasus' | 
					
						
							|  |  |  |   id 'java-library' | 
					
						
							|  |  |  |   id 'org.hidetake.swagger.generator' | 
					
						
							| 
									
										
										
										
											2022-09-25 10:39:22 -05:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2021-06-03 13:24:33 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-03 06:57:43 +05:30
										 |  |  | apply from: '../gradle/coverage/java-coverage.gradle' | 
					
						
							| 
									
										
										
										
											2023-12-15 13:28:33 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-31 20:51:14 -07:00
										 |  |  | dependencies { | 
					
						
							| 
									
										
										
										
											2024-12-05 11:45:04 -06:00
										 |  |  |   constraints { | 
					
						
							|  |  |  |     implementation('org.apache.commons:commons-text:1.10.0') { | 
					
						
							|  |  |  |       because 'Vulnerability Issue' | 
					
						
							| 
									
										
										
										
											2023-04-21 12:30:23 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-12-05 11:45:04 -06:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   api(spec.product.pegasus.data) { | 
					
						
							|  |  |  |     exclude group: 'javax.servlet', module: 'javax.servlet-api' | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-09-01 09:06:01 -05:00
										 |  |  |   api project(':li-utils') | 
					
						
							| 
									
										
										
										
											2023-10-25 10:54:55 -04:00
										 |  |  |   api project(path: ':li-utils', configuration: "dataTemplate") | 
					
						
							| 
									
										
										
										
											2019-08-31 20:51:14 -07:00
										 |  |  |   dataModel project(':li-utils') | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-23 17:49:23 -06:00
										 |  |  |   // Newer Spring libraries require JDK17 classes, allow for JDK11
 | 
					
						
							|  |  |  |   compileOnly externalDependency.springBootAutoconfigureJdk11 | 
					
						
							|  |  |  |   compileOnly externalDependency.annotationApi | 
					
						
							|  |  |  |   compileOnly externalDependency.javaxValidation | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-07 17:09:52 -05:00
										 |  |  |   compileOnly externalDependency.lombok | 
					
						
							|  |  |  |   annotationProcessor externalDependency.lombok | 
					
						
							| 
									
										
										
										
											2024-12-05 11:45:04 -06:00
										 |  |  |   compileOnly externalDependency.swaggerAnnotations | 
					
						
							| 
									
										
										
										
											2025-05-24 13:42:10 -05:00
										 |  |  |   compileOnly platform(externalDependency.jacksonBom) | 
					
						
							| 
									
										
										
										
											2023-09-07 17:09:52 -05:00
										 |  |  |   compileOnly externalDependency.jacksonCore | 
					
						
							|  |  |  |   compileOnly externalDependency.jacksonDataBind | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   swaggerCodegen externalDependency.swaggerCli | 
					
						
							| 
									
										
										
										
											2023-09-01 09:06:01 -05:00
										 |  |  |   testImplementation externalDependency.guava | 
					
						
							| 
									
										
										
										
											2023-12-15 13:28:33 -06:00
										 |  |  |   testImplementation externalDependency.testng | 
					
						
							| 
									
										
										
										
											2019-08-31 20:51:14 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-07 17:09:52 -05:00
										 |  |  | sourceSets { | 
					
						
							|  |  |  |   main { | 
					
						
							|  |  |  |     java { | 
					
						
							|  |  |  |       srcDirs = ["$buildDir/openapi/generated/src/main/java"] | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-11 20:22:55 -05:00
										 |  |  | mainAvroSchemaJar.dependsOn generateAvroSchema | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-25 21:43:28 -07:00
										 |  |  | pegasus.main.generationModes = [PegasusGenerationMode.PEGASUS, PegasusGenerationMode.AVRO] | 
					
						
							| 
									
										
										
										
											2021-06-03 13:24:33 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-03 19:38:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-22 11:46:04 -06:00
										 |  |  | task generateJsonSchema(type: GenerateJsonSchemaTask, dependsOn: 'generateAvroSchema') { | 
					
						
							| 
									
										
										
										
											2022-05-03 19:38:05 -05:00
										 |  |  |   it.setInputDirectory("$projectDir/src/mainGeneratedAvroSchema") | 
					
						
							|  |  |  |   it.setOutputDirectory("$projectDir/src/generatedJsonSchema") | 
					
						
							| 
									
										
										
										
											2023-09-07 17:09:52 -05:00
										 |  |  |   it.setEntityRegistryYaml("${project(':metadata-models').projectDir}/src/main/resources/entity-registry.yml") | 
					
						
							| 
									
										
										
										
											2023-04-21 12:30:23 -05:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-08-14 09:09:20 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-07 17:09:52 -05:00
										 |  |  | // https://github.com/int128/gradle-swagger-generator-plugin#task-type-generateswaggercode
 | 
					
						
							|  |  |  | task openApiGenerate(type: GenerateSwaggerCode, dependsOn: 'generateJsonSchema') { | 
					
						
							|  |  |  |   inputFile = file("$projectDir/src/generatedJsonSchema/combined/open-api.yaml") | 
					
						
							|  |  |  |   outputDir = file("$buildDir/openapi/generated") | 
					
						
							|  |  |  |   language = "spring" | 
					
						
							|  |  |  |   components = ["models"] | 
					
						
							|  |  |  |   templateDir = file("$projectDir/src/main/resources/JavaSpring") | 
					
						
							|  |  |  |   additionalProperties = [ | 
					
						
							|  |  |  |           'group-id'           : "io.datahubproject", | 
					
						
							|  |  |  |           'dateLibrary'        : "java8", | 
					
						
							|  |  |  |           'java11'             : "true", | 
					
						
							|  |  |  |           'modelPropertyNaming': "original", | 
					
						
							|  |  |  |           'modelPackage'       : "io.datahubproject.openapi.generated" | 
					
						
							|  |  |  |   ] | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | tasks.getByName("compileJava").dependsOn(openApiGenerate) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-10 22:43:31 +05:30
										 |  |  | clean { | 
					
						
							| 
									
										
										
										
											2023-09-07 17:09:52 -05:00
										 |  |  |   delete "$projectDir/src/generatedJsonSchema" | 
					
						
							|  |  |  | } |