Expand my Community achievements bar.

Enhance your AEM Assets & Boost Your Development: [AEM Gems | June 19, 2024] Improving the Developer Experience with New APIs and Events

Custom Java AEM annotation to do validations.

Avatar

Level 1

Hi everyone,

 

I created a custom annotation that I would like when a method annotated with it is called, it automatically calls a service also created by me.

My Servlet

@MyValidator
public void doPost(@Nonnull SlingHttpServletRequest request, @Nonnull SlingHttpServletResponse response) throws ServletException, IOException {

 

My Annotation

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyValidator {
}

 

My Service

@Component
@Service(RecaptchaValidateService.class)
public class ValidatorServiceImpl implements RecaptchaValidateService {

//I will need to inject other services like other AEM service
@Reference
private HttpRequestService requestService;

@Override
public void validate() {
...get first the SlingHttpServletRequest and then validate the request
if (isNotValid) throw new RuntimeException("my message")
}
}



The idea is to make a validation annotation. But I don't know how to add a listener for this annotation in OSGi.

Do you have any idea how I can do it?

1 Reply