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.CamelTestSupportBase 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 Classes Modifier and Type Class Description static classCamelSpringTestSupport.MyXmlApplicationContextstatic classCamelSpringTestSupport.TranslatedResource
-
Field Summary
Fields Modifier and Type Field Description protected org.springframework.context.support.AbstractApplicationContextapplicationContextprotected static ObjectLOCKstatic StringTEST_CLASS_NAME_PROPERTYstatic StringTEST_CLASS_SIMPLE_NAME_PROPERTYstatic StringTEST_DIRECTORY_PROPERTYprotected static ThreadLocal<org.springframework.context.support.AbstractApplicationContext>THREAD_APP_CONTEXT
-
Constructor Summary
Constructors Constructor Description CamelSpringTestSupport()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected String[]activeProfiles()Which active profiles should be used.protected abstract org.springframework.context.support.AbstractApplicationContextcreateApplicationContext()protected org.apache.camel.CamelContextcreateCamelContext()voiddoPostTearDown()voiddoPreSetup()protected Class<?>excludeRoute()Template method used to exclude aRoutefrom the test camel contextprotected Class<?>[]excludeRoutes()Template method used to excludeRoutefrom the test time context route scanning<T> TgetMandatoryBean(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.ApplicationContextgetRouteExcludingApplicationContext()Create a parent context that initializes aPackageScanClassResolverto exclude a set of given classes from being resolved.protected Map<String,String>getTranslationProperties()org.springframework.context.support.AbstractXmlApplicationContextnewAppContext(String configLocation)org.springframework.context.support.AbstractXmlApplicationContextnewAppContext(String... configLocations)static CamelSpringTestSupport.MyXmlApplicationContextnewAppContext(String[] configLocations, Class<?> clazz, Map<String,String> props)static org.springframework.context.support.AbstractXmlApplicationContextnewAppContext(String configLocation, Class<?> clazz)static CamelSpringTestSupport.MyXmlApplicationContextnewAppContext(String configLocation, Class<?> clazz, Map<String,String> props)voidpostProcessTest()voidtearDown()-
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, fileUri, fileUri, 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 Detail
-
TEST_CLASS_NAME_PROPERTY
public static final String TEST_CLASS_NAME_PROPERTY
- See Also:
- Constant Field Values
-
TEST_CLASS_SIMPLE_NAME_PROPERTY
public static final String TEST_CLASS_SIMPLE_NAME_PROPERTY
- See Also:
- Constant Field Values
-
TEST_DIRECTORY_PROPERTY
public static final String TEST_DIRECTORY_PROPERTY
- See Also:
- Constant Field Values
-
THREAD_APP_CONTEXT
protected static final ThreadLocal<org.springframework.context.support.AbstractApplicationContext> THREAD_APP_CONTEXT
-
LOCK
protected static final Object LOCK
-
applicationContext
protected org.springframework.context.support.AbstractApplicationContext applicationContext
-
-
Method Detail
-
createApplicationContext
protected abstract org.springframework.context.support.AbstractApplicationContext createApplicationContext()
-
postProcessTest
public void postProcessTest() throws Exception- Overrides:
postProcessTestin classorg.apache.camel.test.junit5.CamelTestSupport- Throws:
Exception
-
doPreSetup
public void doPreSetup() throws Exception- Overrides:
doPreSetupin classorg.apache.camel.test.junit5.CamelTestSupport- Throws:
Exception
-
tearDown
@AfterEach public void tearDown() throws Exception- Overrides:
tearDownin classorg.apache.camel.test.junit5.CamelTestSupport- Throws:
Exception
-
doPostTearDown
public void doPostTearDown() throws Exception- Overrides:
doPostTearDownin classorg.apache.camel.test.junit5.CamelTestSupport- Throws:
Exception
-
getRouteExcludingApplicationContext
protected org.springframework.context.ApplicationContext getRouteExcludingApplicationContext()
Create a parent context that initializes aPackageScanClassResolverto 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 theApplicationContextreturned 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 methodsexcludedRoutesandexcludedRouteto determine the classes to be excluded from scanning.- Returns:
- ApplicationContext a parent
ApplicationContextconfigured to exclude certain classes from package scanning
-
excludeRoutes
protected Class<?>[] excludeRoutes()
Template method used to excludeRoutefrom the test time context route scanning- Returns:
- Class[] the classes to be excluded from test time context route scanning
-
excludeRoute
protected Class<?> excludeRoute()
Template method used to exclude aRoutefrom the test camel context
-
getMandatoryBean
public <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 type
-
activeProfiles
protected String[] activeProfiles()
Which active profiles should be used. Important: When using active profiles, then the code increateApplicationContext()should create the SpringAbstractApplicationContextwithout refreshing. For example creating anClassPathXmlApplicationContextyou would need to pass in false in the refresh parameter, in the constructor. Camel will thrown anIllegalStateExceptionif 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
protected org.apache.camel.CamelContext createCamelContext() throws Exception- Overrides:
createCamelContextin 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
-
newAppContext
public static org.springframework.context.support.AbstractXmlApplicationContext newAppContext(String configLocation, Class<?> clazz)
-
newAppContext
public static CamelSpringTestSupport.MyXmlApplicationContext newAppContext(String configLocation, Class<?> clazz, Map<String,String> props)
-
-