HubSpot / dropwizard-guice

Adds support for Guice to Dropwizard
Apache License 2.0
266 stars 95 forks source link

AutoConfig not finding all resources in package #42

Open flavor8 opened 9 years ago

flavor8 commented 9 years ago

I have 7 resources in a particular package, all of which are annotated with import javax.ws.rs.Path;

Two of the resources are not being picked up by AutoConfig. With my debugger active on the addResources method in AutoConfig, I can see that the Reflections library completely misses them, but I don't know why.

dirkraft commented 9 years ago

I am having a similar problem. Are you also on Java8 and dropwizard/dropwizard-guice 0.8.0?

dirkraft commented 9 years ago

Well this seems to work so far at least for picking up @Path-annotated resources. Not sure yet if something else will fall out.

    @Override
    public void run(MyConfiguration configuration, Environment environment) throws Exception {
        environment.jersey().packages(getClass().getPackage().getName());
    }

For the record, my versions

    compile 'io.dropwizard:dropwizard-core:0.8.0'
    compile 'com.hubspot.dropwizard:dropwizard-guice:0.8.0'

and I'm on java8.

jhaber commented 9 years ago

We're on the latest version of Reflections, I'll try to see if it's a Java 8 incompatibility

jhaber commented 9 years ago

We've been seeing this issue intermittently as well, we're testing with Javassist 3.19.0-GA now to see if it fixes the issue by any chance

eyce9000 commented 8 years ago

I get this issue with java 8 if any of the methods in the resource contain short-hand lambda expressions.

jhaber commented 8 years ago

3.19.0-GA didn't do the trick, but maybe 3.20.0-GA will. (The fact that it affects classes with lambdas suggests it's a Javassist issue)

t0tec commented 8 years ago

I have an issue with this also (version 1.0.0). Problem with registering filters (dropwizard-example in DateNotSpecifiedFilter) with the use of @Provider annotation.

and tasks don't get automatically added. Somehow still need to do the following: environment.admin().addTask(guiceBundle.getInjector().getInstance(EchoTask.class));