| @WithAnnotations currently used to filter out that should not be wrapped with validation proxy is not checking for annotations on implemented interfaces and on super classes. Hence in cases like:
@ValidateOnExecution(type = ExecutableType.ALL)
public interface ShipmentService {
public void findShipment(@NotNull String id);
}
public class ShipmentServiceImpl implements ShipmentService {
@Override
public void findShipment(String id) {
}
}
ShipmentServiceImpl will not be proxied and no validation will be performed on its method calls. a discussion from weld-dev mailing list has some additional information (could be found here). Based on this we need to remove the usage of this annotation and add our own filter. |