Author: davsclaus
Date: Wed Dec 3 06:11:08 2008
New Revision: 722893
URL: http://svn.apache.org/viewvc?rev=722893&view=rev
Log:
Merged revisions 722878 via svnmerge from
https://svn.apache.org/repos/asf/activemq/camel/trunk
........
r722878 | davsclaus | 2008-12-03 14:15:57 +0100 (on, 03 dec 2008) | 1 line
CAMEL-1140: MinaProducer now throws CamelExchangeException if no message
received from remote server when sync=true
........
Added:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java
- copied, changed from r722878,
activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java
Modified:
activemq/camel/branches/camel-1.x/ (props changed)
activemq/camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConsumerTest.java
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaCustomCodecTest.java
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaInOutRouteTextLineDelimiterTest.java
(props changed)
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownMockTest.java
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownTest.java
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpLineDelimiterUsingPlainSocketTest.java
(props changed)
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTest.java
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineDelimiterTest.java
(contents, props changed)
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineProtocolTest.java
Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 3 06:11:08 2008
@@ -1 +1 @@
-/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932,713944,714032,717965,717989,718242,718273,718312-718515,719163-719184,719334,719339,719524,719662,719848,719851,719855,719864,719978-719979,720207,720435-720437,720806,721272,721331,721333-721334,721360,721669,721764,721813,721985,722005,722070,722110,722415,722438,722726,722845
+/activemq/camel/trunk:709850,711200,711206,711219-711220,711523,711531,711756,711784,711859,711874,711962,711971,712064,712119,712148,712662,712692,712925,713013,713107,713136,713273,713290,713292,713295,713314,713475,713625,713932,713944,714032,717965,717989,718242,718273,718312-718515,719163-719184,719334,719339,719524,719662,719848,719851,719855,719864,719978-719979,720207,720435-720437,720806,721272,721331,721333-721334,721360,721669,721764,721813,721985,722005,722070,722110,722415,722438,722726,722845,722878
Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaProducer.java
Wed Dec 3 06:11:08 2008
@@ -20,7 +20,7 @@
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-import org.apache.camel.CamelException;
+import org.apache.camel.CamelExchangeException;
import org.apache.camel.Exchange;
import org.apache.camel.ExchangeTimedOutException;
import org.apache.camel.Producer;
@@ -50,7 +50,6 @@
private IoConnector connector;
private boolean sync;
- @SuppressWarnings({"unchecked"})
public MinaProducer(MinaEndpoint endpoint) {
super(endpoint);
this.endpoint = endpoint;
@@ -82,7 +81,11 @@
if (sync) {
// only initialize latch if we should get a response
latch = new CountDownLatch(1);
+ // reset handler if we expect a response
+ ResponseHandler handler = (ResponseHandler) session.getHandler();
+ handler.reset();
}
+
// write the body
if (LOG.isDebugEnabled()) {
LOG.debug("Writing body: " + body);
@@ -100,7 +103,10 @@
// did we get a response
ResponseHandler handler = (ResponseHandler) session.getHandler();
if (handler.getCause() != null) {
- throw new CamelException("Response Handler had an exception",
handler.getCause());
+ throw new CamelExchangeException("Response Handler had an
exception", exchange, handler.getCause());
+ } else if (!handler.isMessageRecieved()) {
+ // no message received
+ throw new CamelExchangeException("No response received from
remote server: " + endpoint.getEndpointUri(), exchange);
} else {
// set the result on either IN or OUT on the original exchange
depending on its pattern
if (ExchangeHelper.isOutCapable(exchange)) {
@@ -165,18 +171,26 @@
private MinaEndpoint endpoint;
private Object message;
private Throwable cause;
+ private boolean messageRecieved;
private ResponseHandler(MinaEndpoint endpoint) {
this.endpoint = endpoint;
}
+ public void reset() {
+ this.message = null;
+ this.cause = null;
+ this.messageRecieved = false;
+ }
+
@Override
public void messageReceived(IoSession ioSession, Object message)
throws Exception {
if (LOG.isDebugEnabled()) {
LOG.debug("Message received: " + message);
}
- cause = null;
this.message = message;
+ messageRecieved = true;
+ cause = null;
countDown();
}
@@ -205,6 +219,7 @@
LOG.error("Exception on receiving message from address: " +
this.endpoint.getAddress()
+ " using connector: " + this.endpoint.getConnector(),
cause);
this.message = null;
+ this.messageRecieved = false;
this.cause = cause;
if (ioSession != null) {
ioSession.close();
@@ -218,6 +233,10 @@
public Object getMessage() {
return this.message;
}
+
+ public boolean isMessageRecieved() {
+ return messageRecieved;
+ }
}
}
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConsumerTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConsumerTest.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConsumerTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaConsumerTest.java
Wed Dec 3 06:11:08 2008
@@ -33,7 +33,7 @@
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello World");
- template.sendBody("mina:tcp://localhost:6200?textline=true", "Hello
World");
+
template.sendBody("mina:tcp://localhost:6200?textline=true&sync=false", "Hello
World");
assertMockEndpointsSatisifed();
// END SNIPPET: e2
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaCustomCodecTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaCustomCodecTest.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaCustomCodecTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaCustomCodecTest.java
Wed Dec 3 06:11:08 2008
@@ -41,7 +41,7 @@
mock.expectedMessageCount(1);
mock.expectedBodiesReceived("Bye World");
- template.sendBody(uri, "Hello World");
+ template.requestBody(uri, "Hello World");
mock.assertIsSatisfied();
}
@@ -64,7 +64,7 @@
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from(uri).to("mock:result");
+ from(uri).transform(constant("Bye World")).to("mock:result");
}
};
}
@@ -75,8 +75,9 @@
return new ProtocolEncoder() {
public void encode(IoSession ioSession, Object message,
ProtocolEncoderOutput out)
throws Exception {
- ByteBuffer bb = ByteBuffer.allocate(9).setAutoExpand(true);
- bb.put("Bye World".getBytes());
+ ByteBuffer bb =
ByteBuffer.allocate(32).setAutoExpand(true);
+ String s = (String) message;
+ bb.put(s.getBytes());
bb.flip();
out.write(bb);
}
Propchange:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaInOutRouteTextLineDelimiterTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 3 06:11:08 2008
@@ -0,0 +1 @@
+/activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaInOutRouteTextLineDelimiterTest.java:722878
Copied:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java
(from r722878,
activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java)
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java?p2=activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java&p1=activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java&r1=722878&r2=722893&rev=722893&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaNoResponseFromServerTest.java
Wed Dec 3 06:11:08 2008
@@ -16,8 +16,8 @@
*/
package org.apache.camel.component.mina;
-import org.apache.camel.ContextTestSupport;
import org.apache.camel.CamelExchangeException;
+import org.apache.camel.ContextTestSupport;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownMockTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownMockTest.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownMockTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownMockTest.java
Wed Dec 3 06:11:08 2008
@@ -35,13 +35,12 @@
*/
public class MinaProducerShutdownMockTest extends ContextTestSupport {
- private static final String URI =
"mina:tcp://localhost:6321?textline=true";
+ private static final String URI =
"mina:tcp://localhost:6321?textline=true&sync=false";
public void testProducerShutdownTestingWithMock() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello World");
-
// create our mock and record expected behavior = that worker timeout
should be set to 0
SocketConnector mockConnector = createMock(SocketConnector.class);
mockConnector.setWorkerTimeout(0);
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownTest.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaProducerShutdownTest.java
Wed Dec 3 06:11:08 2008
@@ -30,7 +30,7 @@
*/
public class MinaProducerShutdownTest {
- private static final String URI =
"mina:tcp://localhost:6321?textline=true";
+ private static final String URI =
"mina:tcp://localhost:6321?textline=true&sync=false";
private long start;
private CamelContext context;
Propchange:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpLineDelimiterUsingPlainSocketTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 3 06:11:08 2008
@@ -0,0 +1 @@
+/activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpLineDelimiterUsingPlainSocketTest.java:722878
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTest.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTest.java
Wed Dec 3 06:11:08 2008
@@ -22,7 +22,7 @@
public class MinaTcpTest extends MinaVmTest {
@Override
protected void setUp() throws Exception {
- uri = "mina:tcp://localhost:6123";
+ uri = "mina:tcp://localhost:6123?sync=false";
super.setUp();
}
}
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineDelimiterTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineDelimiterTest.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineDelimiterTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineDelimiterTest.java
Wed Dec 3 06:11:08 2008
@@ -22,7 +22,7 @@
public class MinaTcpTextlineDelimiterTest extends MinaVmTest {
@Override
protected void setUp() throws Exception {
- uri = "mina:tcp://localhost:6124?textline=true&textlineDelimiter=UNIX";
+ uri =
"mina:tcp://localhost:6124?sync=false&textline=true&textlineDelimiter=UNIX";
super.setUp();
}
}
\ No newline at end of file
Propchange:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineDelimiterTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Dec 3 06:11:08 2008
@@ -0,0 +1 @@
+/activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineDelimiterTest.java:722878
Modified:
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineProtocolTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineProtocolTest.java?rev=722893&r1=722892&r2=722893&view=diff
==============================================================================
---
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineProtocolTest.java
(original)
+++
activemq/camel/branches/camel-1.x/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpTextlineProtocolTest.java
Wed Dec 3 06:11:08 2008
@@ -22,7 +22,7 @@
public class MinaTcpTextlineProtocolTest extends MinaVmTest {
@Override
protected void setUp() throws Exception {
- uri = "mina:tcp://localhost:6124?textline=true";
+ uri = "mina:tcp://localhost:6124?textline=true&sync=false";
super.setUp();
}
}