Guice module integration issue with REST I have define one AOP guice based 
module, but when I tried to integrate with REST code, 
methodInvocation.proceed retun null. What might be best way to solve this 
issue.

Define AOP Guice based module as below

@Retention <https://github.com/Retention>(RetentionPolicy.RUNTIME)
@Target <https://github.com/Target>(ElementType.METHOD)
@interface <https://github.com/interface> NotOnWeekends {}
public class WeekendBlocker implements MethodInterceptor {

public Object invoke(MethodInvocation invocation) throws Throwable {

Calendar today = new GregorianCalendar();

if (today.getDisplayName(DAY_OF_WEEK, LONG, ENGLISH).startsWith("S")) {

  throw new IllegalStateException(

      invocation.getMethod().getName() + " not allowed on weekends!");
}

return invocation.proceed();

}

}

public class NotOnWeekendsModule extends AbstractModule {
protected void configure() {

bindInterceptor(Matchers.any(), Matchers.annotatedWith(NotOnWeekends.class), 

    new WeekendBlocker());

}
}

But I tried to Integrate this with my REST API

public class WorkerBean implements Worker {

@Autowired
private WorkerRepository workerRepository;

@Override
@NotOnWeekends
public Collection<Worker> findAll() {

    Collection<Worker> workers = workerRepository.findAll();

    return workers;
}

@RestController <https://github.com/RestController>
public class WorkerController {

@RequestMapping(
        value = "/api/workers",
        method = RequestMethod.GET,
        produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Collection<Worker>> getWorkers() {


    Worker worker = Guice.createInjector(new 
NotOnWeekendsModule()).getInstance(Worker.class);

    Collection<Worker> worker = worker.findAll(); // return null 

    ....
}

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/cb641bf9-7ada-4021-aa73-20cfe1e15787%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to