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:18 UTC
[5/8] camel git commit: CAMEL-9157: JMX - Add dataformat as mbean
category
CAMEL-9157: JMX - Add dataformat as mbean category
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/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
+ }
}