Hi, Simo. You're welcome. I think you just found a bug in the documentation.
convertToTypes(Matchers.only(DateTime.class), new DateTimeConverter ()); should be convertToTypes(Matchers.only(TypeLiteral.get(DateTime.class)), new DateTimeConverter()); or something similar. Cheers Alen On Jan 6, 10:27 pm, Simone Tripodi <[email protected]> wrote: > Hi Alen, > thank a lot, it is nicely working :) > I got in confusion reading the javadoc > here:http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/injec... > Thanks once again, your help is more thank appreciated! > All the best, > Simo > > > > On Wed, Jan 6, 2010 at 10:12 PM, Alen Vrečko <[email protected]> wrote: > > Hi, > > > Your Matcher is wrong. You need to match TypeLiteral, but you are > > matching a Class. > > > Change Matchers.only(URL.class) to Matchers.only(TypeLiteral.get > > (URL.class)). > > > Alternatively you could make a utility method url and do something > > like > > > .annotatedWith(named("url")).to(url("http://code.google.com/")); > > > Cheers > > Alen > > > On Jan 6, 7:37 pm, Simone Tripodi <[email protected]> wrote: > >> Hi all guys, > >> I'm just trying to use the Binder#convertToTypes to convert URLs in that > >> way: > > >> @Override > >> protected void configure() { > >> this.binder().convertToTypes(Matchers.only(URL.class), new > >> TypeConverter { > > >> public Object convert(String value, TypeLiteral<?> toType) { > >> try { > >> return new URL(value); > >> } catch (URISyntaxException e) { > >> throw new RuntimeException("String vaue '" > >> + value > >> + "' is not a valid URL", e); > >> } > >> }}); > > >> } > > >> then I annotate the POJO field: > > >> class FakeConfig { > > >> @Inject > >> @Named("url") > >> private URL url; > > >> .... > > >> } > > >> and finally in different module (it comes from a 3rd part developed > >> application): > > >> Injector injector = Guice.createInjector( > >> new AbstractModule() { > >> @Override > >> protected void configure() { > >> this.bindConstant() > >> .annotatedWith(Names.named("url")) > >> .to("http://code.google.com/"); > >> } > >> }); > > >> I get the following error: > > >> com.google.inject.ConfigurationException: Guice configuration errors: > > >> 1) No implementation for java.net.URL annotated with > >> @com.google.inject.name.Named(value=url) was bound. > >> while locating java.net.URL annotated with > >> @com.google.inject.name.Named(value=url) > > >> Am I misunderstanding or missing something? Thanks in advance, any > >> hint is very appreciated. > >> Best regards, > >> Simo > > >> --http://www.google.com/profiles/simone.tripodi > > > -- > > You received this message because you are subscribed to the Google Groups > > "google-guice" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/google-guice?hl=en. > > --http://www.google.com/profiles/simone.tripodi
-- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
