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);
     }
 }

Reply via email to