[
https://issues.apache.org/jira/browse/TAP5-1313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tom van Dijk updated TAP5-1313:
-------------------------------
Attachment: (was: 0001-Dynamic-services.diff)
> 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
> Attachments: 0001-Dynamic-services.patch,
> 0002-Include-contributions.patch,
> 0003-Added-getService-with-markers-to-ObjectLocator.patch,
> Dynamic-services-and-contributions.diff
>
>
> 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.