[ 
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)

Reply via email to