From 1160c0e4d4ff661506f43386d36fac21a3aa3345 Mon Sep 17 00:00:00 2001 From: Menny Even Danan Date: Mon, 6 Jul 2020 17:14:55 -0400 Subject: [PATCH] Support comments in processors manifest --- resolver/BUILD.bazel | 1 + .../bazel/mvn/impl/RuleClassifiers.java | 1 + .../bazel/mvn/impl/RuleClassifiersTest.java | 28 ++++++++++++++++++ ...dataenum-processor-1.0.2-with-comments.jar | Bin 0 -> 36969 bytes 4 files changed, 30 insertions(+) create mode 100644 resolver/src/main/javatest/net/evendanan/bazel/mvn/resourses/dataenum-processor-1.0.2-with-comments.jar diff --git a/resolver/BUILD.bazel b/resolver/BUILD.bazel index 0d42e826..014199f1 100644 --- a/resolver/BUILD.bazel +++ b/resolver/BUILD.bazel @@ -270,6 +270,7 @@ java_test(name = "classifiers_test", ], srcs=["src/main/javatest/net/evendanan/bazel/mvn/impl/RuleClassifiersTest.java"], resources = [ + "src/main/javatest/net/evendanan/bazel/mvn/resourses/dataenum-processor-1.0.2-with-comments.jar", "src/main/javatest/net/evendanan/bazel/mvn/resourses/dataenum-processor-1.0.2.jar", "src/main/javatest/net/evendanan/bazel/mvn/resourses/dataenum-1.0.2.jar", "src/main/javatest/net/evendanan/bazel/mvn/resourses/mockk-1.0.jar", diff --git a/resolver/src/main/java/net/evendanan/bazel/mvn/impl/RuleClassifiers.java b/resolver/src/main/java/net/evendanan/bazel/mvn/impl/RuleClassifiers.java index 5445495e..a6c2b591 100644 --- a/resolver/src/main/java/net/evendanan/bazel/mvn/impl/RuleClassifiers.java +++ b/resolver/src/main/java/net/evendanan/bazel/mvn/impl/RuleClassifiers.java @@ -105,6 +105,7 @@ private static Optional parseServicesProcessorFileContent( final List processors = Arrays.stream(processorContent.split("\n", -1)) .filter(s -> s != null && s.length() > 0) + .filter(s -> !s.startsWith("#")) .map(String::trim) .filter(s -> !s.isEmpty()) .collect(Collectors.toList()); diff --git a/resolver/src/main/javatest/net/evendanan/bazel/mvn/impl/RuleClassifiersTest.java b/resolver/src/main/javatest/net/evendanan/bazel/mvn/impl/RuleClassifiersTest.java index 04149dfb..557b2a10 100644 --- a/resolver/src/main/javatest/net/evendanan/bazel/mvn/impl/RuleClassifiersTest.java +++ b/resolver/src/main/javatest/net/evendanan/bazel/mvn/impl/RuleClassifiersTest.java @@ -113,6 +113,34 @@ public void testJarInspector_java_plugin() throws Exception { "com.spotify.dataenum.processor.DataEnumProcessor", processorClasses.get(0)); } + @Test + public void testJarInspector_java_plugin_with_comments() throws Exception { + final Dependency dependency = + Dependency.builder().mavenCoordinate(mMavenCoordinate).build(); + final Function dependencyURIFunction = + dep -> { + try { + return RuleClassifiersTest.class + .getClassLoader() + .getResource("dataenum-processor-1.0.2-with-comments.jar") + .toURI(); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + }; + final TargetsBuilder processorFormatter = + new RuleClassifiers.JarInspector(dependencyURIFunction) + .classifyRule(dependency) + .orElse(null); + Assert.assertNotNull(processorFormatter); + Assert.assertTrue(processorFormatter instanceof TargetsBuilders.JavaPluginFormatter); + List processorClasses = + ((TargetsBuilders.JavaPluginFormatter) processorFormatter).getProcessorClasses(); + Assert.assertEquals(1, processorClasses.size()); + Assert.assertEquals( + "com.spotify.dataenum.processor.DataEnumProcessor", processorClasses.get(0)); + } + @Test public void testJarInspector_java_plugin_native() throws Exception { final Dependency dependency = diff --git a/resolver/src/main/javatest/net/evendanan/bazel/mvn/resourses/dataenum-processor-1.0.2-with-comments.jar b/resolver/src/main/javatest/net/evendanan/bazel/mvn/resourses/dataenum-processor-1.0.2-with-comments.jar new file mode 100644 index 0000000000000000000000000000000000000000..30617716219386ba953329843e8df333808662fa GIT binary patch literal 36969 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
&wqIbzlK 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 VkZ}+Qhzjr#jQ|8R6!7D>{|`vM+VlVb literal 0 HcmV?d00001