use a regular guice Matcher [1], I guess this would do the trick: import static com.google.inject.matcher.Matchers.annotatedWith;
// ... protected void configure() { convertToTypes(annotatedWith(Names.named("YOUR_KEY")), typeConverter); } jordi [1] http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/matcher/Matchers.html On Tue, Jan 31, 2012 at 5:20 PM, Eyal Golan <egola...@gmail.com> wrote: > Thanks for the inputs. > The code example is what I needed. > However, using it will convert all Date classes that get injected. > Is there a way to create a converter only for parameters annotated with > Named ? > > > Eyal Golan > egola...@gmail.com > > Visit: http://jvdrums.sourceforge.net/ > LinkedIn: http://www.linkedin.com/in/egolan74 > Skype: egolan74 > > P Save a tree. Please don't print this e-mail unless it's really necessary > > > > On Tue, Jan 31, 2012 at 5:55 PM, Tim Peierls <t...@peierls.net> wrote: > >> I recommend using Rocoto, too, but here's an example that shows how to do >> it yourself, expressed as a JUnit test: >> >> http://pastebin.com/mWx9xG4M >> >> --tim >> >> >> On Tue, Jan 31, 2012 at 10:10 AM, Stuart McCulloch <mccu...@gmail.com>wrote: >> >>> On 31 Jan 2012, at 14:42, egolan wrote: >>> >>> > Hi, >>> > I am using Names.bindProperties(binder(), properties); where my >>> > properties are taken from a pre-initialized configuration. >>> > One of the properties represent java.util.Date. >>> > We have a simple date format class that sets the value: >>> > SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy >>> > HH:mm:ss"); >>> > when I just use the Names binding, I get the Guice creation exception >>> > that the named field was not bound. >>> >>> Names.bindProperties(...) creates constant bindings for the properties >>> map - constant bindings are converted from Strings to actual instances by >>> TypeConverters: >>> >>> >>> http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/spi/TypeConverter.html >>> >>> Guice provides built-in TypeConverters for primitive types, enums, and >>> class literals - but not for Date, hence the creation exception. However, >>> you can add your own: >>> >>> >>> http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/Binder.html#convertToTypes(com.google.inject.matcher.Matcher%3C?%20super%20com.google.inject.TypeLiteral%3C?%3E%3E,%20com.google.inject.spi.TypeConverter) >>> >>> See also http://99soft.github.com/rocoto/ which provides a range of >>> useful TypeConverters, including one for Date: >>> http://99soft.github.com/rocoto/converters.html >>> >>> > This is my injected constructor: >>> > >>> > @Inject >>> > public CoreFetchOperationsImpl(@Named("MpsQueryFilter") String >>> > genericQuery, @Named("MpsIterationBulkSize")int bulkSizeFetch, >>> > @Named("MpsLastProcessingTime") Date lastProcessingTime) >>> > >>> > In order to solve it, I am getting from the pre-initialized >>> > configuration the concrete Date as string, parse it using the format >>> > and bind specifically: >>> > >>> bind(Date.class).annotatedWith(Names.named("MpsLastProcessingTime")).toInstance(parsedDate)); >>> > >>> > Is there a better way? >>> > >>> > Thanks >>> > >>> > -- >>> > You received this message because you are subscribed to the Google >>> Groups "google-guice" group. >>> > To post to this group, send email to google-guice@googlegroups.com. >>> > To unsubscribe from this group, send email to >>> google-guice+unsubscr...@googlegroups.com. >>> > 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 google-guice@googlegroups.com. >>> To unsubscribe from this group, send email to >>> google-guice+unsubscr...@googlegroups.com. >>> 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 google-guice@googlegroups.com. >> To unsubscribe from this group, send email to >> google-guice+unsubscr...@googlegroups.com. >> 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 google-guice@googlegroups.com. > To unsubscribe from this group, send email to > google-guice+unsubscr...@googlegroups.com. > 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 google-guice@googlegroups.com. To unsubscribe from this group, send email to google-guice+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.