diff --git a/connector/connector-sdk/pom.xml b/connector/connector-sdk/pom.xml index f54837d0..67200270 100644 --- a/connector/connector-sdk/pom.xml +++ b/connector/connector-sdk/pom.xml @@ -33,6 +33,10 @@ limitations under the License. Sqoop Connector SDK + + joda-time + joda-time + junit junit diff --git a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java index 02d1a519..3c3543c5 100644 --- a/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java +++ b/connector/connector-sdk/src/main/java/org/apache/sqoop/connector/idf/CSVIntermediateDataFormat.java @@ -27,6 +27,8 @@ import org.apache.sqoop.schema.type.FixedPoint; import org.apache.sqoop.schema.type.FloatingPoint; import org.apache.sqoop.schema.type.Type; +import org.joda.time.LocalDate; +import org.joda.time.LocalDateTime; import java.io.DataInput; import java.io.DataOutput; @@ -215,7 +217,11 @@ public Object[] getObjectData() { out[i] = new BigDecimal(fields[i]); break; case DATE: + out[i] = LocalDate.parse(fields[i]); + break; case DATE_TIME: + out[i] = LocalDateTime.parse(fields[i]); + break; case BIT: out[i] = fields[i]; break; diff --git a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java index f5fbab78..3159883d 100644 --- a/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java +++ b/connector/connector-sdk/src/test/java/org/apache/sqoop/connector/idf/TestCSVIntermediateDataFormat.java @@ -28,6 +28,8 @@ import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.schema.Schema; import org.apache.sqoop.schema.type.Binary; +import org.apache.sqoop.schema.type.Date; +import org.apache.sqoop.schema.type.DateTime; import org.apache.sqoop.schema.type.FixedPoint; import org.apache.sqoop.schema.type.Text; import org.junit.Before; @@ -222,6 +224,31 @@ public void testByteArrayFullRangeOfCharacters() { assertTrue(Arrays.deepEquals(inCopy, data.getObjectData())); } + @Test + public void testDate() { + Schema schema = new Schema("test"); + schema.addColumn(new Date("1")); + data.setSchema(schema); + + data.setTextData("2014-10-01"); + assertEquals("2014-10-01", data.getObjectData()[0].toString()); + } + + @Test + public void testDateTime() { + Schema schema = new Schema("test"); + schema.addColumn(new DateTime("1")); + data.setSchema(schema); + + for (String dateTime : new String[]{ + "2014-10-01T12:00:00", + "2014-10-01T12:00:00.000" + }) { + data.setTextData(dateTime); + assertEquals("2014-10-01T12:00:00.000", data.getObjectData()[0].toString()); + } + } + @Test(expected=SqoopException.class) public void testEmptySchema() { String testData = "10,34,'54','random data'," + getByteFieldString(new byte[] { (byte) -112, (byte) 54}) diff --git a/pom.xml b/pom.xml index f2cd0701..f25a29f6 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,8 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ---> +--> + 4.0.0 org.apache @@ -111,6 +112,7 @@ limitations under the License. 4.0 14.00.00.21 6.0 + 2.4 @@ -440,18 +442,23 @@ limitations under the License. nzjdbc3 ${jdbc.netezza.version} - - org.mockito - mockito-all - ${mockito.version} - test - - - org.apache.tomcat - catalina - ${tomcat.version} - provided - + + joda-time + joda-time + ${joda.version} + + + org.mockito + mockito-all + ${mockito.version} + test + + + org.apache.tomcat + catalina + ${tomcat.version} + provided +