You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2019/12/16 23:12:39 UTC

[camel-k-runtime] branch master updated: Ignore package when working with Java classes apache/camel-k#1132

This is an automated email from the ASF dual-hosted git repository.

lburgazzoli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k-runtime.git


The following commit(s) were added to refs/heads/master by this push:
     new ebd80b8  Ignore package when working with Java classes apache/camel-k#1132
ebd80b8 is described below

commit ebd80b82c976a51b0548d891eb5080d87ff6181d
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Mon Dec 16 20:37:39 2019 +0100

    Ignore package when working with Java classes apache/camel-k#1132
---
 .../camel/k/loader/java/JavaSourceLoader.java      | 11 ++++-----
 .../camel/k/loader/java/RoutesLoaderTest.java      |  2 ++
 .../src/test/resources/MyRoutesWithPackage.java    |  2 +-
 .../resources/MyRoutesWithPackageAndComment.java   | 27 ++++++++++++++++++++++
 ...java => MyRoutesWithPackageAndLineComment.java} |  5 ++--
 5 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java b/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java
index 1a5b3f2..c6df3b7 100644
--- a/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java
+++ b/camel-k-loader-java/src/main/java/org/apache/camel/k/loader/java/JavaSourceLoader.java
@@ -32,8 +32,10 @@ import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.joor.Reflect;
 
-@Loader("java")
+@Loader(value = "java")
 public class JavaSourceLoader implements SourceLoader {
+    private static final Pattern PACKAGE_PATTERN = Pattern.compile("^\\s*package\\s+([a-zA-Z][\\.\\w]*)\\s*;.*$", Pattern.MULTILINE);
+
     @Override
     public List<String> getSupportedLanguages() {
         return Collections.singletonList("java");
@@ -56,11 +58,8 @@ public class JavaSourceLoader implements SourceLoader {
     }
 
     private static String determineQualifiedName(Source source, String content) {
-        String name = source.getName();
-        name = StringUtils.removeEnd(name, ".java");
-
-        Pattern pattern = Pattern.compile("^\\s*package\\s+([a-zA_Z_][\\.\\w]*)\\s*;.*");
-        Matcher matcher = pattern.matcher(content);
+        String name = StringUtils.removeEnd(source.getName(), ".java");
+        Matcher matcher = PACKAGE_PATTERN.matcher(content);
 
         if (matcher.find()) {
             name = matcher.group(1) + "." + name;
diff --git a/camel-k-loader-java/src/test/java/org/apache/camel/k/loader/java/RoutesLoaderTest.java b/camel-k-loader-java/src/test/java/org/apache/camel/k/loader/java/RoutesLoaderTest.java
index f1c56c6..896c8ad 100644
--- a/camel-k-loader-java/src/test/java/org/apache/camel/k/loader/java/RoutesLoaderTest.java
+++ b/camel-k-loader-java/src/test/java/org/apache/camel/k/loader/java/RoutesLoaderTest.java
@@ -145,6 +145,8 @@ public class RoutesLoaderTest {
             Arguments.arguments("classpath:MyRoutes.java", JavaSourceLoader.class),
             Arguments.arguments("classpath:MyRoutesWithNameOverride.java?name=MyRoutes.java", JavaSourceLoader.class),
             Arguments.arguments("classpath:MyRoutesWithPackage.java", JavaSourceLoader.class),
+            Arguments.arguments("classpath:MyRoutesWithPackageAndComment.java", JavaSourceLoader.class),
+            Arguments.arguments("classpath:MyRoutesWithPackageAndLineComment.java", JavaSourceLoader.class),
             Arguments.arguments("classpath:MyRoutesWithEndpointDsl.java", JavaSourceLoader.class)
         );
     }
diff --git a/camel-k-loader-java/src/test/resources/MyRoutesWithPackage.java b/camel-k-loader-java/src/test/resources/MyRoutesWithPackage.java
index 714c2de..ab377ce 100644
--- a/camel-k-loader-java/src/test/resources/MyRoutesWithPackage.java
+++ b/camel-k-loader-java/src/test/resources/MyRoutesWithPackage.java
@@ -1,4 +1,4 @@
-package my.roytes;
+package my.routes;
 
 import org.apache.camel.builder.RouteBuilder;
 
diff --git a/camel-k-loader-java/src/test/resources/MyRoutesWithPackageAndComment.java b/camel-k-loader-java/src/test/resources/MyRoutesWithPackageAndComment.java
new file mode 100644
index 0000000..7487985
--- /dev/null
+++ b/camel-k-loader-java/src/test/resources/MyRoutesWithPackageAndComment.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package my.routes;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class MyRoutesWithPackageAndComment extends RouteBuilder {
+    @Override
+    public void configure() throws Exception {
+        from("timer:tick")
+            .to("log:info");
+    }
+}
\ No newline at end of file
diff --git a/camel-k-loader-java/src/test/resources/MyRoutesWithPackage.java b/camel-k-loader-java/src/test/resources/MyRoutesWithPackageAndLineComment.java
similarity index 59%
copy from camel-k-loader-java/src/test/resources/MyRoutesWithPackage.java
copy to camel-k-loader-java/src/test/resources/MyRoutesWithPackageAndLineComment.java
index 714c2de..800131d 100644
--- a/camel-k-loader-java/src/test/resources/MyRoutesWithPackage.java
+++ b/camel-k-loader-java/src/test/resources/MyRoutesWithPackageAndLineComment.java
@@ -1,8 +1,9 @@
-package my.roytes;
+// camel-k: language=java
+package my.routes;
 
 import org.apache.camel.builder.RouteBuilder;
 
-public class MyRoutesWithPackage extends RouteBuilder {
+public class MyRoutesWithPackageAndLineComment extends RouteBuilder {
     @Override
     public void configure() throws Exception {
         from("timer:tick")