[ https://issues.apache.org/jira/browse/TAP5-1313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922525#action_12922525 ]
Tom van Dijk edited comment on TAP5-1313 at 10/21/10 4:37 PM: -------------------------------------------------------------- It appears I also need to add Dynamic contributions (basically, this allows modules that create dynamic services to also contribute configurations to them) I'll get on it. It also seems a ObjectLocator.getService(Class serviceImplementation, Class... markers) is very useful. I added both things, you can see the result on my git at git://hetdiana.homeip.net/tapestry5.git (branches iocmod3 and hibmod) was (Author: tvandijk): It appears I also need to add Dynamic contributions (basically, this allows modules that create dynamic services to also contribute configurations to them) I'll get on it. It also seems a ObjectLocator.getService(Class serviceImplementation, Class... markers) is very useful. > Allow dynamic services to be created based on configuration > ----------------------------------------------------------- > > Key: TAP5-1313 > URL: https://issues.apache.org/jira/browse/TAP5-1313 > Project: Tapestry 5 > Issue Type: New Feature > Components: tapestry-ioc > Affects Versions: 5.2.2 > Reporter: Tom van Dijk > > Dynamic services are services that are not defined at compile-time, but at > runtime, just before performing Registry startup. > Dynamic services are a useful concept for the implementation of a module that > allows for multiple Hibernate databases. Other modules can contribute markers > to the Hibernate module. The Hibernate module will then create the set of > Hibernate services (HibernateSessionSource, HibernateSessionManager, Session, > etc) with marker annotations and service ids based on the configuration. > These services can be further configured with contributions, e.g. if there > are databases with markers "One" and "Two", these could cause > HibernateEntityPackageManagerOne and HibernateEntityPackageManagerTwo to be > created, which can be configured with contributors > contributeHibernateEntityPackageManagerOne() and > contributeHibernateEntityPackageManagerTwo. > I propose dynamic services as one of the possible solutions for allowing > services to be created after initial setup. The advantage of this method is > that these services can be injected directly, without using indirect > constructs such as object providers, which have the disadvantage of not being > able to use the service lifecycle management Tapestry offers. It is also > easier and more intuitive to contribute to each individual service using the > standard service mechanisms in Tapestry rather than an indirect method, for > example supplying the entire configuration for all services to a hypothetical > HibernateObjectsSource or HibernateConfiguration service. > Dynamic services have to be added prior to validateContributeDefs() in the > constructor of the Registry service. I will include a patch with the > implementation of this feature and a test case. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.