diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 3eeca10a7..47dbf6530 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,7 +4,14 @@ ESA CCSDS MO services - Release Notes These Release Notes include a short summary of the updates done for each version. The different versions and respective updates are the following: -### Version 14.0 +### Version 14.1 (18 July 2026) +* Vendors the W3C XML Schema files instead of downloading them at build time (removes the build's dependency on network access to w3.org) +* Fixes a race condition and silent failures in the LazyMessageBody decoding +* Restores the log-and-continue handling of NotFoundException during decoding +* No longer reports empty message bodies as failed decodes +* Loads the consumer.properties file only once per JVM + +### Version 14.0 (04 July 2026) * Removes the setters from the auto-generated classes * Removes deprecated methods * Adds the partial Monitor & Control service implementations (Action, Alert, and Packet) and respective testbed diff --git a/RELEASING.md b/RELEASING.md index 26be81926..c7956f9a2 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -76,6 +76,8 @@ git pull git checkout -b vAA.B ``` +8. Bump the versions of ALL the pom files to the next development version (example, from: 14.0 to: 14.1-SNAPSHOT), then commit and push. Make sure every pom is updated, including any modules that are detached from the main reactor (e.g. the testbeds), which a single reactor-wide command may miss. + Extra ------------- Complete Maven Central publishing guide available [here][sonatype_guide]! diff --git a/api-generator/api-generator-maven-plugin/pom.xml b/api-generator/api-generator-maven-plugin/pom.xml index b9211c080..efbf99d76 100644 --- a/api-generator/api-generator-maven-plugin/pom.xml +++ b/api-generator/api-generator-maven-plugin/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-generator-maven-plugin - 14.0 + 14.1 maven-plugin ESA MO API Generator - Maven Plugin diff --git a/api-generator/generator-docs/pom.xml b/api-generator/generator-docs/pom.xml index 58eaa1106..6d3553480 100644 --- a/api-generator/generator-docs/pom.xml +++ b/api-generator/generator-docs/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml generator-docs - 14.0 + 14.1 jar ESA MO API Generator - Documentation diff --git a/api-generator/generator-interfaces/pom.xml b/api-generator/generator-interfaces/pom.xml index 092c92498..138039b4d 100644 --- a/api-generator/generator-interfaces/pom.xml +++ b/api-generator/generator-interfaces/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml generator-interfaces - 14.0 + 14.1 jar ESA MO API Generator - Interfaces @@ -65,12 +65,12 @@ int.esa.ccsds.mo xml-ccsds-mo-prototypes - 14.0 + 14.1 int.esa.ccsds.mo xml-ccsds-mo-standards - 14.0 + 14.1 @@ -133,7 +133,7 @@ w3c.xsd true - ${project.build.directory}/xsd-ref/XMLSchema.xsd + ${basedir}/src/main/xsd-ref/XMLSchema.xsd @@ -157,49 +157,6 @@ - - org.codehaus.mojo - wagon-maven-plugin - 2.0.2 - - - get-xsd - generate-sources - - download-single - - - http://www.w3.org/2009/XMLSchema - XMLSchema.xsd - ${project.build.directory}/xsd-ref - - - - get-dtd - generate-sources - - download-single - - - http://www.w3.org/2009/XMLSchema - XMLSchema.dtd - ${project.build.directory}/xsd-ref - - - - get-dtd-types - generate-sources - - download-single - - - http://www.w3.org/2009/XMLSchema - datatypes.dtd - ${project.build.directory}/xsd-ref - - - - org.apache.maven.plugins maven-compiler-plugin diff --git a/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.dtd b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.dtd new file mode 100644 index 000000000..64aa2d970 --- /dev/null +++ b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.dtd @@ -0,0 +1,513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +%xs-datatypes; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.xsd b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.xsd new file mode 100644 index 000000000..21c707cd4 --- /dev/null +++ b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.xsd @@ -0,0 +1,1950 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]> + + + + + Part 1 version: structures.xsd (rec-20120405) + Part 2 version: datatypes.xsd (rec-20120405) + + + + + + The schema corresponding to this document is normative, + with respect to the syntactic constraints it expresses in the + XML Schema Definition Language. The documentation (within 'documentation' elements) + below, is not normative, but rather highlights important aspects of + the W3C Recommendation of which this is a part. + + See below (at the bottom of this document) for information about + the revision and namespace-versioning policy governing this + schema document. + + + + + + The simpleType element and all of its members are defined + towards the end of this schema document. + + + + + Get access to the xml: attribute groups for xml:lang + as declared on 'schema' and 'documentation' below + + + + + + + This type is extended by almost all schema types + to allow attributes from other namespaces to be + added to user schemas. + + + + + + + + + + + + This type is extended by all types which allow annotation + other than <schema> itself + + + + + + + + + + + + + + + + + + + + + + + + This group is for the + elements which occur freely at the top level of schemas. + All of their types are based on the "annotated" type by extension. + + + + + + + + + + + + This group is for the + elements which can self-redefine (see <redefine> below). + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + A utility type, not for public use + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {extension, restriction} + + + + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {extension, restriction, list, union} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + for maxOccurs + + + + + + + + + + + + + for all particles + + + + + + + + for element, group and attributeGroup, + which both define and reference + + + + + + + + 'complexType' uses this + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This branch is short for + <complexContent> + <restriction base="xs:anyType"> + ... + </restriction> + </complexContent> + + + + + + + + + + + + + + + + Will be restricted to required or prohibited + + + + + + Not allowed if simpleContent child is chosen. + May be overridden by setting on complexContent child. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This choice is added simply to + make this a valid restriction per the REC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Overrides any setting on complexType parent. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This choice is added simply to + make this a valid restriction per the REC + + + + + + + + + + + + + + + + + No typeDefParticle group reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {substitution, extension, + restriction} + + + + + + + + + + + + + + + + + + + + + + + + The element element can be used either + at the top level to define an element-type binding globally, + or within a content model to either reference a globally-defined + element or type or declare an element-type binding locally. + The ref form is not allowed at the top level. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This type is used for 'alternative' elements. + + + + + + + + + + + + + + + + + + group type for explicit groups, named top-level groups and + group references + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + group type for the three kinds of group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This choice with min/max is here to + avoid a pblm with the Elt:All/Choice/Seq + Particle derivation constraint + + + + + + + + + + + + + + + + + + + + + + + Only elements allowed inside + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple type for the value of the 'namespace' attr of + 'any' and 'anyAttribute' + + + + Value is + ##any - - any non-conflicting WFXML/attribute at all + + ##other - - any non-conflicting WFXML/attribute from + namespace other than targetNS + + ##local - - any unqualified non-conflicting WFXML/attribute + + one or - - any non-conflicting WFXML/attribute from + more URI the listed namespaces + references + (space separated) + + ##targetNamespace or ##local may appear in the above list, to + refer to the targetNamespace of the enclosing + schema or an absent targetNamespace respectively + + + + + A utility type, not for public use + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A subset of XPath expressions for use +in selectors + A utility type, not for public +use + + + + + + + + + + + + + + + + + + + + + A subset of XPath expressions for use +in fields + A utility type, not for public +use + + + + + + + + + + + + + + + + + + + + + + + + + The three kinds of identity constraints, all with + type of or derived from 'keybase'. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + A public identifier, per ISO 8879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + notations for use within schema documents + + + + + + + Not the real urType, but as close an approximation as we can + get in the XML representation + + + + + + + + + + In keeping with the XML Schema WG's standard versioning policy, + the material in this schema document will persist at the URI + http://www.w3.org/2012/04/XMLSchema.xsd. + + At the date of issue it can also be found at the URI + http://www.w3.org/2009/XMLSchema/XMLSchema.xsd. + + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XSD + and its namespace. In other words, if XSD or the XML Schema + namespace change, the version of this document at + http://www.w3.org/2009/XMLSchema/XMLSchema.xsd will change accordingly; + the version at http://www.w3.org/2012/04/XMLSchema.xsd will not change. + + Previous dated (and unchanging) versions of this schema document + include: + + http://www.w3.org/2012/01/XMLSchema.xsd + (XSD 1.1 Proposed Recommendation) + + http://www.w3.org/2011/07/XMLSchema.xsd + (XSD 1.1 Candidate Recommendation) + + http://www.w3.org/2009/04/XMLSchema.xsd + (XSD 1.1 Candidate Recommendation) + + http://www.w3.org/2004/10/XMLSchema.xsd + (XSD 1.0 Recommendation, Second Edition) + + http://www.w3.org/2001/05/XMLSchema.xsd + (XSD 1.0 Recommendation, First Edition) + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + #all or (possibly empty) subset of {restriction, extension, union, list} + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Can be restricted to required or forbidden + + + + + + + + + + + + + + + + + Required at the top level + + + + + + + + + + + + + + + + + + Forbidden when nested + + + + + + + + + + + + + + + + + An abstract element, representing facets in general. + The facets defined by this spec are substitutable for + this element, and implementation-defined facets should + also name this as a substitution-group head. + + + + + + + + + + + + + + + + + base attribute and simpleType child are mutually + exclusive, but one or other is required + + + + + + + + + + + + + + + itemType attribute and simpleType child are mutually + exclusive, but one or other is required + + + + + + + + + + + + + + + + + memberTypes attribute must be non-empty or there must be + at least one simpleType child + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + In keeping with the XML Schema WG's standard versioning policy, + this schema document will persist at the URI + http://www.w3.org/2012/04/datatypes.xsd. + + At the date of issue it can also be found at the URI + http://www.w3.org/2009/XMLSchema/datatypes.xsd. + + The schema document at that URI may however change in the future, + in order to remain compatible with the latest version of XSD + and its namespace. In other words, if XSD or the XML Schema + namespace change, the version of this document at + http://www.w3.org/2009/XMLSchema/datatypes.xsd will change accordingly; + the version at http://www.w3.org/2012/04/datatypes.xsd will not change. + + Previous dated (and unchanging) versions of this schema document + include: + + http://www.w3.org/2012/01/datatypes.xsd + (XSD 1.1 Proposed Recommendation) + + http://www.w3.org/2011/07/datatypes.xsd + (XSD 1.1 Candidate Recommendation) + + http://www.w3.org/2009/04/datatypes.xsd + (XSD 1.1 Candidate Recommendation) + + http://www.w3.org/2004/10/datatypes.xsd + (XSD 1.0 Recommendation, Second Edition) + + http://www.w3.org/2001/05/datatypes.xsd + (XSD 1.0 Recommendation, First Edition) + + + + + + + diff --git a/api-generator/generator-interfaces/src/main/xsd-ref/datatypes.dtd b/api-generator/generator-interfaces/src/main/xsd-ref/datatypes.dtd new file mode 100644 index 000000000..f9352bae1 --- /dev/null +++ b/api-generator/generator-interfaces/src/main/xsd-ref/datatypes.dtd @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/api-generator/generator-java/pom.xml b/api-generator/generator-java/pom.xml index d3e71aa50..58eefe7dd 100644 --- a/api-generator/generator-java/pom.xml +++ b/api-generator/generator-java/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml generator-java - 14.0 + 14.1 jar ESA MO API Generator - Java diff --git a/api-generator/pom.xml b/api-generator/pom.xml index f31a78976..4fa11d836 100644 --- a/api-generator/pom.xml +++ b/api-generator/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml api-generator - 14.0 + 14.1 pom ESA MO API Generator diff --git a/apis/api-area001-v003-mal/pom.xml b/apis/api-area001-v003-mal/pom.xml index 0f82e51d9..1ef685762 100644 --- a/apis/api-area001-v003-mal/pom.xml +++ b/apis/api-area001-v003-mal/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-area001-v003-mal - 14.0 + 14.1 jar ESA MO API - MAL v003 diff --git a/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java b/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java index e30b7c023..39605b354 100644 --- a/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java +++ b/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java @@ -124,6 +124,16 @@ private static Properties loadProperties(final String configFile, final String c * @throws IOException if the file consumer properties file does no exist */ public static void loadConsumerProperties() throws MalformedURLException, IOException { + // Were they loaded already? This flag is independent from the provider's + // "PropertiesLoadedFlag" so that an application acting as both a consumer + // and a provider still loads both property files. + String propAreLoaded = System.getProperty("ConsumerPropertiesLoadedFlag"); + if (propAreLoaded != null) { + if (propAreLoaded.equals("true")) { + return; + } + } + final Properties sysProps = System.getProperties(); final File file = new File(System.getProperty("consumer.properties", CONSUMER_PROPERTIES_FILE)); @@ -134,6 +144,7 @@ public static void loadConsumerProperties() throws MalformedURLException, IOExce } System.setProperties(sysProps); + System.setProperty("ConsumerPropertiesLoadedFlag", "true"); } /** @@ -218,7 +229,6 @@ public static void loadPropertiesFile() { * SHARED_BROKER_PROPERTIES file will be read */ public static void loadPropertiesFile(Boolean useSharedBroker) { - // Were they loaded already? String propAreLoaded = System.getProperty("PropertiesLoadedFlag"); if (propAreLoaded != null) { @@ -296,11 +306,9 @@ public static void loadPropertiesFile(Boolean useSharedBroker) { System.setProperties(sysProps); System.setProperty("PropertiesLoadedFlag", "true"); - } catch (MalformedURLException ex) { Logger.getLogger(HelperMisc.class.getName()).log(Level.SEVERE, null, ex); } - } /** diff --git a/apis/api-area002-v001-com/pom.xml b/apis/api-area002-v001-com/pom.xml index 4b52f82a7..1c6a4e6e7 100644 --- a/apis/api-area002-v001-com/pom.xml +++ b/apis/api-area002-v001-com/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-area002-v001-com - 14.0 + 14.1 jar ESA MO API - COM v001 diff --git a/apis/api-area003-v001-common/pom.xml b/apis/api-area003-v001-common/pom.xml index f218b3a96..b5d2298e4 100644 --- a/apis/api-area003-v001-common/pom.xml +++ b/apis/api-area003-v001-common/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-area003-v001-common - 14.0 + 14.1 jar ESA MO API - Common v001 diff --git a/apis/api-area004-v001-mc/pom.xml b/apis/api-area004-v001-mc/pom.xml index e86049b4b..bd5d7bca0 100644 --- a/apis/api-area004-v001-mc/pom.xml +++ b/apis/api-area004-v001-mc/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-area004-v001-mc - 14.0 + 14.1 jar ESA MO API - MC v001 diff --git a/apis/api-area004-v002-mc/pom.xml b/apis/api-area004-v002-mc/pom.xml index eb23fabfc..ca170c633 100644 --- a/apis/api-area004-v002-mc/pom.xml +++ b/apis/api-area004-v002-mc/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-area004-v002-mc - 14.0 + 14.1 jar ESA MO API - MC v002 diff --git a/apis/api-area005-v001-mps/pom.xml b/apis/api-area005-v001-mps/pom.xml index 662b0c156..6ed4f4a0f 100644 --- a/apis/api-area005-v001-mps/pom.xml +++ b/apis/api-area005-v001-mps/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-area005-v001-mps - 14.0 + 14.1 jar ESA MO API - MPS v001 diff --git a/apis/api-area009-v001-mpd/pom.xml b/apis/api-area009-v001-mpd/pom.xml index e9cba0d1b..59642d8e8 100644 --- a/apis/api-area009-v001-mpd/pom.xml +++ b/apis/api-area009-v001-mpd/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml api-area009-v001-mpd - 14.0 + 14.1 jar ESA MO API - MPD v001 diff --git a/apis/pom.xml b/apis/pom.xml index 551c7b5fd..31a859deb 100644 --- a/apis/pom.xml +++ b/apis/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml apis - 14.0 + 14.1 pom ESA MO APIs diff --git a/encodings/encoding-binary/pom.xml b/encodings/encoding-binary/pom.xml index 843f2f8ab..b41d574d5 100644 --- a/encodings/encoding-binary/pom.xml +++ b/encodings/encoding-binary/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml encoding-binary jar - 14.0 + 14.1 ESA MO Encoder - Binary A simple Java binary encoder for the CCSDS MAL diff --git a/encodings/encoding-string/pom.xml b/encodings/encoding-string/pom.xml index c7d927b5c..334eee145 100644 --- a/encodings/encoding-string/pom.xml +++ b/encodings/encoding-string/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml encoding-string jar - 14.0 + 14.1 ESA MO Encoder - String A simple Java String based encoder for the CCSDS MAL diff --git a/encodings/encoding-xml/pom.xml b/encodings/encoding-xml/pom.xml index 56ad06161..2130fae2f 100644 --- a/encodings/encoding-xml/pom.xml +++ b/encodings/encoding-xml/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml encoding-xml jar - 14.0 + 14.1 ESA MO Encoder - XML A simple Java String based encoder for the CCSDS MAL diff --git a/encodings/pom.xml b/encodings/pom.xml index 3003c313a..18605409d 100644 --- a/encodings/pom.xml +++ b/encodings/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml encodings - 14.0 + 14.1 pom ESA MO Encodings diff --git a/mal-impl/pom.xml b/mal-impl/pom.xml index da12d40f5..5d6afeed7 100644 --- a/mal-impl/pom.xml +++ b/mal-impl/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml mal-impl jar - 14.0 + 14.1 ESA MO MAL Java Implementation The ESA implementation of the CCSDS MAL in Java diff --git a/parent/pom.xml b/parent/pom.xml index b7d4330bf..feac821cd 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -17,7 +17,7 @@ 4.0.0 int.esa.ccsds.mo parent - 14.0 + 14.1 pom ESA MO POM @@ -73,7 +73,7 @@ UTF-8 - 14.0 + 14.1 ${esa.mo.version} ${esa.mo.version} diff --git a/pom.xml b/pom.xml index 82f857410..d51204bbb 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 parent/pom.xml diff --git a/services-impl/pom.xml b/services-impl/pom.xml index 4e70946e1..38146809f 100644 --- a/services-impl/pom.xml +++ b/services-impl/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml services-impl - 14.0 + 14.1 pom ESA MO Services Implementations diff --git a/services-impl/services-area003-v001-common/pom.xml b/services-impl/services-area003-v001-common/pom.xml index 1c603918a..f7d80235f 100644 --- a/services-impl/services-area003-v001-common/pom.xml +++ b/services-impl/services-area003-v001-common/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml services-area003-v001-common - 14.0 + 14.1 jar ESA MO Services - Common Services diff --git a/services-impl/services-area004-v002-mc/pom.xml b/services-impl/services-area004-v002-mc/pom.xml index 10a8a4b8d..618f57d5d 100644 --- a/services-impl/services-area004-v002-mc/pom.xml +++ b/services-impl/services-area004-v002-mc/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml services-area004-v002-mc - 14.0 + 14.1 jar ESA MO Services - MC Services diff --git a/services-impl/services-area009-v001-mpd/pom.xml b/services-impl/services-area009-v001-mpd/pom.xml index 24efc85b0..421cbe722 100644 --- a/services-impl/services-area009-v001-mpd/pom.xml +++ b/services-impl/services-area009-v001-mpd/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml services-area009-v001-mpd - 14.0 + 14.1 jar ESA MO Services - MPD Services diff --git a/testbeds/pom.xml b/testbeds/pom.xml index da6efb518..d7e4c02d4 100644 --- a/testbeds/pom.xml +++ b/testbeds/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml testbeds - 14.0 + 14.1 pom ESA CCSDS Testbed reactor build diff --git a/testbeds/test-apis/pom.xml b/testbeds/test-apis/pom.xml index 082a46b1a..0078e18ab 100644 --- a/testbeds/test-apis/pom.xml +++ b/testbeds/test-apis/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml test-apis - 14.0 + 14.1 pom CCSDS MOIMS MO Testbed APIs diff --git a/testbeds/test-apis/test-api-com/pom.xml b/testbeds/test-apis/test-api-com/pom.xml index a69c6ee0c..073e184f4 100644 --- a/testbeds/test-apis/test-api-com/pom.xml +++ b/testbeds/test-apis/test-api-com/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../../testbed-pom/pom.xml api-com-test - 14.0 + 14.1 jar CCSDS MOIMS MO Testbed API - COM diff --git a/testbeds/test-apis/test-api-mal/pom.xml b/testbeds/test-apis/test-api-mal/pom.xml index a1445ec62..55ae17b31 100644 --- a/testbeds/test-apis/test-api-mal/pom.xml +++ b/testbeds/test-apis/test-api-mal/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../../testbed-pom/pom.xml api-mal-test - 14.0 + 14.1 jar CCSDS MOIMS MO Testbed API - MAL diff --git a/testbeds/test-apis/test-api-mc/pom.xml b/testbeds/test-apis/test-api-mc/pom.xml index b627f22a1..44a24b46a 100644 --- a/testbeds/test-apis/test-api-mc/pom.xml +++ b/testbeds/test-apis/test-api-mc/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../../testbed-pom/pom.xml api-mc-test - 14.0 + 14.1 jar CCSDS MOIMS MO Testbed API - MC diff --git a/testbeds/testbed-com-framework/pom.xml b/testbeds/testbed-com-framework/pom.xml index cfa7d52e6..56dcbb8e8 100644 --- a/testbeds/testbed-com-framework/pom.xml +++ b/testbeds/testbed-com-framework/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml testbed-com-framework jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed COM - Harness diff --git a/testbeds/testbed-com-provider-esa/pom.xml b/testbeds/testbed-com-provider-esa/pom.xml index c80cc8ca5..d8016f98e 100644 --- a/testbeds/testbed-com-provider-esa/pom.xml +++ b/testbeds/testbed-com-provider-esa/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml testbed-com-provider-esa - 14.0 + 14.1 jar CCSDS MOIMS MO Testbed COM - Provider Impl diff --git a/testbeds/testbed-com/pom.xml b/testbeds/testbed-com/pom.xml index 2acdf55b5..8188c2f3e 100644 --- a/testbeds/testbed-com/pom.xml +++ b/testbeds/testbed-com/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml testbed-com jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed for COM diff --git a/testbeds/testbed-encoders/pom.xml b/testbeds/testbed-encoders/pom.xml index e7e55d7ec..0e9b567f4 100644 --- a/testbeds/testbed-encoders/pom.xml +++ b/testbeds/testbed-encoders/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../testbed-pom/pom.xml testbed-encoders jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed Encoders diff --git a/testbeds/testbed-mal/pom.xml b/testbeds/testbed-mal/pom.xml index 8e4e68129..37ef6271e 100644 --- a/testbeds/testbed-mal/pom.xml +++ b/testbeds/testbed-mal/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml testbed-mal jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed for MAL diff --git a/testbeds/testbed-malspp-framework/pom.xml b/testbeds/testbed-malspp-framework/pom.xml index b3fc2c924..94c1980f7 100644 --- a/testbeds/testbed-malspp-framework/pom.xml +++ b/testbeds/testbed-malspp-framework/pom.xml @@ -40,14 +40,14 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml int.esa.ccsds.mo testbed-malspp-framework jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed Framework for MAL/SPP Binding diff --git a/testbeds/testbed-malspp/pom.xml b/testbeds/testbed-malspp/pom.xml index 3515f8001..50e189af7 100644 --- a/testbeds/testbed-malspp/pom.xml +++ b/testbeds/testbed-malspp/pom.xml @@ -40,14 +40,14 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml int.esa.ccsds.mo testbed-malspp jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed for MAL/SPP Binding diff --git a/testbeds/testbed-mc/pom.xml b/testbeds/testbed-mc/pom.xml index 22c6d0336..43eac22d0 100644 --- a/testbeds/testbed-mc/pom.xml +++ b/testbeds/testbed-mc/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml testbed-mc jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed MC diff --git a/testbeds/testbed-mpd/pom.xml b/testbeds/testbed-mpd/pom.xml index 71c0afbd5..a0e86a713 100644 --- a/testbeds/testbed-mpd/pom.xml +++ b/testbeds/testbed-mpd/pom.xml @@ -19,14 +19,14 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml int.esa.ccsds.mo testbed-mpd jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed MPD diff --git a/testbeds/testbed-pom/pom.xml b/testbeds/testbed-pom/pom.xml index 7784e3b0f..b6a1def80 100644 --- a/testbeds/testbed-pom/pom.xml +++ b/testbeds/testbed-pom/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml testbed-pom pom - 14.0 + 14.1 CCSDS MOIMS MO Testbed POM diff --git a/testbeds/testbed-util-spp/pom.xml b/testbeds/testbed-util-spp/pom.xml index 8d8ea9570..81b1f2691 100644 --- a/testbeds/testbed-util-spp/pom.xml +++ b/testbeds/testbed-util-spp/pom.xml @@ -40,14 +40,14 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml int.esa.ccsds.mo testbed-util-spp jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed utilities for the Space Packet Protocol diff --git a/testbeds/testbed-util/pom.xml b/testbeds/testbed-util/pom.xml index 985392667..508321e32 100644 --- a/testbeds/testbed-util/pom.xml +++ b/testbeds/testbed-util/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo testbed-pom - 14.0 + 14.1 ../testbed-pom/pom.xml testbed-util jar - 14.0 + 14.1 CCSDS MOIMS MO Testbed utilities diff --git a/testbeds/xml-tests/pom.xml b/testbeds/xml-tests/pom.xml index 07eed6a80..118c08b14 100644 --- a/testbeds/xml-tests/pom.xml +++ b/testbeds/xml-tests/pom.xml @@ -18,7 +18,7 @@ int.esa.ccsds.mo xml-tests - 14.0 + 14.1 jar CCSDS MOIMS MO Testbed XML diff --git a/tooling/basic-demo/pom.xml b/tooling/basic-demo/pom.xml index 347d90e0c..6de8601bd 100644 --- a/tooling/basic-demo/pom.xml +++ b/tooling/basic-demo/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml basic-demo jar - 14.0 + 14.1 ESA MO Java Demo A Demo Java application for the CCSDS MAL diff --git a/tooling/mo-navigator/pom.xml b/tooling/mo-navigator/pom.xml index 64b353fc1..9d21153ff 100644 --- a/tooling/mo-navigator/pom.xml +++ b/tooling/mo-navigator/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml int.esa.ccsds.mo mo-navigator - 14.0 + 14.1 jar ESA MO Navigator diff --git a/tooling/pom.xml b/tooling/pom.xml index 5a23feeef..745ce085b 100644 --- a/tooling/pom.xml +++ b/tooling/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml tooling - 14.0 + 14.1 pom ESA MO Tooling diff --git a/tooling/simple-mo-consumer/pom.xml b/tooling/simple-mo-consumer/pom.xml index 233a32150..b9455e45d 100644 --- a/tooling/simple-mo-consumer/pom.xml +++ b/tooling/simple-mo-consumer/pom.xml @@ -7,12 +7,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml simple-mo-consumer - 14.0 + 14.1 jar Simple MO Consumer diff --git a/tooling/simple-mo-provider/pom.xml b/tooling/simple-mo-provider/pom.xml index 53bc3aaaf..45979abac 100644 --- a/tooling/simple-mo-provider/pom.xml +++ b/tooling/simple-mo-provider/pom.xml @@ -7,12 +7,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml simple-mo-provider - 14.0 + 14.1 jar Simple MO Provider diff --git a/tooling/transport-bridge/pom.xml b/tooling/transport-bridge/pom.xml index 46687e8e6..fc9b1198d 100644 --- a/tooling/transport-bridge/pom.xml +++ b/tooling/transport-bridge/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-bridge - 14.0 + 14.1 jar ESA MO Transport Bridge diff --git a/transports/pom.xml b/transports/pom.xml index c736abbc9..1e147a82b 100644 --- a/transports/pom.xml +++ b/transports/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml transports - 14.0 + 14.1 pom ESA MO Transports diff --git a/transports/transport-file/pom.xml b/transports/transport-file/pom.xml index 481424598..d3b6e6534 100644 --- a/transports/transport-file/pom.xml +++ b/transports/transport-file/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-file jar - 14.0 + 14.1 ESA MO Transport - File A Java File based transport for CCSDS MAL diff --git a/transports/transport-generic/pom.xml b/transports/transport-generic/pom.xml index 7d91f0f84..5520c45ae 100644 --- a/transports/transport-generic/pom.xml +++ b/transports/transport-generic/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-generic jar - 14.0 + 14.1 ESA MO Transport - Generic Framework A base Java framework for CCSDS MAL transports diff --git a/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java b/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java index ef496852e..e1740f414 100644 --- a/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java +++ b/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java @@ -92,7 +92,11 @@ public LazyMessageBody(final MALEncodingContext ctx, final Object[] messageParts) { this.ctx = ctx; this.bodyPartCount = (messageParts != null) ? messageParts.length : 0; - this.messageParts = messageParts; + // Never leave messageParts null while decodedBody is true: an empty body + // (e.g. a request with no arguments) is passed as null, and the repeated- + // read guard in decodeMessageBody() would otherwise report it as a failed + // decode. An empty array encodes as a zero-part body. + this.messageParts = (messageParts != null) ? messageParts : new Object[0]; this.encFactory = encFactory; decodedBody = true; } @@ -228,12 +232,21 @@ else if ((o == null) || (o instanceof Element)) { } /** - * Decodes the message body. + * Decodes the message body. Synchronized because the same body can be + * decoded from two threads: the thread of a synchronous consumer call + * unblocked by the interaction handler, and the message dispatcher thread + * delivering the same message to the interaction listener. * * @throws MALException if any error detected. */ - protected void decodeMessageBody() throws MALException { + protected synchronized void decodeMessageBody() throws MALException { if (decodedBody) { + if (messageParts == null) { + // A previous decode attempt failed; fail loudly instead of + // letting the callers trip over the null messageParts + throw new MALException("The Message Body could not be decoded " + + "by a previous decoding attempt!"); + } return; } @@ -274,6 +287,15 @@ protected void decodeMessageBody() throws MALException { } catch (NotFoundException ex) { Transport.LOGGER.log(Level.WARNING, "(2) Unable to decode the Message Body!", ex); + // The operation fields are unknown, so the body structure cannot be + // recovered. Degrade to an empty body (the historical log-and-continue + // behavior) instead of leaving messageParts null: otherwise the + // repeated-read guard above would later report this tolerated path as + // a SEVERE encoding error. + if (messageParts == null) { + bodyPartCount = 0; + messageParts = new Element[0]; + } } } diff --git a/transports/transport-http/pom.xml b/transports/transport-http/pom.xml index 0c42d516e..f7653efff 100644 --- a/transports/transport-http/pom.xml +++ b/transports/transport-http/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-http jar - 14.0 + 14.1 ESA MO Transport - HTTP A Java HTTP transport for CCSDS MAL diff --git a/transports/transport-rmi/pom.xml b/transports/transport-rmi/pom.xml index b1f5bf3b8..770f876e1 100644 --- a/transports/transport-rmi/pom.xml +++ b/transports/transport-rmi/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-rmi jar - 14.0 + 14.1 ESA MO Transport - RMI A Java RMI transport for CCSDS MAL diff --git a/transports/transport-spp/pom.xml b/transports/transport-spp/pom.xml index 2763711d5..f50c415da 100644 --- a/transports/transport-spp/pom.xml +++ b/transports/transport-spp/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-spp jar - 14.0 + 14.1 ESA MO Transport - SPP A Java SPP transport for CCSDS MAL diff --git a/transports/transport-tcpip/pom.xml b/transports/transport-tcpip/pom.xml index e25d0b69d..8fbb7e737 100644 --- a/transports/transport-tcpip/pom.xml +++ b/transports/transport-tcpip/pom.xml @@ -19,12 +19,12 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-tcpip - 14.0 + 14.1 jar ESA MO Transport - TCP/IP diff --git a/transports/transport-zmtp/pom.xml b/transports/transport-zmtp/pom.xml index 5473c23d7..a293064a5 100644 --- a/transports/transport-zmtp/pom.xml +++ b/transports/transport-zmtp/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml transport-zmtp jar - 14.0 + 14.1 ESA MO Transport - ZMTP A Java ZeroMQ Transport Protocol binding for CCSDS MAL diff --git a/xml-service-specifications/pom.xml b/xml-service-specifications/pom.xml index e8f7bc4a5..0c5e85bb4 100644 --- a/xml-service-specifications/pom.xml +++ b/xml-service-specifications/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../parent/pom.xml int.esa.ccsds.mo xml-service-specifications - 14.0 + 14.1 pom ESA MO XML specifications diff --git a/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml b/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml index 0032a9219..757918d5e 100644 --- a/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml +++ b/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml int.esa.ccsds.mo xml-ccsds-mo-prototypes - 14.0 + 14.1 jar ESA MO XML specifications - MO Prototypes diff --git a/xml-service-specifications/xml-ccsds-mo-standards/pom.xml b/xml-service-specifications/xml-ccsds-mo-standards/pom.xml index f029ded37..545c50bf4 100644 --- a/xml-service-specifications/xml-ccsds-mo-standards/pom.xml +++ b/xml-service-specifications/xml-ccsds-mo-standards/pom.xml @@ -19,13 +19,13 @@ int.esa.ccsds.mo parent - 14.0 + 14.1 ../../parent/pom.xml int.esa.ccsds.mo xml-ccsds-mo-standards - 14.0 + 14.1 jar ESA MO XML specifications - MO Standards