[ https://issues.apache.org/jira/browse/CXF-8924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Freeman Yue Fang resolved CXF-8924. ----------------------------------- Fix Version/s: 4.0.3 Resolution: Fixed > Make Wsdl2Java generate code in a deterministic way for reproducible builds > --------------------------------------------------------------------------- > > Key: CXF-8924 > URL: https://issues.apache.org/jira/browse/CXF-8924 > Project: CXF > Issue Type: Improvement > Affects Versions: 4.0.1 > Reporter: Bjørn Mølgård Vester > Assignee: Daniel Kulp > Priority: Minor > Fix For: 4.0.3 > > > When you run the wsdl2java tool on a collection of schemas, it will generate > a class "ObjectFactory" with method names taken from the schemas. > Currently, the order of these methods is not predictable as it depends on the > hash code of the absolute file path to the schemas. The file paths may change > depending on where you have, for instance, checked out the code. It is also > normal for a CI server to check out code in folders named after the branch or > pull request. > Besides the benefits of having [reproducible > builds|[https://reproducible-builds.org/],] for us, it also breaks our build > cache that fingerprints the input schemas and the generated code that may > differ depending on where it was built. This causes cache misses that again > lead to unnecessary long build times. > The issue arises in the class SchemaCollection. Here, schemas are added to a > class XmlSchemaCollection from the xmlschema-core Apache project, with a > system ID that includes the absolute file path to the schema. The schemas are > later returned ordered by the hash code of the system ID (among other > things), which changes depending on the paths. > This issue can be fixed either in CXF by not using full paths for system IDs, > by sorting the schemas during code generation by name and namespace for > instance, or finally, it can be solved by letting XmlSchemaCollection return > schemas in the same order as they were added. I think the latter is the most > elegant solution, so I've opened an issue for that project and submitted a > PR: https://issues.apache.org/jira/browse/XMLSCHEMA-65. > If that PR is accepted and a new version is released, I would like CXF to > update to that version. If not, it would be great if a fix could be made to > CXF itself. -- This message was sent by Atlassian Jira (v8.20.10#820010)