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());
     }
     
     /**


Reply via email to