Hi,
I would write integration tests with all the magic provided by camel
starters and spring boot test starter, so with this dependencies:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-mybatis-starter</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
I can simply write integration tests like:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyRouteTest {
@Autowired
ProducerTemplate template;
@Test
public void thisShouldWork() {
template.sendBody("direct:start", null);
}
}
zoran
On Fri, Mar 31, 2017 at 1:13 AM, jbailie1992
<[email protected]> wrote:
> I've got a Spring Boot app that makes use of Camel and Mybatis. I've got the
> following mybatis dependencies in pom.xml:
>
> *pom.xml*
>
> ....
> <dependency>
> <groupId>org.apache.camel</groupId>
> <artifactId>camel-mybatis</artifactId>
> <version>${camel.version}</version>
> </dependency>
> ....
> <dependency>
> <groupId>org.mybatis.spring.boot</groupId>
> <artifactId>mybatis-spring-boot-starter</artifactId>
> <version>1.0.1</version>
> </dependency>
> ....
>
> I've got the following route:
>
> *MyRoute.java*
>
> @Component
> public class MyRoute extends SpringRouteBuilder{
>
> @Autowired
> MQConnectionProperties mqConnectionProperties;
>
> @Override
> public void configure() throws Exception {
> from(mqConnectionProperties.getResponseQueue())
> .to("mybatis:selectLogByPrimaryKey?statementType=SelectOne")
> .process(new TargetSystemProcessor())
> .end()
> }
> }
>
> and the test for the route:
>
> *MyRouteUnitTest.java*
>
> @RunWith(SpringJUnit4ClassRunner.class)
> @ContextConfiguration(classes = {MyRouteTestConfiguration.class})
> @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
> public class MyRouteUnitTest extends CamelTestSupport{
>
> @Mock
> MyBatisComponent mybatis;
> @Autowired
> MQConnectionProperties mqProps;
> @Autowired
> MyRouteBuilder route;
>
> @Before
> public void setup() throws Exception {
> super.setUp();
> context.addComponent("mybatis", mybatis);
> }
>
> @Test
> public void test() throws Exception {
> startCamelContext();
>
> assertTrue(true);
>
> stopCamelContext();
> }
> }
>
> When I try to start the test without adding mybatis as a component to the
> context, I get this error:
>
> org.apache.camel.FailedToCreateRouteException: Failed to create route
> My_Route at: >>>
> To[mybatis:selectAuditLogByPrimaryKey?statementType=SelectOne] <<< in route:
> Route(My_Route)[[From[seda:inpu... because of Failed to resolve endpoint:
> mybatis://selectAuditLogByPrimaryKey?statementType=SelectOne due to: Cannot
> auto create component: mybatis
> ....
> Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to
> resolve endpoint:
> mybatis://selectAuditLogByPrimaryKey?statementType=SelectOne due to: Cannot
> auto create component: mybatis
> ....
> Caused by: java.io.FileNotFoundException: Cannot find resource:
> SqlMapConfig.xml in classpath for URI: SqlMapConfig.xml
>
>
>
> Whenever I add the component to the context as shown i nthe test above, I
> get this error:
>
> org.apache.camel.FailedToCreateRouteException: Failed to create route
> My_Route at: >>>
> To[mybatis:selectAuditLogByPrimaryKey?statementType=SelectOne] <<< in route:
> Route(My_Route)[[From[seda:inpu... because of Failed to resolve endpoint:
> mybatis://selectAuditLogByPrimaryKey?statementType=SelectOne due to: No
> component found with scheme: mybatis
>
>
> As far as I can tell, I've got the right dependencies i nthe pom file to
> hook all of this together, and mybatis works fine in the source code. For
> unit testing I can work around it by replacing the endpoint, but I can't
> write any integration tests for my route
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Camel-No-component-found-with-scheme-mybatis-tp5796762.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Zoran Regvart