diff --git a/.github/workflows/hotfix-finish.yml b/.github/workflows/hotfix-finish.yml
index ad126f5a..2a9c8fb5 100644
--- a/.github/workflows/hotfix-finish.yml
+++ b/.github/workflows/hotfix-finish.yml
@@ -174,7 +174,7 @@ jobs:
- **Hotfix Version:** $VERSION
- **Git Tag:** \`v${VERSION}\`
- - **Maven Central (netex-java-model):** https://central.sonatype.com/artifact/org.entur/netex-java-model/${VERSION}
+ - **Maven Central (netex2-java-model):** https://central.sonatype.com/artifact/org.entur/netex2-java-model/${VERSION}
- **Hotfix Branch:** Deleted
- **Merged to master:** ${{ inputs.merge_to_master }}
diff --git a/.github/workflows/release-finish.yml b/.github/workflows/release-finish.yml
index 2050c05a..6ad43da1 100644
--- a/.github/workflows/release-finish.yml
+++ b/.github/workflows/release-finish.yml
@@ -277,7 +277,7 @@ jobs:
- **Released Version:** $VERSION
- **Git Tag:** \`v${VERSION}\`
- - **Maven Central (netex-java-model):** https://central.sonatype.com/artifact/org.entur/netex-java-model/${VERSION}
+ - **Maven Central (netex2-java-model):** https://central.sonatype.com/artifact/org.entur/netex2-java-model/${VERSION}
- **Next Development Version ($BASE_BRANCH):** ${{ steps.next_version.outputs.next_version }}
- **Release Branch:** Merged to $BASE_BRANCH and deleted
diff --git a/CLAUDE.md b/CLAUDE.md
index 7fd79aa3..78e67aee 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -9,7 +9,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
- **Organization**: Entur AS (Norwegian public transport data provider)
- **License**: EUPL-1.2
- **Java Version**: 11+ (builds on 17 in CI)
-- **Package**: `org.rutebanken.netex.model` (generated), `org.rutebanken.netex` and `org.rutebanken.netex.util` (source)
+- **Package**: `org.entur.netex2.model` (generated), `org.entur.netex2` and `org.entur.netex2.util` (source)
## Build Commands
@@ -38,8 +38,8 @@ mvn validate
│ └── version_updater.sh # Updates version references
├── bindings.xjb # JAXB customization bindings
├── src/main/java/
-│ ├── module-info.java # JPMS module descriptor (org.entur.netex.java.model)
-│ └── org/rutebanken/netex/ # Utilities (validation, client, toString style)
+│ ├── module-info.java # JPMS module descriptor (org.entur.netex2)
+│ └── org/entur/netex2/ # Utilities (validation, client, toString style)
│ └── util/ # XML adapters for Java 8 time types
├── src/main/resources/xsd/ # NeTEx XSD files (downloaded at build time)
├── src/test/ # JUnit 5 tests for marshalling/unmarshalling
@@ -49,9 +49,9 @@ mvn validate
## Key Technical Details
- **JAXB Bindings**: The `bindings.xjb` file customizes code generation, including:
- - Java 8 time type adapters (`LocalDateTime`, `LocalTime`, `Duration`)
+ - Java 8 time type adapters (`LocalDateTime`, `LocalDate`, `LocalTime`, `Duration`)
- Property name conflict resolution
- - Package naming (`org.rutebanken.netex.model`)
+ - Package naming (`org.entur.netex2.model`)
- **Generated Code**: Model classes are generated in `target/generated-sources/` during build. Do not manually edit generated code.
diff --git a/README.md b/README.md
index 91480f79..68dead92 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
# netex-java-model
[](https://github.com/entur/netex-java-model/actions/workflows/deploy.yml)
-[](https://central.sonatype.com/artifact/org.entur/netex-java-model)
-[](https://central.sonatype.com/repository/maven-snapshots)
+[](https://central.sonatype.com/artifact/org.entur/netex2-java-model)
+[](https://central.sonatype.com/repository/maven-snapshots)
[](https://joinup.ec.europa.eu/software/page/eupl)
[](https://adoptium.net/)
@@ -14,7 +14,7 @@ This library downloads the NeTEx XSD files from the [NeTEx repository](https://g
- **NeTEx version**: 2.0 (model generation), with legacy validation support back to 1.07
- **JAXB**: Jakarta XML Bind 4.x (Jakarta EE 9+)
-- **Generated package**: `org.rutebanken.netex.model`
+- **Generated package**: `org.entur.netex2.model`
- **GML types package**: `net.opengis.gml._3`
## Usage
@@ -24,12 +24,12 @@ This library downloads the NeTEx XSD files from the [NeTEx repository](https://g
```xml
org.entur
- netex-java-model
+ netex2-java-model
LATEST
```
-See [Maven Central](https://central.sonatype.com/artifact/org.entur/netex-java-model) for the latest released version.
+See [Maven Central](https://central.sonatype.com/artifact/org.entur/netex2-java-model) for the latest released version.
### Snapshot
@@ -52,7 +52,7 @@ Then add the dependency with the snapshot version:
```xml
org.entur
- netex-java-model
+ netex2-java-model
LATEST-SNAPSHOT
```
@@ -88,9 +88,9 @@ The XSD files are downloaded from GitHub during the `generate-sources` phase and
│ ├── annotation-replacer.sh # Post-processes generated Java files
│ └── version_updater.sh # Updates version references in bindings
├── bindings.xjb # JAXB customization bindings
-├── src/main/java/org/rutebanken/
-│ ├── netex/ # NeTEx utilities (validation, toString style)
-│ └── util/ # XML adapters for Java time types
+├── src/main/java/org/entur/
+│ └── netex2/ # NeTEx utilities (validation, client, toString style)
+│ └── util/ # XML adapters for Java time types
├── src/main/resources/xsd/ # Downloaded NeTEx XSD files (build artifact)
└── src/test/ # JUnit 5 marshalling/unmarshalling tests
```
@@ -98,10 +98,10 @@ The XSD files are downloaded from GitHub during the `generate-sources` phase and
## Key Technical Details
**JAXB customizations** (`bindings.xjb`):
-- Java 8 time type adapters (`LocalDateTime`, `LocalTime`, `Duration`) via `threeten-jaxb-core`
+- Java 8 time type adapters (`LocalDateTime`, `LocalDate`, `LocalTime`, `Duration`) via `threeten-jaxb-core`
- Fluent builder API (`withX()` methods) via `jaxb-fluent-api`
- Property name conflict resolution
-- Package mapping to `org.rutebanken.netex.model`
+- Package mapping to `org.entur.netex2.model`
**Schema validation**: `NeTExValidator` supports validation against NeTEx versions 1.07 through 2.0.
diff --git a/bindings.xjb b/bindings.xjb
index 583c20b1..a8abb727 100644
--- a/bindings.xjb
+++ b/bindings.xjb
@@ -5,18 +5,18 @@
-
-
-
+
+
+
-|
+
-
+
@@ -53,7 +53,7 @@
-
+
diff --git a/pom.xml b/pom.xml
index dcdf292a..824784bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,10 +16,10 @@
4.0.0
org.entur
- netex-java-model
+ netex2-java-model
3.0.0-SNAPSHOT
- netex-java-model
+ netex2-java-model
Generates Java model from NeTEx XSDs using JAXB.
https://github.com/entur/netex-java-model
@@ -519,7 +519,7 @@
-no-header
-Xbug986
-Xfluent-api
- -Xts:style:org.rutebanken.netex.OmitNullsToStringStyle.INSTANCE
+ -Xts:style:org.entur.netex2.OmitNullsToStringStyle.INSTANCE
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 1f9a59c2..96b5b3e8 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -1,19 +1,19 @@
-module org.entur.netex.java.model {
+module org.entur.netex2 {
requires transitive jakarta.xml.bind;
requires transitive java.xml;
requires transitive org.apache.commons.lang3;
requires io.github.threetenjaxb.core;
requires org.slf4j;
- exports org.rutebanken.netex;
- exports org.rutebanken.netex.client;
- exports org.rutebanken.netex.validation;
- exports org.rutebanken.netex.model;
- exports org.rutebanken.netex.util;
+ exports org.entur.netex2;
+ exports org.entur.netex2.client;
+ exports org.entur.netex2.validation;
+ exports org.entur.netex2.model;
+ exports org.entur.netex2.util;
exports net.opengis.gml._3;
exports uk.org.siri.siri;
- opens org.rutebanken.netex.model to jakarta.xml.bind, org.glassfish.jaxb.runtime, org.apache.commons.lang3;
+ opens org.entur.netex2.model to jakarta.xml.bind, org.glassfish.jaxb.runtime, org.apache.commons.lang3;
opens net.opengis.gml._3 to jakarta.xml.bind, org.glassfish.jaxb.runtime, org.apache.commons.lang3;
opens uk.org.siri.siri to jakarta.xml.bind, org.glassfish.jaxb.runtime, org.apache.commons.lang3;
}
diff --git a/src/main/java/org/rutebanken/netex/OmitNullsToStringStyle.java b/src/main/java/org/entur/netex2/OmitNullsToStringStyle.java
similarity index 97%
rename from src/main/java/org/rutebanken/netex/OmitNullsToStringStyle.java
rename to src/main/java/org/entur/netex2/OmitNullsToStringStyle.java
index 2aecc0fd..4511e27e 100644
--- a/src/main/java/org/rutebanken/netex/OmitNullsToStringStyle.java
+++ b/src/main/java/org/entur/netex2/OmitNullsToStringStyle.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex;
+package org.entur.netex2;
import org.apache.commons.lang3.builder.ToStringStyle;
diff --git a/src/main/java/org/rutebanken/netex/client/PublicationDeliveryClient.java b/src/main/java/org/entur/netex2/client/PublicationDeliveryClient.java
similarity index 95%
rename from src/main/java/org/rutebanken/netex/client/PublicationDeliveryClient.java
rename to src/main/java/org/entur/netex2/client/PublicationDeliveryClient.java
index 312b1c7f..10944b01 100644
--- a/src/main/java/org/rutebanken/netex/client/PublicationDeliveryClient.java
+++ b/src/main/java/org/entur/netex2/client/PublicationDeliveryClient.java
@@ -13,16 +13,16 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.client;
+package org.entur.netex2.client;
import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Marshaller;
import jakarta.xml.bind.Unmarshaller;
-import org.rutebanken.netex.model.ObjectFactory;
-import org.rutebanken.netex.model.PublicationDeliveryStructure;
-import org.rutebanken.netex.validation.NeTExValidator;
+import org.entur.netex2.model.ObjectFactory;
+import org.entur.netex2.model.PublicationDeliveryStructure;
+import org.entur.netex2.validation.NeTExValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
diff --git a/src/main/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapter.java b/src/main/java/org/entur/netex2/util/LocalDateTimeISO8601XmlAdapter.java
similarity index 97%
rename from src/main/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapter.java
rename to src/main/java/org/entur/netex2/util/LocalDateTimeISO8601XmlAdapter.java
index 6f78c2d2..77d0b2b5 100644
--- a/src/main/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapter.java
+++ b/src/main/java/org/entur/netex2/util/LocalDateTimeISO8601XmlAdapter.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.util;
+package org.entur.netex2.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import java.time.LocalDateTime;
diff --git a/src/main/java/org/rutebanken/netex/util/LocalDateXmlAdapter.java b/src/main/java/org/entur/netex2/util/LocalDateXmlAdapter.java
similarity index 55%
rename from src/main/java/org/rutebanken/netex/util/LocalDateXmlAdapter.java
rename to src/main/java/org/entur/netex2/util/LocalDateXmlAdapter.java
index 5c0e25e8..a05a4f47 100644
--- a/src/main/java/org/rutebanken/netex/util/LocalDateXmlAdapter.java
+++ b/src/main/java/org/entur/netex2/util/LocalDateXmlAdapter.java
@@ -13,33 +13,33 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.util;
+package org.entur.netex2.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
-import java.time.LocalDateTime;
-import java.time.OffsetDateTime;
+import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
-import java.time.temporal.ChronoField;
-public class LocalDateXmlAdapter extends XmlAdapter {
- private static final DateTimeFormatter formatter = new DateTimeFormatterBuilder().appendPattern("yyyy-MM-dd")
+/**
+ * Maps xs:date to {@link LocalDate}. An optional trailing time zone offset (allowed by xs:date) is
+ * accepted when unmarshalling and ignored; dates are always marshalled without an offset.
+ */
+public class LocalDateXmlAdapter extends XmlAdapter {
+
+ private static final DateTimeFormatter PARSER = new DateTimeFormatterBuilder()
+ .append(DateTimeFormatter.ISO_LOCAL_DATE)
.optionalStart().appendPattern("XXXXX").optionalEnd()
- .parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
- .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
- .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
- .parseDefaulting(ChronoField.OFFSET_SECONDS,OffsetDateTime.now().getLong(ChronoField.OFFSET_SECONDS) )
- .toFormatter();
+ .toFormatter();
@Override
- public LocalDateTime unmarshal(String inputDate) {
- return LocalDateTime.parse(inputDate, formatter);
+ public LocalDate unmarshal(String inputDate) {
+ return LocalDate.parse(inputDate, PARSER);
}
@Override
- public String marshal(LocalDateTime inputDate) {
- if(inputDate != null) {
- return formatter.format(inputDate);
+ public String marshal(LocalDate inputDate) {
+ if (inputDate != null) {
+ return DateTimeFormatter.ISO_LOCAL_DATE.format(inputDate);
} else {
return null;
}
diff --git a/src/main/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapter.java b/src/main/java/org/entur/netex2/util/LocalTimeISO8601XmlAdapter.java
similarity index 98%
rename from src/main/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapter.java
rename to src/main/java/org/entur/netex2/util/LocalTimeISO8601XmlAdapter.java
index d4eb3e2d..e06b61de 100644
--- a/src/main/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapter.java
+++ b/src/main/java/org/entur/netex2/util/LocalTimeISO8601XmlAdapter.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.util;
+package org.entur.netex2.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
import java.time.LocalTime;
diff --git a/src/main/java/org/rutebanken/netex/util/VersionXmlAdapter.java b/src/main/java/org/entur/netex2/util/VersionXmlAdapter.java
similarity index 97%
rename from src/main/java/org/rutebanken/netex/util/VersionXmlAdapter.java
rename to src/main/java/org/entur/netex2/util/VersionXmlAdapter.java
index 34231a3b..896c656e 100644
--- a/src/main/java/org/rutebanken/netex/util/VersionXmlAdapter.java
+++ b/src/main/java/org/entur/netex2/util/VersionXmlAdapter.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.util;
+package org.entur.netex2.util;
import jakarta.xml.bind.annotation.adapters.XmlAdapter;
diff --git a/src/main/java/org/rutebanken/netex/validation/NeTExValidator.java b/src/main/java/org/entur/netex2/validation/NeTExValidator.java
similarity index 98%
rename from src/main/java/org/rutebanken/netex/validation/NeTExValidator.java
rename to src/main/java/org/entur/netex2/validation/NeTExValidator.java
index b95d0529..860b36f9 100644
--- a/src/main/java/org/rutebanken/netex/validation/NeTExValidator.java
+++ b/src/main/java/org/entur/netex2/validation/NeTExValidator.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.validation;
+package org.entur.netex2.validation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/rutebanken/netex/validation/PredefinedSchemaListClasspathResourceResolver.java b/src/main/java/org/entur/netex2/validation/PredefinedSchemaListClasspathResourceResolver.java
similarity index 99%
rename from src/main/java/org/rutebanken/netex/validation/PredefinedSchemaListClasspathResourceResolver.java
rename to src/main/java/org/entur/netex2/validation/PredefinedSchemaListClasspathResourceResolver.java
index 6075ea3f..f6012a4a 100644
--- a/src/main/java/org/rutebanken/netex/validation/PredefinedSchemaListClasspathResourceResolver.java
+++ b/src/main/java/org/entur/netex2/validation/PredefinedSchemaListClasspathResourceResolver.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.validation;
+package org.entur.netex2.validation;
import org.w3c.dom.ls.LSInput;
import org.w3c.dom.ls.LSResourceResolver;
diff --git a/src/test/java/org/rutebanken/netex/model/AbstractUnmarshalFrameTest.java b/src/test/java/org/entur/netex2/model/AbstractUnmarshalFrameTest.java
similarity index 97%
rename from src/test/java/org/rutebanken/netex/model/AbstractUnmarshalFrameTest.java
rename to src/test/java/org/entur/netex2/model/AbstractUnmarshalFrameTest.java
index 35c01413..06400c2e 100644
--- a/src/test/java/org/rutebanken/netex/model/AbstractUnmarshalFrameTest.java
+++ b/src/test/java/org/entur/netex2/model/AbstractUnmarshalFrameTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/MarshalUnmarshalTest.java b/src/test/java/org/entur/netex2/model/MarshalUnmarshalTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/MarshalUnmarshalTest.java
rename to src/test/java/org/entur/netex2/model/MarshalUnmarshalTest.java
index 7b2e0259..bc14b7a7 100644
--- a/src/test/java/org/rutebanken/netex/model/MarshalUnmarshalTest.java
+++ b/src/test/java/org/entur/netex2/model/MarshalUnmarshalTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -415,7 +415,7 @@ void blockRoundTrip() throws JAXBException {
@Test
void fragmentShouldNotContainNetexNamespace() throws Exception {
- JAXBContext netexJaxBContext = JAXBContext.newInstance("net.opengis.gml._3:org.rutebanken.netex.model:uk.org.siri.siri");
+ JAXBContext netexJaxBContext = JAXBContext.newInstance("net.opengis.gml._3:org.entur.netex2.model:uk.org.siri.siri");
Marshaller marshaller = netexJaxBContext.createMarshaller();
marshaller.setProperty(jakarta.xml.bind.Marshaller.JAXB_ENCODING, StandardCharsets.UTF_8.name());
diff --git a/src/test/java/org/rutebanken/netex/model/ToStringTest.java b/src/test/java/org/entur/netex2/model/ToStringTest.java
similarity index 97%
rename from src/test/java/org/rutebanken/netex/model/ToStringTest.java
rename to src/test/java/org/entur/netex2/model/ToStringTest.java
index a2e253d8..24125fd6 100644
--- a/src/test/java/org/rutebanken/netex/model/ToStringTest.java
+++ b/src/test/java/org/entur/netex2/model/ToStringTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalResourceFrameExtendedTest.java b/src/test/java/org/entur/netex2/model/UnmarshalResourceFrameExtendedTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalResourceFrameExtendedTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalResourceFrameExtendedTest.java
index 9066a5f0..9ff329b6 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalResourceFrameExtendedTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalResourceFrameExtendedTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalResourceFrameTest.java b/src/test/java/org/entur/netex2/model/UnmarshalResourceFrameTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalResourceFrameTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalResourceFrameTest.java
index 715cff1f..83b9be5f 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalResourceFrameTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalResourceFrameTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceCalendarFrameTest.java b/src/test/java/org/entur/netex2/model/UnmarshalServiceCalendarFrameTest.java
similarity index 97%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalServiceCalendarFrameTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalServiceCalendarFrameTest.java
index ac46cee7..d1c61734 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceCalendarFrameTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalServiceCalendarFrameTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
@@ -21,6 +21,7 @@
import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
+import java.time.LocalDate;
import java.time.LocalDateTime;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -132,13 +133,13 @@ void unmarshalServiceCalendarFrame() throws JAXBException {
assertEquals(DayOfWeekEnumeration.TUESDAY, dayType.getProperties().getPropertyOfDay().get(0).getDaysOfWeek().get(0));
OperatingDay operatingDay = serviceCalendarFrame.getOperatingDays().getOperatingDay().get(0);
- assertEquals(LocalDateTime.of(2023,10,29,0,0), operatingDay.getCalendarDate());
+ assertEquals(LocalDate.of(2023, 10, 29), operatingDay.getCalendarDate());
OperatingPeriod operatingPeriod = (OperatingPeriod) serviceCalendarFrame.getOperatingPeriods().getOperatingPeriodOrUicOperatingPeriod().get(0);
assertEquals(LocalDateTime.of(2023,8,17,0,0), operatingPeriod.getFromDate());
DayTypeAssignment dayTypeAssignment = serviceCalendarFrame.getDayTypeAssignments().getDayTypeAssignment().get(0);
- assertEquals(LocalDateTime.of(2024,5,1,0,0), dayTypeAssignment.getDate());
+ assertEquals(LocalDate.of(2024, 5, 1), dayTypeAssignment.getDate());
}
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameChouetteTest.java b/src/test/java/org/entur/netex2/model/UnmarshalServiceFrameChouetteTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameChouetteTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalServiceFrameChouetteTest.java
index 6b4a132c..fdd7878a 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameChouetteTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalServiceFrameChouetteTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameExtendedTest.java b/src/test/java/org/entur/netex2/model/UnmarshalServiceFrameExtendedTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameExtendedTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalServiceFrameExtendedTest.java
index c117244d..009e3f90 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameExtendedTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalServiceFrameExtendedTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameTest.java b/src/test/java/org/entur/netex2/model/UnmarshalServiceFrameTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalServiceFrameTest.java
index 639f9544..1b98b08c 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalServiceFrameTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalServiceFrameTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameChouetteTest.java b/src/test/java/org/entur/netex2/model/UnmarshalSiteFrameChouetteTest.java
similarity index 98%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameChouetteTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalSiteFrameChouetteTest.java
index 26b300ee..7de67110 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameChouetteTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalSiteFrameChouetteTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameExtendedTest.java b/src/test/java/org/entur/netex2/model/UnmarshalSiteFrameExtendedTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameExtendedTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalSiteFrameExtendedTest.java
index f23180bb..dabf72bd 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameExtendedTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalSiteFrameExtendedTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameTest.java b/src/test/java/org/entur/netex2/model/UnmarshalSiteFrameTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalSiteFrameTest.java
index 6171ab65..7ab306a7 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalSiteFrameTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalSiteFrameTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameChouetteTest.java b/src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameChouetteTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameChouetteTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameChouetteTest.java
index 300761fe..b4db8e69 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameChouetteTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameChouetteTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameExtendedTest.java b/src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameExtendedTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameExtendedTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameExtendedTest.java
index 7e6db9ae..2bc590b2 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameExtendedTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameExtendedTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameTest.java b/src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameTest.java
index 25d3493b..ef6c3f3f 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalTimetableFrameTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalTimetableFrameTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalTransportSubModeTest.java b/src/test/java/org/entur/netex2/model/UnmarshalTransportSubModeTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalTransportSubModeTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalTransportSubModeTest.java
index 96c89526..b808ab0f 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalTransportSubModeTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalTransportSubModeTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/model/UnmarshalVehicleScheduleFrameChouetteTest.java b/src/test/java/org/entur/netex2/model/UnmarshalVehicleScheduleFrameChouetteTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/model/UnmarshalVehicleScheduleFrameChouetteTest.java
rename to src/test/java/org/entur/netex2/model/UnmarshalVehicleScheduleFrameChouetteTest.java
index 3b2e8448..cb0411ed 100644
--- a/src/test/java/org/rutebanken/netex/model/UnmarshalVehicleScheduleFrameChouetteTest.java
+++ b/src/test/java/org/entur/netex2/model/UnmarshalVehicleScheduleFrameChouetteTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.model;
+package org.entur.netex2.model;
import jakarta.xml.bind.JAXBElement;
import jakarta.xml.bind.JAXBException;
diff --git a/src/test/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapterTest.java b/src/test/java/org/entur/netex2/util/LocalDateTimeISO8601XmlAdapterTest.java
similarity index 98%
rename from src/test/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapterTest.java
rename to src/test/java/org/entur/netex2/util/LocalDateTimeISO8601XmlAdapterTest.java
index 239e2671..acae9c74 100644
--- a/src/test/java/org/rutebanken/netex/util/LocalDateTimeISO8601XmlAdapterTest.java
+++ b/src/test/java/org/entur/netex2/util/LocalDateTimeISO8601XmlAdapterTest.java
@@ -1,4 +1,4 @@
-package org.rutebanken.netex.util;
+package org.entur.netex2.util;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/org/entur/netex2/util/LocalDateXmlAdapterTest.java b/src/test/java/org/entur/netex2/util/LocalDateXmlAdapterTest.java
new file mode 100644
index 00000000..ab4f1965
--- /dev/null
+++ b/src/test/java/org/entur/netex2/util/LocalDateXmlAdapterTest.java
@@ -0,0 +1,53 @@
+package org.entur.netex2.util;
+
+import org.junit.jupiter.api.Test;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeParseException;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class LocalDateXmlAdapterTest {
+
+ private final LocalDateXmlAdapter adapter = new LocalDateXmlAdapter();
+
+ @Test
+ void testUnmarshalBasicDate() {
+ LocalDate result = adapter.unmarshal("2026-08-31");
+ assertEquals(LocalDate.of(2026, 8, 31), result);
+ }
+
+ @Test
+ void testUnmarshalDateWithOffset() {
+ LocalDate result = adapter.unmarshal("2026-05-03+02:00");
+ assertEquals(LocalDate.of(2026, 5, 3), result);
+ }
+
+ @Test
+ void testUnmarshalDateWithUtcDesignator() {
+ LocalDate result = adapter.unmarshal("2026-05-03Z");
+ assertEquals(LocalDate.of(2026, 5, 3), result);
+ }
+
+ @Test
+ void testUnmarshalDateTimeIsRejected() {
+ assertThrows(DateTimeParseException.class, () -> adapter.unmarshal("2026-05-03T00:00:00"));
+ }
+
+ @Test
+ void testMarshalBasicDate() {
+ String result = adapter.marshal(LocalDate.of(2026, 8, 31));
+ assertEquals("2026-08-31", result);
+ }
+
+ @Test
+ void testMarshalNull() {
+ assertNull(adapter.marshal(null));
+ }
+
+ @Test
+ void testRoundTrip() {
+ LocalDate original = LocalDate.of(2026, 5, 3);
+ assertEquals(original, adapter.unmarshal(adapter.marshal(original)));
+ }
+}
diff --git a/src/test/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapterTest.java b/src/test/java/org/entur/netex2/util/LocalTimeISO8601XmlAdapterTest.java
similarity index 99%
rename from src/test/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapterTest.java
rename to src/test/java/org/entur/netex2/util/LocalTimeISO8601XmlAdapterTest.java
index b2bc0c13..173174e1 100644
--- a/src/test/java/org/rutebanken/netex/util/LocalTimeISO8601XmlAdapterTest.java
+++ b/src/test/java/org/entur/netex2/util/LocalTimeISO8601XmlAdapterTest.java
@@ -1,4 +1,4 @@
-package org.rutebanken.netex.util;
+package org.entur.netex2.util;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/src/test/java/org/rutebanken/netex/util/VersionXmlAdapterTest.java b/src/test/java/org/entur/netex2/util/VersionXmlAdapterTest.java
similarity index 98%
rename from src/test/java/org/rutebanken/netex/util/VersionXmlAdapterTest.java
rename to src/test/java/org/entur/netex2/util/VersionXmlAdapterTest.java
index b2eb8527..2c851ba9 100644
--- a/src/test/java/org/rutebanken/netex/util/VersionXmlAdapterTest.java
+++ b/src/test/java/org/entur/netex2/util/VersionXmlAdapterTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.util;
+package org.entur.netex2.util;
import org.junit.jupiter.api.Test;
diff --git a/src/test/java/org/rutebanken/netex/validation/NeTExValidatorTest.java b/src/test/java/org/entur/netex2/validation/NeTExValidatorTest.java
similarity index 98%
rename from src/test/java/org/rutebanken/netex/validation/NeTExValidatorTest.java
rename to src/test/java/org/entur/netex2/validation/NeTExValidatorTest.java
index 1d9b00c7..86b21a47 100644
--- a/src/test/java/org/rutebanken/netex/validation/NeTExValidatorTest.java
+++ b/src/test/java/org/entur/netex2/validation/NeTExValidatorTest.java
@@ -13,7 +13,7 @@
* limitations under the Licence.
*/
-package org.rutebanken.netex.validation;
+package org.entur.netex2.validation;
import org.junit.jupiter.api.Test;
import org.xml.sax.SAXException;