[ https://issues.apache.org/jira/browse/XMLSCHEMA-65?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved XMLSCHEMA-65. ---------------------------------- Fix Version/s: 2.3.1 Assignee: Daniel Kulp Resolution: Fixed > Make XmlSchema return schemas in a collection in a predictable order > -------------------------------------------------------------------- > > Key: XMLSCHEMA-65 > URL: https://issues.apache.org/jira/browse/XMLSCHEMA-65 > Project: XmlSchema > Issue Type: Improvement > Affects Versions: 2.3.0 > Reporter: Bjørn Mølgård Vester > Assignee: Daniel Kulp > Priority: Minor > Fix For: 2.3.1 > > > When XmlSchema returns schemas in a collection, they are in an unpredictable > order that depends on the hashcode for, among other things, the absolute path > to them on the file system. This is a problem for reproducible builds, as the > result will differ depending on where you store the schemas you work on. > For example, I use CXF's "wsdl2java" tool to generate Java classes from my > schemas. The schemas are in a source control system, which is checked out by > a CI server in different folders depending on the branch name among other > things. > CXF keeps schemas in an XmlSchemaCollection instance and asks for all schemas > during type generation. It then uses these to generate an "ObjectFactory" > class that contains elements from these schemas. As the schemas are returned > in a different order depending on the checkout folder path, the generated > source code will contain the elements in different order from build to build. > This in turn breaks our build cache that fingerprints the schema files as > inputs and generated code as output, which breaks the cache further in the > build pipeline and leads to long build times. > While this could be fixed in CXF by sorting the schemas first, or by not > generating a systemId that includes the full path, I think it will be > beneficial to make that class return schemas in a predictable order for all > clients, and not just CXF. The order could be the same as when schemas were > added to begin with (requiring the client to iterate over them in a > predictable order). > Technically, the XmlSchemaCollection class keeps schemas in a HashMap where > the key is a SchemaKey, containing a "systemId" field that includes the full > file path. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@ws.apache.org For additional commands, e-mail: dev-h...@ws.apache.org