Updated Branches: refs/heads/master 688ec2df4 -> a4c3f4438
CAMEL-7051 Added timezone support in camel-bindy with thanks to Daneel Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/55522f15 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/55522f15 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/55522f15 Branch: refs/heads/master Commit: 55522f15fe9dbfb88b56fb107e5c9f699d4aa567 Parents: 688ec2d Author: Willem Jiang <willem.ji...@gmail.com> Authored: Tue Dec 10 15:32:58 2013 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Tue Dec 10 15:32:58 2013 +0800 ---------------------------------------------------------------------- .../camel/dataformat/bindy/FormatFactory.java | 13 +++++++++---- .../dataformat/bindy/annotation/DataField.java | 5 +++++ .../bindy/annotation/KeyValuePairField.java | 5 +++++ .../bindy/format/DatePatternFormat.java | 19 +++++++++++++++++-- .../classtype/BindyCsvClassTypeAsStringTest.java | 19 +++++++++++++++++-- .../bindy/classtype/BindyCsvClassTypeTest.java | 18 ++++++++++++++++-- .../csv/BindyPojoSimpleCsvMarshallTest.java | 10 +++++++++- .../bindy/csv/BindySimpleCsvMarshallDslTest.java | 15 ++++++++------- .../bindy/csv/BindySimpleCsvMarshallTest.java | 15 ++++++++------- .../csv/BindySimpleCsvNullMarshallTest.java | 2 +- .../BindyComplexKeyValuePairStandaloneTest.java | 17 +++++++++++++---- .../BindySimpleKeyValuePairMarshallDslTest.java | 14 +++++++++----- .../model/fix/complex/onetomany/Header.java | 16 +++++++++++++++- .../bindy/model/fix/complex/onetomany/Order.java | 16 +++++++++++++++- .../dataformat/bindy/model/fix/simple/Order.java | 16 +++++++++++++++- .../bindy/model/simple/oneclass/Order.java | 13 ++++++++++++- 16 files changed, 174 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormatFactory.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormatFactory.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormatFactory.java index f981b6a..cf7720f 100755 --- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormatFactory.java +++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/FormatFactory.java @@ -65,7 +65,10 @@ public final class FormatFactory { * @throws IllegalArgumentException if not suitable formatter is found */ @SuppressWarnings("unchecked") - private static Format<?> doGetFormat(Class<?> clazz, String pattern, String locale, int precision, boolean impliedDecimalSeparator) throws Exception { + private static Format<?> doGetFormat(Class<?> clazz, String pattern, String locale, + String timezone, int precision, boolean impliedDecimalSeparator) + throws Exception + { if (clazz == byte.class || clazz == Byte.class) { return ObjectHelper.isNotEmpty(pattern) ? new BytePatternFormat(pattern, getLocale(locale)) @@ -97,7 +100,7 @@ public final class FormatFactory { } else if (clazz == String.class) { return new StringFormat(); } else if (clazz == Date.class) { - return new DatePatternFormat(pattern, getLocale(locale)); + return new DatePatternFormat(pattern, timezone, getLocale(locale)); } else if (clazz == char.class || clazz == Character.class) { return new CharacterFormat(); } else if (clazz.isEnum()) { @@ -117,9 +120,10 @@ public final class FormatFactory { */ public static Format<?> getFormat(Class<?> clazz, String locale, DataField data) throws Exception { String pattern = data.pattern(); + String timezone = data.timezone(); int precision = data.precision(); - return doGetFormat(clazz, pattern, locale, precision, data.impliedDecimalSeparator()); + return doGetFormat(clazz, pattern, locale, timezone, precision, data.impliedDecimalSeparator()); } /** @@ -132,9 +136,10 @@ public final class FormatFactory { */ public static Format<?> getFormat(Class<?> clazz, String locale, KeyValuePairField data) throws Exception { String pattern = data.pattern(); + String timezone = data.timezone(); int precision = data.precision(); - return doGetFormat(clazz, pattern, locale, precision, data.impliedDecimalSeparator()); + return doGetFormat(clazz, pattern, locale, timezone, precision, data.impliedDecimalSeparator()); } private static Locale getLocale(String locale) { http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/DataField.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/DataField.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/DataField.java index 8e48d5d..cacbb52 100755 --- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/DataField.java +++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/DataField.java @@ -60,6 +60,11 @@ public @interface DataField { String pattern() default ""; /** + * @return String timezone ID + */ + String timezone() default ""; + + /** * Length of the data block if the record is set to a fixed length */ int length() default 0; http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/KeyValuePairField.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/KeyValuePairField.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/KeyValuePairField.java index dff42a1..35f902b 100644 --- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/KeyValuePairField.java +++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/annotation/KeyValuePairField.java @@ -58,6 +58,11 @@ public @interface KeyValuePairField { String pattern() default ""; /** + * @return String timezone ID + */ + String timezone() default ""; + + /** * Position of the field in the message generated * * @return int http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java index 1b13413..dbf1bb1 100755 --- a/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java +++ b/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/format/DatePatternFormat.java @@ -20,6 +20,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; +import java.util.TimeZone; import org.apache.camel.dataformat.bindy.PatternFormat; import org.apache.camel.util.ObjectHelper; @@ -28,6 +29,7 @@ public class DatePatternFormat implements PatternFormat<Date> { private String pattern; private Locale locale; + private TimeZone timezone; public DatePatternFormat() { } @@ -37,6 +39,14 @@ public class DatePatternFormat implements PatternFormat<Date> { this.locale = locale; } + public DatePatternFormat(String pattern, String timezone, Locale locale) { + this.pattern = pattern; + this.locale = locale; + if (!timezone.isEmpty()) { + this.timezone = TimeZone.getTimeZone(timezone); + } + } + public String format(Date object) throws Exception { ObjectHelper.notNull(this.pattern, "pattern"); return this.getDateFormat().format(object); @@ -69,11 +79,16 @@ public class DatePatternFormat implements PatternFormat<Date> { } protected java.text.DateFormat getDateFormat() { + SimpleDateFormat result; if (locale != null) { - return new SimpleDateFormat(pattern, locale); + result = new SimpleDateFormat(pattern, locale); } else { - return new SimpleDateFormat(pattern); + result = new SimpleDateFormat(pattern); + } + if (timezone != null) { + result.setTimeZone(timezone); } + return result; } public String getPattern() { http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java index 78ce191..3bfe442 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeAsStringTest.java @@ -19,6 +19,7 @@ package org.apache.camel.dataformat.bindy.classtype; import java.math.BigDecimal; import java.util.Calendar; import java.util.GregorianCalendar; +import java.util.TimeZone; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.dataformat.bindy.model.simple.oneclass.Order; @@ -34,7 +35,7 @@ public class BindyCsvClassTypeAsStringTest extends CamelTestSupport { @Test public void testMarshallMessage() throws Exception { - String expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009\r\n"; + String expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009,11-02-2010 23:21:59\r\n"; getMockEndpoint("mock:in").expectedBodiesReceived(expected); @@ -45,7 +46,7 @@ public class BindyCsvClassTypeAsStringTest extends CamelTestSupport { @Test public void testUnmarshallMessage() throws Exception { - String data = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009\r\n"; + String data = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009,03-02-2010 23:21:59\r\n"; getMockEndpoint("mock:out").expectedMessageCount(1); getMockEndpoint("mock:out").message(0).body().isInstanceOf(Order.class); @@ -65,6 +66,13 @@ public class BindyCsvClassTypeAsStringTest extends CamelTestSupport { assertEquals("XX23456789", order.getInstrumentNumber()); assertEquals("Share", order.getInstrumentType()); assertEquals("EUR", order.getCurrency()); + + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 03-02-2010 23:21:59 by GMT+4 + calendar.set(2010, 1, 3, 19, 21, 59); + calendar.set(Calendar.MILLISECOND, 0); + assertEquals(calendar.getTime(), order.getOrderDateTime()); } public Order generateOrder() { @@ -84,6 +92,13 @@ public class BindyCsvClassTypeAsStringTest extends CamelTestSupport { calendar.set(2009, 0, 14); order.setOrderDate(calendar.getTime()); + calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 11-02-2010 23:21:59 by GMT+4 + calendar.set(2010, 1, 11, 19, 21, 59); + calendar.set(Calendar.MILLISECOND, 0); + order.setOrderDateTime(calendar.getTime()); + return order; } http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java index b661ee7..ee60d4f 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/classtype/BindyCsvClassTypeTest.java @@ -19,6 +19,7 @@ package org.apache.camel.dataformat.bindy.classtype; import java.math.BigDecimal; import java.util.Calendar; import java.util.GregorianCalendar; +import java.util.TimeZone; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.dataformat.bindy.model.simple.oneclass.Order; @@ -34,7 +35,7 @@ public class BindyCsvClassTypeTest extends CamelTestSupport { @Test public void testMarshallMessage() throws Exception { - String expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009\r\n"; + String expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009,17-02-2010 23:21:59\r\n"; getMockEndpoint("mock:in").expectedBodiesReceived(expected); @@ -48,7 +49,7 @@ public class BindyCsvClassTypeTest extends CamelTestSupport { getMockEndpoint("mock:out").expectedMessageCount(1); getMockEndpoint("mock:out").message(0).body().isInstanceOf(Order.class); - String data = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009\r\n"; + String data = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009,16-02-2010 23:21:59\r\n"; template.sendBody("direct:out", data); assertMockEndpointsSatisfied(); @@ -64,6 +65,13 @@ public class BindyCsvClassTypeTest extends CamelTestSupport { assertEquals("XX23456789", order.getInstrumentNumber()); assertEquals("Share", order.getInstrumentType()); assertEquals("EUR", order.getCurrency()); + + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 16-02-2010 23:21:59 by GMT+4 + calendar.set(2010, 1, 16, 19, 21, 59); + calendar.set(Calendar.MILLISECOND, 0); + assertEquals(calendar.getTime(), order.getOrderDateTime()); } public Order generateOrder() { @@ -83,6 +91,12 @@ public class BindyCsvClassTypeTest extends CamelTestSupport { calendar.set(2009, 0, 14); order.setOrderDate(calendar.getTime()); + calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 17-02-2010 23:21:59 by GMT+4 + calendar.set(2010, 1, 17, 19, 21, 59); + order.setOrderDateTime(calendar.getTime()); + return order; } http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java index 9fcccbf..1469937 100755 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyPojoSimpleCsvMarshallTest.java @@ -19,6 +19,7 @@ package org.apache.camel.dataformat.bindy.csv; import java.math.BigDecimal; import java.util.Calendar; import java.util.GregorianCalendar; +import java.util.TimeZone; import org.apache.camel.EndpointInject; import org.apache.camel.LoggingLevel; @@ -52,7 +53,7 @@ public class BindyPojoSimpleCsvMarshallTest extends AbstractJUnit4SpringContextT @DirtiesContext public void testMarshallMessage() throws Exception { - expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009\r\n"; + expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009,17-02-2010 23:27:59\r\n"; result.expectedBodiesReceived(expected); @@ -79,6 +80,13 @@ public class BindyPojoSimpleCsvMarshallTest extends AbstractJUnit4SpringContextT calendar.set(2009, 0, 14); order.setOrderDate(calendar.getTime()); + calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 16-02-2010 23:21:59 by GMT+4 + calendar.set(2010, 1, 17, 19, 27, 59); + calendar.set(Calendar.MILLISECOND, 0); + order.setOrderDateTime(calendar.getTime()); + return order; } http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java index e7933dd..2453e21 100755 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallDslTest.java @@ -17,12 +17,7 @@ package org.apache.camel.dataformat.bindy.csv; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.camel.EndpointInject; import org.apache.camel.Produce; @@ -40,7 +35,7 @@ import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; public class BindySimpleCsvMarshallDslTest extends AbstractJUnit4SpringContextTests { private List<Map<String, Object>> models = new ArrayList<Map<String, Object>>(); - private String result = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,450.45,EUR,14-01-2009\r\n"; + private String result = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,450.45,EUR,14-01-2009,17-05-2010 23:21:59\r\n"; @Produce(uri = "direct:start") private ProducerTemplate template; @@ -76,6 +71,12 @@ public class BindySimpleCsvMarshallDslTest extends AbstractJUnit4SpringContextTe calendar.set(2009, 0, 14); order.setOrderDate(calendar.getTime()); + calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 17-05-2010 23:21:59 by GMT+4 + calendar.set(2010, 4, 17, 19, 21, 59); + order.setOrderDateTime(calendar.getTime()); + modelObjects.put(order.getClass().getName(), order); models.add(modelObjects); http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java index 4674d17..ba32a7c 100755 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvMarshallTest.java @@ -17,12 +17,7 @@ package org.apache.camel.dataformat.bindy.csv; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.camel.EndpointInject; import org.apache.camel.LoggingLevel; @@ -57,7 +52,7 @@ public class BindySimpleCsvMarshallTest extends AbstractJUnit4SpringContextTests @DirtiesContext public void testMarshallMessage() throws Exception { - expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009\r\n"; + expected = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,Share,400.25,EUR,14-01-2009,17-02-2011 23:21:59\r\n"; result.expectedBodiesReceived(expected); @@ -85,6 +80,12 @@ public class BindySimpleCsvMarshallTest extends AbstractJUnit4SpringContextTests calendar.set(2009, 0, 14); order.setOrderDate(calendar.getTime()); + calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 17-02-2011 23:21:59 by GMT+4 + calendar.set(2011, 1, 17, 19, 21, 59); + order.setOrderDateTime(calendar.getTime()); + modelObjects.put(order.getClass().getName(), order); models.add(modelObjects); http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvNullMarshallTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvNullMarshallTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvNullMarshallTest.java index a9a0c0c..e1b62bb 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvNullMarshallTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindySimpleCsvNullMarshallTest.java @@ -38,7 +38,7 @@ import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; public class BindySimpleCsvNullMarshallTest extends AbstractJUnit4SpringContextTests { private List<Map<String, Object>> models = new ArrayList<Map<String, Object>>(); - private String result = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,,450.45,EUR,14-01-2009\r\n"; + private String result = "1,B2,Keira,Knightley,ISIN,XX23456789,BUY,,450.45,EUR,14-01-2009,\r\n"; @Produce(uri = "direct:start") private ProducerTemplate template; http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindyComplexKeyValuePairStandaloneTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindyComplexKeyValuePairStandaloneTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindyComplexKeyValuePairStandaloneTest.java index d1e9bd1..3683826 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindyComplexKeyValuePairStandaloneTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindyComplexKeyValuePairStandaloneTest.java @@ -69,7 +69,11 @@ public class BindyComplexKeyValuePairStandaloneTest { @Test public void testOneGroupMessage() throws Exception { - String message = "8=FIX 4.19=2034=135=049=INVMGR56=BRKR" + "1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test" + "22=448=BE000124567854=1" + "10=220"; + String message = "8=FIX 4.19=2034=135=049=INVMGR56=BRKR" + + "1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test" + + "22=448=BE000124567854=1" + + "10=220" + + "777=22-06-2013 12:21:11"; List<String> data = Arrays.asList(message.split("\\u0001")); @@ -84,8 +88,10 @@ public class BindyComplexKeyValuePairStandaloneTest { @Test public void testSeveralGroupMessage() throws Exception { - String message = "8=FIX 4.19=2034=135=049=INVMGR56=BRKR" + "1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test" + "22=448=BE000124567854=1" - + "22=548=BE000987654354=2" + "22=648=BE000999999954=3" + "10=220"; + String message = "8=FIX 4.19=2034=135=049=INVMGR56=BRKR" + + "1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test" + "22=448=BE000124567854=1" + + "22=548=BE000987654354=2" + "22=648=BE000999999954=3" + "10=220" + + "777=22-06-2013 12:21:11"; List<String> data = Arrays.asList(message.split("\\u0001")); @@ -100,7 +106,10 @@ public class BindyComplexKeyValuePairStandaloneTest { @Test public void testNoGroupMessage() throws Exception { - String message = "8=FIX 4.19=2034=135=049=INVMGR56=BRKR" + "1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test" + "10=220"; + String message = "8=FIX 4.19=2034=135=049=INVMGR56=BRKR" + + "1=BE.CHM.00111=CHM0001-0158=this is a camel - bindy test" + + "10=220" + + "777=22-06-2013 12:21:11"; List<String> data = Arrays.asList(message.split("\\u0001")); http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindySimpleKeyValuePairMarshallDslTest.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindySimpleKeyValuePairMarshallDslTest.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindySimpleKeyValuePairMarshallDslTest.java index c5cbe08..846174c 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindySimpleKeyValuePairMarshallDslTest.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/fix/BindySimpleKeyValuePairMarshallDslTest.java @@ -16,10 +16,7 @@ */ package org.apache.camel.dataformat.bindy.fix; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import org.apache.camel.EndpointInject; import org.apache.camel.Produce; @@ -36,7 +33,8 @@ import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; public class BindySimpleKeyValuePairMarshallDslTest extends AbstractJUnit4SpringContextTests { private List<Map<String, Object>> models = new ArrayList<Map<String, Object>>(); - private String result = "1=BE.CHM.00111=CHM0001-0122=448=BE000124567854=158=this is a camel - bindy test\r\n"; + private String result = "1=BE.CHM.00111=CHM0001-0122=448=BE0001245678" + + "54=158=this is a camel - bindy test777=17-02-2011 23:29:59\r\n"; @Produce(uri = "direct:start") private ProducerTemplate template; @@ -63,6 +61,12 @@ public class BindySimpleKeyValuePairMarshallDslTest extends AbstractJUnit4Spring order.setSide("1"); order.setText("this is a camel - bindy test"); + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT")); + // 4 hour shift + // 17-02-2011 23:29:59 by GMT-3 + calendar.set(2011, 1, 18, 2, 29, 59); + order.setCreated(calendar.getTime()); + modelObjects.put(order.getClass().getName(), order); models.add(modelObjects); http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Header.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Header.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Header.java index 1cc53a6..031b832 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Header.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Header.java @@ -19,6 +19,8 @@ package org.apache.camel.dataformat.bindy.model.fix.complex.onetomany; import org.apache.camel.dataformat.bindy.annotation.KeyValuePairField; import org.apache.camel.dataformat.bindy.annotation.Link; +import java.util.Date; + @Link public class Header { @@ -46,6 +48,10 @@ public class Header { // target company id private String targetCompId; + @KeyValuePairField(tag = 777, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "GMT-3") + // created + private Date created; + public String getBeginString() { return beginString; } @@ -94,10 +100,18 @@ public class Header { this.targetCompId = targetCompId; } + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + @Override public String toString() { return Header.class.getName() + " --> 8: " + this.beginString + ", 9: " + this.bodyLength + ", 34: " + this.msgSeqNum + " , 35: " + this.msgType + ", 49: " - + this.sendCompId + ", 56: " + this.targetCompId; + + this.sendCompId + ", 56: " + this.targetCompId + ", 777: " + this.created; } } http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Order.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Order.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Order.java index cfbc31b..85077d4 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Order.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/complex/onetomany/Order.java @@ -16,6 +16,7 @@ */ package org.apache.camel.dataformat.bindy.model.fix.complex.onetomany; +import java.util.Date; import java.util.List; import org.apache.camel.dataformat.bindy.annotation.KeyValuePairField; @@ -44,6 +45,10 @@ public class Order { // Free text private String text; + @KeyValuePairField(tag = 777, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "GMT-3") + // created + private Date created; + @OneToMany(mappedTo = "org.apache.camel.dataformat.bindy.model.fix.complex.onetomany.Security") private List<Security> securities; @@ -95,10 +100,19 @@ public class Order { this.text = text; } + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + @Override public String toString() { StringBuilder temp = new StringBuilder(); - temp.append(Order.class.getName() + " --> 1: " + this.account + ", 11: " + this.clOrdId + ", 58: " + this.text); + temp.append(Order.class.getName() + " --> 1: " + this.account + ", 11: " + this.clOrdId + + ", 58: " + this.text + ", 777: " + this.created); temp.append("\r"); if (this.securities != null) { http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/simple/Order.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/simple/Order.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/simple/Order.java index 7809e80..11ae547 100644 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/simple/Order.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/fix/simple/Order.java @@ -20,6 +20,8 @@ import org.apache.camel.dataformat.bindy.annotation.KeyValuePairField; import org.apache.camel.dataformat.bindy.annotation.Link; import org.apache.camel.dataformat.bindy.annotation.Message; +import java.util.Date; + @Message(keyValuePairSeparator = "=", pairSeparator = "\\u0001", type = "FIX", version = "4.1") public class Order { @@ -53,6 +55,10 @@ public class Order { // Free text private String text; + @KeyValuePairField(tag = 777, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "GMT-3") + // created + private Date created; + public Header getHeader() { return header; } @@ -117,11 +123,19 @@ public class Order { this.text = text; } + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + @Override public String toString() { return Order.class.getName() + " --> 1: " + this.account + ", 11: " + this.clOrdId + ", 22: " + this.iDSource + ", 48: " + this.securityId + ", 54: " + this.side - + ", 58: " + this.text; + + ", 58: " + this.text + ", 777: " + this.created; } http://git-wip-us.apache.org/repos/asf/camel/blob/55522f15/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/simple/oneclass/Order.java ---------------------------------------------------------------------- diff --git a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/simple/oneclass/Order.java b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/simple/oneclass/Order.java index 0b3369e..886747f 100755 --- a/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/simple/oneclass/Order.java +++ b/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/simple/oneclass/Order.java @@ -58,6 +58,9 @@ public class Order { @DataField(pos = 11, pattern = "dd-MM-yyyy") private Date orderDate; + @DataField(pos = 12, pattern = "dd-MM-yyyy HH:mm:ss", timezone = "GMT+4") + private Date orderDateTime; + public int getOrderNr() { return orderNr; } @@ -146,10 +149,18 @@ public class Order { this.orderDate = orderDate; } + public Date getOrderDateTime() { + return orderDateTime; + } + + public void setOrderDateTime(Date orderDateTime) { + this.orderDateTime = orderDateTime; + } + @Override public String toString() { return "Model : " + Order.class.getName() + " : " + this.orderNr + ", " + this.orderType + ", " + String.valueOf(this.amount) + ", " + this.instrumentCode + ", " + this.instrumentNumber + ", " + this.instrumentType + ", " + this.currency + ", " + this.clientNr + ", " + this.firstName + ", " + this.lastName + ", " - + String.valueOf(this.orderDate); + + String.valueOf(this.orderDate) + ", " + String.valueOf(this.orderDateTime); } }