You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/01/21 13:41:49 UTC
[isis] branch master updated: ISIS-1830 remove JDK9 internal API
usages of c.s.o.a.x.internal.jaxp.datatype.XMLGregorianCalendarImpl
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 2698c6a ISIS-1830 remove JDK9 internal API usages of c.s.o.a.x.internal.jaxp.datatype.XMLGregorianCalendarImpl
2698c6a is described below
commit 2698c6a7f4202525a7cb91aae4af0bb90f0e9071
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 21 14:41:47 2018 +0100
ISIS-1830 remove JDK9 internal API usages of
c.s.o.a.x.internal.jaxp.datatype.XMLGregorianCalendarImpl
---
.../JodaDateTimeXMLGregorianCalendarAdapter.java | 15 +---
...daLocalDateTimeXMLGregorianCalendarAdapter.java | 19 +----
.../JodaLocalDateXMLGregorianCalendarAdapter.java | 15 +---
.../JodaLocalTimeXMLGregorianCalendarAdapter.java | 16 +---
.../utils/jaxbadapters/XmlCalendarFactory.java | 95 ++++++++++++++++++++++
5 files changed, 102 insertions(+), 58 deletions(-)
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeXMLGregorianCalendarAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeXMLGregorianCalendarAdapter.java
index bd208b7..f2d919d 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeXMLGregorianCalendarAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaDateTimeXMLGregorianCalendarAdapter.java
@@ -25,8 +25,6 @@ import java.util.TimeZone;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.datatype.XMLGregorianCalendar;
-import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
-
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
@@ -50,18 +48,7 @@ public final class JodaDateTimeXMLGregorianCalendarAdapter {
}
public static XMLGregorianCalendar print(final DateTime dateTime) {
- if(dateTime == null) {
- return null;
- }
-
- final long millis = dateTime.getMillis();
- final DateTimeZone dateTimeZone = dateTime.getZone();
-
- final TimeZone timeZone = dateTimeZone.toTimeZone();
- final GregorianCalendar calendar = new GregorianCalendar(timeZone);
- calendar.setTimeInMillis(millis);
-
- return new XMLGregorianCalendarImpl(calendar);
+ return XmlCalendarFactory.create(dateTime);
}
public static class ForJaxb extends XmlAdapter<XMLGregorianCalendar, DateTime> {
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeXMLGregorianCalendarAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeXMLGregorianCalendarAdapter.java
index db74482..bc30291 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeXMLGregorianCalendarAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateTimeXMLGregorianCalendarAdapter.java
@@ -21,8 +21,6 @@ package org.apache.isis.schema.utils.jaxbadapters;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.datatype.XMLGregorianCalendar;
-import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
-
import org.joda.time.LocalDateTime;
/**
@@ -46,21 +44,8 @@ public final class JodaLocalDateTimeXMLGregorianCalendarAdapter {
return new LocalDateTime(year, month, day, hour, minute, second, millisecond);
}
- public static XMLGregorianCalendar print(final LocalDateTime dateTime) {
- if(dateTime == null) {
- return null;
- }
-
- final XMLGregorianCalendarImpl xgc = new XMLGregorianCalendarImpl();
- xgc.setYear(dateTime.getYear());
- xgc.setMonth(dateTime.getMonthOfYear());
- xgc.setDay(dateTime.getDayOfMonth());
- xgc.setHour(dateTime.getHourOfDay());
- xgc.setMinute(dateTime.getMinuteOfHour());
- xgc.setSecond(dateTime.getSecondOfMinute());
- xgc.setMillisecond(dateTime.getMillisOfSecond());
-
- return xgc;
+ public static XMLGregorianCalendar print(final LocalDateTime localDateTime) {
+ return XmlCalendarFactory.create(localDateTime);
}
public static class ForJaxb extends XmlAdapter<XMLGregorianCalendar, LocalDateTime> {
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateXMLGregorianCalendarAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateXMLGregorianCalendarAdapter.java
index ba8ab70..dd627dc 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateXMLGregorianCalendarAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalDateXMLGregorianCalendarAdapter.java
@@ -21,8 +21,6 @@ package org.apache.isis.schema.utils.jaxbadapters;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.datatype.XMLGregorianCalendar;
-import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
-
import org.joda.time.LocalDate;
/**
@@ -43,17 +41,8 @@ public final class JodaLocalDateXMLGregorianCalendarAdapter {
return new LocalDate(year, month, day);
}
- public static XMLGregorianCalendar print(final LocalDate dateTime) {
- if(dateTime == null) {
- return null;
- }
-
- final XMLGregorianCalendarImpl xgc = new XMLGregorianCalendarImpl();
- xgc.setYear(dateTime.getYear());
- xgc.setMonth(dateTime.getMonthOfYear());
- xgc.setDay(dateTime.getDayOfMonth());
-
- return xgc;
+ public static XMLGregorianCalendar print(final LocalDate localDate) {
+ return XmlCalendarFactory.create(localDate);
}
public static class ForJaxb extends XmlAdapter<XMLGregorianCalendar, LocalDate> {
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeXMLGregorianCalendarAdapter.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeXMLGregorianCalendarAdapter.java
index 377a953..f30f9e3 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeXMLGregorianCalendarAdapter.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/JodaLocalTimeXMLGregorianCalendarAdapter.java
@@ -21,8 +21,6 @@ package org.apache.isis.schema.utils.jaxbadapters;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.datatype.XMLGregorianCalendar;
-import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;
-
import org.joda.time.LocalTime;
/**
@@ -45,18 +43,8 @@ public final class JodaLocalTimeXMLGregorianCalendarAdapter {
return new LocalTime(hour, minute, second, millisecond);
}
- public static XMLGregorianCalendar print(final LocalTime dateTime) {
- if(dateTime == null) {
- return null;
- }
-
- final XMLGregorianCalendarImpl xgc = new XMLGregorianCalendarImpl();
- xgc.setHour(dateTime.getHourOfDay());
- xgc.setMinute(dateTime.getMinuteOfHour());
- xgc.setSecond(dateTime.getSecondOfMinute());
- xgc.setMillisecond(dateTime.getMillisOfSecond());
-
- return xgc;
+ public static XMLGregorianCalendar print(final LocalTime localTime) {
+ return XmlCalendarFactory.create(localTime);
}
public static class ForJaxb extends XmlAdapter<XMLGregorianCalendar, LocalTime> {
diff --git a/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/XmlCalendarFactory.java b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/XmlCalendarFactory.java
new file mode 100644
index 0000000..4a4d366
--- /dev/null
+++ b/core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/XmlCalendarFactory.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software 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.
+ */
+package org.apache.isis.schema.utils.jaxbadapters;
+
+import java.util.function.Function;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeConstants;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+import org.joda.time.DateTime;
+import org.joda.time.LocalDate;
+import org.joda.time.LocalDateTime;
+import org.joda.time.LocalTime;
+
+class XmlCalendarFactory {
+
+ public static XMLGregorianCalendar create(DateTime dateTime) {
+ return dateTime!=null
+ ? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendar(dateTime.toGregorianCalendar()))
+ : null;
+ }
+
+ public static XMLGregorianCalendar create(LocalDateTime localDateTime) {
+ return localDateTime!=null
+ ? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendar(
+ localDateTime.getYear(),
+ localDateTime.getMonthOfYear(),
+ localDateTime.getDayOfMonth(),
+ localDateTime.getHourOfDay(),
+ localDateTime.getMinuteOfHour(),
+ localDateTime.getSecondOfMinute(),
+ localDateTime.getMillisOfSecond(),
+ DatatypeConstants.FIELD_UNDEFINED
+ ))
+ : null;
+ }
+
+ public static XMLGregorianCalendar create(LocalDate localDate) {
+ return localDate!=null
+ ? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendarDate(
+ localDate.getYear(),
+ localDate.getMonthOfYear(),
+ localDate.getDayOfMonth(),
+ DatatypeConstants.FIELD_UNDEFINED
+ ))
+ : null;
+ }
+
+ public static XMLGregorianCalendar create(LocalTime localTime) {
+ return localTime!=null
+ ? withTypeFactoryDo(dtf->dtf.newXMLGregorianCalendarTime(
+ localTime.getHourOfDay(),
+ localTime.getMinuteOfHour(),
+ localTime.getSecondOfMinute(),
+ localTime.getMillisOfSecond(),
+ DatatypeConstants.FIELD_UNDEFINED
+ ))
+ : null;
+ }
+
+ // -- HELPER
+
+ private static XMLGregorianCalendar withTypeFactoryDo(
+ Function<DatatypeFactory, XMLGregorianCalendar> factory) {
+
+ try {
+
+ final DatatypeFactory dataTypeFactory = DatatypeFactory.newInstance();
+
+ return factory.apply(dataTypeFactory);
+ } catch (DatatypeConfigurationException e) {
+ System.err.println("Exception in conversion of LocalTime to XMLGregorianCalendar" + e);
+ }
+ return null;
+ }
+
+}
--
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].