syncope-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitriy B. (Jira)" <j...@apache.org>
Subject [jira] [Updated] (SYNCOPE-1533) Broken backward compatibilty because of changes in Equals and HashCode methods in TOs
Date Tue, 14 Jan 2020 15:59:00 GMT

     [ https://issues.apache.org/jira/browse/SYNCOPE-1533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Dmitriy B. updated SYNCOPE-1533:
--------------------------------
    Description: 
Starting from Syncope 2.1.X the contract of *equals* and *hashCode* methods has changed in
transfer objects (TOs). It was done to improve the performance as previously they used the
reflection. Some of models have an explicit declaration of equals and hashCode and the behavior
remained as in 2.0.X version of Apache Syncope.

Here is the list of models for which the calculation of equals and hashCode has changed:
 1. org.apache.syncope.client.console.widgets.reconciliation.Any
 2. org.apache.syncope.client.console.widgets.reconciliation.Anys
 3. org.apache.syncope.client.console.widgets.reconciliation.Misaligned
 4. org.apache.syncope.client.console.widgets.reconciliation.Missing
 5. org.apache.syncope.client.console.widgets.reconciliation.ReconciliationReport
 6. org.apache.syncope.common.lib.info.PlatformInfo
 7. org.apache.syncope.common.lib.info.SystemInfo
 8. org.apache.syncope.common.lib.log.LogAppender
 9. org.apache.syncope.common.lib.patch.ResourceDeassociationPatch
 10. org.apache.syncope.common.lib.policy.DefaultAccountRuleConf
 11. org.apache.syncope.common.lib.policy.PolicyTO
 12. org.apache.syncope.common.lib.policy.AccountPolicyTO
 13. org.apache.syncope.common.lib.policy.PasswordPolicyTO
 14. org.apache.syncope.common.lib.policy.ProvisioningPolicyTO
 15. org.apache.syncope.common.lib.policy.PullPolicyTO
 16. org.apache.syncope.common.lib.report.AbstractAnyReportletConf
 17. org.apache.syncope.common.lib.report.AbstractReportletConf 
 18. org.apache.syncope.common.lib.report.AuditReportletConf
 19. org.apache.syncope.common.lib.report.GroupReportletConf
 20. org.apache.syncope.common.lib.report.ReconciliationReportletConf
 21. org.apache.syncope.common.lib.report.StaticReportletConf
 22. org.apache.syncope.common.lib.report.UserReportletConf
 23. org.apache.syncope.common.lib.to.AccessTokenTO
 24. org.apache.syncope.common.lib.to.AnyTypeClassTO
 25. org.apache.syncope.common.lib.to.AnyTypeTO
 26. org.apache.syncope.common.lib.to.CamelMetrics
 27. org.apache.syncope.common.lib.to.CamelRouteTO
 28. org.apache.syncope.common.lib.to.ConnIdObjectClassTO
 29. org.apache.syncope.common.lib.to.ConnInstanceTO
 30. org.apache.syncope.common.lib.to.ConnPoolConfTO
 31. org.apache.syncope.common.lib.to.DomainTO
 32. org.apache.syncope.common.lib.to.DynRealmTO
 33. org.apache.syncope.common.lib.to.ErrorTO
 34. org.apache.syncope.common.lib.to.ItemTO
 35. org.apache.syncope.common.lib.to.JobTO
 36. org.apache.syncope.common.lib.to.MailTemplateTO
 37. org.apache.syncope.common.lib.to.MappingTO
 38. org.apache.syncope.common.lib.to.OIDCLoginRequestTO
 39. org.apache.syncope.common.lib.to.OIDCLoginResponseTO
 40. org.apache.syncope.common.lib.to.OIDCLogoutRequestTO
 41. org.apache.syncope.common.lib.to.OIDCProviderTO
 42. org.apache.syncope.common.lib.to.OrgUnitTO
 43. org.apache.syncope.common.lib.to.ProvisionTO
 44. org.apache.syncope.common.lib.to.RealmTO
 45. org.apache.syncope.common.lib.to.ReconStatus
 46. org.apache.syncope.common.lib.to.RelationshipTypeTO
 47. org.apache.syncope.common.lib.to.ReportTemplateTO
 48. org.apache.syncope.common.lib.to.ResourceTO
 49. org.apache.syncope.common.lib.to.RoleTO
 50. org.apache.syncope.common.lib.to.SAML2IdPTO
 51. org.apache.syncope.common.lib.to.SAML2LoginResponseTO
 52. org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO
 53. org.apache.syncope.common.lib.to.SAML2RequestTO
 54. org.apache.syncope.common.rest.api.beans.AbstractQuery
 55. org.apache.syncope.common.rest.api.beans.AccessTokenQuery
 56. org.apache.syncope.common.rest.api.beans.AnyQuery
 57. org.apache.syncope.common.rest.api.beans.ExecQuery
 58. org.apache.syncope.common.rest.api.beans.ExecuteQuery
 59. org.apache.syncope.common.rest.api.beans.SchemaQuery
 60. org.apache.syncope.common.rest.api.beans.TaskQuery
 61. org.apache.syncope.fit.core.reference.TestAccountRuleConf
 62. org.apache.syncope.fit.core.reference.TestPasswordRuleConf

To preserve the previous behavior and don't break the backward compatibility *equals* and
*hashCode* should be overwritten using the for _org.apache.commons.lang3.builder.EqualsBuilder_
and _org.apache.commons.lang3.builder.HashCodeBuilder_ .

See [https://lists.apache.org/thread.html/0111d8468ee529a02a82dc3d6e1db5a0b21b2409102c526048c0b4fe%40%3Cdev.syncope.apache.org%3E] for
details.

  was:
Starting from Syncope 2.1.X the contract of *equals* and *hashCode* methods has changed in
transfer objects (TOs). It was done to improve the performance as previously they used the
reflection. Some of models have an explicit declaration of equals and hashCode and the behavior
remained as in 2.0.X version of Apache Syncope.

Here is the list of models for which the calculation of equals and hashCode has changed:
 1. org.apache.syncope.client.console.widgets.reconciliation.Any
 2. org.apache.syncope.client.console.widgets.reconciliation.Anys
 3. org.apache.syncope.client.console.widgets.reconciliation.Misaligned
 4. org.apache.syncope.client.console.widgets.reconciliation.Missing
 5. org.apache.syncope.client.console.widgets.reconciliation.ReconciliationReport
 6. org.apache.syncope.common.lib.info.PlatformInfo
 7. org.apache.syncope.common.lib.info.SystemInfo
 8. org.apache.syncope.common.lib.log.LogAppender
 9. org.apache.syncope.common.lib.patch.ResourceDeassociationPatch
 10. org.apache.syncope.common.lib.policy.DefaultAccountRuleConf
 11. org.apache.syncope.common.lib.policy.PolicyTO
 12. org.apache.syncope.common.lib.policy.AccountPolicyTO
 13. org.apache.syncope.common.lib.policy.PasswordPolicyTO
 14. org.apache.syncope.common.lib.policy.ProvisioningPolicyTO
 15. org.apache.syncope.common.lib.policy.PullPolicyTO
 16. org.apache.syncope.common.lib.report.AbstractAnyReportletConf
 17. org.apache.syncope.common.lib.report.AbstractReportletConf 
 18. org.apache.syncope.common.lib.report.AuditReportletConf
 19. org.apache.syncope.common.lib.report.GroupReportletConf
 20. org.apache.syncope.common.lib.report.ReconciliationReportletConf
 21. org.apache.syncope.common.lib.report.StaticReportletConf
 22. org.apache.syncope.common.lib.report.UserReportletConf
 23. org.apache.syncope.common.lib.to.AccessTokenTO
 24. org.apache.syncope.common.lib.to.AnyTypeClassTO
 25. org.apache.syncope.common.lib.to.AnyTypeTO
 26. org.apache.syncope.common.lib.to.CamelMetrics
 27. org.apache.syncope.common.lib.to.CamelRouteTO
 28. org.apache.syncope.common.lib.to.ConnIdObjectClassTO
 29. org.apache.syncope.common.lib.to.ConnInstanceTO
 30. org.apache.syncope.common.lib.to.ConnPoolConfTO
 31. org.apache.syncope.common.lib.to.DomainTO
 32. org.apache.syncope.common.lib.to.DynRealmTO
 33. org.apache.syncope.common.lib.to.ErrorTO
 34. org.apache.syncope.common.lib.to.ItemTO
 35. org.apache.syncope.common.lib.to.JobTO
 36. org.apache.syncope.common.lib.to.MailTemplateTO
 37. org.apache.syncope.common.lib.to.MappingTO
 38. org.apache.syncope.common.lib.to.OIDCLoginRequestTO
 39. org.apache.syncope.common.lib.to.OIDCLoginResponseTO
 40. org.apache.syncope.common.lib.to.OIDCLogoutRequestTO
 41. org.apache.syncope.common.lib.to.OIDCProviderTO
 42. org.apache.syncope.common.lib.to.OrgUnitTO
 43. org.apache.syncope.common.lib.to.ProvisionTO
 44. org.apache.syncope.common.lib.to.RealmTO
 45. org.apache.syncope.common.lib.to.ReconStatus
 46. org.apache.syncope.common.lib.to.RelationshipTypeTO
 47. org.apache.syncope.common.lib.to.ReportTemplateTO
 48. org.apache.syncope.common.lib.to.ResourceTO
 49. org.apache.syncope.common.lib.to.RoleTO
 50. org.apache.syncope.common.lib.to.SAML2IdPTO
 51. org.apache.syncope.common.lib.to.SAML2LoginResponseTO
 52. org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO
 53. org.apache.syncope.common.lib.to.SAML2RequestTO
 54. org.apache.syncope.common.rest.api.beans.AbstractQuery
 55. org.apache.syncope.common.rest.api.beans.AccessTokenQuery
 56. org.apache.syncope.common.rest.api.beans.AnyQuery
 57. org.apache.syncope.common.rest.api.beans.ExecQuery
 58. org.apache.syncope.common.rest.api.beans.ExecuteQuery
 59. org.apache.syncope.common.rest.api.beans.SchemaQuery
 60. org.apache.syncope.common.rest.api.beans.TaskQuery
 61. org.apache.syncope.fit.core.reference.TestAccountRuleConf
 62. org.apache.syncope.fit.core.reference.TestPasswordRuleConf

To preserve the previous behavior and don't break the backward compatibility *equals* and
*hashCode* should be overwritten using the for _org.apache.commons.lang3.builder.EqualsBuilder_
and _org.apache.commons.lang3.builder.HashCodeBuilder_ .


> Broken backward compatibilty because of changes in Equals and HashCode methods in TOs
> -------------------------------------------------------------------------------------
>
>                 Key: SYNCOPE-1533
>                 URL: https://issues.apache.org/jira/browse/SYNCOPE-1533
>             Project: Syncope
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 2.1.5
>            Reporter: Dmitriy B.
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Starting from Syncope 2.1.X the contract of *equals* and *hashCode* methods has changed
in transfer objects (TOs). It was done to improve the performance as previously they used
the reflection. Some of models have an explicit declaration of equals and hashCode and the
behavior remained as in 2.0.X version of Apache Syncope.
> Here is the list of models for which the calculation of equals and hashCode has changed:
>  1. org.apache.syncope.client.console.widgets.reconciliation.Any
>  2. org.apache.syncope.client.console.widgets.reconciliation.Anys
>  3. org.apache.syncope.client.console.widgets.reconciliation.Misaligned
>  4. org.apache.syncope.client.console.widgets.reconciliation.Missing
>  5. org.apache.syncope.client.console.widgets.reconciliation.ReconciliationReport
>  6. org.apache.syncope.common.lib.info.PlatformInfo
>  7. org.apache.syncope.common.lib.info.SystemInfo
>  8. org.apache.syncope.common.lib.log.LogAppender
>  9. org.apache.syncope.common.lib.patch.ResourceDeassociationPatch
>  10. org.apache.syncope.common.lib.policy.DefaultAccountRuleConf
>  11. org.apache.syncope.common.lib.policy.PolicyTO
>  12. org.apache.syncope.common.lib.policy.AccountPolicyTO
>  13. org.apache.syncope.common.lib.policy.PasswordPolicyTO
>  14. org.apache.syncope.common.lib.policy.ProvisioningPolicyTO
>  15. org.apache.syncope.common.lib.policy.PullPolicyTO
>  16. org.apache.syncope.common.lib.report.AbstractAnyReportletConf
>  17. org.apache.syncope.common.lib.report.AbstractReportletConf 
>  18. org.apache.syncope.common.lib.report.AuditReportletConf
>  19. org.apache.syncope.common.lib.report.GroupReportletConf
>  20. org.apache.syncope.common.lib.report.ReconciliationReportletConf
>  21. org.apache.syncope.common.lib.report.StaticReportletConf
>  22. org.apache.syncope.common.lib.report.UserReportletConf
>  23. org.apache.syncope.common.lib.to.AccessTokenTO
>  24. org.apache.syncope.common.lib.to.AnyTypeClassTO
>  25. org.apache.syncope.common.lib.to.AnyTypeTO
>  26. org.apache.syncope.common.lib.to.CamelMetrics
>  27. org.apache.syncope.common.lib.to.CamelRouteTO
>  28. org.apache.syncope.common.lib.to.ConnIdObjectClassTO
>  29. org.apache.syncope.common.lib.to.ConnInstanceTO
>  30. org.apache.syncope.common.lib.to.ConnPoolConfTO
>  31. org.apache.syncope.common.lib.to.DomainTO
>  32. org.apache.syncope.common.lib.to.DynRealmTO
>  33. org.apache.syncope.common.lib.to.ErrorTO
>  34. org.apache.syncope.common.lib.to.ItemTO
>  35. org.apache.syncope.common.lib.to.JobTO
>  36. org.apache.syncope.common.lib.to.MailTemplateTO
>  37. org.apache.syncope.common.lib.to.MappingTO
>  38. org.apache.syncope.common.lib.to.OIDCLoginRequestTO
>  39. org.apache.syncope.common.lib.to.OIDCLoginResponseTO
>  40. org.apache.syncope.common.lib.to.OIDCLogoutRequestTO
>  41. org.apache.syncope.common.lib.to.OIDCProviderTO
>  42. org.apache.syncope.common.lib.to.OrgUnitTO
>  43. org.apache.syncope.common.lib.to.ProvisionTO
>  44. org.apache.syncope.common.lib.to.RealmTO
>  45. org.apache.syncope.common.lib.to.ReconStatus
>  46. org.apache.syncope.common.lib.to.RelationshipTypeTO
>  47. org.apache.syncope.common.lib.to.ReportTemplateTO
>  48. org.apache.syncope.common.lib.to.ResourceTO
>  49. org.apache.syncope.common.lib.to.RoleTO
>  50. org.apache.syncope.common.lib.to.SAML2IdPTO
>  51. org.apache.syncope.common.lib.to.SAML2LoginResponseTO
>  52. org.apache.syncope.common.lib.to.SAML2ReceivedResponseTO
>  53. org.apache.syncope.common.lib.to.SAML2RequestTO
>  54. org.apache.syncope.common.rest.api.beans.AbstractQuery
>  55. org.apache.syncope.common.rest.api.beans.AccessTokenQuery
>  56. org.apache.syncope.common.rest.api.beans.AnyQuery
>  57. org.apache.syncope.common.rest.api.beans.ExecQuery
>  58. org.apache.syncope.common.rest.api.beans.ExecuteQuery
>  59. org.apache.syncope.common.rest.api.beans.SchemaQuery
>  60. org.apache.syncope.common.rest.api.beans.TaskQuery
>  61. org.apache.syncope.fit.core.reference.TestAccountRuleConf
>  62. org.apache.syncope.fit.core.reference.TestPasswordRuleConf
> To preserve the previous behavior and don't break the backward compatibility *equals*
and *hashCode* should be overwritten using the for _org.apache.commons.lang3.builder.EqualsBuilder_
and _org.apache.commons.lang3.builder.HashCodeBuilder_ .
> See [https://lists.apache.org/thread.html/0111d8468ee529a02a82dc3d6e1db5a0b21b2409102c526048c0b4fe%40%3Cdev.syncope.apache.org%3E] for
details.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message