I agree with everything Claus just said :) But another thing you can
do is run the TestNG test case directly in your IDE as well without
using Maven at all.


2008/9/18 Mick Knutson <[EMAIL PROTECTED]>:
> I have created a base class extending AbstractTestNGSpringContextTests as
> you mentioned. I actually did the same to support bdunit.
>
> But there are a few things, related to camel that I am just not getting yet.
>
>
>
> * What does the camel-maven-plugin doing that my base class will not by
> initializing the camel-context.xml?
>
> I tried to run my mvn install without the camel-maven-plugin. I get the
> camel-context initialized, but does not run the same as when I run mvn
> camel:run.
>
> *There is:*
> *public class CRRouteBuilder extends RouteBuilder {
> ....
>    public static void main(String[] args) {
>        new Main().run(args);
>    }
> *
>
> in my RouteBuilder and I guess I am not sure if this is started by the
> plugin to run or not.
>
> I tried mvn camel:run and keep getting a poll loop:
>
> *[myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileConsumer.pollFileOrDirectory(81) | Polling directory src/data
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileConsumer.isChanged(231) | file:src/data/message1.xml isChanged:false
> sizeCheck:false(0) lastModifiedCheck:false(0)
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileConsumer.isChanged(231) | file:src/data/message2.xml isChanged:false
> sizeCheck:false(0) lastModifiedCheck:false(0)
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileConsumer.isChanged(231) | file:src/data/message3.xml isChanged:false
> sizeCheck:false(0) lastModifiedCheck:false(0)
> *
>
> so should I not use the plugin at all? And just start the camelContext by
> itself?
>
> Do I just need to have my testNG send a message to initiate the process?
>
>
> It seems that the process is initiated:
>
> *[myproject] DEBUG [VMTransport] ActiveMQConnection.onAsyncException(1695) |
> Async exception with no exception listener:
> org.apache.activemq.transport.TransportDisposedIOException: Peer
> (vm://localhost#1) disposed.
> org.apache.activemq.transport.TransportDisposedIOException: Peer
> (vm://localhost#1) disposed.
>    at
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:203)
>    at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>    at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>    at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>    at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>    at java.lang.Thread.run(Thread.java:613)
> [myproject] DEBUG [ActiveMQ Transport Stopper: vm://localhost#0]
> TransportConnection.doStop(994) | Connection Stopped: vm://localhost#0
> [myproject] INFO [ActiveMQ ShutdownHook] TransportConnector.stop(273) |
> Connector vm://localhost Stopped
> [myproject] DEBUG [Thread-2] DefaultListableBeanFactory.destroyBean(447) |
> Retrieved dependent beans for bean
> 'org.apache.activemq.ActiveMQConnectionFactory#3dc0f4': [activemq]
> [myproject] DEBUG [Thread-2] DefaultListableBeanFactory.destroyBean(447) |
> Retrieved dependent beans for bean 'camel:beanPostProcessor': [camel]
> [myproject] DEBUG [Thread-2] DefaultListableBeanFactory.destroyBean(447) |
> Retrieved dependent beans for bean 'camel': [camel:beanPostProcessor,
> org.apache.camel.component.file.FileComponent,
> com.servepath.ChangeRequestTest]
> myproject] DEBUG [Thread-2] DisposableBeanAdapter.destroy(148) | Invoking
> destroy() on bean with name 'camel'
> [myproject] INFO [ActiveMQ ShutdownHook] BrokerService.stop(512) | ActiveMQ
> JMS Message Broker (localhost,
> ID:mick-knutsons-macbook.local-50355-1221698401973-0:0) stopped
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> ScheduledPollConsumer.run(62) | Starting to poll:
> Endpoint[file:src/data?noop=true]
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileConsumer.pollFileOrDirectory(81)
> | Polling directory src/data
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileConsumer.isChanged(231) | file:src/data/message1.xml isChanged:true
> sizeCheck:false(0) lastModifiedCheck:true(0)
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileEndpoint.getFileStrategy(158) | Using file process strategy:
> [EMAIL PROTECTED]
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileConsumer.pollFile(122) | About to process file: src/data/message1.xml
> using exchange: Exchange[FileMessage: src/data/message1.xml]
> [myproject] DEBUG [Thread: 1
> [EMAIL PROTECTED]
> FileProcessStrategySupport.begin(62) | Locking the file:
> src/data/message1.xml using the lock file name:
> /opt/projects/changerequest/camel-example-spring/src/data/message1.xml.cameLock
> [myproject] ERROR [Thread: 1
> [EMAIL PROTECTED]
> BrokerService.start(466) | Failed to start ActiveMQ JMS Message Broker.
> Reason: java.lang.IllegalStateException: Shutdown in progress
>
> *
>
> But there is an error in bold above.
>
>
>
>
>
> On Tue, Sep 16, 2008 at 11:14 PM, James Strachan
> <[EMAIL PROTECTED]>wrote:
>
>> 2008/9/16 Mick Knutson <[EMAIL PROTECTED]>:
>> > I am trying to setup camel within Maven to start my camel context via the
>> >           <plugin>
>> >                <groupId>org.apache.camel</groupId>
>> >                <artifactId>camel-maven-plugin</artifactId>
>> >                <version>1.4.0</version>
>> >            </plugin>
>> >
>> > Now I was hoping that someone has already created a baseCamelTestNG class
>> to
>> > start/stop camel, then helper class to send and receive messages.
>> >
>> > Then after the tests have run, the plugin can shutdown.
>>
>> BTW there's a Camel user list, I've CC'd so other camel users can listen
>> too...
>> http://activemq.apache.org/camel/discussion-forums.html
>>
>> The best approach for unit testing and sending & receiving messages is
>> to use the Spring Testing mechanism which works with JUnit 3.x, 4.x or
>> TestNG
>> http://activemq.apache.org/camel/spring-testing.html
>>
>> for TestNG you might want to derive from AbstractTestNGSpringContextTests
>> see
>>
>> http://static.springframework.org/spring/docs/2.5.x/reference/testing.html#testcontext-fixture-di
>>
>> this then does the dependency injection with Spring and runs your test
>> case.
>>
>> To send messages you can inject a ProducerTemplate; then to receive
>> messages you can then use the @MessageDriven annotation on a method -
>> see the examples here
>> http://activemq.apache.org/camel/bean-integration.html
>>
>> plus you can then inject mock endpoints for testing as well as described
>> here
>> http://activemq.apache.org/camel/spring-testing.html
>> http://activemq.apache.org/camel/mock.html
>>
>> --
>> James
>> -------
>> http://macstrac.blogspot.com/
>>
>> Open Source Integration
>> http://open.iona.com
>>
>
>
>
> --
> ---
> Thank You…
>
> Mick Knutson
> BASE Logic, inc.
> (415) 354-4215
>
> Website: http://baselogic.com
> Blog: http://baselogic.com/blog
> BLiNC Magazine: http://blincmagazine.com
> Linked IN: http://linkedin.com/in/mickknutson
> DJ Mick: http://djmick.com
> MySpace: http://myspace.com/mickknutson
> Vacation Rental: http://tahoe.baselogic.com
>



-- 
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://open.iona.com

Reply via email to