diff --git a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java index 179ba6647c0cd..fda3f14159c5f 100644 --- a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java +++ b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java @@ -52,7 +52,7 @@ * testing. */ public abstract class CamelTestSupport extends AbstractTestSupport - implements BeforeTestExecutionCallback, AfterTestExecutionCallback { + implements BeforeTestExecutionCallback, AfterTestExecutionCallback, ConfigurableTest, ConfigurableContext { private static final Logger LOG = LoggerFactory.getLogger(CamelTestSupport.class); @RegisterExtension @@ -71,11 +71,13 @@ public abstract class CamelTestSupport extends AbstractTestSupport protected CamelTestSupport() { super(new TestExecutionConfiguration(), new CamelContextConfiguration()); - testConfigurationBuilder.withJMX(useJmx()) - .withUseRouteBuilder(isUseRouteBuilder()) - .withUseAdviceWith(isUseAdviceWith()) - .withDumpRouteCoverage(isDumpRouteCoverage()); + configureTest(testConfigurationBuilder); + configureContext(camelContextConfiguration); + contextManagerExtension = new ContextManagerExtension(testConfigurationBuilder, camelContextConfiguration); + } + @Override + public void configureContext(CamelContextConfiguration camelContextConfiguration) { camelContextConfiguration .withCamelContextSupplier(this::createCamelContext) .withRegistryBinder(this::bindToRegistry) @@ -86,8 +88,14 @@ protected CamelTestSupport() { .withRouteFilterIncludePattern(getRouteFilterIncludePattern()) .withMockEndpoints(isMockEndpoints()) .withMockEndpointsAndSkip(isMockEndpointsAndSkip()); + } - contextManagerExtension = new ContextManagerExtension(testConfigurationBuilder, camelContextConfiguration); + @Override + public void configureTest(TestExecutionConfiguration testExecutionConfiguration) { + testExecutionConfiguration.withJMX(useJmx()) + .withUseRouteBuilder(isUseRouteBuilder()) + .withUseAdviceWith(isUseAdviceWith()) + .withDumpRouteCoverage(isDumpRouteCoverage()); } @Override diff --git a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/ConfigurableContext.java b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/ConfigurableContext.java new file mode 100644 index 0000000000000..5d27ce6af1a1d --- /dev/null +++ b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/ConfigurableContext.java @@ -0,0 +1,30 @@ +/* + * 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 org.apache.camel.test.junit5; + +/** + * Indicates that the context used by the test is configurable + */ +public interface ConfigurableContext { + /** + * Configures the context used for the test execution + * + * @param camelContextConfiguration + */ + void configureContext(CamelContextConfiguration camelContextConfiguration); +} diff --git a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/ConfigurableTest.java b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/ConfigurableTest.java new file mode 100644 index 0000000000000..7748750350fa3 --- /dev/null +++ b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/ConfigurableTest.java @@ -0,0 +1,30 @@ +/* + * 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 org.apache.camel.test.junit5; + +/** + * Indicates that the test is configurable + */ +public interface ConfigurableTest { + /** + * Configures the test execution + * + * @param testExecutionConfiguration + */ + void configureTest(TestExecutionConfiguration testExecutionConfiguration); +}