{"action":"created","issue":{"url":"https://api.github.com/repos/spring-projects/spring-integration/issues/1565","labels_url":"https://api.github.com/repos/spring-projects/spring-integration/issues/1565/labels{/name}","comments_url":"https://api.github.com/repos/spring-projects/spring-integration/issues/1565/comments","events_url":"https://api.github.com/repos/spring-projects/spring-integration/issues/1565/events","html_url":"https://github.com/spring-projects/spring-integration/pull/1565","id":105002899,"number":1565,"title":"INT-3820: Fix `MethodInvokerHelper` for the Proxy","user":{"login":"artembilan","id":1071590,"avatar_url":"https://avatars.githubusercontent.com/u/1071590?v=3","gravatar_id":"","url":"https://api.github.com/users/artembilan","html_url":"https://github.com/artembilan","followers_url":"https://api.github.com/users/artembilan/followers","following_url":"https://api.github.com/users/artembilan/following{/other_user}","gists_url":"https://api.github.com/users/artembilan/gists{/gist_id}","starred_url":"https://api.github.com/users/artembilan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artembilan/subscriptions","organizations_url":"https://api.github.com/users/artembilan/orgs","repos_url":"https://api.github.com/users/artembilan/repos","events_url":"https://api.github.com/users/artembilan/events{/privacy}","received_events_url":"https://api.github.com/users/artembilan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-09-05T04:19:21Z","updated_at":"2015-09-08T19:15:01Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/spring-projects/spring-integration/pulls/1565","html_url":"https://github.com/spring-projects/spring-integration/pull/1565","diff_url":"https://github.com/spring-projects/spring-integration/pull/1565.diff","patch_url":"https://github.com/spring-projects/spring-integration/pull/1565.patch"},"body":"JIRA: https://jira.spring.io/browse/INT-3820\r\n\r\nSome Proxy may be based on the specif non-user classes and advised with\r\nthe provided end-user interfaces.\r\nThe best sample is `@Repository` from Spring Data projects.\r\nIn this case the `MessagingMethodInvokerHelper` just missed the user interfaces\r\nto consider for the candidate methods or thrown an `Exception` like `NoSuchMethodError`.\r\n\r\n* Add `((Advised) targetObject).getProxiedInterfaces()` for the scanning algorithm\r\n* Move the `UniqueMethodFilter` to the internal `Set<Method>` to allow iteration\r\nand filtering for methods from the `targetClass` as well as from all those user interfaces\r\n* Add Spring JPA repository test-case\r\n* Polishing form some time-weak tests"},"comment":{"url":"https://api.github.com/repos/spring-projects/spring-integration/issues/comments/138673937","html_url":"https://github.com/spring-projects/spring-integration/pull/1565#issuecomment-138673937","issue_url":"https://api.github.com/repos/spring-projects/spring-integration/issues/1565","id":138673937,"user":{"login":"garyrussell","id":483832,"avatar_url":"https://avatars.githubusercontent.com/u/483832?v=3","gravatar_id":"","url":"https://api.github.com/users/garyrussell","html_url":"https://github.com/garyrussell","followers_url":"https://api.github.com/users/garyrussell/followers","following_url":"https://api.github.com/users/garyrussell/following{/other_user}","gists_url":"https://api.github.com/users/garyrussell/gists{/gist_id}","starred_url":"https://api.github.com/users/garyrussell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garyrussell/subscriptions","organizations_url":"https://api.github.com/users/garyrussell/orgs","repos_url":"https://api.github.com/users/garyrussell/repos","events_url":"https://api.github.com/users/garyrussell/events{/privacy}","received_events_url":"https://api.github.com/users/garyrussell/received_events","type":"User","site_admin":false},"created_at":"2015-09-08T19:15:01Z","updated_at":"2015-09-08T19:15:01Z","body":"Unfortunately, we feel it's too risky to put such a major change into the GA after the [release candidate](https://spring.io/blog/2015/08/17/spring-integration-4-2-release-candidate-is-available) has been made available.\r\n\r\nWe have some concerns that it might cause unexpected behavior in (i.e. break) existing applications because new, previously not-considered methods will now be considered for matching and it might cause some ambiguity.\r\n\r\nWe'll talk again before doing the release tomorrow; to see if we can come up with a more narrow solution that will have no danger of breaking existing apps (e.g. only consider the interface(s) if we find no existing matches. No promises though; given that there is a work-around.\r\n\r\ncc/ @artembilan "}}