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/inject/spi/TypeConverterBinding.html 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 at > http://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.
