This is an automated email from the ASF dual-hosted git repository.
nfilotto pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git
The following commit(s) were added to refs/heads/main by this push:
new 81d96e4dd Ref #451: Allow to clean up integration tests (#523)
81d96e4dd is described below
commit 81d96e4dd4ba10ffb42ef5255b2139a5441d867a
Author: Nicolas Filotto <[email protected]>
AuthorDate: Tue Oct 15 18:34:46 2024 +0200
Ref #451: Allow to clean up integration tests (#523)
---
.../org/apache/karaf/camel/itests/CamelRouteSupplier.java | 7 +++++++
.../karaf/camel/itests/CamelSuppliedRouteLauncher.java | 1 +
.../karaf/camel/test/CamelArangodbRouteSupplier.java | 11 +++++++++--
.../apache/karaf/camel/test/CamelAs2RouteSupplier.java | 2 +-
tests/features/camel-dns/pom.xml | 1 -
.../apache/karaf/camel/test/CamelDnsRouteSupplier.java | 8 ++++++++
.../karaf/camel/test/CamelEhcacheRouteSupplier.java | 11 ++++++++++-
.../karaf/camel/test/CamelElasticsearchRouteSupplier.java | 2 +-
.../karaf/camel/test/CamelHazelcastRouteSupplier.java | 10 +++++++++-
.../karaf/camel/test/CamelInfluxdb2RouteSupplier.java | 15 ++++++++++++---
.../karaf/camel/test/CamelRestNettyHttpRouteSupplier.java | 2 +-
11 files changed, 59 insertions(+), 11 deletions(-)
diff --git
a/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelRouteSupplier.java
b/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelRouteSupplier.java
index ec844954a..40d067906 100644
---
a/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelRouteSupplier.java
+++
b/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelRouteSupplier.java
@@ -23,4 +23,11 @@ public interface CamelRouteSupplier {
* @param builder the Camel route builder
*/
void createRoutes(RouteBuilder builder);
+
+ /**
+ * Cleans up the Camel context before removing the routes.
+ */
+ default void cleanUp(CamelContext camelContext) {
+ // Do nothing by default
+ }
}
diff --git
a/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelSuppliedRouteLauncher.java
b/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelSuppliedRouteLauncher.java
index bc1565b50..8c0fe20ce 100644
---
a/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelSuppliedRouteLauncher.java
+++
b/tests/camel-integration-test/src/main/java/org/apache/karaf/camel/itests/CamelSuppliedRouteLauncher.java
@@ -124,6 +124,7 @@ public class CamelSuppliedRouteLauncher extends
AbstractCamelRouteLauncher imple
return;
}
camelContext.removeRouteDefinitions(routeDefinitions);
+ supplier.cleanUp(camelContext);
LOG.info("Route(s) removed from CamelRouteSupplier service: {}",
supplier.getClass().getName());
} catch (Exception e) {
throw new RuntimeException(e);
diff --git
a/tests/features/camel-arangodb/src/main/java/org/apache/karaf/camel/test/CamelArangodbRouteSupplier.java
b/tests/features/camel-arangodb/src/main/java/org/apache/karaf/camel/test/CamelArangodbRouteSupplier.java
index 9769b4b88..4161f0edf 100644
---
a/tests/features/camel-arangodb/src/main/java/org/apache/karaf/camel/test/CamelArangodbRouteSupplier.java
+++
b/tests/features/camel-arangodb/src/main/java/org/apache/karaf/camel/test/CamelArangodbRouteSupplier.java
@@ -42,7 +42,7 @@ public class CamelArangodbRouteSupplier extends
AbstractCamelSingleFeatureResult
@Override
public void configure(CamelContext camelContext) {
- final int arangoPort =
Integer.parseInt(System.getProperty("arango.port"));
+ final int arangoPort = Integer.getInteger("arango.port");
ArangoDB arangoDb = new ArangoDB.Builder().host("localhost",
arangoPort).build();
arangoDb.createDatabase(DATABASE_NAME);
@@ -54,7 +54,14 @@ public class CamelArangodbRouteSupplier extends
AbstractCamelSingleFeatureResult
arangoDbComponent.getConfiguration().setHost("localhost");
arangoDbComponent.getConfiguration().setPort(arangoPort);
- camelContext.addComponent("arangodb",arangoDbComponent);
+ camelContext.addComponent("arangodb", arangoDbComponent);
+ }
+
+ @Override
+ public void cleanUp(CamelContext camelContext) {
+ if (camelContext.hasComponent("arangodb") instanceof ArangoDbComponent
arangoDbComponent) {
+ arangoDbComponent.getArangoDB().shutdown();
+ }
}
@Override
diff --git
a/tests/features/camel-as2/src/main/java/org/apache/karaf/camel/test/CamelAs2RouteSupplier.java
b/tests/features/camel-as2/src/main/java/org/apache/karaf/camel/test/CamelAs2RouteSupplier.java
index e25e335e9..08ba8a689 100644
---
a/tests/features/camel-as2/src/main/java/org/apache/karaf/camel/test/CamelAs2RouteSupplier.java
+++
b/tests/features/camel-as2/src/main/java/org/apache/karaf/camel/test/CamelAs2RouteSupplier.java
@@ -75,7 +75,7 @@ public class CamelAs2RouteSupplier extends
AbstractCamelSingleFeatureResultMockB
@Override
public void configure(CamelContext context) {
- final int port = Integer.parseInt(System.getProperty("as2.port"));
+ final int port = Integer.getInteger("as2.port");
final AS2Configuration configuration = new AS2Configuration();
configuration.setTargetHostname("localhost");
configuration.setTargetPortNumber(port);
diff --git a/tests/features/camel-dns/pom.xml b/tests/features/camel-dns/pom.xml
index 3d24664d3..496619eff 100644
--- a/tests/features/camel-dns/pom.xml
+++ b/tests/features/camel-dns/pom.xml
@@ -35,7 +35,6 @@
<groupId>dnsjava</groupId>
<artifactId>dnsjava</artifactId>
<version>${dnsjava-version}</version>
- <scope>test</scope>
</dependency>
</dependencies>
diff --git
a/tests/features/camel-dns/src/main/java/org/apache/karaf/camel/test/CamelDnsRouteSupplier.java
b/tests/features/camel-dns/src/main/java/org/apache/karaf/camel/test/CamelDnsRouteSupplier.java
index ba55db041..d45908639 100644
---
a/tests/features/camel-dns/src/main/java/org/apache/karaf/camel/test/CamelDnsRouteSupplier.java
+++
b/tests/features/camel-dns/src/main/java/org/apache/karaf/camel/test/CamelDnsRouteSupplier.java
@@ -15,11 +15,13 @@
*/
package org.apache.karaf.camel.test;
+import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.RouteDefinition;
import
org.apache.karaf.camel.itests.AbstractCamelSingleFeatureResultMockBasedRouteSupplier;
import org.apache.karaf.camel.itests.CamelRouteSupplier;
import org.osgi.service.component.annotations.Component;
+import org.xbill.DNS.NioClient;
@Component(
name = "karaf-camel-dns-test",
@@ -35,6 +37,12 @@ public class CamelDnsRouteSupplier extends
AbstractCamelSingleFeatureResultMockB
return false;
}
+ @Override
+ public void cleanUp(CamelContext camelContext) {
+ // Close it explicitly to prevent NoClassDefFoundError after the test
+ NioClient.close();
+ }
+
@Override
protected void configureProducer(RouteBuilder builder, RouteDefinition
producerRoute) {
producerRoute.log("Will get IP")
diff --git
a/tests/features/camel-ehcache/src/main/java/org/apache/karaf/camel/test/CamelEhcacheRouteSupplier.java
b/tests/features/camel-ehcache/src/main/java/org/apache/karaf/camel/test/CamelEhcacheRouteSupplier.java
index 08abb3c53..ad36f785f 100644
---
a/tests/features/camel-ehcache/src/main/java/org/apache/karaf/camel/test/CamelEhcacheRouteSupplier.java
+++
b/tests/features/camel-ehcache/src/main/java/org/apache/karaf/camel/test/CamelEhcacheRouteSupplier.java
@@ -51,7 +51,16 @@ public class CamelEhcacheRouteSupplier extends
AbstractCamelSingleFeatureResultM
)
.build(true);
- camelContext.getRegistry().bind("cacheManager",cacheManager);
+ camelContext.getRegistry().bind("cacheManager", cacheManager);
+ }
+
+ @Override
+ public void cleanUp(CamelContext camelContext) {
+ CacheManager cacheManager =
camelContext.getRegistry().lookupByNameAndType("cacheManager",
CacheManager.class);
+ if (cacheManager == null) {
+ return;
+ }
+ cacheManager.close();
}
@Override
diff --git
a/tests/features/camel-elasticsearch/src/main/java/org/apache/karaf/camel/test/CamelElasticsearchRouteSupplier.java
b/tests/features/camel-elasticsearch/src/main/java/org/apache/karaf/camel/test/CamelElasticsearchRouteSupplier.java
index cb340416d..c6d2e2877 100644
---
a/tests/features/camel-elasticsearch/src/main/java/org/apache/karaf/camel/test/CamelElasticsearchRouteSupplier.java
+++
b/tests/features/camel-elasticsearch/src/main/java/org/apache/karaf/camel/test/CamelElasticsearchRouteSupplier.java
@@ -39,7 +39,7 @@ public class CamelElasticsearchRouteSupplier extends
AbstractCamelSingleFeatureR
elasticsearchComponent.setPassword(System.getProperty("elasticsearch.password"));
elasticsearchComponent.setCertificatePath("file:%s".formatted(System.getProperty("elasticsearch.cafile")));
- camelContext.addComponent("elasticsearch",elasticsearchComponent);
+ camelContext.addComponent("elasticsearch", elasticsearchComponent);
}
@Override
diff --git
a/tests/features/camel-hazelcast/src/main/java/org/apache/karaf/camel/test/CamelHazelcastRouteSupplier.java
b/tests/features/camel-hazelcast/src/main/java/org/apache/karaf/camel/test/CamelHazelcastRouteSupplier.java
index 77d08899c..17cb7dd5d 100644
---
a/tests/features/camel-hazelcast/src/main/java/org/apache/karaf/camel/test/CamelHazelcastRouteSupplier.java
+++
b/tests/features/camel-hazelcast/src/main/java/org/apache/karaf/camel/test/CamelHazelcastRouteSupplier.java
@@ -36,12 +36,20 @@ public class CamelHazelcastRouteSupplier extends
AbstractCamelSingleFeatureResul
@Override
public void configure(CamelContext camelContext) {
- ClusterProperty.SHUTDOWNHOOK_ENABLED.setSystemProperty("false");
Config hazelcastConfig = new Config();
HazelcastInstance hazelcastInstance =
Hazelcast.newHazelcastInstance(hazelcastConfig);
camelContext.getRegistry().bind("hzInstance", hazelcastInstance);
}
+ @Override
+ public void cleanUp(CamelContext camelContext) {
+ HazelcastInstance hazelcastInstance =
camelContext.getRegistry().lookupByNameAndType("hzInstance",
HazelcastInstance.class);
+ if (hazelcastInstance == null) {
+ return;
+ }
+ hazelcastInstance.shutdown();
+ }
+
@Override
protected boolean consumerEnabled() {
//consumers are implemented directly in the configureProducer method
here
diff --git
a/tests/features/camel-influxdb2/src/main/java/org/apache/karaf/camel/test/CamelInfluxdb2RouteSupplier.java
b/tests/features/camel-influxdb2/src/main/java/org/apache/karaf/camel/test/CamelInfluxdb2RouteSupplier.java
index 974f9a489..31260a248 100644
---
a/tests/features/camel-influxdb2/src/main/java/org/apache/karaf/camel/test/CamelInfluxdb2RouteSupplier.java
+++
b/tests/features/camel-influxdb2/src/main/java/org/apache/karaf/camel/test/CamelInfluxdb2RouteSupplier.java
@@ -38,11 +38,20 @@ public class CamelInfluxdb2RouteSupplier extends
AbstractCamelSingleFeatureResul
@Override
public void configure(CamelContext camelContext) {
- final int influxdb2Port =
Integer.parseInt(System.getProperty("influxdb2.port"));
- InfluxDBClient myInfluxDBClient =
InfluxDBClientFactory.create("http://localhost:%s".formatted(influxdb2Port),
+ final int influxdb2Port = Integer.getInteger("influxdb2.port");
+ InfluxDBClient influxDBClient =
InfluxDBClientFactory.create("http://localhost:%s".formatted(influxdb2Port),
System.getProperty("influxdb2.admin.token").toCharArray(),
ORG, BUCKET);
- camelContext.getRegistry().bind("myDbClient", myInfluxDBClient);
+ camelContext.getRegistry().bind("myDbClient", influxDBClient);
+ }
+
+ @Override
+ public void cleanUp(CamelContext camelContext) {
+ InfluxDBClient influxDBClient =
camelContext.getRegistry().lookupByNameAndType("myDbClient",
InfluxDBClient.class);
+ if (influxDBClient == null) {
+ return;
+ }
+ influxDBClient.close();
}
@Override
diff --git
a/tests/features/camel-netty-http/src/main/java/org/apache/karaf/camel/test/CamelRestNettyHttpRouteSupplier.java
b/tests/features/camel-netty-http/src/main/java/org/apache/karaf/camel/test/CamelRestNettyHttpRouteSupplier.java
index fbbd6c90c..80dec38e8 100644
---
a/tests/features/camel-netty-http/src/main/java/org/apache/karaf/camel/test/CamelRestNettyHttpRouteSupplier.java
+++
b/tests/features/camel-netty-http/src/main/java/org/apache/karaf/camel/test/CamelRestNettyHttpRouteSupplier.java
@@ -34,7 +34,7 @@ public class CamelRestNettyHttpRouteSupplier extends
AbstractCamelSingleFeatureR
RestConfiguration config = new RestConfiguration();
config.setComponent("netty-http");
config.setHost("127.0.0.1");
- config.setPort(Integer.parseInt(System.getProperty(REST_PORT)));
+ config.setPort(Integer.getInteger(REST_PORT));
camelContext.setRestConfiguration(config);
}