how does the code know the injection point requires a URI type?
On Dec 11, 2011 10:57 AM, "Simone Tripodi" <[email protected]> wrote:

> Hi all guys,
>
> I've been maintaining a Guice extension, trying to expand the Names
> class adding properties expansions behavior, i.e. a properties file
> like
>
> project.name=google-guice
> project.url=http://code.google.com/p/${project.name}/
>
> would bind properties in the way that when requesting the injection of
>
>    @Named( "project.url" ) String projectUrl;
>
> Guice resolves correctly the variables.
>
> My issue comes with missing bindings, because properties binding works
> with a Provider<String> that resolves variables from the Injector:
>
>                LinkedBindingBuilder<String> builder = bind( get(
> String.class, named( name ) ) ); // identical to Names class
>
>                PropertiesResolverProvider formatter = new
> PropertiesResolverProvider( value );
>                if ( formatter.containsKeys() )
>                {
>                    builder.toProvider( guicify( formatter ) );
>                }
>                else
>                {
>                    builder.toInstance( value );
>                }
>
> when binding to a constant, using `toInstance( value )`, type
> conversion works like a charm; when binding to a provider, using
> `toProvider( guicify( formatter ) )`, it the target injection point
> would be
>
>    @Named( "project.url" ) URI projectUrl;
>
> Guice throws an exception:
>
>  No implementation for java.net.URI annotated with
> @com.google.inject.name.Named(value=project.url) was bound.
>
> Can anyone kindly help me on understanding how to provide missing binding?
> For everyone interested on read the source code, it is OSS on GitHub[1].
>
> Many thanks in advance, all the best!
> -Simo
>
> [1] https://github.com/99soft/rocoto
>
> http://people.apache.org/~simonetripodi/
> http://simonetripodi.livejournal.com/
> http://twitter.com/simonetripodi
> http://www.99soft.org/
>
> --
> 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.
>
>

-- 
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.

Reply via email to