camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gareth Williams <gareth.willi...@firstclarity.com>
Subject Re: newbie trying to get messages off activemq and route them using camel
Date Thu, 10 Sep 2009 17:25:39 GMT

Hi,
Yes that is a good tutorial, its actually what i used to base my code upon
:-) as follows:
 - create project, 
 - add dependencies to pom (not including aspectj AOP support), 
 - extend RouteBuilder, 
 - did not include
   <!-- let Spring do its IoC stuff in this package -->
   <context:component-scan base-package="org.apache.camel.example.server"/>
because the camel package scan works fine and finds my routebuilder (i know
this from my non-activemq experiments),
 - ignored the jmx agent configuration
 * commented out the <broker>...</broker> config as I am running ActiveMQ in
its own seperate process
 - copied the ActiveMQConponent declaration
     <bean id="jms"
class="org.apache.activemq.camel.component.ActiveMQComponent">
       <property name="brokerURL" value="tcp://localhost:61616"/>
     </bean>
    ** except that i called mine activemq not jms, but as i refer to it in
the routing as "activemq:[queue]" this will be fine :-)



Q: Do i need to configure/deploy/register anything within ActiveMq? Or is
the out-of-the-box installation all I need?

Thanks, I will try and look into camel whilst my test is running (via a jmx
console) and see if it gives me any ideas 



Claus Ibsen-2 wrote:
> 
> Hi
> 
> Yeah this tutorial uses camel as both client + server with JMS (AMQ)
> http://camel.apache.org/tutorial-jmsremoting.html
> 
> 
> 
> On Thu, Sep 10, 2009 at 6:23 PM, Gareth Williams
> <gareth.williams@firstclarity.com> wrote:
>>
>> Thanks, I just tried
>>
>>    <bean id="route"
>> class="test.com.firstclarity.eventbroker.MyTestRoutes"/>
>>
>>  <camelContext xmlns="http://camel.apache.org/schema/spring">
>>    <!-- Where to look for implementations of RouteBuilder -->
>>    <!-- <package>test.com.firstclarity.eventbroker</package>
>>     -->
>>
>>    <routeBuilder ref="route"/>
>>
>>  </camelContext>
>>
>> unfortunately same thing, no messages,
>>
>> FYI, i currently have activemq running as a separate process to my test
>> case, its just the default out-of-the-box installation, started with
>> ./activemq
>>
>> is there a good working example of activemq + camel you would recommend
>> so i
>> can look at this in more depth?
>>
>> thanks, Gareth
>>
>> PS. have spooted the deliverate mistake in my test,
>> assertTrue("FAIL: NO MESSAGE RECEIVED", eventListener.messagesReceived ==
>> 1);
>> should be
>> assertTrue("FAIL: NO MESSAGE RECEIVED", eventListener.messagesReceived >
>> 0);
>> but none are getting through anyway
>>
>>
>>
>> Claus Ibsen-2 wrote:
>>>
>>> Try using <routeBuilderRef> and refer to a spring bean that is your
>>> route builder.
>>>
>>> The <packageScan> may have problems on your side, somehow.
>>>
>>>
>>>
>>> On Thu, Sep 10, 2009 at 5:47 PM, Gareth Williams
>>> <gareth.williams@firstclarity.com> wrote:
>>>>
>>>> Hi all
>>>> I have just started learning camel and JMS and ActiveMQ, and i am stuck
>>>> trying to get camel to read messages off ActiveMQ
>>>>
>>>> which version of the software?
>>>> camel version 2.0.0
>>>>
>>>> what platform and JDK?
>>>> os x 10.5.8 JDK 1.5.x
>>>>
>>>> If i connect to ActiveMQ using jconsole, i can see there are 2000+
>>>> messages
>>>> there in a queue called MUPPET.QUEUE
>>>>
>>>> Below is my Java JUnit code, the routebuilder, the spring context xml
>>>> and
>>>> part of the pom.
>>>> What the junit test  does is send a http request to login a user, that
>>>> causes my actual application to post a JMS message to MUPPET.QUEUE (yes
>>>> i
>>>> do
>>>> see the queue growing!)
>>>> What I was hoping for is Camel to receive the messages off the queue
>>>> and
>>>> route them to my bean eventbroker which i have already tested with
>>>> Camel
>>>> in
>>>> a non-JMS way by using
>>>>    @Produce(uri = "direct:start")
>>>>    protected ProducerTemplate template;
>>>> which worked fine and allowed me to learn routing, endpoints, etc
>>>>
>>>> My eventbroker bean isnt receiving anything!  OK I daresay I am missing
>>>> something fundamental about JMS and/or activemq/camel configuration,
>>>> but
>>>> I
>>>> am stumped...
>>>> Do i need to declare a connection factory in my spring xml? or is the
>>>> information i have given camel sufficient for it to start taking
>>>> messages
>>>> off the queue?
>>>> All help gratefully accepted!  Any ideas?
>>>>
>>>> Cheers,
>>>> Gareth
>>>>
>>>>
>>>> @ContextConfiguration
>>>> public class MyTest extends AbstractJUnit4SpringContextTests {
>>>>
>>>> ...
>>>> ....
>>>>
>>>>    private static class MyListener implements EventListener {
>>>>
>>>>        private int messagesReceived;
>>>>
>>>>        public void notify(String target, Event event) {
>>>>            System.out.println("***");
>>>>            messagesReceived++;
>>>>        }
>>>>    }
>>>>
>>>>
>>>>    @Test
>>>>    public void testJms() throws Exception {
>>>>
>>>>        System.out.println("START TEST");
>>>>       SimpleEventBroker eventbroker = (SimpleEventBroker)
>>>> applicationContext.getBean("eventbroker");
>>>>        MyListener eventListener = new MyListener();
>>>>        eventbroker.getListeners().add(eventListener);
>>>>
>>>>        System.out.println("LOGIN...");
>>>>        for (int i = 0; i < 10; i++) {
>>>>            loginValidUser();
>>>>        }
>>>>        System.out.println("OK LOGGED IN");
>>>>        pause(2);
>>>>        assertTrue("FAIL: NO MESSAGE RECEIVED",
>>>> eventListener.messagesReceived == 1);
>>>>    }
>>>> }
>>>>
>>>> My route builder...
>>>>
>>>> public class MyTestRoutes extends RouteBuilder {
>>>>
>>>>    @Override
>>>>    public void configure() {
>>>>
>>>>
>>>> from("activemq:MUPPET.QUEUE").to("bean:eventbroker?method=writeToFile");
>>>>
>>>>    }
>>>> }
>>>>
>>>> MyTest-context.xml (spring context config)...
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>
>>>> <!-- Configures the Camel Context-->
>>>>
>>>> <beans xmlns="http://www.springframework.org/schema/beans"
>>>>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>       xmlns:amq="http://activemq.apache.org/schema/core"
>>>>       xsi:schemaLocation="http://www.springframework.org/schema/beans
>>>>
>>>>  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
>>>>            http://camel.apache.org/schema/spring
>>>> http://camel.apache.org/schema/spring/camel-spring.xsd
>>>>            http://activemq.apache.org/schema/core
>>>> http://activemq.apache.org/schema/core/activemq-core.xsd">
>>>>
>>>> <bean id="activemq"
>>>> class="org.apache.activemq.camel.component.ActiveMQComponent">
>>>>    <property name="brokerURL" value="tcp://localhost:61616" />
>>>>
>>>> </bean>
>>>>
>>>>
>>>>    <bean id="eventbroker"
>>>> class="test.com.firstclarity.eventbroker.SimpleEventBroker"/>
>>>>
>>>>  <camelContext xmlns="http://camel.apache.org/schema/spring">
>>>>    <package>test.com.firstclarity.eventbroker</package>
>>>>  </camelContext>
>>>>
>>>> </beans>
>>>>
>>>>
>>>> My maven pom
>>>>
>>>> <project>
>>>>
>>>> ...
>>>>
>>>>  <properties>
>>>>    <camel-version>2.0.0</camel-version>
>>>>    <activemq-version>5.2.0</activemq-version>
>>>>    <xbean-spring-version>3.5</xbean-spring-version>
>>>>    <log4j-version>1.2.14</log4j-version>
>>>>  </properties>
>>>>
>>>>  <dependencies>
>>>>
>>>> ...
>>>> ...
>>>>
>>>>        <dependency>
>>>>      <groupId>org.springframework</groupId>
>>>>      <artifactId>spring-test</artifactId>
>>>>      <version>2.5.6</version>
>>>>      <scope>test</scope>
>>>>    </dependency>
>>>>
>>>>        <dependency>
>>>>      <groupId>org.springframework</groupId>
>>>>      <artifactId>spring-context</artifactId>
>>>>      <version>2.5.6</version>
>>>>    </dependency>
>>>>
>>>>            <dependency>
>>>>            <groupId>opensymphony</groupId>
>>>>            <artifactId>quartz-all</artifactId>
>>>>            <version>1.6.3</version>
>>>>        </dependency>
>>>>
>>>>    <dependency>
>>>>      <groupId>org.apache.activemq</groupId>
>>>>      <artifactId>activemq-core</artifactId>
>>>>      <version>${activemq-version}</version>
>>>>    </dependency>
>>>>    <dependency>
>>>>      <groupId>org.apache.activemq</groupId>
>>>>      <artifactId>activemq-camel</artifactId>
>>>>      <version>${activemq-version}</version>
>>>>    </dependency>
>>>>    <dependency>
>>>>      <groupId>org.apache.camel</groupId>
>>>>      <artifactId>camel-core</artifactId>
>>>>      <version>${camel-version}</version>
>>>>    </dependency>
>>>>
>>>>        <dependency>
>>>>      <groupId>org.apache.camel</groupId>
>>>>      <artifactId>camel-stream</artifactId>
>>>>      <version>${camel-version}</version>
>>>>    </dependency>
>>>>
>>>>    <dependency>
>>>>      <groupId>org.apache.camel</groupId>
>>>>      <artifactId>camel-jms</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.xbean</groupId>
>>>>      <artifactId>xbean-spring</artifactId>
>>>>      <version>${xbean-spring-version}</version>
>>>>    </dependency>
>>>>
>>>>   ...
>>>>   ...
>>>>
>>>>   </dependencies>
>>>>  ...
>>>>  </project>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/newbie-trying-to-get-messages-off-activemq-and-route-them-using-camel-tp25385346p25385346.html
>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> Apache Camel Committer
>>>
>>> Open Source Integration: http://fusesource.com
>>> Blog: http://davsclaus.blogspot.com/
>>> Twitter: http://twitter.com/davsclaus
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/newbie-trying-to-get-messages-off-activemq-and-route-them-using-camel-tp25385346p25386435.html
>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Claus Ibsen
> Apache Camel Committer
> 
> Open Source Integration: http://fusesource.com
> Blog: http://davsclaus.blogspot.com/
> Twitter: http://twitter.com/davsclaus
> 
> 

-- 
View this message in context: http://www.nabble.com/newbie-trying-to-get-messages-off-activemq-and-route-them-using-camel-tp25385346p25387576.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message