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;