Index: src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jReaderGenerator.java
===================================================================
--- src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jReaderGenerator.java (revision 612)
+++ src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jReaderGenerator.java (working copy)
@@ -111,6 +111,8 @@
jClass.addImport( "java.io.Reader" );
jClass.addImport( "java.util.Date" );
+
+ jClass.addImport( "java.util.Locale" );
jClass.addImport( "java.text.DateFormat" );
@@ -172,10 +174,11 @@
unmarshall.addException( new JClass( "DocumentException" ) );
sc = unmarshall.getSourceCode();
+
sc.add( "return read( reader, true );" );
jClass.addMethod( unmarshall );
-
+
// ----------------------------------------------------------------------
// Write the class parsers
// ----------------------------------------------------------------------
@@ -1073,7 +1076,7 @@
sc.indent();
- sc.add( "DateFormat dateParser = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL );" );
+ sc.add( "DateFormat dateParser = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL , Locale.US );" );
sc.add( "dateParser.setLenient( true );" );
Index: src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jWriterGenerator.java
===================================================================
--- src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jWriterGenerator.java (revision 612)
+++ src/main/java/org/codehaus/modello/plugin/dom4j/Dom4jWriterGenerator.java (working copy)
@@ -112,6 +112,8 @@
jClass.addImport( "java.util.Arrays" );
jClass.addImport( "java.util.Iterator" );
+
+ jClass.addImport( "java.util.Locale" );
jClass.addImport( "java.text.DateFormat" );
@@ -479,7 +481,7 @@
if ( "Date".equals( type ) )
{
textValue =
- "DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL ).format( " + textValue + " )";
+ "DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL , Locale.US ).format( " + textValue + " )";
}
else if ( !"String".equals( type ) )
{
Index: src/test/verifiers/dom4j/Dom4jVerifier.java
===================================================================
--- src/test/verifiers/dom4j/Dom4jVerifier.java (revision 612)
+++ src/test/verifiers/dom4j/Dom4jVerifier.java (working copy)
@@ -43,9 +43,13 @@
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
+import java.text.DateFormat;
+import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import java.util.Locale;
import java.util.Properties;
+import java.util.TimeZone;
/**
* @author Trygve Laugstøl
@@ -66,6 +70,8 @@
verifyReaderDuplicates();
+ TimeZone.setDefault(TimeZone.getTimeZone("America/New_York"));
+
verifyWriter();
}
@@ -254,6 +260,32 @@
writer.write( buffer, actual );
Assert.assertEquals( expectedXml.trim(), buffer.toString().trim() );
+
+ // ----------------------------------------------------------------------
+ // Test that dates are correctly read back from xml
+ // ----------------------------------------------------------------------
+
+ StringBuffer dateXml = new StringBuffer();
+ dateXml.append("\n\n");
+ dateXml.append("Friday, January 6, 2006 12:00:00 AM EST\n");
+ dateXml.append("\n");
+
+ expected = new Model();
+
+ typeTester = new TypeTester();
+
+ Calendar calendar = Calendar.getInstance();
+
+ calendar.clear();
+ calendar.set(2006,01,06,12,0);
+
+ typeTester.setDate(calendar.getTime());
+
+ expected.setTypeTester(typeTester);
+
+ actual = reader.read( new StringReader( dateXml.toString() ) );
+
+ assertModel( expected, actual );
}
public void verifyReader()
Index: src/test/verifiers/dom4j/expected.xml
===================================================================
--- src/test/verifiers/dom4j/expected.xml (revision 612)
+++ src/test/verifiers/dom4j/expected.xml (working copy)
@@ -8,7 +8,7 @@
3
4.5
5.6
- Friday, 6 January 2006 12:00:00 AM EST
+ Friday, January 6, 2006 12:00:00 AM EST
Maven