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 00000000..30617716 Binary files /dev/null and b/resolver/src/main/javatest/net/evendanan/bazel/mvn/resourses/dataenum-processor-1.0.2-with-comments.jar differ