diff --git a/pom.xml b/pom.xml
index 383ed6186d..e0e4646e9b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -485,6 +485,7 @@
see https://blogs.oracle.com/darcy/entry/bootclasspath_older_source
-->
-Xlint:unchecked,-options
+ -parameters
@@ -757,7 +758,7 @@
4.0
- 1.4.0
+ 1.4.2
9.2.10.v20150310
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupCollectionResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupCollectionResource.java
index 0683a1d17b..4c111e6707 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupCollectionResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupCollectionResource.java
@@ -71,7 +71,7 @@ public class GroupCollectionResource {
/**
* Creates a new group.
- * @param groupDto The group to be created.
+ * @param group The group to be created.
* @return A response with the link to the new group (if created successfully).
*/
@POST
@@ -86,9 +86,9 @@ public class GroupCollectionResource {
})
@TypeHint(TypeHint.NO_CONTENT.class)
@ResponseHeaders(@ResponseHeader(name = "Location", description = "uri to the created group"))
- public Response create(@Valid @Named("group") GroupDto groupDto) {
- return adapter.create(groupDto,
- () -> dtoToGroupMapper.map(groupDto),
- group -> resourceLinks.group().self(group.getName()));
+ public Response create(@Valid GroupDto group) {
+ return adapter.create(group,
+ () -> dtoToGroupMapper.map(group),
+ g -> resourceLinks.group().self(g.getName()));
}
}
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupResource.java
index 88954212f6..6d0b921d02 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupResource.java
@@ -83,7 +83,7 @@ public class GroupResource {
* Note: This method requires "group" privilege.
*
* @param name name of the group to be modified
- * @param groupDto group object to modify
+ * @param group group object to modify
*/
@PUT
@Path("")
@@ -97,7 +97,7 @@ public class GroupResource {
@ResponseCode(code = 500, condition = "internal server error")
})
@TypeHint(TypeHint.NO_CONTENT.class)
- public Response update(@PathParam("id") String name, @Valid @Named("group") GroupDto groupDto) {
- return adapter.update(name, existing -> dtoToGroupMapper.map(groupDto));
+ public Response update(@PathParam("id") String name, @Valid GroupDto group) {
+ return adapter.update(name, existing -> dtoToGroupMapper.map(group));
}
}
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeResource.java
index 62917da8b0..20fc35923c 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeResource.java
@@ -74,8 +74,8 @@ public class MeResource {
})
@TypeHint(TypeHint.NO_CONTENT.class)
@Consumes(VndMediaType.PASSWORD_CHANGE)
- public Response changePassword(@Valid @Named("passwordChange") PasswordChangeDto passwordChangeDto) {
- userManager.changePasswordForLoggedInUser(passwordService.encryptPassword(passwordChangeDto.getOldPassword()), passwordService.encryptPassword(passwordChangeDto.getNewPassword()));
+ public Response changePassword(@Valid PasswordChangeDto passwordChange) {
+ userManager.changePasswordForLoggedInUser(passwordService.encryptPassword(passwordChange.getOldPassword()), passwordService.encryptPassword(passwordChange.getNewPassword()));
return Response.noContent().build();
}
}
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java
index 9359746f1e..9335e2b2df 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/PermissionRootResource.java
@@ -74,7 +74,7 @@ public class PermissionRootResource {
@TypeHint(TypeHint.NO_CONTENT.class)
@Consumes(VndMediaType.PERMISSION)
@Path("")
- public Response create(@PathParam("namespace") String namespace, @PathParam("name") String name,@Valid @Named("permission") PermissionDto permission) {
+ public Response create(@PathParam("namespace") String namespace, @PathParam("name") String name,@Valid PermissionDto permission) {
log.info("try to add new permission: {}", permission);
Repository repository = load(namespace, name);
RepositoryPermissions.permissionWrite(repository).check();
@@ -161,7 +161,7 @@ public class PermissionRootResource {
public Response update(@PathParam("namespace") String namespace,
@PathParam("name") String name,
@PathParam("permission-name") String permissionName,
- @Valid @Named("permission") PermissionDto permission) {
+ @Valid PermissionDto permission) {
log.info("try to update the permission with name: {}. the modified permission is: {}", permissionName, permission);
Repository repository = load(namespace, name);
RepositoryPermissions.permissionWrite(repository).check();
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java
index d109714ebe..ad9c29f14e 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryCollectionResource.java
@@ -72,7 +72,7 @@ public class RepositoryCollectionResource {
* Note: This method requires "repository" privilege. The namespace of the given repository will
* be ignored and set by the configured namespace strategy.
*
- * @param repositoryDto The repository to be created.
+ * @param repository The repository to be created.
* @return A response with the link to the new repository (if created successfully).
*/
@POST
@@ -87,9 +87,9 @@ public class RepositoryCollectionResource {
})
@TypeHint(TypeHint.NO_CONTENT.class)
@ResponseHeaders(@ResponseHeader(name = "Location", description = "uri to the created repository"))
- public Response create(@Valid @Named("repository") RepositoryDto repositoryDto) {
- return adapter.create(repositoryDto,
- () -> dtoToRepositoryMapper.map(repositoryDto, null),
- repository -> resourceLinks.repository().self(repository.getNamespace(), repository.getName()));
+ public Response create(@Valid RepositoryDto repository) {
+ return adapter.create(repository,
+ () -> dtoToRepositoryMapper.map(repository, null),
+ r -> resourceLinks.repository().self(r.getNamespace(), r.getName()));
}
}
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java
index 75615784ba..f65235db0b 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/RepositoryResource.java
@@ -126,7 +126,7 @@ public class RepositoryResource {
*
* @param namespace the namespace of the repository to be modified
* @param name the name of the repository to be modified
- * @param repositoryDto repository object to modify
+ * @param repository repository object to modify
*/
@PUT
@Path("")
@@ -140,10 +140,10 @@ public class RepositoryResource {
@ResponseCode(code = 500, condition = "internal server error")
})
@TypeHint(TypeHint.NO_CONTENT.class)
- public Response update(@PathParam("namespace") String namespace, @PathParam("name") String name, @Valid @Named("repository") RepositoryDto repositoryDto) {
+ public Response update(@PathParam("namespace") String namespace, @PathParam("name") String name, @Valid RepositoryDto repository) {
return adapter.update(
loadBy(namespace, name),
- existing -> processUpdate(repositoryDto, existing),
+ existing -> processUpdate(repository, existing),
nameAndNamespaceStaysTheSame(namespace, name)
);
}
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ResourceParameterNameProvider.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ResourceParameterNameProvider.java
deleted file mode 100644
index 986a3ca652..0000000000
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/ResourceParameterNameProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package sonia.scm.api.v2.resources;
-
-import javax.inject.Named;
-import javax.validation.ParameterNameProvider;
-import javax.ws.rs.ext.Provider;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.lang.reflect.Parameter;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-@Provider
-public class ResourceParameterNameProvider implements ParameterNameProvider {
- @Override
- public List getParameterNames(Constructor> constructor) {
- return Arrays.stream(constructor.getParameters()).map(this::getParameterName).collect(Collectors.toList());
- }
-
- @Override
- public List getParameterNames(Method method) {
- return Arrays.stream(method.getParameters()).map(this::getParameterName).collect(Collectors.toList());
- }
-
- private String getParameterName(Parameter parameter) {
- return Optional.ofNullable(parameter.getAnnotation(Named.class)).map(Named::value).orElse(parameter.getName());
- }
-}
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java
index c19e6b35ba..a4fe9adb94 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java
@@ -76,7 +76,7 @@ public class UserCollectionResource {
*
* Note: This method requires "user" privilege.
*
- * @param userDto The user to be created.
+ * @param user The user to be created.
* @return A response with the link to the new user (if created successfully).
*/
@POST
@@ -91,7 +91,7 @@ public class UserCollectionResource {
})
@TypeHint(TypeHint.NO_CONTENT.class)
@ResponseHeaders(@ResponseHeader(name = "Location", description = "uri to the created user"))
- public Response create(@Valid @Named("user") UserDto userDto) {
- return adapter.create(userDto, () -> dtoToUserMapper.map(userDto, passwordService.encryptPassword(userDto.getPassword())), user -> resourceLinks.user().self(user.getName()));
+ public Response create(@Valid UserDto user) {
+ return adapter.create(user, () -> dtoToUserMapper.map(user, passwordService.encryptPassword(user.getPassword())), u -> resourceLinks.user().self(u.getName()));
}
}
diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserResource.java
index 565cc48eb9..0076d057ca 100644
--- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserResource.java
+++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserResource.java
@@ -87,7 +87,7 @@ public class UserResource {
* Note: This method requires "user" privilege.
*
* @param name name of the user to be modified
- * @param userDto user object to modify
+ * @param user user object to modify
*/
@PUT
@Path("")
@@ -101,8 +101,8 @@ public class UserResource {
@ResponseCode(code = 500, condition = "internal server error")
})
@TypeHint(TypeHint.NO_CONTENT.class)
- public Response update(@PathParam("id") String name, @Valid @Named("user") UserDto userDto) {
- return adapter.update(name, existing -> dtoToUserMapper.map(userDto, existing.getPassword()));
+ public Response update(@PathParam("id") String name, @Valid UserDto user) {
+ return adapter.update(name, existing -> dtoToUserMapper.map(user, existing.getPassword()));
}
/**
@@ -114,7 +114,7 @@ public class UserResource {
* Note: This method requires "user:changeOwnPassword" privilege to modify the own password.
*
* @param name name of the user to be modified
- * @param passwordOverwriteDto change password object to modify password. the old password is here not required
+ * @param passwordOverwrite change password object to modify password. the old password is here not required
*/
@PUT
@Path("password")
@@ -128,8 +128,8 @@ public class UserResource {
@ResponseCode(code = 500, condition = "internal server error")
})
@TypeHint(TypeHint.NO_CONTENT.class)
- public Response overwritePassword(@PathParam("id") String name, @Valid @Named("passwordChange") PasswordOverwriteDto passwordOverwriteDto) {
- userManager.overwritePassword(name, passwordService.encryptPassword(passwordOverwriteDto.getNewPassword()));
+ public Response overwritePassword(@PathParam("id") String name, @Valid PasswordOverwriteDto passwordOverwrite) {
+ userManager.overwritePassword(name, passwordService.encryptPassword(passwordOverwrite.getNewPassword()));
return Response.noContent().build();
}
}
diff --git a/scm-webapp/src/main/resources/META-INF/validation.xml b/scm-webapp/src/main/resources/META-INF/validation.xml
index b6feda4713..337bbff26e 100644
--- a/scm-webapp/src/main/resources/META-INF/validation.xml
+++ b/scm-webapp/src/main/resources/META-INF/validation.xml
@@ -1,14 +1,9 @@
-
- org.hibernate.validator.HibernateValidator
- org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator
- org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver
- org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl
- sonia.scm.api.v2.resources.ResourceParameterNameProvider
+
+ org.hibernate.validator.parameternameprovider.ReflectionParameterNameProvider
+