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 2020/03/26 08:55:33 UTC

[camel-k-runtime] 01/02: Fix joor after switching to Java 11

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

commit 0799baa6a8b4968c784b92f9717bc0b7726348df
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Wed Mar 25 16:38:19 2020 +0100

    Fix joor after switching to Java 11
---
 camel-k-loader-java/pom.xml                        |  2 +-
 .../src/test/resources/MyRoutesWithBeans.java      |  9 ++--
 camel-k-loader-kotlin/pom.xml                      |  3 +-
 camel-k-main/camel-k-runtime-main/pom.xml          |  5 ++
 .../java/org/apache/camel/k/main/RuntimeTest.java  | 36 ++++++++++++-
 .../src/test/resources/MyRoutesWithBeans.java      |  1 +
 .../src/main/java/org/apache/camel/k/Runtime.java  |  5 ++
 camel-k-runtime-knative/pom.xml                    |  8 +--
 .../knative/KnativeSourceRoutesLoaderTest.java     | 61 ++++------------------
 9 files changed, 64 insertions(+), 66 deletions(-)

diff --git a/camel-k-loader-java/pom.xml b/camel-k-loader-java/pom.xml
index a5d1db8..4ecdc5b 100644
--- a/camel-k-loader-java/pom.xml
+++ b/camel-k-loader-java/pom.xml
@@ -42,7 +42,7 @@
         </dependency>
         <dependency>
             <groupId>org.jooq</groupId>
-            <artifactId>joor-java-8</artifactId>
+            <artifactId>joor</artifactId>
             <version>${joor.version}</version>
         </dependency>
 
diff --git a/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesWithBeans.java b/camel-k-loader-java/src/test/resources/MyRoutesWithBeans.java
similarity index 84%
copy from camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesWithBeans.java
copy to camel-k-loader-java/src/test/resources/MyRoutesWithBeans.java
index 530fe17..746b8e6 100644
--- a/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesWithBeans.java
+++ b/camel-k-loader-java/src/test/resources/MyRoutesWithBeans.java
@@ -14,7 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.builder.RouteBuilder;
 
@@ -22,12 +21,12 @@ public class MyRoutesWithBeans extends RouteBuilder {
     @Override
     public void configure() throws Exception {
         from("direct:start")
-            .bean("my-bean", "getName")
-            .to("log:info");
+            .setBody().simple("${header[MyHeader]}")
+            .to("log:knative");
     }
 
     @BindToRegistry("my-bean")
-    public org.apache.camel.k.main.MyBean createMyBean() {
-        return new org.apache.camel.k.main.MyBean("my-bean-name");
+    public static String myBean() {
+        return "my-bean-string";
     }
 }
\ No newline at end of file
diff --git a/camel-k-loader-kotlin/pom.xml b/camel-k-loader-kotlin/pom.xml
index 2063906..1d27cfd 100644
--- a/camel-k-loader-kotlin/pom.xml
+++ b/camel-k-loader-kotlin/pom.xml
@@ -193,7 +193,8 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <forkCount>0</forkCount>
+                  <forkCount>1</forkCount>
+                  <reuseForks>false</reuseForks>
                 </configuration>
             </plugin>
             <plugin>
diff --git a/camel-k-main/camel-k-runtime-main/pom.xml b/camel-k-main/camel-k-runtime-main/pom.xml
index c826594..c73beb3 100644
--- a/camel-k-main/camel-k-runtime-main/pom.xml
+++ b/camel-k-main/camel-k-runtime-main/pom.xml
@@ -148,6 +148,11 @@
             <artifactId>camel-k-loader-kotlin</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.k</groupId>
+            <artifactId>camel-k-runtime-knative</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java b/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java
index b5256e5..59681e6 100644
--- a/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java
+++ b/camel-k-main/camel-k-runtime-main/src/test/java/org/apache/camel/k/main/RuntimeTest.java
@@ -20,16 +20,22 @@ import java.util.List;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Route;
+import org.apache.camel.component.knative.KnativeComponent;
+import org.apache.camel.component.knative.spi.Knative;
+import org.apache.camel.component.knative.spi.KnativeEnvironment;
 import org.apache.camel.k.Runtime;
+import org.apache.camel.k.http.PlatformHttpServiceContextCustomizer;
 import org.apache.camel.k.listener.ContextConfigurer;
 import org.apache.camel.k.listener.RoutesConfigurer;
+import org.apache.camel.k.test.AvailablePortFinder;
 import org.apache.camel.model.ModelCamelContext;
-import org.apache.camel.util.CollectionHelper;
+import org.apache.camel.model.ToDefinition;
 import org.apache.camel.util.ObjectHelper;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import static org.apache.camel.util.CollectionHelper.mapOf;
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class RuntimeTest {
@@ -82,7 +88,7 @@ public class RuntimeTest {
 
     @Test
     void testLoadRouteWithExpression() throws Exception {
-        runtime.setProperties(CollectionHelper.mapOf(
+        runtime.setProperties(mapOf(
             "the.body", "10"
         ));
 
@@ -105,4 +111,30 @@ public class RuntimeTest {
         });
     }
 
+    @Test
+    public void testLoadJavaSourceWrap() throws Exception {
+        KnativeComponent component = new KnativeComponent();
+        component.setEnvironment(KnativeEnvironment.on(
+            KnativeEnvironment.endpoint(Knative.EndpointKind.sink, "sink", "localhost", AvailablePortFinder.getNextAvailable())
+        ));
+
+        PlatformHttpServiceContextCustomizer phsc = new PlatformHttpServiceContextCustomizer();
+        phsc.setBindPort(AvailablePortFinder.getNextAvailable());
+        phsc.apply(runtime.getCamelContext());
+
+        runtime.getCamelContext().addComponent("knative", component);
+        runtime.addListener(RoutesConfigurer.forRoutes("classpath:MyRoutesWithBeans.java?interceptors=knative-source"));
+        runtime.addListener(Runtime.Phase.Started, r ->  runtime.stop());
+        runtime.run();
+
+        assertThat(runtime.getRegistry().lookupByName("my-bean")).isInstanceOfSatisfying(MyBean.class, b -> {
+            assertThat(b).hasFieldOrPropertyWithValue("name", "my-bean-name");
+        });
+        assertThat(runtime.getCamelContext(ModelCamelContext.class).getRouteDefinition("my-route")).satisfies(definition -> {
+            assertThat(definition.getOutputs()).last().isInstanceOfSatisfying(ToDefinition.class, to -> {
+                assertThat(to.getEndpointUri()).isEqualTo("knative://endpoint/sink");
+            });
+        });
+    }
+
 }
diff --git a/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesWithBeans.java b/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesWithBeans.java
index 530fe17..0659a75 100644
--- a/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesWithBeans.java
+++ b/camel-k-main/camel-k-runtime-main/src/test/resources/MyRoutesWithBeans.java
@@ -22,6 +22,7 @@ public class MyRoutesWithBeans extends RouteBuilder {
     @Override
     public void configure() throws Exception {
         from("direct:start")
+            .routeId("my-route")
             .bean("my-bean", "getName")
             .to("log:info");
     }
diff --git a/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java b/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
index 3a6a65b..517d1bd 100644
--- a/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
+++ b/camel-k-runtime-core/src/main/java/org/apache/camel/k/Runtime.java
@@ -32,6 +32,11 @@ import org.apache.camel.spi.Registry;
 import static org.apache.camel.util.CollectionHelper.mapOf;
 
 public interface Runtime extends HasCamelContext {
+
+    default <T extends CamelContext> T getCamelContext(Class<T> type) {
+        return getCamelContext().adapt(type);
+    }
+
     /**
      * Returns the registry associated to this runtime.
      */
diff --git a/camel-k-runtime-knative/pom.xml b/camel-k-runtime-knative/pom.xml
index 520c0a9..ac49471 100644
--- a/camel-k-runtime-knative/pom.xml
+++ b/camel-k-runtime-knative/pom.xml
@@ -109,11 +109,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-undertow</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
             <artifactId>camel-cloud</artifactId>
             <scope>test</scope>
         </dependency>
@@ -138,7 +133,8 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
                     <useSystemClassLoader>false</useSystemClassLoader>
-                    <forkCount>0</forkCount>
+                    <forkCount>1</forkCount>
+                    <resueForks>false</resueForks>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/camel-k-runtime-knative/src/test/java/org/apache/camel/k/loader/knative/KnativeSourceRoutesLoaderTest.java b/camel-k-runtime-knative/src/test/java/org/apache/camel/k/loader/knative/KnativeSourceRoutesLoaderTest.java
index 6039a09..e036299 100644
--- a/camel-k-runtime-knative/src/test/java/org/apache/camel/k/loader/knative/KnativeSourceRoutesLoaderTest.java
+++ b/camel-k-runtime-knative/src/test/java/org/apache/camel/k/loader/knative/KnativeSourceRoutesLoaderTest.java
@@ -23,7 +23,6 @@ import java.util.UUID;
 import java.util.stream.Stream;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.ExtendedCamelContext;
 import org.apache.camel.RoutesBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.knative.KnativeComponent;
@@ -37,11 +36,9 @@ import org.apache.camel.k.SourceLoader;
 import org.apache.camel.k.Sources;
 import org.apache.camel.k.http.PlatformHttpServiceContextCustomizer;
 import org.apache.camel.k.listener.RoutesConfigurer;
-import org.apache.camel.k.loader.java.JavaSourceLoader;
 import org.apache.camel.k.test.AvailablePortFinder;
 import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.RouteDefinition;
-import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
@@ -69,15 +66,14 @@ public class KnativeSourceRoutesLoaderTest {
     public void testWrapLoader(String uri) throws Exception {
         LOGGER.info("uri: {}", uri);
 
-        final int port = AvailablePortFinder.getNextAvailable();
         final String data = UUID.randomUUID().toString();
+        final TestRuntime runtime = new TestRuntime();
 
         KnativeComponent component = new KnativeComponent();
         component.setEnvironment(KnativeEnvironment.on(
-            KnativeEnvironment.endpoint(Knative.EndpointKind.sink, "sink", "localhost", port)
+            KnativeEnvironment.endpoint(Knative.EndpointKind.sink, "sink", "localhost", runtime.port)
         ));
 
-        TestRuntime runtime = new TestRuntime();
 
         CamelContext context = runtime.getCamelContext();
         context.disableJMX();
@@ -95,7 +91,7 @@ public class KnativeSourceRoutesLoaderTest {
             context.addRoutes(new RouteBuilder() {
                 @Override
                 public void configure() throws Exception {
-                    fromF("undertow:http://localhost:%d", port)
+                    fromF("platform-http:/")
                         .routeId("http")
                         .to("mock:result");
                 }
@@ -128,62 +124,25 @@ public class KnativeSourceRoutesLoaderTest {
         }
     }
 
-    @Test
-    public void testWrapLoaderWithBeanRegistration() throws Exception {
-        final int port = AvailablePortFinder.getNextAvailable();
-
-        KnativeComponent component = new KnativeComponent();
-        component.setEnvironment(KnativeEnvironment.on(
-            KnativeEnvironment.endpoint(Knative.EndpointKind.sink, "sink", "localhost", port)
-        ));
-
-        TestRuntime runtime = new TestRuntime();
-
-        CamelContext context = runtime.getCamelContext();
-        context.disableJMX();
-        context.setStreamCaching(true);
-        context.addComponent("knative", component);
-
-        Source source = Sources.fromURI("classpath:sources/routes.java?name=MyRoutes.java&interceptors=knative-source");
-        SourceLoader loader = RoutesConfigurer.load(runtime, source);
-
-        assertThat(loader.getSupportedLanguages()).contains(source.getLanguage());
-        assertThat(loader).isInstanceOf(JavaSourceLoader.class);
-        assertThat(runtime.builders).hasSize(1);
-
-        try {
-            RoutesBuilder builder = runtime.builders.get(0);
-
-            context.addRoutes(builder);
-
-            context.adapt(ExtendedCamelContext.class)
-                .getBeanPostProcessor()
-                .postProcessBeforeInitialization(builder, builder.getClass().getName());
-            context.adapt(ExtendedCamelContext.class)
-                .getBeanPostProcessor()
-                .postProcessAfterInitialization(builder, builder.getClass().getName());
-
-            context.start();
-
-            assertThat(context.getRegistry().lookupByName("my-bean")).isInstanceOfSatisfying(String.class, "my-bean-string"::equals);
-        } finally {
-            context.stop();
-        }
-    }
-
     static class TestRuntime implements Runtime {
         private final CamelContext camelContext;
         private final List<RoutesBuilder> builders;
+        private final int port;
 
         public TestRuntime() {
             this.camelContext = new DefaultCamelContext();
             this.builders = new ArrayList<>();
+            this.port = AvailablePortFinder.getNextAvailable();
 
             PlatformHttpServiceContextCustomizer httpService = new PlatformHttpServiceContextCustomizer();
-            httpService.setBindPort(AvailablePortFinder.getNextAvailable());
+            httpService.setBindPort(this.port);
             httpService.apply(this.camelContext);
         }
 
+        public int getPort() {
+            return port;
+        }
+
         @Override
         public CamelContext getCamelContext() {
             return this.camelContext;