Hi Vlad
Ah you are digging into the auto discovery feature from the <package> tag.
E.g. from the tutorial, where there is a <package> tag in the camel context.
<!-- declare a camel context that scans for classes that is RouteBuilder
in the package org.apache.camel.example.server -->
<camel:camelContext id="camel">
<camel:package>org.apache.camel.example.server</camel:package>
<!-- enable JMX connector so we can connect to the server and browse
mbeans -->
<!-- Camel will log at INFO level the service URI to use for connecting
with jconsole -->
<camel:jmxAgent id="agent" createConnector="true"/>
</camel:camelContext>
Yes it will look for classes in the package that extends RouteBuilder.
The RouteBuilder has a configure() method where you define the camel routing in
Java DSL.
You can check out the tutorial:
http://activemq.apache.org/camel/tutorials.html
So this is a good way to "kick-start" your camel context that its spring
configured but you can use the Java DSL that is more powerful than XML. However
Camel supports both, and mix/match.
Med venlig hilsen
Claus Ibsen
......................................
Silverbullet
Skovsgårdsvænget 21
8362 Hørning
Tlf. +45 2962 7576
Web: www.silverbullet.dk
-----Original Message-----
From: Vadim Chekan [mailto:[EMAIL PROTECTED]
Sent: 4. juli 2008 02:05
To: [email protected]
Subject: Re: MS SQL Message Service endpoint
Thanks Claus,
I'm slowly digging through it.
Following things are still not clear to me:
What are the conventions on classes in the package? Should class
implement main() method to be called? Or any class inherited from
RouteBuilder will be instaniated? I'm trying to understand how camel
decides from "package" which class and method to call.
Vadim.
On Wed, Jul 2, 2008 at 10:33 PM, Claus Ibsen <[EMAIL PROTECTED]> wrote:
> Hi
>
> Created ticket CAMEL-658 for improving the wiki documentation.
>
> Thanks for reporting your troubles with it, we want to improve it.
>
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: Claus Ibsen [mailto:[EMAIL PROTECTED]
> Sent: 3. juli 2008 07:29
> To: [email protected]
> Subject: RE: MS SQL Message Service endpoint
>
> Hi Vlad
>
> Thanks for the investigations. Yes there could be an odd issue with the JDBC
> component, as I would assume it could consume from the database = reading.
>
> As a work around or how to get it working, you can get an endpoint in front
> to kick it off.
>
> from("timer://kickoff?delay=10000").setBody("select * from
> xxxx").to("jdbc:msServiceBroker").to("activemq:aspcust1");
>
>
> This is from a unit test in camel-jdbc. The timer fires every 10th second and
> queries the database and send the result to the mock. In your case the
> activemq instead.
>
> from("timer://kickoff?period=10000").
> setBody(constant("select * from customer")).
> to("jdbc:testdb").
> to("mock:result");
>
> Notice that the result is a list of map objects, each row is a map with the
> columnname as the key. From another unit test:
>
> // assertions of the response
> assertNotNull(out);
> assertNotNull(out.getOut());
> ArrayList<HashMap<String, Object>> data =
> out.getOut().getBody(ArrayList.class);
> assertNotNull("out body could not be converted to an ArrayList - was: "
> + out.getOut().getBody(), data);
> assertEquals(2, data.size());
> HashMap<String, Object> row = data.get(0);
> assertEquals("cust1", row.get("ID"));
> assertEquals("jstrachan", row.get("NAME"));
> row = data.get(1);
> assertEquals("cust2", row.get("ID"));
> assertEquals("nsandhu", row.get("NAME"));
>
> Med venlig hilsen
>
> Claus Ibsen
> ......................................
> Silverbullet
> Skovsgårdsvænget 21
> 8362 Hørning
> Tlf. +45 2962 7576
> Web: www.silverbullet.dk
>
> -----Original Message-----
> From: Vadim Chekan [mailto:[EMAIL PROTECTED]
> Sent: 3. juli 2008 01:33
> To: [email protected]
> Subject: Re: MS SQL Message Service endpoint
>
> Ok, I got this one. My ActiveMQ installation does not contain camel-jdbc.jar.
> It runs fine now but it gives me "Failed to execute main task. Reason:
> java.lang.NoClassDefFoundError:
> org/springframework/aop/support/AopUtils".
> Copied spring-aop-2.5.1.jar
>
> Ok, now:
> Caused by: org.apache.camel.RuntimeCamelException: A JDBC Consumer would be
> the
> server side of database! No such support here at
> org.apache.camel.component.jdbc.JdbcEndpoint.createConsumer(JdbcEndpoint.java:56)
>
> Hmm, I remember seeing this exception in the source code but I do not
> understand it. why <from uri="jdbc:msServiceBroker" /> tries to create
> a consumer. I thought that "from" is a message producer, right?
>
>
> On Wed, Jul 2, 2008 at 12:33 PM, Vadim Chekan <[EMAIL PROTECTED]> wrote:
>> Here is my progress:
>> First of all it complained about DriverManagerDataSource class so I've
>> downloaded spring-jdbc-2.5.1.jar and put it to lib/optional
>> Now I'm getting
>> =======================================
>> Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be
>> found
>> for: jdbc:msServiceBroker
>> at
>> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelCo
>> =======================================
>>
>> My configuration is:
>> ===============================================================
>> <camelContext id="camel"
>> xmlns="http://activemq.apache.org/camel/schema/spring">
>> <route>
>> <from uri="jdbc:msServiceBroker" />
>> <to uri="activemq:aspcust1" />
>> </route>
>> </camelContext>
>>
>> <bean id="msServiceBroker"
>> class="org.springframework.jdbc.datasource.DriverManagerDataSource">
>> <property name="driverClassName"
>> value="net.sourceforge.jtds.jdbc.Driver"/>
>> <property name="url"
>> value="jdbc:jtds:sqlserver://aspcust1/LogQueue;instance=main"/>
>> <property name="username" value="****"/>
>> <property name="password" value="****"/>
>> </bean>
>> ===============================================================
>>
>> I thought that it it the way this thing works: after jdbc uri you
>> specify a bean, but apparently I got it wrong. I'm trying to define
>> endpoint explicitly now withing camel context.
>> Any help please?
>>
>> BTW: there is an error in schema location in default configuration
>> file: http://activemq.apache.org/schema/core/activemq-core.xsd does
>> not exist. I had to change it to
>> http://activemq.apache.org/schema/core/activemq-core-5.1.0.xsd to make
>> my Visual Studio hints working ;)
>>
>> --
>> From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
>> is explicitly specified
>>
>
>
>
> --
> From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
> is explicitly specified
>
--
>From RFC 2631: In ASN.1, EXPLICIT tagging is implicit unless IMPLICIT
is explicitly specified