Class CamelSpringTestSupport
java.lang.Object
org.apache.camel.test.junit5.CamelTestSupport
org.apache.camel.test.spring.junit5.CamelSpringTestSupport
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback
,org.junit.jupiter.api.extension.AfterEachCallback
,org.junit.jupiter.api.extension.AfterTestExecutionCallback
,org.junit.jupiter.api.extension.BeforeAllCallback
,org.junit.jupiter.api.extension.BeforeEachCallback
,org.junit.jupiter.api.extension.BeforeTestExecutionCallback
,org.junit.jupiter.api.extension.Extension
public abstract class CamelSpringTestSupport
extends org.apache.camel.test.junit5.CamelTestSupport
Base test-class for classic Spring application such as standalone, web applications. Do not use this class
for Spring Boot testing, instead use
@CamelSpringBootTest
.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.springframework.context.support.AbstractApplicationContext
protected static final Object
static final String
static final String
static final String
protected static final ThreadLocal<org.springframework.context.support.AbstractApplicationContext>
Fields inherited from class org.apache.camel.test.junit5.CamelTestSupport
camelContextService, camelTestSupportExtension, consumer, context, extra, fluentTemplate, ROUTE_COVERAGE_ENABLED, template
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String[]
Which active profiles should be used.protected abstract org.springframework.context.support.AbstractApplicationContext
protected org.apache.camel.CamelContext
void
void
protected Class<?>
Template method used to exclude aRoute
from the test camel contextprotected Class<?>[]
Template method used to excludeRoute
from the test time context route scanning<T> T
getMandatoryBean
(Class<T> type, String name) Looks up the mandatory spring bean of the given name and type, failing if it is not present or the correct typeprotected org.springframework.context.ApplicationContext
Create a parent context that initializes aPackageScanClassResolver
to exclude a set of given classes from being resolved.org.springframework.context.support.AbstractXmlApplicationContext
newAppContext
(String configLocation) org.springframework.context.support.AbstractXmlApplicationContext
newAppContext
(String... configLocations) static org.springframework.context.support.AbstractXmlApplicationContext
newAppContext
(String configLocation, Class<?> clazz) void
void
tearDown()
Methods inherited from class org.apache.camel.test.junit5.CamelTestSupport
afterAll, afterEach, afterTestExecution, applyCamelPostProcessor, assertExpression, assertPredicate, assertResolveLanguage, assertValidContext, beforeAll, beforeEach, beforeTestExecution, bindToRegistry, camelContextService, cleanupResources, consumer, context, createCamelRegistry, createExchangeWithBody, createRouteBuilder, createRouteBuilders, debugAfter, debugBefore, disableJMX, doPostSetup, doQuarkusCheck, doSetUp, doSpringBootCheck, doStopCamelContext, enableJMX, fluentTemplate, getCamelContextService, getCurrentTestName, getMandatoryEndpoint, getMandatoryEndpoint, getMockEndpoint, getMockEndpoint, getRouteFilterExcludePattern, getRouteFilterIncludePattern, getShutdownTimeout, hasClassAnnotation, ignoreMissingLocationWithPropertiesComponent, isCreateCamelContextPerClass, isDumpRouteCoverage, isMockEndpoints, isMockEndpointsAndSkip, isUseAdviceWith, isUseDebugger, isUseRouteBuilder, replaceRouteFromWith, resolveMandatoryEndpoint, resolveMandatoryEndpoint, sendBodies, sendBody, sendBody, setCamelContextService, setUp, setupResources, setUseRouteBuilder, startCamelContext, stopCamelContext, template, timeTaken, useJmx, useOverridePropertiesWithPropertiesComponent
-
Field Details
-
TEST_CLASS_NAME_PROPERTY
- See Also:
-
TEST_CLASS_SIMPLE_NAME_PROPERTY
- See Also:
-
TEST_DIRECTORY_PROPERTY
- See Also:
-
THREAD_APP_CONTEXT
protected static final ThreadLocal<org.springframework.context.support.AbstractApplicationContext> THREAD_APP_CONTEXT -
LOCK
-
applicationContext
protected org.springframework.context.support.AbstractApplicationContext applicationContext
-
-
Constructor Details
-
CamelSpringTestSupport
public CamelSpringTestSupport()
-
-
Method Details
-
createApplicationContext
protected abstract org.springframework.context.support.AbstractApplicationContext createApplicationContext() -
postProcessTest
- Overrides:
postProcessTest
in classorg.apache.camel.test.junit5.CamelTestSupport
- Throws:
Exception
-
doPreSetup
- Overrides:
doPreSetup
in classorg.apache.camel.test.junit5.CamelTestSupport
- Throws:
Exception
-
tearDown
- Overrides:
tearDown
in classorg.apache.camel.test.junit5.CamelTestSupport
- Throws:
Exception
-
doPostTearDown
- Overrides:
doPostTearDown
in classorg.apache.camel.test.junit5.CamelTestSupport
- Throws:
Exception
-
getRouteExcludingApplicationContext
protected org.springframework.context.ApplicationContext getRouteExcludingApplicationContext()Create a parent context that initializes aPackageScanClassResolver
to exclude a set of given classes from being resolved. Typically this is used at test time to exclude certain routes, which might otherwise be just noisy, from being discovered and initialized. To use this filtering mechanism it is necessary to provide theApplicationContext
returned from here as the parent context to your test context e.g.protected AbstractXmlApplicationContext createApplicationContext() { return new ClassPathXmlApplicationContext( new String[] { "test-context.xml" }, getRouteExcludingApplicationContext()); }
This will, in turn, call the template methodsexcludedRoutes
andexcludedRoute
to determine the classes to be excluded from scanning.- Returns:
- ApplicationContext a parent
ApplicationContext
configured to exclude certain classes from package scanning
-
excludeRoutes
Template method used to excludeRoute
from the test time context route scanning- Returns:
- Class[] the classes to be excluded from test time context route scanning
-
excludeRoute
Template method used to exclude aRoute
from the test camel context -
getMandatoryBean
Looks up the mandatory spring bean of the given name and type, failing if it is not present or the correct type -
activeProfiles
Which active profiles should be used. Important: When using active profiles, then the code increateApplicationContext()
should create the SpringAbstractApplicationContext
without refreshing. For example creating anClassPathXmlApplicationContext
you would need to pass in false in the refresh parameter, in the constructor. Camel will thrown anIllegalStateException
if this is not correct stating this problem. The reason is that we cannot active profiles after a Spring application context has already been refreshed, and is active.- Returns:
- an array of active profiles to use, use null to not use any active profiles.
-
createCamelContext
- Overrides:
createCamelContext
in classorg.apache.camel.test.junit5.CamelTestSupport
- Throws:
Exception
-
newAppContext
public org.springframework.context.support.AbstractXmlApplicationContext newAppContext(String configLocation) throws org.springframework.beans.BeansException - Throws:
org.springframework.beans.BeansException
-
newAppContext
public org.springframework.context.support.AbstractXmlApplicationContext newAppContext(String... configLocations) throws org.springframework.beans.BeansException - Throws:
org.springframework.beans.BeansException
-
getTranslationProperties
-
newAppContext
-
newAppContext
-
newAppContext
-