Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 27 05:22
    ponyjoy closed #2456
  • Nov 26 12:54
    imeszaros commented #2467
  • Nov 25 15:26
    jknack commented #2467
  • Nov 25 13:48
    imeszaros edited #2468
  • Nov 25 13:47
    imeszaros opened #2468
  • Nov 25 12:39
    imeszaros opened #2467
  • Nov 19 10:48
    moh-sushi commented #2466
  • Nov 19 09:55
    moh-sushi commented #2466
  • Nov 19 09:54
    moh-sushi commented #2466
  • Nov 19 09:49
    moh-sushi edited #2466
  • Nov 19 09:47
    moh-sushi edited #2466
  • Nov 19 09:46
    moh-sushi opened #2466
  • Nov 18 11:30
    jknack commented #2465
  • Nov 18 09:19
    nikolaosinlight commented #2438
  • Nov 16 17:25
    ifduyue closed #2437
  • Nov 16 15:04
    cbxp synchronize #2448
  • Nov 16 14:48
    cbxp edited #2465
  • Nov 16 14:47
    cbxp edited #2465
  • Nov 16 14:46
    cbxp edited #2465
  • Nov 16 14:46
    cbxp edited #2465
Edgar Espina
@jknack
you need two
one for each datasourcce
decorator(new TransactionalRequest(“db.first"));
Nguyen Huu Tuan
@snowyukischnee
How can I inject some class instance using GuiceModule?
Edgar Espina
@jknack
Hmm?
Nguyen Huu Tuan
@snowyukischnee
I've created a class which extends AbstractModule and put it in
install(new GuiceModule(new MyModule()))
class MyModule {
  configure() {
    bind(Repo.class).to(Impl.class);
  }
}
and I'm inject Repo.class into the mvc router, and it also throws NPE
Edgar Espina
@jknack
show me the controller
it should works that is plain Guice
Nguyen Huu Tuan
@snowyukischnee
class Router {
  @Inject
  Repo repo;

  @Path("test")
  @GET 
  String test() {
    repo.save(new TestObj());
    return "Hello";
  }
}
Edgar Espina
@jknack
show me your App where did you add the Router
Nguyen Huu Tuan
@snowyukischnee
class Repo {
  @Inject
  @Named("db.first")
  EntityManager em;

  public void save(TestObj obj) {
    em.persist(obj);
  }
}
Edgar Espina
@jknack
show me your App where did you add the Router
Nguyen Huu Tuan
@snowyukischnee
{
  mount(new RouterDef());
}
class RouterDef extends Jooby {
  {
    mvc(new Router());
  }
}
Edgar Espina
@jknack
That is wrong
Nguyen Huu Tuan
@snowyukischnee
what should i do?
Edgar Espina
@jknack
class RouterDef extends Jooby {
  {
    mvc(Router.class);
  }
}
you need to let Guice to give you an instance of Router
Nguyen Huu Tuan
@snowyukischnee
oh
Edgar Espina
@jknack
is you created an instance manually, you will get null for any dep
Nguyen Huu Tuan
@snowyukischnee
oh i see
thanks
Edgar Espina
@jknack
cool
Nguyen Huu Tuan
@snowyukischnee

@jknack
if i define the routes and mount it using mount(), then this will not works, it throws io.jooby.exception.RegistryException: Service not found

class RouterDef extends Jooby {
  {
    mvc(Router.class);
  }
}
{
  install(new GuiceModule());
  mount(new RouterDef());
}

but this works

  {
    install(new GuiceModule());
    mvc(Router.class);
  }
Nguyen Huu Tuan
@snowyukischnee
does di was not work under mount() ?
Nguyen Huu Tuan
@snowyukischnee
and, how can i use guice injection with decorator?
Pascal Le Merrer
@PascalLeMerrer
Hi. I'm new to Jooby, it looks very promising. The home page content however looks like it was spammed with links without interest.
Mészáros István
@imeszaros
@PascalLeMerrer use https://jooby.io/ instead of jooby.org.
the latter was taken over by a stranger and Edgar was unable to get it back from the provider unfortunately
If you need the docs for Jooby v1.x: https://jooby.io/v1
Pascal Le Merrer
@PascalLeMerrer
Thanks @imeszaros!
Edgar Espina
@jknack
Hi @snowyukischnee, please provide a complete example + stacktrace
Nguyen Huu Tuan
@snowyukischnee

@jknack here is my main app

{
        install(new GuiceModule(
                new DatabaseRepositoryDI(),
                new DomainServiceDI()
        ));
        // database
        final String dbName = "datasource.expr";
        install(new HikariModule(dbName));
        install(new HibernateModule(dbName).scan("com.package.entities"));
        // default error handler
        error(new DefaultHttpErrorHandler());
        // route definitions
        mvc(CustomerRouter.class); // works here
        mount(new RouteDef());
    }

here is RouteDef class

{
        before(ctx -> ctx.setResponseType(MediaType.json));
        path("/customer", () -> {
            mvc(CustomerRouter.class);
        });
    }
@Slf4j
@Singleton
@Tag(name = "Customer")
public class CustomerRouter {
        @Inject
        private MyService myService;

        @Path("/test")
        @GET
        public Object test(Context ctx) throws Exception {
                System.out.println(myService);
                return 1;
        }
}
it throws io.jooby.exception.RegistryException: Service not found if I request to /customer/test, If I request to /test only then it works
also inside DomainServiceDI class
public class DomainServiceDI extends AbstractModule {
    @Override
    protected void configure() {
        bind(MyService.class).to(MyServiceImpl.class).in(Singleton.class);
    }
}
Pascal Le Merrer
@PascalLeMerrer

Hello. I created a basic project with the Console using "create --gradle -k --server=jetty --docker --openapi io.timiiz:server:0.0.1". When I follow the instructions and type ./gradlew joobyRun, it says it cannot find org.gradle.wrapper.GradleWrapperMain. I verified, gradle/wrapper/gradle-wrapper.jar is present. When running gradle without the wrapper, I 've several build errors :

gradle build

Task :compileTestKotlin FAILED
w: Classpath entry points to a non-existent location: /Users/peal6230/Documents/dev/projects/timiiz/io.timiiz
w: Classpath entry points to a non-existent location: server
w: Classpath entry points to a non-existent location: 0.0.1/build/classes/kotlin/main
e: /Users/peal6230/Documents/dev/projects/timiiz/io.timiiz:server:0.0.1/src/test/kotlin/io/timiiz/IntegrationTest.kt: (11, 12): Unresolved reference: App
e: /Users/peal6230/Documents/dev/projects/timiiz/io.timiiz:server:0.0.1/src/test/kotlin/io/timiiz/IntegrationTest.kt: (11, 12): An annotation argument must be a compile-time constant
e: /Users/peal6230/Documents/dev/projects/timiiz/io.timiiz:server:0.0.1/src/test/kotlin/io/timiiz/UnitTest.kt: (12, 29): Unresolved reference: App

I published the project at https://github.com/PascalLeMerrer/jooby-test.

Edgar Espina
@jknack
looks like a bug in the generator
delete/remove the test directory: /Users/peal6230/Documents/dev/projects/timiiz/io.timiiz:server:0.0.1/src/test
hmm also
not sure about the : in project folder
io.timiiz:server:0.0.1
Pascal Le Merrer
@PascalLeMerrer
the project folder is named like this because I understood the generator said the name parameter should be "Application name or coordinates (groupId:artifactId:version)". I was surprised it used this for naming the folder.
Edgar Espina
@jknack
yea think it is another bug
Pascal Le Merrer
@PascalLeMerrer
It's much better when renaming the folder to something more conventional :)
Edgar Espina
@jknack
yea sorry
Pascal Le Merrer
@PascalLeMerrer
no problem, it's very kind of you to develop this project and make it open source
Edgar Espina
@jknack
thank you!
Pascal Le Merrer
@PascalLeMerrer
and to answer so quickly to my question!
Nguyen Huu Tuan
@snowyukischnee
hi @jknack, can you help me this