Thx,
thanks to your indications and the sample here :
I tried to go further.
I made a bundle, using blueprint, in which I placed my blueprint and the
config files for ibatis. When I try to deploy it, I get an exception :
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create
route route6 at: >>> To[ibatis:deleteUser?statementType=Delete] <<< in
route: Route[[From[file:activemq/input]] -> [To[file:activemq/outpu...
because of Failed to resolve endpoint:
ibatis://deleteUser?statementType=Delete due to:
org.osgi.service.blueprint.container.NoSuchComponentException: No component
with id 'ibatis://deleteUser?statementType=Delete' could be found
The structure of the jar is as follow :
|-SqlMapConfig.xml
|-Users.xml (the maps definitions)
|-OSGI-INF
|-blueprint
|-blueprint.xml
|-META-INF
|MANIFEST.MF
Here is my SqlMapConfig.xml :
-----------------------------------------------
<sqlMapConfig>
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL"
value="jdbc:mysql://localhost:3306/forem_1"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value="mysql"/>
</dataSource>
</transactionManager>
<sqlMap resource="User.xml"/>
</sqlMapConfig>
Here is my Users.xml :
----------------------------------------------
<sqlMap>
<delete id="deleteUser">
delete from transfert_outbound where correlationId = 2
</delete>
</sqlMap>
Here is my blueprint.xml :
----------------------------------------------
<blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route>
<from uri="file:activemq/input"/>
<to uri="file:activemq/output"/>
<setBody>
<simple>
NEW FileMovedEvent(file: ${file:name}, timestamp:
${date:now:hh:MM:ss.SSS})
</simple>
</setBody>
<to uri="log:events"/>
<to uri="ibatis:deleteUser?statementType=Delete"/>
</route>
</camelContext>
</blueprint>
and here is my pom.xml
------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.servicemix.features</groupId>
<artifactId>features</artifactId>
<version>4.3.0</version>
</parent>
<groupId>testing.servicemix.example</groupId>
<artifactId>ibatistest</artifactId>
<packaging>bundle</packaging>
<version>1.0-SNAPSHOT</version>
<name>iBatis test</name>
<properties>
<!-- Camel -->
<camel-version>2.6.0</camel-version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<version>${camel-version}</version>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-ibatis</artifactId>
<version>${camel-version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
<Import-Package>*,org.apache.camel.osgi</Import-Package>
<Private-Package>org.apache.servicemix.examples.camel</Private-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
Any clue ???
Thx in advance,
Mike
2011/3/22 Charles Moulliard <[email protected]>
> Hi Michael,
>
> Yeap, you must create a bundle containing your camel route, myibatis
> config files and place them in a folder which is in the classpath of
> the bundle.
>
> Regards,
>
> Charles
>
>
>
> On Tue, Mar 22, 2011 at 3:25 PM, Michael Dewitte
> <[email protected]> wrote:
> > Thanks Charles,
> >
> > but as it's deployed into karaf, does it means I have to create an osgi
> > bundle, with the sqlmap in it (and the xml def of my CamelContext too ?)
> ?
> > This particular part is not clear to me, and if i find info on the ibatis
> /
> > mybatis part, i can't find this precise detail on how to package / deploy
> it
> > to servicemix... Until now, I only had to deploy the CamelContext using
> > blueprint directly via the deploy folder...
> >
> > Thanks for your help,
> >
> > Mike
> >
> >
> > 2011/3/22 Charles Moulliard <[email protected]>
> >
> >> Hi Mike,
> >>
> >> According to the doc,
> >>
> >> This component will by default load the MyBatis SqlMapConfig file from
> >> the root of the classpath and expected named as SqlMapConfig.xml.
> >> If the file is located in another location, you would have to
> >> configure the configurationUri option on the MyBatisComponent
> >> component.
> >>
> >> Regards,
> >>
> >> Charles Moulliard
> >>
> >> Sr. Principal Solution Architect - FuseSource
> >> Apache Committer
> >>
> >> Blog : http://cmoulliard.blogspot.com
> >> Twitter : http://twitter.com/cmoulliard
> >> Linkedin : http://www.linkedin.com/in/charlesmoulliard
> >> Skype: cmoulliard
> >>
> >>
> >>
> >> On Tue, Mar 22, 2011 at 2:25 PM, Michael Dewitte
> >> <[email protected]> wrote:
> >> > Hi,
> >> >
> >> > one question that seems to be borderline betwwen Camel and SMX :
> >> > I want to raise some events (posting messages on a queue) based on
> events
> >> > occured on table in a database. So, in fact, I want to react upon
> insert
> >> in
> >> > a table. To do so, I thought about a route, using a timer then a
> MyBatis
> >> > then posting to a queue.
> >> >
> >> > the route could look like this :
> >> > <camelContext xmlns="http://camel.apache.org/schema/blueprint">
> >> > <route>
> >> > <from uri="timer://pollTheDatabase?delay=30000"/>
> >> > <to
> >> > uri="mbatis:selectAllNewlyInsertedPeople?statementType=QueryForList"/>
> >> > <to uri="activemq://events" />
> >> > </route>
> >> > </camelContext>
> >> >
> >> > I haven't found config sample using SpringConfig nor blueprints.... My
> >> > question is : where do I define the SQLmap... normally it should be
> >> defined
> >> > in another xml file, if I was building the route in java... but how do
> if
> >> I
> >> > want to use a route configured with blueprint ?
> >> >
> >> > Or maybe am I wrong and should I use a totally different way ?
> >> >
> >> > Thanks for any help,
> >> >
> >> > Mike
> >> >
> >>
> >
>