Hi, I am exploring the possibilities of injecting Symbols into my service. While this works:
public class RestEasyClientImpl implements RestEasyClient { private Logger logger; private Integer configurationServiceConnectionTimeoutMillis; private Integer configurationServiceSocketTimeoutMillis; public RestEasyClientImpl(Logger logger, @Symbol("configuration.service.connectionTimeoutMillis") Integer configurationServiceConnectionTimeoutMillis, @Symbol("configuration.service.socketTimeoutMillis") Integer configurationServiceSocketTimeoutMillis) { this.logger = logger; this.configurationServiceConnectionTimeoutMillis = configurationServiceConnectionTimeoutMillis; this.configurationServiceSocketTimeoutMillis = configurationServiceSocketTimeoutMillis; ... } this doesn't: public class RestEasyClientImpl implements RestEasyClient { private Logger logger; @Symbol("configuration.service.connectionTimeoutMillis") private Integer configurationServiceConnectionTimeoutMillis; @Symbol("configuration.service.socketTimeoutMillis") private Integer configurationServiceSocketTimeoutMillis; public RestEasyClientImpl(Logger logger) { this.logger = logger; logger.info("configuration.service.connectionTimeoutMillis: {}", configurationServiceConnectionTimeoutMillis); logger.info("configuration.service.socketTimeoutMillis: {}", configurationServiceSocketTimeoutMillis); ... } Both configurationServiceConnectionTimeoutMillis and configurationServiceSocketTimeoutMillis are null in this second case of symbol field injection. I would like to use the second approach becouse it is cleaner, it doesn't clutter the method/constructor parameter list. Is there a way of injecting symbol values into fields of the service or is the constructor injection point my only option? Does this http://tapestry.apache.org/defining-tapestry-ioc-services.html (Field injection) apply for Symbols too, therefore "I am doomed"? -borut