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

Reply via email to