Author: msahyoun
Date: Wed Dec 30 14:38:25 2020
New Revision: 1884943
URL: http://svn.apache.org/viewvc?rev=1884943&view=rev
Log:
PDFBOX-5061: remove jaxb dependency
Removed:
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/JavaTimeTest.java
Modified:
pdfbox/trunk/xmpbox/pom.xml
pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
Modified: pdfbox/trunk/xmpbox/pom.xml
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/pom.xml?rev=1884943&r1=1884942&r2=1884943&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/pom.xml (original)
+++ pdfbox/trunk/xmpbox/pom.xml Wed Dec 30 14:38:25 2020
@@ -31,21 +31,6 @@
<relativePath>../parent/pom.xml</relativePath>
</parent>
- <profiles>
- <profile>
- <activation>
- <jdk>[11,)</jdk>
- </activation>
- <dependencies>
- <dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- </profile>
- </profiles>
-
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
Modified: pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java?rev=1884943&r1=1884942&r2=1884943&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java
(original)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/xmpbox/DateConverter.java Wed
Dec 30 14:38:25 2020
@@ -346,6 +346,8 @@ public final class DateConverter
*/
private static Calendar fromISO8601(String dateString)
{
+ DateTimeFormatter dateTimeFormatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX][zzz]");
+
// Pattern to test for a time zone string
Pattern timeZonePattern = Pattern.compile(
"[\\d-]*T?[\\d-\\.]([A-Z]{1,4})$|(.*\\d*)([A-Z][a-z]+\\/[A-Z][a-z]+)$"
@@ -376,7 +378,6 @@ public final class DateConverter
toParse = dateString.substring(0, tzIndex) + ":00";
}
- DateTimeFormatter dateTimeFormatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX][zzz]");
ZonedDateTime zonedDateTime = ZonedDateTime.parse(toParse +
timeZoneString, dateTimeFormatter);
return GregorianCalendar.from(zonedDateTime);
@@ -387,21 +388,25 @@ public final class DateConverter
int teeIndex = dateString.indexOf('T');
if (teeIndex == -1)
{
- return
javax.xml.bind.DatatypeConverter.parseDateTime(dateString);
+ ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateString,
dateTimeFormatter);
+ return GregorianCalendar.from(zonedDateTime);
}
int plusIndex = dateString.indexOf('+', teeIndex + 1);
int minusIndex = dateString.indexOf('-', teeIndex + 1);
if (plusIndex == -1 && minusIndex == -1)
{
- return
javax.xml.bind.DatatypeConverter.parseDateTime(dateString);
+ ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateString,
dateTimeFormatter);
+ return GregorianCalendar.from(zonedDateTime);
}
plusIndex = Math.max(plusIndex, minusIndex);
if (plusIndex - teeIndex == 6)
{
String toParse = dateString.substring(0, plusIndex) + ":00" +
dateString.substring(plusIndex);
- return javax.xml.bind.DatatypeConverter.parseDateTime(toParse);
+ ZonedDateTime zonedDateTime = ZonedDateTime.parse(toParse,
dateTimeFormatter);
+ return GregorianCalendar.from(zonedDateTime);
}
- return javax.xml.bind.DatatypeConverter.parseDateTime(dateString);
+ ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateString,
dateTimeFormatter);
+ return GregorianCalendar.from(zonedDateTime);
}
}
}
Modified:
pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
URL:
http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java?rev=1884943&r1=1884942&r2=1884943&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
(original)
+++ pdfbox/trunk/xmpbox/src/test/java/org/apache/xmpbox/DateConverterTest.java
Wed Dec 30 14:38:25 2020
@@ -24,6 +24,8 @@ package org.apache.xmpbox;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.text.SimpleDateFormat;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import org.junit.jupiter.api.Test;
@@ -46,9 +48,6 @@ class DateConverterTest
@Test
void testDateConversion() throws Exception
{
- final SimpleDateFormat dateFormat = new
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
- Calendar jaxbCal;
-
// Test partial dates
Calendar convDate = DateConverter.toCalendar("2015-02-02");
assertEquals(2015, convDate.get(Calendar.YEAR));
@@ -60,44 +59,54 @@ class DateConverterTest
DateConverter.toCalendar("2011-11-20T10:09Z"));
// Test some time zone offsets
- jaxbCal =
javax.xml.bind.DatatypeConverter.parseDateTime("2015-02-02T16:37:19.192Z");
- convDate = DateConverter.toCalendar("2015-02-02T16:37:19.192Z");
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
-
- jaxbCal =
javax.xml.bind.DatatypeConverter.parseDateTime("2015-02-02T16:37:19.192+00:00");
- convDate = DateConverter.toCalendar("2015-02-02T16:37:19.192Z");
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
-
- jaxbCal =
javax.xml.bind.DatatypeConverter.parseDateTime("2015-02-02T16:37:19.192+02:00");
- convDate = DateConverter.toCalendar("2015-02-02T16:37:19.192+02:00");
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
-
- jaxbCal =
javax.xml.bind.DatatypeConverter.parseDateTime("2015-02-02T16:37:19.192Z");
- convDate = DateConverter.toCalendar("2015-02-02T08:37:19.192PST");
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
-
- jaxbCal =
javax.xml.bind.DatatypeConverter.parseDateTime("2015-02-02T16:37:19.192+01:00");
- convDate =
DateConverter.toCalendar("2015-02-02T16:37:19.192Europe/Berlin");
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
+ String testString1 = "";
+ String testString2 = "";
+
+ DateTimeFormatter dateTimeFormatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm[:ss][.SSS][XXX]");
+
+ //Test missing seconds
+ testString1 = "2015-12-08T12:07:00-05:00";
+ testString2 = "2015-12-08T12:07-05:00";
+
+ assertEquals(DateConverter.toCalendar(testString1),
DateConverter.toCalendar(testString2));
+
assertEquals(DateConverter.toCalendar(testString1).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
+
assertEquals(DateConverter.toCalendar(testString2).toInstant(),ZonedDateTime.parse(testString2,
dateTimeFormatter).toInstant());
+
+ // Test some time zone offsets
+ testString1 = "2015-02-02T16:37:19.192Z";
+ testString2 = "2015-02-02T16:37:19.192Z";
+
+
assertEquals(DateConverter.toCalendar(testString2).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
+
+ testString1 = "2015-02-02T16:37:19.192+00:00";
+ testString2 = "2015-02-02T16:37:19.192Z";
+
+
assertEquals(DateConverter.toCalendar(testString2).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
+
+ testString1 = "2015-02-02T16:37:19.192+02:00";
+ testString2 = "2015-02-02T16:37:19.192+02:00";
+
+
assertEquals(DateConverter.toCalendar(testString2).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
+
+ testString1 = "2015-02-02T16:37:19.192Z";
+ testString2 = "2015-02-02T08:37:19.192PST";
+
+
assertEquals(DateConverter.toCalendar(testString2).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
+
+ testString1 = "2015-02-02T16:37:19.192+01:00";
+ testString2 = "2015-02-02T16:37:19.192Europe/Berlin";
+
+
assertEquals(DateConverter.toCalendar(testString2).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
// PDFBOX-4902: half-hour TZ
- String time = "2015-02-02T16:37:19.192+05:30";
- jaxbCal = javax.xml.bind.DatatypeConverter.parseDateTime(time);
- assertEquals(time, DateConverter.toISO8601(jaxbCal, true));
- convDate = DateConverter.toCalendar(time);
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
-
- time = "2015-02-02T16:37:19.192-05:30";
- jaxbCal = javax.xml.bind.DatatypeConverter.parseDateTime(time);
- assertEquals(time, DateConverter.toISO8601(jaxbCal, true));
- convDate = DateConverter.toCalendar(time);
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
-
- time = "2015-02-02T16:37:19.192+10:30";
- jaxbCal = javax.xml.bind.DatatypeConverter.parseDateTime(time);
- assertEquals(time, DateConverter.toISO8601(jaxbCal, true));
- convDate = DateConverter.toCalendar(time);
- assertEquals(dateFormat.format(jaxbCal.getTime()),
dateFormat.format(convDate.getTime()));
+ testString1 = "2015-02-02T16:37:19.192+05:30";
+
assertEquals(DateConverter.toCalendar(testString1).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
+
+ testString1 = "2015-02-02T16:37:19.192-05:30";
+
assertEquals(DateConverter.toCalendar(testString1).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
+
+ testString1 = "2015-02-02T16:37:19.192+10:30";
+
assertEquals(DateConverter.toCalendar(testString1).toInstant(),ZonedDateTime.parse(testString1,
dateTimeFormatter).toInstant());
}
/**