From dbf9342144ddfd9c61fa551ec88ed76509a013ef Mon Sep 17 00:00:00 2001 From: Burke Davison <40617934+burkedavison@users.noreply.github.com> Date: Wed, 30 Nov 2022 13:26:42 -0500 Subject: [PATCH] chore: relocate gapic-generator-java pom.xml to subfolder (#1105) * chore: relocate gapic-generator-java pom.xml to subfolder * fix: ensure all tests work with new project structure * fix: set surefire working directory, and revert source adjustments * fix: formatter --- .gitignore | 1 + gapic-generator-java/pom.xml | 388 ++++++++++++++++++ pom.xml | 346 +--------------- .../engine/JavaCodeGeneratorTest.java | 1 + .../composer/grpc/GrpcTestProtoLoader.java | 1 + .../gapic/model/GapicServiceConfigTest.java | 1 + .../BatchingSettingsConfigParserTest.java | 1 + .../GapicLanguageSettingsParserTest.java | 1 + .../GapicLroRetrySettingsParserTest.java | 1 + .../protoparser/ServiceConfigParserTest.java | 1 + .../protoparser/ServiceYamlParserTest.java | 1 + .../protoparser/SourceCodeInfoParserTest.java | 24 +- .../api/generator/test/framework/Utils.java | 2 + .../google/api/generator/util/TestUtils.java | 1 + 14 files changed, 432 insertions(+), 338 deletions(-) create mode 100644 gapic-generator-java/pom.xml diff --git a/.gitignore b/.gitignore index 913a2a8e6e..3b7b1a4ed2 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ target/ # IDE .idea .ijwb +*.iml # Vim. *.sw* diff --git a/gapic-generator-java/pom.xml b/gapic-generator-java/pom.xml new file mode 100644 index 0000000000..deb40e1031 --- /dev/null +++ b/gapic-generator-java/pom.xml @@ -0,0 +1,388 @@ + + 4.0.0 + com.google.api + gapic-generator-java + 0.0.1-SNAPSHOT + + + UTF-8 + + 44d6bef0ca6db8bba3fb324c8186e694bcc4829c + + + + + + com.google.cloud + google-cloud-shared-dependencies + 3.0.6 + pom + import + + + + + + ../src/main/java + + + ../src/ + + + ../src/test/java + ../target + + + + kr.motd.maven + os-maven-plugin + 1.7.1 + + + + + + maven-compiler-plugin + 3.10.1 + + 8 + 8 + + + com.google.auto.value + auto-value + 1.10.1 + + + + + + + com.coveo + fmt-maven-plugin + 2.9.1 + + + + com.googlecode.maven-download-plugin + download-maven-plugin + 1.6.8 + + + download-metadata-proto + generate-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/gapic/metadata/gapic_metadata.proto + + ../target/generated-sources/proto + + + + download-common-resources-proto + generate-test-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/cloud/common_resources.proto + + ../target/generated-test-sources/proto + + + + download-pubsub-proto + generate-test-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/pubsub/v1/pubsub.proto + + ../target/generated-test-sources/proto + + + + download-schema-proto + generate-test-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/pubsub/v1/schema.proto + + ../target/generated-test-sources/proto/google/pubsub/v1 + + + + + download-logging-proto + generate-test-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/logging.proto + + ../target/generated-test-sources/proto + + + + download-log-entry-proto + generate-test-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/log_entry.proto + + ../target/generated-test-sources/proto/google/logging/v2 + + + + + download-logging-config-proto + generate-test-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/logging_config.proto + + ../target/generated-test-sources/proto/google/logging/v2 + + + + + download-logging-metrics-proto + generate-test-sources + + wget + + + + https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/logging_metrics.proto + + ../target/generated-test-sources/proto/google/logging/v2 + + + + + + + + org.xolstice.maven.plugins + protobuf-maven-plugin + 0.6.1 + + com.google.protobuf:protoc:3.21.7:exe:${os.detected.classifier} + + + + + compile-protos + + compile + + + ../src/main/proto + + + + compile-downloaded-protos + + compile + + + ../target/generated-sources/proto + false + + + + compile-test-protos + + test-compile + + + ../src/test/proto + true + true + true + test-proto.descriptorset + + + + compile-downloaded-test-protos + + test-compile + + + ../target/generated-test-sources/proto + false + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M7 + + + + ../target/generated-test-resources/protobuf/descriptor-sets + + + ../ + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.8 + + + + prepare-agent + + + + report + test + + report + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.4.1 + + + package + + shade + + + false + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + + + + + com.google.guava + guava + + + com.google.api + gax + + + com.google.api + gax + testlib + + + com.google.api + gax-grpc + + + com.google.api + gax-grpc + testlib + + + com.google.api + gax-httpjson + + + com.google.api + gax-httpjson + testlib + + + com.google.auto.value + auto-value-annotations + + + com.google.protobuf + protobuf-java-util + + + io.grpc + grpc-stub + + + io.grpc + grpc-protobuf + + + org.yaml + snakeyaml + 1.33 + + + com.google.googlejavaformat + google-java-format + 1.7 + + + junit + junit + 4.13.2 + + + + + javax.annotation + javax.annotation-api + + + + com.google.truth + truth + 1.1.3 + test + + + io.github.java-diff-utils + java-diff-utils + 4.12 + test + + + diff --git a/pom.xml b/pom.xml index 83c2575efa..ad31faffd7 100644 --- a/pom.xml +++ b/pom.xml @@ -1,349 +1,33 @@ - + + 4.0.0 com.google.api - gapic-generator-java + gapic-generator-java-parent 0.0.1-SNAPSHOT + pom - - UTF-8 - - 44d6bef0ca6db8bba3fb324c8186e694bcc4829c - - - - - - com.google.cloud - google-cloud-shared-dependencies - 3.0.6 - pom - import - - - + + gapic-generator-java + + - - - kr.motd.maven - os-maven-plugin - 1.7.1 - - - - maven-compiler-plugin - 3.10.1 + org.apache.maven.plugins + maven-deploy-plugin + 3.0.0 - 8 - 8 - - - com.google.auto.value - auto-value - 1.10.1 - - + true - com.coveo fmt-maven-plugin 2.9.1 - - - com.googlecode.maven-download-plugin - download-maven-plugin - 1.6.8 - - - download-metadata-proto - generate-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/gapic/metadata/gapic_metadata.proto - ${project.build.directory}/generated-sources/proto/ - - - - download-common-resources-proto - generate-test-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/cloud/common_resources.proto - ${project.build.directory}/generated-test-sources/proto/ - - - - download-pubsub-proto - generate-test-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/pubsub/v1/pubsub.proto - ${project.build.directory}/generated-test-sources/proto/ - - - - download-schema-proto - generate-test-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/pubsub/v1/schema.proto - ${project.build.directory}/generated-test-sources/proto/google/pubsub/v1/ - - - - download-logging-proto - generate-test-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/logging.proto - ${project.build.directory}/generated-test-sources/proto/ - - - - download-log-entry-proto - generate-test-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/log_entry.proto - ${project.build.directory}/generated-test-sources/proto/google/logging/v2/ - - - - download-logging-config-proto - generate-test-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/logging_config.proto - ${project.build.directory}/generated-test-sources/proto/google/logging/v2/ - - - - download-logging-metrics-proto - generate-test-sources - - wget - - - https://raw.githubusercontent.com/googleapis/googleapis/${googleapis.commit}/google/logging/v2/logging_metrics.proto - ${project.build.directory}/generated-test-sources/proto/google/logging/v2/ - - - - - - - org.xolstice.maven.plugins - protobuf-maven-plugin - 0.6.1 - - com.google.protobuf:protoc:3.21.7:exe:${os.detected.classifier} - - - - compile-protos - - compile - - - - compile-downloaded-protos - - compile - - - ${project.build.directory}/generated-sources/proto/ - false - - - - compile-test-protos - - test-compile - - - true - true - true - test-proto.descriptorset - - - - compile-downloaded-test-protos - - test-compile - - - ${project.build.directory}/generated-test-sources/proto/ - false - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0-M7 - - - ${project.build.directory}/generated-test-resources/protobuf/descriptor-sets/ - - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.8 - - - - prepare-agent - - - - report - test - - report - - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.4.1 - - - package - - shade - - - false - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - - - - - com.google.guava - guava - - - com.google.api - gax - - - com.google.api - gax - testlib - - - com.google.api - gax-grpc - - - com.google.api - gax-grpc - testlib - - - com.google.api - gax-httpjson - - - com.google.api - gax-httpjson - testlib - - - com.google.auto.value - auto-value-annotations - - - com.google.protobuf - protobuf-java-util - - - io.grpc - grpc-stub - - - io.grpc - grpc-protobuf - - - org.yaml - snakeyaml - 1.33 - - - com.google.googlejavaformat - google-java-format - 1.7 - - - junit - junit - 4.13.2 - - - - - javax.annotation - javax.annotation-api - - - - com.google.truth - truth - 1.1.3 - test - - - io.github.java-diff-utils - java-diff-utils - 4.12 - test - - - + \ No newline at end of file diff --git a/src/test/java/com/google/api/generator/engine/JavaCodeGeneratorTest.java b/src/test/java/com/google/api/generator/engine/JavaCodeGeneratorTest.java index 607ccd89f6..3bbc0808de 100644 --- a/src/test/java/com/google/api/generator/engine/JavaCodeGeneratorTest.java +++ b/src/test/java/com/google/api/generator/engine/JavaCodeGeneratorTest.java @@ -63,6 +63,7 @@ import org.junit.Test; public class JavaCodeGeneratorTest { + private static final String GOLDENFILES_DIRECTORY = "src/test/java/com/google/api/generator/engine/goldens/"; // Create shared VaporReferences. diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcTestProtoLoader.java b/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcTestProtoLoader.java index 7270a2f14b..c6249121e5 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcTestProtoLoader.java +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcTestProtoLoader.java @@ -18,6 +18,7 @@ import com.google.api.generator.gapic.model.Transport; public class GrpcTestProtoLoader extends TestProtoLoader { + private static final GrpcTestProtoLoader INSTANCE = new GrpcTestProtoLoader(); protected GrpcTestProtoLoader() { diff --git a/src/test/java/com/google/api/generator/gapic/model/GapicServiceConfigTest.java b/src/test/java/com/google/api/generator/gapic/model/GapicServiceConfigTest.java index d7aefc8733..ca4cd84418 100644 --- a/src/test/java/com/google/api/generator/gapic/model/GapicServiceConfigTest.java +++ b/src/test/java/com/google/api/generator/gapic/model/GapicServiceConfigTest.java @@ -37,6 +37,7 @@ import org.junit.Test; public class GapicServiceConfigTest { + private static final double EPSILON = 1e-4; private static final String TESTDATA_DIRECTORY = "src/test/resources/"; diff --git a/src/test/java/com/google/api/generator/gapic/protoparser/BatchingSettingsConfigParserTest.java b/src/test/java/com/google/api/generator/gapic/protoparser/BatchingSettingsConfigParserTest.java index 3dfc6373c0..3430c2585d 100644 --- a/src/test/java/com/google/api/generator/gapic/protoparser/BatchingSettingsConfigParserTest.java +++ b/src/test/java/com/google/api/generator/gapic/protoparser/BatchingSettingsConfigParserTest.java @@ -27,6 +27,7 @@ import org.junit.Test; public class BatchingSettingsConfigParserTest { + private static final String YAML_DIRECTORY = "src/test/resources/"; @Test diff --git a/src/test/java/com/google/api/generator/gapic/protoparser/GapicLanguageSettingsParserTest.java b/src/test/java/com/google/api/generator/gapic/protoparser/GapicLanguageSettingsParserTest.java index 3a6fbed745..868231d516 100644 --- a/src/test/java/com/google/api/generator/gapic/protoparser/GapicLanguageSettingsParserTest.java +++ b/src/test/java/com/google/api/generator/gapic/protoparser/GapicLanguageSettingsParserTest.java @@ -24,6 +24,7 @@ import org.junit.Test; public class GapicLanguageSettingsParserTest { + private static final String YAML_DIRECTORY = "src/test/resources/"; @Test diff --git a/src/test/java/com/google/api/generator/gapic/protoparser/GapicLroRetrySettingsParserTest.java b/src/test/java/com/google/api/generator/gapic/protoparser/GapicLroRetrySettingsParserTest.java index 37eb4bdd5f..0c7f8e7d82 100644 --- a/src/test/java/com/google/api/generator/gapic/protoparser/GapicLroRetrySettingsParserTest.java +++ b/src/test/java/com/google/api/generator/gapic/protoparser/GapicLroRetrySettingsParserTest.java @@ -25,6 +25,7 @@ import org.junit.Test; public class GapicLroRetrySettingsParserTest { + private static final double DELTA = 0.0001; private static final String YAML_DIRECTORY = "src/test/resources/"; diff --git a/src/test/java/com/google/api/generator/gapic/protoparser/ServiceConfigParserTest.java b/src/test/java/com/google/api/generator/gapic/protoparser/ServiceConfigParserTest.java index 6d9318969e..8a27f7fd4f 100644 --- a/src/test/java/com/google/api/generator/gapic/protoparser/ServiceConfigParserTest.java +++ b/src/test/java/com/google/api/generator/gapic/protoparser/ServiceConfigParserTest.java @@ -28,6 +28,7 @@ import org.junit.Test; public class ServiceConfigParserTest { + private static final String JSON_DIRECTORY = "src/test/resources/"; private static final double EPSILON = 1e-4; diff --git a/src/test/java/com/google/api/generator/gapic/protoparser/ServiceYamlParserTest.java b/src/test/java/com/google/api/generator/gapic/protoparser/ServiceYamlParserTest.java index dd38903051..8df9ddcf84 100644 --- a/src/test/java/com/google/api/generator/gapic/protoparser/ServiceYamlParserTest.java +++ b/src/test/java/com/google/api/generator/gapic/protoparser/ServiceYamlParserTest.java @@ -23,6 +23,7 @@ import org.junit.Test; public class ServiceYamlParserTest { + private static final String YAML_DIRECTORY = "src/test/resources/"; @Test diff --git a/src/test/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParserTest.java b/src/test/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParserTest.java index 36ca5d15f8..40b9eb12f0 100644 --- a/src/test/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParserTest.java +++ b/src/test/java/com/google/api/generator/gapic/protoparser/SourceCodeInfoParserTest.java @@ -25,14 +25,18 @@ import com.google.protobuf.Descriptors.FileDescriptor; import com.google.protobuf.Descriptors.OneofDescriptor; import com.google.protobuf.Descriptors.ServiceDescriptor; -import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; public class SourceCodeInfoParserTest { + private static final String BASIC_PROTO = "basic.proto"; private static final String PROTO_DESCRIPTOR_SET = "test-proto.descriptorset"; @@ -151,12 +155,7 @@ public void getOnoeofInfo() { * @return the top level target protoFile descriptor */ private static FileDescriptor buildFileDescriptor() throws Exception { - InputStream testProto = - SourceCodeInfoParserTest.class.getClassLoader().getResourceAsStream(PROTO_DESCRIPTOR_SET); - if (testProto == null) { // TODO: only for Bazel build. Remove when we don't build with Bazel. - testProto = new FileInputStream(PROTO_DESCRIPTOR_SET); - } - try (InputStream in = testProto) { + try (InputStream in = newDescriptorSetInputStream()) { List protoFileList = FileDescriptorSet.parseFrom(in).getFileList(); List deps = new ArrayList<>(); for (FileDescriptorProto proto : protoFileList) { @@ -170,4 +169,15 @@ private static FileDescriptor buildFileDescriptor() throws Exception { } return null; } + + private static InputStream newDescriptorSetInputStream() throws IOException { + Path path = + Paths.get("target/generated-test-resources/protobuf/descriptor-sets", PROTO_DESCRIPTOR_SET); + + if (path.toFile().exists()) { + return Files.newInputStream(path); + } + // TODO: only for Bazel build. Remove when we don't build with Bazel. + return Files.newInputStream(Paths.get(PROTO_DESCRIPTOR_SET)); + } } diff --git a/src/test/java/com/google/api/generator/test/framework/Utils.java b/src/test/java/com/google/api/generator/test/framework/Utils.java index cb423046fb..5960b722ef 100644 --- a/src/test/java/com/google/api/generator/test/framework/Utils.java +++ b/src/test/java/com/google/api/generator/test/framework/Utils.java @@ -20,6 +20,7 @@ import java.nio.file.Paths; public class Utils { + /** * Save the generated code from JUnit test to a file for updating goldens. The relative path * `com/google/..` which is identical with the location of goldens files which will help us easily @@ -74,6 +75,7 @@ public static String getGoldenDir(Class clazz) { } public static class SaveCodegenToFileException extends RuntimeException { + public SaveCodegenToFileException(String errorMessage) { super(errorMessage); } diff --git a/src/test/java/com/google/api/generator/util/TestUtils.java b/src/test/java/com/google/api/generator/util/TestUtils.java index 87ccb5832d..ee509e0fee 100644 --- a/src/test/java/com/google/api/generator/util/TestUtils.java +++ b/src/test/java/com/google/api/generator/util/TestUtils.java @@ -23,6 +23,7 @@ import com.google.api.generator.engine.ast.VariableExpr; public class TestUtils { + public static ValueExpr generateStringValueExpr(String value) { return ValueExpr.builder().setValue(StringObjectValue.withValue(value)).build(); }