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:14 UTC
[1/8] camel git commit: Polished
Repository: camel
Updated Branches:
refs/heads/master 3ba805987 -> d4228467a
Polished
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4935c1eb
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4935c1eb
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4935c1eb
Branch: refs/heads/master
Commit: 4935c1eb334e0ee017ee1744258fa440e6a6fb5f
Parents: 3ba8059
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 11:17:49 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 11:17:49 2015 +0200
----------------------------------------------------------------------
.../org/apache/camel/management/mbean/ManagedRestRegistry.java | 2 --
1 file changed, 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/4935c1eb/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
index cbcbcd6..3299b02 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRestRegistry.java
@@ -33,11 +33,9 @@ import org.apache.camel.api.management.mbean.CamelOpenMBeanTypes;
import org.apache.camel.api.management.mbean.ManagedRestRegistryMBean;
import org.apache.camel.component.rest.RestApiEndpoint;
import org.apache.camel.component.rest.RestEndpoint;
-import org.apache.camel.impl.ProducerCache;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestRegistry;
import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.ServiceHelper;
/**
*
[5/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
Posted by da...@apache.org.
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/9765d562
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9765d562
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9765d562
Branch: refs/heads/master
Commit: 9765d5624f2835fa51a5831334d76238f384d504
Parents: 0a991ea
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 13:20:16 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 13:20:16 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/camel/spi/DataFormat.java | 3 +-
.../dataformat/barcode/BarcodeDataFormat.java | 204 +++++++------------
.../dataformat/base64/Base64DataFormat.java | 13 +-
.../bindy/BindyAbstractDataFormat.java | 13 +-
.../camel/component/boon/BoonDataFormat.java | 14 +-
.../converter/crypto/CryptoDataFormat.java | 13 +-
.../camel/dataformat/csv/CsvDataFormat.java | 44 ++--
.../cxf/jaxrs/DataFormatProviderTest.java | 12 +-
.../dataformat/flatpack/FlatpackDataFormat.java | 14 +-
.../dataformat/AbstractXmlDataFormat.java | 12 +-
.../camel/component/ical/ICalDataFormat.java | 13 +-
.../camel/dataformat/jibx/JibxDataFormat.java | 13 +-
.../camel/dataformat/rss/RssDataFormat.java | 19 +-
.../component/syslog/SyslogDataFormat.java | 13 +-
.../tagsoup/TidyMarkupDataFormat.java | 75 ++-----
.../dataformat/tarfile/TarFileDataFormat.java | 13 +-
16 files changed, 254 insertions(+), 234 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/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 86ed336..ad76316 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,7 +21,6 @@ import java.io.OutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
-import org.apache.camel.Service;
/**
* Represents a
@@ -32,7 +31,7 @@ import org.apache.camel.Service;
*
* @version
*/
-public interface DataFormat extends Service {
+public interface DataFormat {
// TODO: DataFormats should extends Service like the others
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-barcode/src/main/java/org/apache/camel/dataformat/barcode/BarcodeDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-barcode/src/main/java/org/apache/camel/dataformat/barcode/BarcodeDataFormat.java b/components/camel-barcode/src/main/java/org/apache/camel/dataformat/barcode/BarcodeDataFormat.java
index 1dd5f9b..0f6ea37 100644
--- a/components/camel-barcode/src/main/java/org/apache/camel/dataformat/barcode/BarcodeDataFormat.java
+++ b/components/camel-barcode/src/main/java/org/apache/camel/dataformat/barcode/BarcodeDataFormat.java
@@ -14,17 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.dataformat.barcode;
import java.io.BufferedInputStream;
-import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
import java.util.EnumMap;
import java.util.Map;
-
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeFormat;
@@ -34,54 +30,48 @@ import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.Result;
-import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.HybridBinarizer;
import com.google.zxing.datamatrix.encoder.SymbolShapeHint;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
-
import org.apache.camel.Exchange;
-import org.apache.camel.NoTypeConversionAvailableException;
-import org.apache.camel.TypeConversionException;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ExchangeHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * {@link DataFormat} to create (encode) and
+ * {@link DataFormat} to create (encode) and
* read (decode) barcodes. For more info about
* the available barcodes have a look at:<br/><br/>
- *
+ * <p/>
* https://github.com/zxing/zxing
- *
*/
-public class BarcodeDataFormat implements DataFormat {
+public class BarcodeDataFormat extends ServiceSupport implements DataFormat {
/**
* Logger.
*/
private static final Logger LOG = LoggerFactory.getLogger(BarcodeDataFormat.class);
-
+
/**
* The bean for the default parameters.
*/
private BarcodeParameters params;
-
+
/**
* The encoding hint map, used for writing a barcode.
*/
- private final Map<EncodeHintType, Object> writerHintMap =
- new EnumMap<EncodeHintType, Object>(EncodeHintType.class);
-
+ private final Map<EncodeHintType, Object> writerHintMap = new EnumMap<EncodeHintType, Object>(EncodeHintType.class);
+
/**
* The decoding hint map, used for reading a barcode.
*/
- private final Map<DecodeHintType, Object> readerHintMap =
- new EnumMap<DecodeHintType, Object>(DecodeHintType.class);
-
+ private final Map<DecodeHintType, Object> readerHintMap = new EnumMap<DecodeHintType, Object>(DecodeHintType.class);
+
/**
* Create instance with default parameters.
@@ -90,11 +80,11 @@ public class BarcodeDataFormat implements DataFormat {
this.setDefaultParameters();
this.optimizeHints();
}
-
+
/**
- * Create instance with custom {@link BarcodeFormat}. The other
+ * Create instance with custom {@link BarcodeFormat}. The other
* values are default.
- *
+ *
* @param format the barcode format
*/
public BarcodeDataFormat(final BarcodeFormat format) {
@@ -104,11 +94,11 @@ public class BarcodeDataFormat implements DataFormat {
}
/**
- * Create instance with custom height and width. The other
+ * Create instance with custom height and width. The other
* values are default.
- *
+ *
* @param height the image height
- * @param width the image width
+ * @param width the image width
*/
public BarcodeDataFormat(final int width, final int height) {
this.setDefaultParameters();
@@ -118,9 +108,9 @@ public class BarcodeDataFormat implements DataFormat {
}
/**
- * Create instance with custom {@link BarcodeImageType}. The other
+ * Create instance with custom {@link BarcodeImageType}. The other
* values are default.
- *
+ *
* @param type the type (format) of the image. e.g. PNG
*/
public BarcodeDataFormat(final BarcodeImageType type) {
@@ -128,18 +118,17 @@ public class BarcodeDataFormat implements DataFormat {
this.params.setType(type);
this.optimizeHints();
}
-
+
/**
- * Create instance with custom height, width and image type. The other
+ * Create instance with custom height, width and image type. The other
* values are default.
- *
+ *
* @param height the image height
- * @param width the image width
- * @param type the type (format) of the image. e.g. PNG
+ * @param width the image width
+ * @param type the type (format) of the image. e.g. PNG
* @param format the barcode format
*/
- public BarcodeDataFormat(final int width, final int height
- , final BarcodeImageType type, final BarcodeFormat format) {
+ public BarcodeDataFormat(final int width, final int height, final BarcodeImageType type, final BarcodeFormat format) {
this.setDefaultParameters();
this.params.setHeight(height);
this.params.setWidth(width);
@@ -147,41 +136,30 @@ public class BarcodeDataFormat implements DataFormat {
this.params.setFormat(format);
this.optimizeHints();
}
-
+
/**
* Marshall a {@link String} payload to a code image.
- *
- * @param exchange
- * @param graph
- * @param stream
- * @throws Exception
*/
@Override
- public void marshal(final Exchange exchange, final Object graph
- , final OutputStream stream) throws Exception {
+ public void marshal(final Exchange exchange, final Object graph, final OutputStream stream) throws Exception {
this.printImage(exchange, graph, stream);
}
/**
* Unmarshall a code image to a {@link String} payload.
- *
- * @param exchange
- * @param stream
- * @return
- * @throws Exception
*/
@Override
public Object unmarshal(final Exchange exchange, final InputStream stream) throws Exception {
return this.readImage(exchange, stream);
}
-
+
/**
* Sets the default parameters.
*/
protected final void setDefaultParameters() {
this.params = new BarcodeParameters();
}
-
+
/**
* Sets hints optimized for different barcode types.
*/
@@ -195,145 +173,102 @@ public class BarcodeDataFormat implements DataFormat {
// only for QR code. AZTEC uses zxing's default error correction 33%.
if (format.equals(BarcodeFormat.QR_CODE.toString())) {
- this.writerHintMap
- .put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
+ this.writerHintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
}
if (format.equals(BarcodeFormat.DATA_MATRIX.toString())) {
- this.writerHintMap
- .put(EncodeHintType.DATA_MATRIX_SHAPE
- , SymbolShapeHint.FORCE_SQUARE);
+ this.writerHintMap.put(EncodeHintType.DATA_MATRIX_SHAPE, SymbolShapeHint.FORCE_SQUARE);
}
-
+
// reader hints
this.readerHintMap.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
}
-
+
/**
* Writes the image file to the output stream.
- *
- * @param graph the object graph
+ *
+ * @param graph the object graph
* @param exchange the camel exchange
- * @param stream the output stream
- * @throws WriterException
- * @throws UnsupportedEncodingException
- * @throws IOException
- * @throws org.apache.camel.NoTypeConversionAvailableException
+ * @param stream the output stream
*/
- private void printImage(final Exchange exchange, final Object graph, final OutputStream stream)
- throws WriterException, UnsupportedEncodingException, IOException, TypeConversionException,
- NoTypeConversionAvailableException {
-
+ private void printImage(final Exchange exchange, final Object graph, final OutputStream stream) throws Exception {
final String payload = ExchangeHelper
.convertToMandatoryType(exchange, String.class, graph);
final MultiFormatWriter writer = new MultiFormatWriter();
// set values
final String type = this.params.getType().toString();
-
+
// create code image
final BitMatrix matrix = writer.encode(
payload,
- this.params.getFormat(),
- this.params.getWidth(),
- this.params.getHeight(),
+ this.params.getFormat(),
+ this.params.getWidth(),
+ this.params.getHeight(),
writerHintMap);
-
+
// write image back to stream
MatrixToImageWriter.writeToStream(matrix, type, stream);
}
-
+
/**
* Reads the message from a code.
- *
- * @param exchange
- * @param stream
- * @return
- * @throws Exception
*/
- private String readImage(final Exchange exchange, final InputStream stream)
- throws Exception {
+ private String readImage(final Exchange exchange, final InputStream stream) throws Exception {
final MultiFormatReader reader = new MultiFormatReader();
final BufferedInputStream in = exchange.getContext()
.getTypeConverter()
.mandatoryConvertTo(BufferedInputStream.class, stream);
- final BinaryBitmap bitmap = new BinaryBitmap(
- new HybridBinarizer(
- new BufferedImageLuminanceSource(ImageIO.read(in))));
+ final BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(in))));
final Result result = reader.decode(bitmap, readerHintMap);
-
+
// write the found barcode format into the header
- exchange.getOut()
- .setHeader(Barcode.BARCODE_FORMAT, result.getBarcodeFormat());
-
+ exchange.getOut().setHeader(Barcode.BARCODE_FORMAT, result.getBarcodeFormat());
+
return result.getText();
}
-
+
/**
* Adds a new hint value to writer (encode) hint map.
- *
- * @param hintType
- * @param value
*/
- public final void addToHintMap(final EncodeHintType hintType
- , final Object value) {
+ public final void addToHintMap(final EncodeHintType hintType, final Object value) {
this.writerHintMap.put(hintType, value);
- LOG.info(
- String.format("Added '%s' with value '%s' to writer hint map."
- , hintType.toString(), value.toString()));
+ LOG.info(String.format("Added '%s' with value '%s' to writer hint map.", hintType.toString(), value.toString()));
}
-
+
/**
* Adds a new hint value to reader (decode) hint map.
- *
- * @param hintType
- * @param value
*/
- public final void addToHintMap(final DecodeHintType hintType
- , final Object value) {
+ public final void addToHintMap(final DecodeHintType hintType, final Object value) {
this.readerHintMap.put(hintType, value);
}
-
+
/**
* Removes a hint from writer (encode) hint map.
- *
- * @param hintType
*/
public final void removeFromHintMap(final EncodeHintType hintType) {
if (this.writerHintMap.containsKey(hintType)) {
this.writerHintMap.remove(hintType);
- LOG.info(
- String.format("Removed '%s' from writer hint map."
- , hintType.toString()));
+ LOG.info(String.format("Removed '%s' from writer hint map.", hintType.toString()));
} else {
- LOG.warn(
- String.format("Could not find encode hint type '%s' in "
- + "writer hint map.", hintType.toString()));
+ LOG.warn(String.format("Could not find encode hint type '%s' in writer hint map.", hintType.toString()));
}
}
-
+
/**
* Removes a hint from reader (decode) hint map.
- *
- * @param hintType
*/
public final void removeFromHintMap(final DecodeHintType hintType) {
if (this.readerHintMap.containsKey(hintType)) {
this.readerHintMap.remove(hintType);
- LOG.info(
- String.format("Removed '%s' from reader hint map."
- , hintType.toString()));
+ LOG.info(String.format("Removed '%s' from reader hint map.", hintType.toString()));
} else {
- LOG.warn(
- String.format("Could not find decode hint type '%s' in"
- + " reader hint map.", hintType.toString()));
+ LOG.warn(String.format("Could not find decode hint type '%s' in reader hint map.", hintType.toString()));
}
}
/**
* The (default) parameters.
- *
- * @return
*/
public final BarcodeParameters getParams() {
return params;
@@ -341,8 +276,6 @@ public class BarcodeDataFormat implements DataFormat {
/**
* The writer (encode) hint map.
- *
- * @return
*/
public final Map<EncodeHintType, Object> getWriterHintMap() {
return writerHintMap;
@@ -350,29 +283,38 @@ public class BarcodeDataFormat implements DataFormat {
/**
* The reader (decode) hint map.
- *
- * @return
*/
public final Map<DecodeHintType, Object> getReaderHintMap() {
return readerHintMap;
}
-
+
// these set method is used for BarcodeDataFormat XML DSL
public void setBarcodeImageType(BarcodeImageType type) {
this.params.setType(type);
this.optimizeHints();
}
-
+
public void setBarcodeFormat(BarcodeFormat format) {
this.params.setFormat(format);
this.optimizeHints();
}
-
+
public void setWidth(Integer width) {
this.params.setWidth(width);
}
-
+
public void setHeight(Integer height) {
this.params.setHeight(height);
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-base64/src/main/java/org/apache/camel/dataformat/base64/Base64DataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-base64/src/main/java/org/apache/camel/dataformat/base64/Base64DataFormat.java b/components/camel-base64/src/main/java/org/apache/camel/dataformat/base64/Base64DataFormat.java
index fc30303..4b9ee75 100644
--- a/components/camel-base64/src/main/java/org/apache/camel/dataformat/base64/Base64DataFormat.java
+++ b/components/camel-base64/src/main/java/org/apache/camel/dataformat/base64/Base64DataFormat.java
@@ -21,13 +21,14 @@ import java.io.OutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ExchangeHelper;
import org.apache.camel.util.IOHelper;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Base64InputStream;
import org.apache.commons.codec.binary.Base64OutputStream;
-public class Base64DataFormat implements DataFormat {
+public class Base64DataFormat extends ServiceSupport implements DataFormat {
private int lineLength = Base64.MIME_CHUNK_SIZE;
private byte[] lineSeparator = {'\r', '\n'};
@@ -91,4 +92,14 @@ public class Base64DataFormat implements DataFormat {
public void setUrlSafe(boolean urlSafe) {
this.urlSafe = urlSafe;
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java
index a4365e3..b01e6d7 100644
--- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java
+++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyAbstractDataFormat.java
@@ -21,8 +21,9 @@ import java.util.List;
import java.util.Map;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
-public abstract class BindyAbstractDataFormat implements DataFormat {
+public abstract class BindyAbstractDataFormat extends ServiceSupport implements DataFormat {
private String locale;
private BindyAbstractFactory modelFactory;
private Class<?> classType;
@@ -84,4 +85,14 @@ public abstract class BindyAbstractDataFormat implements DataFormat {
return models;
}
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java b/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
index dfea3b1..24fbc42 100644
--- a/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
+++ b/components/camel-boon/src/main/java/org/apache/camel/component/boon/BoonDataFormat.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ChildServiceSupport;
import org.apache.camel.util.IOHelper;
import org.boon.json.JsonFactory;
import org.boon.json.ObjectMapper;
@@ -36,7 +37,7 @@ import org.boon.json.ObjectMapper;
* href="http://richardhightower.github.io/site/Boon/">Boon</a> to marshal to
* and from JSON.
*/
-public class BoonDataFormat implements DataFormat {
+public class BoonDataFormat extends ChildServiceSupport implements DataFormat {
private final ObjectMapper objectMapper;
private Class<?> unmarshalType;
@@ -81,6 +82,16 @@ public class BoonDataFormat implements DataFormat {
return result;
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
// Properties
// -------------------------------------------------------------------------
@@ -95,4 +106,5 @@ public class BoonDataFormat implements DataFormat {
public ObjectMapper getObjectMapper() {
return this.objectMapper;
}
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/CryptoDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/CryptoDataFormat.java b/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/CryptoDataFormat.java
index 711b3df..dd1d2c4 100644
--- a/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/CryptoDataFormat.java
+++ b/components/camel-crypto/src/main/java/org/apache/camel/converter/crypto/CryptoDataFormat.java
@@ -35,6 +35,7 @@ import static javax.crypto.Cipher.ENCRYPT_MODE;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ExchangeHelper;
import org.apache.camel.util.IOHelper;
import org.slf4j.Logger;
@@ -67,7 +68,7 @@ import org.slf4j.LoggerFactory;
* <li>http://en.wikipedia.org/wiki/HMAC</li>
* </ul>
*/
-public class CryptoDataFormat implements DataFormat {
+public class CryptoDataFormat extends ServiceSupport implements DataFormat {
public static final String KEY = "CamelCryptoKey";
@@ -173,6 +174,16 @@ public class CryptoDataFormat implements DataFormat {
return unmarshalled;
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
private void inlineInitVector(OutputStream outputStream, byte[] iv) throws IOException {
if (inline) {
if (iv == null) {
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
index c75aa54..3437a3f 100644
--- a/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
+++ b/components/camel-csv/src/main/java/org/apache/camel/dataformat/csv/CsvDataFormat.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.QuoteMode;
@@ -34,7 +35,7 @@ import org.apache.commons.csv.QuoteMode;
* Autogeneration can be disabled. In this case, only the fields defined in
* csvConfig are written on the output.
*/
-public class CsvDataFormat implements DataFormat {
+public class CsvDataFormat extends ServiceSupport implements DataFormat {
// CSV format options
private CSVFormat format = CSVFormat.DEFAULT;
private boolean commentMarkerDisabled;
@@ -72,19 +73,24 @@ public class CsvDataFormat implements DataFormat {
}
public void marshal(Exchange exchange, Object object, OutputStream outputStream) throws Exception {
- if (marshaller == null) {
- marshaller = CsvMarshaller.create(getActiveFormat(), this);
- }
marshaller.marshal(exchange, object, outputStream);
}
public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
- if (unmarshaller == null) {
- unmarshaller = CsvUnmarshaller.create(getActiveFormat(), this);
- }
return unmarshaller.unmarshal(exchange, inputStream);
}
+ @Override
+ protected void doStart() throws Exception {
+ marshaller = CsvMarshaller.create(getActiveFormat(), this);
+ unmarshaller = CsvUnmarshaller.create(getActiveFormat(), this);
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
CSVFormat getActiveFormat() {
CSVFormat answer = format;
@@ -151,11 +157,6 @@ public class CsvDataFormat implements DataFormat {
return answer;
}
- private void reset() {
- marshaller = null;
- unmarshaller = null;
- }
-
//region Getters/Setters
/**
@@ -179,7 +180,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setFormat(CSVFormat format) {
this.format = (format == null) ? CSVFormat.DEFAULT : format;
- reset();
return this;
}
@@ -228,7 +228,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setCommentMarkerDisabled(boolean commentMarkerDisabled) {
this.commentMarkerDisabled = commentMarkerDisabled;
- reset();
return this;
}
@@ -252,7 +251,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setCommentMarker(Character commentMarker) {
this.commentMarker = commentMarker;
- reset();
return this;
}
@@ -276,7 +274,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setDelimiter(Character delimiter) {
this.delimiter = delimiter;
- reset();
return this;
}
@@ -298,7 +295,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setEscapeDisabled(boolean escapeDisabled) {
this.escapeDisabled = escapeDisabled;
- reset();
return this;
}
@@ -322,7 +318,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setEscape(Character escape) {
this.escape = escape;
- reset();
return this;
}
@@ -344,7 +339,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setHeaderDisabled(boolean headerDisabled) {
this.headerDisabled = headerDisabled;
- reset();
return this;
}
@@ -368,7 +362,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setHeader(String[] header) {
this.header = Arrays.copyOf(header, header.length);
- reset();
return this;
}
@@ -392,7 +385,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setAllowMissingColumnNames(Boolean allowMissingColumnNames) {
this.allowMissingColumnNames = allowMissingColumnNames;
- reset();
return this;
}
@@ -416,7 +408,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setIgnoreEmptyLines(Boolean ignoreEmptyLines) {
this.ignoreEmptyLines = ignoreEmptyLines;
- reset();
return this;
}
@@ -440,7 +431,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setIgnoreSurroundingSpaces(Boolean ignoreSurroundingSpaces) {
this.ignoreSurroundingSpaces = ignoreSurroundingSpaces;
- reset();
return this;
}
@@ -462,7 +452,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setNullStringDisabled(boolean nullStringDisabled) {
this.nullStringDisabled = nullStringDisabled;
- reset();
return this;
}
@@ -486,7 +475,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setNullString(String nullString) {
this.nullString = nullString;
- reset();
return this;
}
@@ -508,7 +496,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setQuoteDisabled(boolean quoteDisabled) {
this.quoteDisabled = quoteDisabled;
- reset();
return this;
}
@@ -532,7 +519,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setQuote(Character quote) {
this.quote = quote;
- reset();
return this;
}
@@ -556,7 +542,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setQuoteMode(QuoteMode quoteMode) {
this.quoteMode = quoteMode;
- reset();
return this;
}
@@ -578,7 +563,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setRecordSeparatorDisabled(boolean recordSeparatorDisabled) {
this.recordSeparatorDisabled = recordSeparatorDisabled;
- reset();
return this;
}
@@ -602,7 +586,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setRecordSeparator(String recordSeparator) {
this.recordSeparator = recordSeparator;
- reset();
return this;
}
@@ -626,7 +609,6 @@ public class CsvDataFormat implements DataFormat {
*/
public CsvDataFormat setSkipHeaderRecord(Boolean skipHeaderRecord) {
this.skipHeaderRecord = skipHeaderRecord;
- reset();
return this;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/DataFormatProviderTest.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/DataFormatProviderTest.java b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/DataFormatProviderTest.java
index b369448..dcdb23e 100644
--- a/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/DataFormatProviderTest.java
+++ b/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/DataFormatProviderTest.java
@@ -27,6 +27,7 @@ import javax.ws.rs.core.MediaType;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.impl.MetadataMap;
import org.junit.Assert;
@@ -112,7 +113,7 @@ public class DataFormatProviderTest extends Assert {
}
}
- private static class TestDataFormat implements DataFormat {
+ private static class TestDataFormat extends ServiceSupport implements DataFormat {
@Override
public void marshal(Exchange ex, Object obj, OutputStream os) throws Exception {
@@ -125,6 +126,15 @@ public class DataFormatProviderTest extends Assert {
return new Book(IOUtils.readStringFromStream(is));
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-flatpack/src/main/java/org/apache/camel/dataformat/flatpack/FlatpackDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-flatpack/src/main/java/org/apache/camel/dataformat/flatpack/FlatpackDataFormat.java b/components/camel-flatpack/src/main/java/org/apache/camel/dataformat/flatpack/FlatpackDataFormat.java
index c8f0e46..a2bb9bc 100644
--- a/components/camel-flatpack/src/main/java/org/apache/camel/dataformat/flatpack/FlatpackDataFormat.java
+++ b/components/camel-flatpack/src/main/java/org/apache/camel/dataformat/flatpack/FlatpackDataFormat.java
@@ -36,6 +36,7 @@ import net.sf.flatpack.writer.Writer;
import org.apache.camel.Exchange;
import org.apache.camel.component.flatpack.DataSetList;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.camel.util.ResourceHelper;
@@ -55,7 +56,7 @@ import org.slf4j.LoggerFactory;
*
* @version
*/
-public class FlatpackDataFormat implements DataFormat {
+public class FlatpackDataFormat extends ServiceSupport implements DataFormat {
private static final Logger LOG = LoggerFactory.getLogger(FlatpackDataFormat.class);
private ParserFactory parserFactory = DefaultParserFactory.getInstance();
private char delimiter = ',';
@@ -110,6 +111,17 @@ public class FlatpackDataFormat implements DataFormat {
}
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+
+ }
+
// Properties
//-------------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-groovy/src/main/java/org/apache/camel/groovy/dataformat/AbstractXmlDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-groovy/src/main/java/org/apache/camel/groovy/dataformat/AbstractXmlDataFormat.java b/components/camel-groovy/src/main/java/org/apache/camel/groovy/dataformat/AbstractXmlDataFormat.java
index 428615d..8ec6087 100644
--- a/components/camel-groovy/src/main/java/org/apache/camel/groovy/dataformat/AbstractXmlDataFormat.java
+++ b/components/camel-groovy/src/main/java/org/apache/camel/groovy/dataformat/AbstractXmlDataFormat.java
@@ -19,6 +19,7 @@ package org.apache.camel.groovy.dataformat;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import org.apache.camel.support.ServiceSupport;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
@@ -31,7 +32,7 @@ import org.slf4j.LoggerFactory;
/**
* Common attributes and methods for XmlParser and XmlSlurper usage.
*/
-public abstract class AbstractXmlDataFormat implements DataFormat {
+public abstract class AbstractXmlDataFormat extends ServiceSupport implements DataFormat {
private static final Logger LOG = LoggerFactory.getLogger(AbstractXmlDataFormat.class);
private static final ErrorHandler DEFAULT_HANDLER = new DefaultErrorHandler();
@@ -90,4 +91,13 @@ public abstract class AbstractXmlDataFormat 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/9765d562/components/camel-ical/src/main/java/org/apache/camel/component/ical/ICalDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-ical/src/main/java/org/apache/camel/component/ical/ICalDataFormat.java b/components/camel-ical/src/main/java/org/apache/camel/component/ical/ICalDataFormat.java
index 0448c74..1db789b 100644
--- a/components/camel-ical/src/main/java/org/apache/camel/component/ical/ICalDataFormat.java
+++ b/components/camel-ical/src/main/java/org/apache/camel/component/ical/ICalDataFormat.java
@@ -25,11 +25,12 @@ import net.fortuna.ical4j.model.Calendar;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
/**
* Bridge ICal data format to camel world.
*/
-public class ICalDataFormat implements DataFormat {
+public class ICalDataFormat extends ServiceSupport implements DataFormat {
/**
* Class responsible for writing out calendar instances.
@@ -72,4 +73,14 @@ public class ICalDataFormat implements DataFormat {
return builder.build(stream);
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-jibx/src/main/java/org/apache/camel/dataformat/jibx/JibxDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-jibx/src/main/java/org/apache/camel/dataformat/jibx/JibxDataFormat.java b/components/camel-jibx/src/main/java/org/apache/camel/dataformat/jibx/JibxDataFormat.java
index 3ba125f..2727a89 100644
--- a/components/camel-jibx/src/main/java/org/apache/camel/dataformat/jibx/JibxDataFormat.java
+++ b/components/camel-jibx/src/main/java/org/apache/camel/dataformat/jibx/JibxDataFormat.java
@@ -21,6 +21,7 @@ import java.io.OutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ObjectHelper;
import org.jibx.runtime.BindingDirectory;
import org.jibx.runtime.IBindingFactory;
@@ -28,7 +29,7 @@ import org.jibx.runtime.IMarshallingContext;
import org.jibx.runtime.IUnmarshallingContext;
import org.jibx.runtime.JiBXException;
-public class JibxDataFormat implements DataFormat {
+public class JibxDataFormat extends ServiceSupport implements DataFormat {
private Class<?> unmarshallClass;
private String bindingName;
@@ -57,6 +58,16 @@ public class JibxDataFormat implements DataFormat {
return unmarshallingContext.unmarshalDocument(stream, null);
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
public Class<?> getUnmarshallClass() {
return unmarshallClass;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-rss/src/main/java/org/apache/camel/dataformat/rss/RssDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-rss/src/main/java/org/apache/camel/dataformat/rss/RssDataFormat.java b/components/camel-rss/src/main/java/org/apache/camel/dataformat/rss/RssDataFormat.java
index 4e7688a..f74666e 100644
--- a/components/camel-rss/src/main/java/org/apache/camel/dataformat/rss/RssDataFormat.java
+++ b/components/camel-rss/src/main/java/org/apache/camel/dataformat/rss/RssDataFormat.java
@@ -22,6 +22,7 @@ import java.io.OutputStream;
import com.sun.syndication.feed.synd.SyndFeed;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ExchangeHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,21 +39,27 @@ import org.slf4j.LoggerFactory;
* Uses <a href="https://rome.dev.java.net/">ROME</a> for RSS parsing.
* <p/>
*/
-public class RssDataFormat implements DataFormat {
+public class RssDataFormat extends ServiceSupport implements DataFormat {
protected static final Logger LOG = LoggerFactory.getLogger(RssDataFormat.class);
public void marshal(Exchange exchange, Object body, OutputStream out) throws Exception {
SyndFeed feed = ExchangeHelper.convertToMandatoryType(exchange, SyndFeed.class, body);
String xml = RssConverter.feedToXml(feed);
- if (xml != null) {
- out.write(xml.getBytes());
- } else {
- LOG.debug("Cannot marshal RSS feed to XML.");
- }
+ out.write(xml.getBytes());
}
public Object unmarshal(Exchange exchange, InputStream in) throws Exception {
String xml = ExchangeHelper.convertToMandatoryType(exchange, String.class, in);
return RssConverter.xmlToFeed(xml);
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-syslog/src/main/java/org/apache/camel/component/syslog/SyslogDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-syslog/src/main/java/org/apache/camel/component/syslog/SyslogDataFormat.java b/components/camel-syslog/src/main/java/org/apache/camel/component/syslog/SyslogDataFormat.java
index 399d8ab..84860cb 100644
--- a/components/camel-syslog/src/main/java/org/apache/camel/component/syslog/SyslogDataFormat.java
+++ b/components/camel-syslog/src/main/java/org/apache/camel/component/syslog/SyslogDataFormat.java
@@ -22,9 +22,10 @@ import java.util.Date;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ExchangeHelper;
-public class SyslogDataFormat implements DataFormat {
+public class SyslogDataFormat extends ServiceSupport implements DataFormat {
@Override
public void marshal(Exchange exchange, Object body, OutputStream stream) throws Exception {
@@ -71,4 +72,14 @@ public class SyslogDataFormat implements DataFormat {
return message;
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java b/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java
index 546607f..e5a8250 100644
--- a/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java
+++ b/components/camel-tagsoup/src/main/java/org/apache/camel/dataformat/tagsoup/TidyMarkupDataFormat.java
@@ -28,6 +28,7 @@ import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.sax.SAXSource;
+import org.apache.camel.support.ServiceSupport;
import org.w3c.dom.Node;
import org.xml.sax.ContentHandler;
@@ -45,7 +46,6 @@ import org.ccil.cowan.tagsoup.XMLWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
* Dataformat for TidyMarkup (aka Well formed HTML in XML form.. may or may not
* be XHTML) This dataformat is intended to convert bad HTML from a site (or
@@ -53,7 +53,7 @@ import org.slf4j.LoggerFactory;
* xpath'ed on.
*
*/
-public class TidyMarkupDataFormat implements DataFormat {
+public class TidyMarkupDataFormat extends ServiceSupport implements DataFormat {
/*
* Our Logger
@@ -114,8 +114,6 @@ public class TidyMarkupDataFormat implements DataFormat {
/**
* Unmarshal the data
- *
- * @throws Exception
*/
public Object unmarshal(Exchange exchange, InputStream inputStream) throws Exception {
@@ -184,9 +182,6 @@ public class TidyMarkupDataFormat implements DataFormat {
/**
* Create the tagSoup Parser
- *
- * @return
- * @throws CamelException
*/
protected XMLReader createTagSoupParser() throws CamelException {
XMLReader reader = new Parser();
@@ -230,24 +225,6 @@ public class TidyMarkupDataFormat implements DataFormat {
return reader;
}
- /**
- * @param htmlSchema
- * the htmlSchema to set
- */
- public void setParsingSchema(Schema schema) {
- this.parsingSchema = schema;
- }
-
- /**
- * @return the htmlSchema
- */
- public Schema getParsingSchema() {
- if (parsingSchema == null) {
- this.parsingSchema = new HTMLSchema();
- }
- return parsingSchema;
- }
-
protected ContentHandler createContentHandler(Writer w) {
XMLWriter xmlWriter = new XMLWriter(w);
@@ -268,64 +245,56 @@ public class TidyMarkupDataFormat implements DataFormat {
}
- /**
- * @param parserFeatures
- * the parserFeatures to set
- */
+ public void setParsingSchema(Schema schema) {
+ this.parsingSchema = schema;
+ }
+
+ public Schema getParsingSchema() {
+ if (parsingSchema == null) {
+ this.parsingSchema = new HTMLSchema();
+ }
+ return parsingSchema;
+ }
+
public void setParserFeatures(Map<String, Boolean> parserFeatures) {
this.parserFeatures = parserFeatures;
}
- /**
- * @return the parserFeatures
- */
public Map<String, Boolean> getParserFeatures() {
return parserFeatures;
}
- /**
- * @param parserPropeties
- * the parserPropeties to set
- */
public void setParserPropeties(Map<String, Object> parserPropeties) {
this.parserPropeties = parserPropeties;
}
- /**
- * @return the parserPropeties
- */
public Map<String, Object> getParserPropeties() {
return parserPropeties;
}
- /**
- * @param method
- * the method to set
- */
public void setMethod(String method) {
this.method = method;
}
- /**
- * @return the method
- */
public String getMethod() {
return method;
}
- /**
- * @return the dataObjectType
- */
public Class<?> getDataObjectType() {
return dataObjectType;
}
- /**
- * @param dataObjectType
- * the dataObjectType to set
- */
public void setDataObjectType(Class<?> dataObjectType) {
this.dataObjectType = dataObjectType;
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/9765d562/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarFileDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarFileDataFormat.java b/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarFileDataFormat.java
index 754d932..d994cf2 100644
--- a/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarFileDataFormat.java
+++ b/components/camel-tarfile/src/main/java/org/apache/camel/dataformat/tarfile/TarFileDataFormat.java
@@ -24,6 +24,7 @@ import java.io.OutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.StringHelper;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
@@ -38,7 +39,7 @@ import static org.apache.camel.Exchange.FILE_NAME;
* Tar file data format.
* Based on ZipFileDataFormat from camel-zipfile component
*/
-public class TarFileDataFormat implements DataFormat {
+public class TarFileDataFormat extends ServiceSupport implements DataFormat {
private boolean usingIterator;
public void setUsingIterator(boolean usingIterator) {
@@ -108,4 +109,14 @@ public class TarFileDataFormat implements DataFormat {
}
}
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
[3/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
Posted by da...@apache.org.
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/ca7fd9a8
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ca7fd9a8
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ca7fd9a8
Branch: refs/heads/master
Commit: ca7fd9a833ffa5a8895159564f18a4d7cff8f950
Parents: 5f399e6
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 11:29:19 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 11:29:19 2015 +0200
----------------------------------------------------------------------
.../mbean/ManagedDataFormatMBean.java | 41 +++++++++
.../DefaultManagementLifecycleStrategy.java | 3 +
.../DefaultManagementObjectStrategy.java | 13 +++
.../management/ManagedManagementStrategy.java | 12 ++-
.../management/mbean/ManagedDataFormat.java | 91 ++++++++++++++++++++
.../camel/spi/ManagementObjectStrategy.java | 2 +
6 files changed, 155 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/ca7fd9a8/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java
new file mode 100644
index 0000000..c5ed0e0
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java
@@ -0,0 +1,41 @@
+/**
+ * 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.api.management.mbean;
+
+import javax.management.openmbean.TabularData;
+
+import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.api.management.ManagedOperation;
+
+public interface ManagedDataFormatMBean {
+
+ @ManagedAttribute(description = "Camel ID")
+ String getCamelId();
+
+ @ManagedAttribute(description = "Camel ManagementName")
+ String getCamelManagementName();
+
+ @ManagedAttribute(description = "DataFormat State")
+ String getState();
+
+ @ManagedOperation(description = "DataFormat information as JSon")
+ String informationJson();
+
+ @ManagedOperation(description = "Explain how this data format is configured")
+ TabularData explain(boolean allOptions);
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/ca7fd9a8/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
index ab4db16..1c52d2a 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
@@ -81,6 +81,7 @@ import org.apache.camel.processor.interceptor.BacklogDebugger;
import org.apache.camel.processor.interceptor.BacklogTracer;
import org.apache.camel.processor.interceptor.Tracer;
import org.apache.camel.spi.AsyncProcessorAwaitManager;
+import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.EventNotifier;
import org.apache.camel.spi.InflightRepository;
import org.apache.camel.spi.LifecycleStrategy;
@@ -449,6 +450,8 @@ public class DefaultManagementLifecycleStrategy extends ServiceSupport implement
managedBacklogDebuggers.put(backlogDebugger, md);
}
return md;
+ } else if (service instanceof DataFormat) {
+ answer = getManagementObjectStrategy().getManagedObjectForDataFormat(context, (DataFormat) service);
} else if (service instanceof Producer) {
answer = getManagementObjectStrategy().getManagedObjectForProducer(context, (Producer) service);
} else if (service instanceof Consumer) {
http://git-wip-us.apache.org/repos/asf/camel/blob/ca7fd9a8/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
index 95d2a0f..d30e4fe 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementObjectStrategy.java
@@ -42,6 +42,7 @@ import org.apache.camel.management.mbean.ManagedComponent;
import org.apache.camel.management.mbean.ManagedConsumer;
import org.apache.camel.management.mbean.ManagedConvertBody;
import org.apache.camel.management.mbean.ManagedCustomLoadBalancer;
+import org.apache.camel.management.mbean.ManagedDataFormat;
import org.apache.camel.management.mbean.ManagedDelayer;
import org.apache.camel.management.mbean.ManagedDynamicRouter;
import org.apache.camel.management.mbean.ManagedEndpoint;
@@ -153,6 +154,7 @@ import org.apache.camel.processor.loadbalancer.TopicLoadBalancer;
import org.apache.camel.processor.loadbalancer.WeightedLoadBalancer;
import org.apache.camel.processor.validation.PredicateValidatingProcessor;
import org.apache.camel.spi.BrowsableEndpoint;
+import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.EventNotifier;
import org.apache.camel.spi.ManagementObjectStrategy;
import org.apache.camel.spi.RouteContext;
@@ -180,6 +182,17 @@ public class DefaultManagementObjectStrategy implements ManagementObjectStrategy
}
@SuppressWarnings({"deprecation", "unchecked"})
+ public Object getManagedObjectForDataFormat(CamelContext context, DataFormat dataFormat) {
+ if (dataFormat instanceof org.apache.camel.spi.ManagementAware) {
+ return ((org.apache.camel.spi.ManagementAware<DataFormat>) dataFormat).getManagedObject(dataFormat);
+ } else {
+ ManagedDataFormat md = new ManagedDataFormat(context, dataFormat);
+ md.init(context.getManagementStrategy());
+ return md;
+ }
+ }
+
+ @SuppressWarnings({"deprecation", "unchecked"})
public Object getManagedObjectForEndpoint(CamelContext context, Endpoint endpoint) {
// we only want to manage singleton endpoints
if (!endpoint.isSingleton()) {
http://git-wip-us.apache.org/repos/asf/camel/blob/ca7fd9a8/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java b/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
index 942df5f..58a6982 100644
--- a/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
@@ -25,6 +25,7 @@ import org.apache.camel.management.mbean.ManagedBacklogTracer;
import org.apache.camel.management.mbean.ManagedCamelContext;
import org.apache.camel.management.mbean.ManagedComponent;
import org.apache.camel.management.mbean.ManagedConsumer;
+import org.apache.camel.management.mbean.ManagedDataFormat;
import org.apache.camel.management.mbean.ManagedEndpoint;
import org.apache.camel.management.mbean.ManagedErrorHandler;
import org.apache.camel.management.mbean.ManagedEventNotifier;
@@ -35,7 +36,6 @@ import org.apache.camel.management.mbean.ManagedService;
import org.apache.camel.management.mbean.ManagedThreadPool;
import org.apache.camel.management.mbean.ManagedTracer;
import org.apache.camel.model.ProcessorDefinition;
-import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.ManagementAgent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -92,6 +92,9 @@ public class ManagedManagementStrategy extends DefaultManagementStrategy {
} else if (managedObject instanceof ManagedComponent) {
ManagedComponent mc = (ManagedComponent) managedObject;
objectName = getManagementNamingStrategy().getObjectNameForComponent(mc.getComponent(), mc.getComponentName());
+ } else if (managedObject instanceof ManagedDataFormat) {
+ ManagedDataFormat md = (ManagedDataFormat) managedObject;
+ objectName = getManagementNamingStrategy().getObjectNameForDataFormat(md.getContext(), md.getDataFormat());
} else if (managedObject instanceof ManagedEndpoint) {
ManagedEndpoint me = (ManagedEndpoint) managedObject;
objectName = getManagementNamingStrategy().getObjectNameForEndpoint(me.getEndpoint());
@@ -134,12 +137,7 @@ public class ManagedManagementStrategy extends DefaultManagementStrategy {
if (ms.getService() instanceof Endpoint) {
return null;
}
- if (ms.getService() instanceof DataFormat) {
- DataFormat df = (DataFormat) ms.getService();
- objectName = getManagementNamingStrategy().getObjectNameForDataFormat(ms.getContext(), df);
- } else {
- objectName = getManagementNamingStrategy().getObjectNameForService(ms.getContext(), ms.getService());
- }
+ objectName = getManagementNamingStrategy().getObjectNameForService(ms.getContext(), ms.getService());
}
return nameType.cast(objectName);
http://git-wip-us.apache.org/repos/asf/camel/blob/ca7fd9a8/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDataFormat.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDataFormat.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDataFormat.java
new file mode 100644
index 0000000..dcb5e09
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedDataFormat.java
@@ -0,0 +1,91 @@
+/**
+ * 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.mbean;
+
+import javax.management.openmbean.TabularData;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.StatefulService;
+import org.apache.camel.api.management.ManagedInstance;
+import org.apache.camel.api.management.ManagedResource;
+import org.apache.camel.api.management.mbean.ManagedDataFormatMBean;
+import org.apache.camel.spi.DataFormat;
+import org.apache.camel.spi.ManagementStrategy;
+
+@ManagedResource(description = "Managed DataFormat")
+public class ManagedDataFormat implements ManagedInstance, ManagedDataFormatMBean {
+ private final CamelContext camelContext;
+ private final DataFormat dataFormat;
+
+ public ManagedDataFormat(CamelContext camelContext, DataFormat dataFormat) {
+ this.camelContext = camelContext;
+ this.dataFormat = dataFormat;
+ }
+
+ public void init(ManagementStrategy strategy) {
+ // noop
+ }
+
+ public DataFormat getDataFormat() {
+ return dataFormat;
+ }
+
+ public CamelContext getContext() {
+ return camelContext;
+ }
+
+ @Override
+ public String getCamelId() {
+ return camelContext.getName();
+ }
+
+ @Override
+ public String getCamelManagementName() {
+ return camelContext.getManagementName();
+ }
+
+ @Override
+ public String getState() {
+ // must use String type to be sure remote JMX can read the attribute without requiring Camel classes.
+ if (dataFormat instanceof StatefulService) {
+ ServiceStatus status = ((StatefulService) dataFormat).getStatus();
+ return status.name();
+ }
+
+ // assume started if not a ServiceSupport instance
+ return ServiceStatus.Started.name();
+ }
+
+ @Override
+ public String informationJson() {
+ // TODO: not yet implemented
+ return null;
+ }
+
+ @Override
+ public TabularData explain(boolean allOptions) {
+ // TODO: not yet implemented
+ return null;
+ }
+
+ @Override
+ public DataFormat getInstance() {
+ return dataFormat;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/ca7fd9a8/camel-core/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java b/camel-core/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java
index 5190cd6..b6acc7f 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/ManagementObjectStrategy.java
@@ -38,6 +38,8 @@ public interface ManagementObjectStrategy {
Object getManagedObjectForComponent(CamelContext context, Component component, String name);
+ Object getManagedObjectForDataFormat(CamelContext context, DataFormat dataFormat);
+
Object getManagedObjectForEndpoint(CamelContext context, Endpoint endpoint);
Object getManagedObjectForErrorHandler(CamelContext context, RouteContext routeContext,
[7/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
Posted by da...@apache.org.
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/73e46319
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/73e46319
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/73e46319
Branch: refs/heads/master
Commit: 73e463199c8f37d7efbe65eb107cb55203296820
Parents: 4c650d4
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 13:34:35 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 13:34:35 2015 +0200
----------------------------------------------------------------------
.../dataformat/xstream/AbstractXStreamWrapper.java | 13 ++++++++++++-
.../camel/dataformat/zipfile/ZipFileDataFormat.java | 12 +++++++++++-
2 files changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/73e46319/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java
----------------------------------------------------------------------
diff --git a/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java b/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java
index 2981f66..8b51a4b 100644
--- a/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java
+++ b/components/camel-xstream/src/main/java/org/apache/camel/dataformat/xstream/AbstractXStreamWrapper.java
@@ -38,13 +38,14 @@ import org.apache.camel.Exchange;
import org.apache.camel.converter.jaxp.StaxConverter;
import org.apache.camel.spi.ClassResolver;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ObjectHelper;
/**
* An abstract class which implement <a href="http://camel.apache.org/data-format.html">data format</a>
* ({@link DataFormat}) interface which leverage the XStream library for XML or JSON's marshaling and unmarshaling
*/
-public abstract class AbstractXStreamWrapper implements DataFormat {
+public abstract class AbstractXStreamWrapper extends ServiceSupport implements DataFormat {
private XStream xstream;
private HierarchicalStreamDriver xstreamDriver;
@@ -289,4 +290,14 @@ public abstract class AbstractXStreamWrapper implements DataFormat {
protected abstract HierarchicalStreamReader createHierarchicalStreamReader(
Exchange exchange, InputStream stream) throws XMLStreamException;
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/73e46319/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java b/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java
index 884c608..4427650 100644
--- a/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java
+++ b/components/camel-zipfile/src/main/java/org/apache/camel/dataformat/zipfile/ZipFileDataFormat.java
@@ -26,6 +26,7 @@ import java.util.zip.ZipOutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.IOHelper;
import org.apache.camel.util.StringHelper;
@@ -35,7 +36,7 @@ import static org.apache.camel.Exchange.FILE_NAME;
* Zip file data format.
* See {@link org.apache.camel.model.dataformat.ZipDataFormat} for "deflate" compression.
*/
-public class ZipFileDataFormat implements DataFormat {
+public class ZipFileDataFormat extends ServiceSupport implements DataFormat {
private boolean usingIterator;
public void setUsingIterator(boolean usingIterator) {
@@ -97,4 +98,13 @@ public class ZipFileDataFormat implements DataFormat {
}
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
[4/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
Posted by da...@apache.org.
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
+ }
}
}
[6/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
Posted by da...@apache.org.
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/4c650d4c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4c650d4c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4c650d4c
Branch: refs/heads/master
Commit: 4c650d4c4d5dfb15318495fcf6ef3be8c18eafab
Parents: 9765d56
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 13:31:58 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 13:31:58 2015 +0200
----------------------------------------------------------------------
.../univocity/AbstractUniVocityDataFormat.java | 14 +++++++++++++-
.../converter/xmlbeans/XmlBeansDataFormat.java | 14 +++++++++++++-
.../camel/dataformat/xmlrpc/XmlRpcDataFormat.java | 14 ++++++++++++--
.../xmlsecurity/XMLSecurityDataFormat.java | 16 +++++++++++++---
4 files changed, 51 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/4c650d4c/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java b/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
index b5d6959..f459377 100644
--- a/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
+++ b/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
@@ -31,6 +31,7 @@ import com.univocity.parsers.common.CommonWriterSettings;
import com.univocity.parsers.common.Format;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import static org.apache.camel.util.IOHelper.getCharsetName;
@@ -48,7 +49,8 @@ import static org.apache.camel.util.IOHelper.getCharsetName;
* @param <DF> the data format class (for providing a fluent API)
*/
public abstract class AbstractUniVocityDataFormat<F extends Format, CWS extends CommonWriterSettings<F>,
- W extends AbstractWriter<CWS>, CPS extends CommonParserSettings<F>, P extends AbstractParser<CPS>, DF extends AbstractUniVocityDataFormat<F, CWS, W, CPS, P, DF>> implements DataFormat {
+ W extends AbstractWriter<CWS>, CPS extends CommonParserSettings<F>, P extends AbstractParser<CPS>, DF extends AbstractUniVocityDataFormat<F, CWS, W, CPS, P, DF>>
+ extends ServiceSupport implements DataFormat {
protected String nullValue;
protected Boolean skipEmptyLines;
protected Boolean ignoreTrailingWhitespaces;
@@ -615,4 +617,14 @@ public abstract class AbstractUniVocityDataFormat<F extends Format, CWS extends
private DF self() {
return (DF) this;
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/4c650d4c/components/camel-xmlbeans/src/main/java/org/apache/camel/converter/xmlbeans/XmlBeansDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlbeans/src/main/java/org/apache/camel/converter/xmlbeans/XmlBeansDataFormat.java b/components/camel-xmlbeans/src/main/java/org/apache/camel/converter/xmlbeans/XmlBeansDataFormat.java
index 41dd0ff..a357fc5 100644
--- a/components/camel-xmlbeans/src/main/java/org/apache/camel/converter/xmlbeans/XmlBeansDataFormat.java
+++ b/components/camel-xmlbeans/src/main/java/org/apache/camel/converter/xmlbeans/XmlBeansDataFormat.java
@@ -22,6 +22,7 @@ import java.util.concurrent.Callable;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
import org.apache.camel.util.ExchangeHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.xmlbeans.XmlObject;
@@ -30,7 +31,7 @@ import org.apache.xmlbeans.XmlObject;
* A <a href="http://camel.apache.org/data-format.html">data format</a>
* ({@link DataFormat}) using XmlBeans to marshal to and from XML
*/
-public class XmlBeansDataFormat implements DataFormat {
+public class XmlBeansDataFormat extends ServiceSupport implements DataFormat {
public void marshal(final Exchange exchange, final Object body, final OutputStream stream) throws Exception {
ObjectHelper.callWithTCCL(new Callable<Void>() {
@@ -52,4 +53,15 @@ public class XmlBeansDataFormat implements DataFormat {
}
}, exchange);
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/4c650d4c/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
index b94db64..1e2be5a 100644
--- a/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
+++ b/components/camel-xmlrpc/src/main/java/org/apache/camel/dataformat/xmlrpc/XmlRpcDataFormat.java
@@ -23,6 +23,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
+import org.apache.camel.support.ServiceSupport;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
@@ -45,7 +46,7 @@ import org.apache.xmlrpc.parser.XmlRpcRequestParser;
import org.apache.xmlrpc.parser.XmlRpcResponseParser;
import org.apache.xmlrpc.util.SAXParsers;
-public class XmlRpcDataFormat implements DataFormat {
+public class XmlRpcDataFormat extends ServiceSupport implements DataFormat {
private XmlRpcStreamRequestConfig xmlRpcStreamRequestConfig = new XmlRpcHttpRequestConfigImpl();
private TypeFactory typeFactory = new TypeFactoryImpl(null);
private boolean isRequest;
@@ -76,7 +77,6 @@ public class XmlRpcDataFormat implements DataFormat {
// TODO write the fault message here
writer.write(xmlRpcStreamRequestConfig, graph);
}
-
}
protected int getErrorCode(Exchange exchange) {
@@ -167,4 +167,14 @@ public class XmlRpcDataFormat implements DataFormat {
return typeFactory;
}
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
}
http://git-wip-us.apache.org/repos/asf/camel/blob/4c650d4c/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java b/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
index dc0713f..b7eed69 100755
--- a/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
+++ b/components/camel-xmlsecurity/src/main/java/org/apache/camel/dataformat/xmlsecurity/XMLSecurityDataFormat.java
@@ -40,6 +40,7 @@ import javax.crypto.spec.DESedeKeySpec;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.transform.dom.DOMSource;
+import org.apache.camel.support.ServiceSupport;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -65,7 +66,7 @@ import org.slf4j.LoggerFactory;
-public class XMLSecurityDataFormat implements DataFormat, CamelContextAware {
+public class XMLSecurityDataFormat extends ServiceSupport implements DataFormat, CamelContextAware {
/**
* @deprecated Use {@link #XMLSecurityDataFormat(String, Map, boolean, String, String, String, KeyStoreParameters)} instead.
@@ -368,7 +369,6 @@ public class XMLSecurityDataFormat implements DataFormat, CamelContextAware {
this.camelContext = camelContext;
try {
setDefaultsFromContext(camelContext);
-
} catch (Exception e) {
throw new IllegalStateException("Could not initialize XMLSecurityDataFormat with camelContext. ", e);
}
@@ -378,7 +378,17 @@ public class XMLSecurityDataFormat implements DataFormat, CamelContextAware {
public CamelContext getCamelContext() {
return camelContext;
}
-
+
+ @Override
+ protected void doStart() throws Exception {
+ // noop
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // noop
+ }
+
/**
* Sets missing properties that are defined in the Camel context.
* @deprecated this operation populates the data format using depreciated properties and will be
[2/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
Posted by da...@apache.org.
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/5f399e6b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5f399e6b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5f399e6b
Branch: refs/heads/master
Commit: 5f399e6b5fc2c7ad045cd056eca7d6fea55646ea
Parents: 4935c1e
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 11:20:09 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 11:20:09 2015 +0200
----------------------------------------------------------------------
.../management/DefaultManagementNamingStrategy.java | 14 ++++++++++++++
.../camel/management/ManagedManagementStrategy.java | 8 +++++++-
.../apache/camel/spi/ManagementNamingStrategy.java | 2 ++
3 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/5f399e6b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
index fdd538a..a9c8a70 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java
@@ -34,6 +34,7 @@ import org.apache.camel.Route;
import org.apache.camel.Service;
import org.apache.camel.StaticService;
import org.apache.camel.builder.ErrorHandlerBuilderRef;
+import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.EventNotifier;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.ManagementNamingStrategy;
@@ -52,6 +53,7 @@ public class DefaultManagementNamingStrategy implements ManagementNamingStrategy
public static final String KEY_CONTEXT = "context";
public static final String TYPE_CONTEXT = "context";
public static final String TYPE_ENDPOINT = "endpoints";
+ public static final String TYPE_DATAFORMAT = "dataformats";
public static final String TYPE_PROCESSOR = "processors";
public static final String TYPE_CONSUMER = "consumers";
public static final String TYPE_PRODUCER = "producers";
@@ -119,6 +121,18 @@ public class DefaultManagementNamingStrategy implements ManagementNamingStrategy
return createObjectName(buffer);
}
+ public ObjectName getObjectNameForDataFormat(CamelContext context, DataFormat dataFormat) throws MalformedObjectNameException {
+ StringBuilder buffer = new StringBuilder();
+ buffer.append(domainName).append(":");
+ buffer.append(KEY_CONTEXT + "=").append(getContextId(context)).append(",");
+ buffer.append(KEY_TYPE + "=" + TYPE_DATAFORMAT + ",");
+ buffer.append(KEY_NAME + "=").append(dataFormat.getClass().getSimpleName());
+ if (!(dataFormat instanceof StaticService)) {
+ buffer.append("(").append(ObjectHelper.getIdentityHashCode(dataFormat)).append(")");
+ }
+ return createObjectName(buffer);
+ }
+
public ObjectName getObjectNameForComponent(Component component, String name) throws MalformedObjectNameException {
StringBuilder buffer = new StringBuilder();
buffer.append(domainName).append(":");
http://git-wip-us.apache.org/repos/asf/camel/blob/5f399e6b/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java b/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
index 6f0966b..942df5f 100644
--- a/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java
@@ -35,6 +35,7 @@ import org.apache.camel.management.mbean.ManagedService;
import org.apache.camel.management.mbean.ManagedThreadPool;
import org.apache.camel.management.mbean.ManagedTracer;
import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.spi.DataFormat;
import org.apache.camel.spi.ManagementAgent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -133,7 +134,12 @@ public class ManagedManagementStrategy extends DefaultManagementStrategy {
if (ms.getService() instanceof Endpoint) {
return null;
}
- objectName = getManagementNamingStrategy().getObjectNameForService(ms.getContext(), ms.getService());
+ if (ms.getService() instanceof DataFormat) {
+ DataFormat df = (DataFormat) ms.getService();
+ objectName = getManagementNamingStrategy().getObjectNameForDataFormat(ms.getContext(), df);
+ } else {
+ objectName = getManagementNamingStrategy().getObjectNameForService(ms.getContext(), ms.getService());
+ }
}
return nameType.cast(objectName);
http://git-wip-us.apache.org/repos/asf/camel/blob/5f399e6b/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java b/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
index 6d5d4ff..0c4adf4 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java
@@ -46,6 +46,8 @@ public interface ManagementNamingStrategy {
ObjectName getObjectNameForEndpoint(Endpoint endpoint) throws MalformedObjectNameException;
+ ObjectName getObjectNameForDataFormat(CamelContext context, DataFormat endpoint) throws MalformedObjectNameException;
+
ObjectName getObjectNameForErrorHandler(RouteContext routeContext, Processor errorHandler, ErrorHandlerFactory builder) throws MalformedObjectNameException;
ObjectName getObjectNameForProcessor(CamelContext context, Processor processor, NamedNode definition) throws MalformedObjectNameException;
[8/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
Posted by da...@apache.org.
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/d4228467
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d4228467
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d4228467
Branch: refs/heads/master
Commit: d4228467a5b2d5cea4bcbd926df5a950f6c0b59b
Parents: 73e4631
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 24 13:37:22 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 24 13:37:22 2015 +0200
----------------------------------------------------------------------
.../src/main/java/__name__DataFormat.java | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/d4228467/tooling/archetypes/camel-archetype-dataformat/src/main/resources/archetype-resources/src/main/java/__name__DataFormat.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/camel-archetype-dataformat/src/main/resources/archetype-resources/src/main/java/__name__DataFormat.java b/tooling/archetypes/camel-archetype-dataformat/src/main/resources/archetype-resources/src/main/java/__name__DataFormat.java
index 857be28..84cd2f8 100644
--- a/tooling/archetypes/camel-archetype-dataformat/src/main/resources/archetype-resources/src/main/java/__name__DataFormat.java
+++ b/tooling/archetypes/camel-archetype-dataformat/src/main/resources/archetype-resources/src/main/java/__name__DataFormat.java
@@ -21,12 +21,13 @@ import java.io.OutputStream;
import org.apache.camel.Exchange;
import org.apache.camel.spi.DataFormat;
+import org.apache.camel.support.ServiceSupport;
/**
* A <a href="http://camel.apache.org/data-format.html">data format</a> ({@link DataFormat})
* for ${name} data.
*/
-public class ${name}DataFormat implements DataFormat {
+public class ${name}DataFormat extends ServiceSupport implements DataFormat {
public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception {
byte[] bytes = exchange.getContext().getTypeConverter().mandatoryConvertTo(byte[].class, graph);
@@ -37,4 +38,15 @@ public class ${name}DataFormat implements DataFormat {
byte[] bytes = exchange.getContext().getTypeConverter().mandatoryConvertTo(byte[].class, stream);
return bytes;
}
+
+ @Override
+ protected void doStart() throws Exception {
+ // init logic here
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ // cleanup logic here
+ }
+
}