I don't know that's why I am asking, it does work with constants!
-Simo

http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/



On Sun, Dec 11, 2011 at 6:29 PM, Fred Faber <[email protected]> wrote:
> 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.

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