Can it have something to do with osgi settings via my POM ?

Has someone ever used ibatis in camel via osgi ?

Mike



2011/3/23 Michael Dewitte <[email protected]>

> Thanks Charles... I tried, but doesn't change anything...
>
> And even searching hard, i can't find any sample on the net with iBatis AND
> osgi.... :-(
>
> Mike
>
>
> 2011/3/23 Charles Moulliard <[email protected]>
>
>> This is where it should be located.
>>
>> Can you place the file in the following directory and retry :
>> META-INF/spring/SqlMapConfig.xml ?
>>
>> On Wed, Mar 23, 2011 at 1:19 PM, Michael Dewitte
>> <[email protected]> wrote:
>> > oh, god... i saw using features:list that it was there, but hadn't
>> noticed
>> > it was "uninstalled"... pfff... Thanks for making me checking again !
>> > Now, it does deploy !
>> > But, as soon as the route is activated (dropping a file into the "input"
>> > directory), I got an exception :
>> > java.io.FileNotFoundException: class path resource [SqlMapConfig.xml]
>> cannot
>> > be opened because it does not exist
>> > at
>> >
>> org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158)[56:org.springframework.core:3.0.5.RELEASE]
>> > at
>> >
>> org.apache.camel.component.ibatis.IBatisComponent.createSqlMapClient(IBatisComponent.java:88)[225:org.apache.camel.camel-ibatis:2.6.0]
>> > at
>> >
>> org.apache.camel.component.ibatis.IBatisComponent.getSqlMapClient(IBatisComponent.java:104)[225:org.apache.camel.camel-ibatis:2.6.0]
>> > at
>> >
>> org.apache.camel.component.ibatis.IBatisEndpoint.getSqlMapClient(IBatisEndpoint.java:77)[225:org.apache.camel.camel-ibatis:2.6.0]
>> > As i noted in the previous post, the SqlMapConfig.xml is in the jar, at
>> the
>> > root of the jar... isn't it where it should be located ?
>> > Thanks for your help !
>> > Mike
>> > 2011/3/23 Charles Moulliard <[email protected]>
>> >>
>> >> Have you deployed the bundle camel-ibatis component on Smx4.x or Karaf
>> ?
>> >>
>> >> On Wed, Mar 23, 2011 at 12:13 PM, Michael Dewitte
>> >> <[email protected]> wrote:
>> >> > 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