DATACMNS-619 - DefaultCrudMethods now exposes accessible methods.

We now make sure that all methods detected are made accessible so that clients using them can reflectively invoke them without additional checks.
This commit is contained in:
Oliver Gierke
2014-12-18 18:53:10 +01:00
parent 013f97899e
commit d7ecaa8db0
3 changed files with 39 additions and 2 deletions

View File

@@ -142,6 +142,20 @@ public class DefaultCrudMethodsUnitTests {
RepositoryWithDeleteMethodForEntityOverloaded.class.getMethod("delete", Domain.class));
}
/**
* @see DATACMNS-619
*/
@Test
public void exposedMethodsAreAccessible() {
CrudMethods methods = getMethodsFor(RepositoryWithAllCrudMethodOverloaded.class);
assertThat(methods.getSaveMethod().isAccessible(), is(true));
assertThat(methods.getDeleteMethod().isAccessible(), is(true));
assertThat(methods.getFindAllMethod().isAccessible(), is(true));
assertThat(methods.getFindOneMethod().isAccessible(), is(true));
}
private static CrudMethods getMethodsFor(Class<?> repositoryInterface) {
RepositoryMetadata metadata = new DefaultRepositoryMetadata(repositoryInterface);