You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/09/24 13:36:17 UTC
[4/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
CAMEL-9157: JMX - Add dataformat as mbean category
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0a991eab
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0a991eab
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0a991eab
Branch: refs/heads/master
Commit: 0a991eabf139a9946d017649b5aae4d4637ff76a
Parents: ca7fd9a
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 11:52:43 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 11:54:41 2015 +0200
----------------------------------------------------------------------
.../org/apache/camel/impl/GzipDataFormat.java | 12 ++++-
.../camel/impl/SerializationDataFormat.java | 12 ++++-
.../org/apache/camel/impl/StringDataFormat.java | 13 ++++-
.../org/apache/camel/impl/ZipDataFormat.java | 11 +++-
.../camel/processor/MarshalProcessor.java | 5 +-
.../camel/processor/UnmarshalProcessor.java | 5 +-
.../java/org/apache/camel/spi/DataFormat.java | 5 +-
.../camel/impl/DataFormatContextAwareTest.java | 13 ++++-
.../apache/camel/impl/RefDataFormatTest.java | 12 ++++-
.../camel/management/ManagedDataFormatTest.java | 55 ++++++++++++++++++++
...DeadLetterChannelUnmarshalSetHeaderTest.java | 13 ++++-
.../camel/processor/UnmarshalProcessorTest.java | 13 ++++-
12 files changed, 157 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/main/java/org/apache/camel/impl/GzipDataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/GzipDataFormat.java b/camel-core/src/main/java/org/apache/camel/impl/GzipDataFormat.java
index 236bd91..d89460a 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/GzipDataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/GzipDataFormat.java
@@ -24,12 +24,13 @@ import java.util.zip.GZIPOutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.*;
import org.apache.camel.util.IOHelper;
/**
* GZip {@link org.apache.camel.spi.DataFormat} for reading/writing data using gzip.
*/
-public class GzipDataFormat implements DataFormat {
+public class GzipDataFormat extends org.apache.camel.support.ServiceSupport implements DataFormat {
public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception {
InputStream is = exchange.getContext().getTypeConverter().mandatoryConvertTo(InputStream.class, exchange, graph);
@@ -59,4 +60,13 @@ public class GzipDataFormat implements DataFormat {
}
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/main/java/org/apache/camel/impl/SerializationDataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/SerializationDataFormat.java b/camel-core/src/main/java/org/apache/camel/impl/SerializationDataFormat.java
index 8d33d62..eb2fe24 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/SerializationDataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/SerializationDataFormat.java
@@ -32,7 +32,7 @@ import org.apache.camel.util.ExchangeHelper;
*
* @version
*/
-public class SerializationDataFormat implements DataFormat {
+public class SerializationDataFormat extends org.apache.camel.support.ServiceSupport implements DataFormat {
public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception {
ObjectOutput out = ExchangeHelper.convertToMandatoryType(exchange, ObjectOutput.class, stream);
@@ -60,4 +60,14 @@ public class SerializationDataFormat implements DataFormat {
}
}
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/main/java/org/apache/camel/impl/StringDataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/StringDataFormat.java b/camel-core/src/main/java/org/apache/camel/impl/StringDataFormat.java
index 7b115ac..545c482 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/StringDataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/StringDataFormat.java
@@ -30,7 +30,7 @@ import org.apache.camel.util.ExchangeHelper;
*
* @version
*/
-public class StringDataFormat implements DataFormat {
+public class StringDataFormat extends org.apache.camel.support.ServiceSupport implements DataFormat {
private String charset;
@@ -73,5 +73,14 @@ public class StringDataFormat implements DataFormat {
return answer;
}
-
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/main/java/org/apache/camel/impl/ZipDataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ZipDataFormat.java b/camel-core/src/main/java/org/apache/camel/impl/ZipDataFormat.java
index c496714..daa9062 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ZipDataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ZipDataFormat.java
@@ -31,7 +31,7 @@ import org.apache.camel.util.IOHelper;
* "Deflate" compression data format.
* See {@link org.apache.camel.model.dataformat.ZipFileDataFormat} for Zip file compression.
*/
-public class ZipDataFormat implements DataFormat {
+public class ZipDataFormat extends org.apache.camel.support.ServiceSupport implements DataFormat {
private int compressionLevel;
@@ -78,4 +78,13 @@ public class ZipDataFormat implements DataFormat {
}
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java
index 1b78d86..d16205f 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java
@@ -125,11 +125,14 @@ public class MarshalProcessor extends ServiceSupport implements AsyncProcessor,
if (dataFormat instanceof CamelContextAware) {
((CamelContextAware) dataFormat).setCamelContext(camelContext);
}
- ServiceHelper.startService(dataFormat);
+ // add dataFormat as service which will also start the service
+ // (false => we and handling the lifecycle of the dataFormat)
+ getCamelContext().addService(dataFormat, false);
}
@Override
protected void doStop() throws Exception {
ServiceHelper.stopService(dataFormat);
+ getCamelContext().removeService(dataFormat);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java b/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java
index 60883c0..3c5183c 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java
@@ -122,12 +122,15 @@ public class UnmarshalProcessor extends ServiceSupport implements AsyncProcessor
if (dataFormat instanceof CamelContextAware) {
((CamelContextAware) dataFormat).setCamelContext(camelContext);
}
- ServiceHelper.startService(dataFormat);
+ // add dataFormat as service which will also start the service
+ // (false => we and handling the lifecycle of the dataFormat)
+ getCamelContext().addService(dataFormat, false);
}
@Override
protected void doStop() throws Exception {
ServiceHelper.stopService(dataFormat);
+ getCamelContext().removeService(dataFormat);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/main/java/org/apache/camel/spi/DataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataFormat.java b/camel-core/src/main/java/org/apache/camel/spi/DataFormat.java
index 0d59ca0..86ed336 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/DataFormat.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/DataFormat.java
@@ -21,6 +21,7 @@ import java.io.OutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.Service;
/**
* Represents a
@@ -31,7 +32,9 @@ import org.apache.camel.Message;
*
* @version
*/
-public interface DataFormat {
+public interface DataFormat extends Service {
+
+ // TODO: DataFormats should extends Service like the others
/**
* Marshals the object to the given Stream.
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/test/java/org/apache/camel/impl/DataFormatContextAwareTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/DataFormatContextAwareTest.java b/camel-core/src/test/java/org/apache/camel/impl/DataFormatContextAwareTest.java
index 24b55d6..db451b3 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/DataFormatContextAwareTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/DataFormatContextAwareTest.java
@@ -24,6 +24,7 @@ import org.apache.camel.CamelContextAware;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.*;
/**
*
@@ -47,7 +48,7 @@ public class DataFormatContextAwareTest extends ContextTestSupport {
assertNotNull(me.getCamelContext());
}
- private static class MyDataFormat implements DataFormat, CamelContextAware {
+ private static class MyDataFormat extends org.apache.camel.support.ServiceSupport implements DataFormat, CamelContextAware {
private CamelContext camelContext;
@@ -67,5 +68,15 @@ public class DataFormatContextAwareTest extends ContextTestSupport {
public Object unmarshal(Exchange exchange, InputStream stream) throws Exception {
return null;
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/test/java/org/apache/camel/impl/RefDataFormatTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/RefDataFormatTest.java b/camel-core/src/test/java/org/apache/camel/impl/RefDataFormatTest.java
index 0908bb0..a947561 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/RefDataFormatTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/RefDataFormatTest.java
@@ -71,7 +71,7 @@ public class RefDataFormatTest extends ContextTestSupport {
}
// START SNIPPET: e2
- public static final class MyReverseDataFormat implements DataFormat {
+ public static final class MyReverseDataFormat extends ServiceSupport implements DataFormat {
public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception {
byte[] bytes = exchange.getContext().getTypeConverter().mandatoryConvertTo(byte[].class, graph);
@@ -93,6 +93,16 @@ public class RefDataFormatTest extends ContextTestSupport {
}
return sb.toString();
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
// END SNIPPET: e2
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/test/java/org/apache/camel/management/ManagedDataFormatTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedDataFormatTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedDataFormatTest.java
new file mode 100644
index 0000000..fe5a58e
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedDataFormatTest.java
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.management;
+
+import java.util.Set;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ * @version
+ */
+public class ManagedDataFormatTest extends ManagementTestSupport {
+
+ public void testManageDataFormat() throws Exception {
+ // JMX tests dont work well on AIX CI servers (hangs them)
+ if (isPlatform("aix")) {
+ return;
+ }
+
+ MBeanServer mbeanServer = getMBeanServer();
+
+ // there should be 1 data format
+ Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=dataformats,*"), null);
+ assertEquals(1, set.size());
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("seda:test")
+ .unmarshal().string("iso-8859-1")
+ .to("mock:result");
+ }
+ };
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUnmarshalSetHeaderTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUnmarshalSetHeaderTest.java b/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUnmarshalSetHeaderTest.java
index 5f6851f..41760d4 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUnmarshalSetHeaderTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUnmarshalSetHeaderTest.java
@@ -24,6 +24,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
/**
*
@@ -60,7 +61,7 @@ public class DeadLetterChannelUnmarshalSetHeaderTest extends ContextTestSupport
};
}
- private class MyDataFormat implements DataFormat {
+ private class MyDataFormat extends ServiceSupport implements DataFormat {
@Override
public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception {
@@ -71,5 +72,15 @@ public class DeadLetterChannelUnmarshalSetHeaderTest extends ContextTestSupport
public Object unmarshal(Exchange exchange, InputStream stream) throws Exception {
throw new IllegalArgumentException("Damn");
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0a991eab/camel-core/src/test/java/org/apache/camel/processor/UnmarshalProcessorTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/UnmarshalProcessorTest.java b/camel-core/src/test/java/org/apache/camel/processor/UnmarshalProcessorTest.java
index 01f83e8..7592ee3 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/UnmarshalProcessorTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/UnmarshalProcessorTest.java
@@ -27,6 +27,7 @@ import org.apache.camel.TestSupport;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultMessage;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
public class UnmarshalProcessorTest extends TestSupport {
@@ -72,7 +73,7 @@ public class UnmarshalProcessorTest extends TestSupport {
assertSame("UnmarshalProcessor did not make use of the returned object being returned while unmarshalling", unmarshalled, exchange.getOut().getBody());
}
- private static class MyDataFormat implements DataFormat {
+ private static class MyDataFormat extends ServiceSupport implements DataFormat {
private final Object object;
@@ -97,6 +98,16 @@ public class UnmarshalProcessorTest extends TestSupport {
public Object unmarshal(Exchange exchange, InputStream stream) throws Exception {
return object;
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
}