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
> >> >
> >>
> >
>

Reply via email to