Change in ovirt-engine-sdk-java[master]: generator: Remember order of parameters

Juan Hernandez has submitted this change and it was merged. Change subject: generator: Remember order of parameters ...................................................................... generator: Remember order of parameters When a resource method supports multiple parameters (in the form of URL parameters or headers) the code generator produces a method with multiple parameters as well. For example, the host "activate" method supports the "async" URL parameter and the "correlationId" parameter because it can be invoked as follows: POST /hosts/{host:id}/activate;async=true Correlation-Id: 0123 <action/> So the generated Java method for this resource method looks like this: Action activate(Action action, Boolean async, String correlationId) But in previous versions of the engine or the SDK some of these parameters may be missing. In the particular case of the host "activate" method, for example, the 3.5 version of the SDK didn't support the "async" parameter (because it was missing from the RSDL metadata) so the generated method looked like this: Action activate(Action action, String correlationId) Replacing the 3.5 signature with the new one causes a backwards compatibility problem. A previous change tried to solve this issue introducing a "memory" file where the SDK remembers the signatures used in previous versions: codegen: Sort and remember header parameters https://gerrit.ovirt.org/39459 But this change only took into account header parameters. The "async" parameter in the above example wasn't handled correctly. To avoid this issue this patch changes the "memory" concept so that instead of remembering the headers corresponding to a link it remembers the names and order of the parameters of the generated methods. The patch also resets the state of the memory to that of the latest 3.5 branch, so the next time that the SDK is regenerated it will be backwards compatible with version 3.5. Change-Id: I1c71aa8fb26f7f11c84b4b556245db36420c29c2 Bug-Url: https://bugzilla.redhat.com/1231786 Signed-off-by: Juan Hernandez <juan.hernandez@redhat.com> --- M generator/pom.xml M generator/src/main/java/org/ovirt/engine/sdk/generator/Memory.java A generator/src/main/java/org/ovirt/engine/sdk/generator/java/ParameterContext.java A generator/src/main/java/org/ovirt/engine/sdk/generator/java/ParameterData.java A generator/src/main/java/org/ovirt/engine/sdk/generator/java/ParameterType.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/RsdlCodegen.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/documentation/DocsGen.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/AbstractOverloadableTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/CollectionActionMethodTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/CollectionAddMethodTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/CollectionTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/DeleteMethodTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/DeleteMethodWithBodyTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/HeaderBuilderParameterTemplate M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/HeaderBuilderParameterTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/ListMethodTemplate.java D generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/MethodParameterTemplate D generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/MethodParameterTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/ResourceActionMethodTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/ResourceTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/SubCollectionAddMethodTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/SubCollectionTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/SubResourceTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/UpdateMethodTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/UrlBuilderParameterTemplate M generator/src/main/java/org/ovirt/engine/sdk/generator/java/templates/UrlBuilderParameterTemplate.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/utils/ExceptionsAwareComparator.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/utils/LinkUtils.java A generator/src/main/java/org/ovirt/engine/sdk/generator/java/utils/MethodUtils.java M generator/src/main/java/org/ovirt/engine/sdk/generator/java/utils/StringUtils.java M generator/src/main/resources/memory.properties M sdk/README.md 32 files changed, 957 insertions(+), 989 deletions(-) Approvals: Martin Peřina: Looks good to me, but someone else must approve Juan Hernandez: Verified; Looks good to me, approved; Passed CI tests -- To view, visit https://gerrit.ovirt.org/42452 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: merged Gerrit-Change-Id: I1c71aa8fb26f7f11c84b4b556245db36420c29c2 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine-sdk-java Gerrit-Branch: master Gerrit-Owner: Juan Hernandez <juan.hernandez@redhat.com> Gerrit-Reviewer: Juan Hernandez <juan.hernandez@redhat.com> Gerrit-Reviewer: Martin Peřina <mperina@redhat.com> Gerrit-Reviewer: Ori Liel <oliel@redhat.com> Gerrit-Reviewer: automation@ovirt.org
participants (1)
-
juan.hernandez@redhat.com