| 
									
										
										
										
											2022-03-17 12:43:03 -05:00
										 |  |  | plugins { | 
					
						
							|  |  |  |     id 'java' | 
					
						
							|  |  |  |     id "com.google.protobuf" version "0.8.18" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | repositories { | 
					
						
							|  |  |  |     mavenCentral() | 
					
						
							| 
									
										
										
										
											2022-09-08 22:10:36 -07:00
										 |  |  |     mavenLocal() | 
					
						
							| 
									
										
										
										
											2022-03-17 12:43:03 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ext { | 
					
						
							|  |  |  |     protobuf_version = '3.19.3' | 
					
						
							| 
									
										
										
										
											2022-09-08 22:10:36 -07:00
										 |  |  |     datahub_protobuf_version = '0.8.45-SNAPSHOT' | 
					
						
							| 
									
										
										
										
											2022-03-17 12:43:03 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | configurations { | 
					
						
							|  |  |  |     datahub | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dependencies { | 
					
						
							|  |  |  |     // compilation
 | 
					
						
							|  |  |  |     implementation "com.google.protobuf:protobuf-java:$protobuf_version" | 
					
						
							| 
									
										
										
										
											2022-09-08 22:10:36 -07:00
										 |  |  |     datahub "io.acryl:datahub-protobuf:$datahub_protobuf_version" | 
					
						
							| 
									
										
										
										
											2022-03-17 12:43:03 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | sourceSets { | 
					
						
							|  |  |  |     main { | 
					
						
							|  |  |  |         proto { | 
					
						
							|  |  |  |             srcDir 'schema' | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | protobuf { | 
					
						
							|  |  |  |     protoc { | 
					
						
							|  |  |  |         artifact = "com.google.protobuf:protoc:$protobuf_version" | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     generateProtoTasks { | 
					
						
							|  |  |  |         all().each { task -> | 
					
						
							|  |  |  |             // If true, will generate a descriptor_set.desc file under
 | 
					
						
							|  |  |  |             // $generatedFilesBaseDir/$sourceSet. Default is false.
 | 
					
						
							|  |  |  |             // See --descriptor_set_out in protoc documentation about what it is.
 | 
					
						
							|  |  |  |             task.generateDescriptorSet = true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Allows to override the default for the descriptor set location
 | 
					
						
							|  |  |  |             task.descriptorSetOptions.path = | 
					
						
							|  |  |  |                     "${projectDir}/build/descriptors/${task.sourceSet.name}.dsc" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // If true, the descriptor set will contain line number information
 | 
					
						
							|  |  |  |             // and comments. Default is false.
 | 
					
						
							|  |  |  |             task.descriptorSetOptions.includeSourceInfo = true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // If true, the descriptor set will contain all transitive imports and
 | 
					
						
							|  |  |  |             // is therefore self-contained. Default is false.
 | 
					
						
							|  |  |  |             task.descriptorSetOptions.includeImports = true | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | task publishSchema(dependsOn: build) { | 
					
						
							|  |  |  |     description "Publishes protobuf schema in the `main` sourceSet to DataHub" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def javaLauncher = javaToolchains.launcherFor { | 
					
						
							|  |  |  |         languageVersion = JavaLanguageVersion.of(11) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     fileTree("schema").matching { | 
					
						
							| 
									
										
										
										
											2022-04-04 19:52:09 -05:00
										 |  |  |         exclude "protobuf/meta/**" | 
					
						
							| 
									
										
										
										
											2022-03-17 12:43:03 -05:00
										 |  |  |     }.each {f -> | 
					
						
							|  |  |  |         doLast { | 
					
						
							|  |  |  |             javaexec { | 
					
						
							|  |  |  |                 executable = javaLauncher.get().getExecutablePath().getAsFile().getAbsolutePath() | 
					
						
							|  |  |  |                 classpath = configurations.datahub | 
					
						
							| 
									
										
										
										
											2022-09-18 18:04:47 -07:00
										 |  |  |                 main = "datahub.protobuf.Proto2DataHub" | 
					
						
							|  |  |  |                 args = ["--descriptor", "${projectDir}/build/descriptors/main.dsc", "--file", file(f).getAbsoluteFile()] | 
					
						
							| 
									
										
										
										
											2022-03-17 12:43:03 -05:00
										 |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |