Re: Using registry in a factory
I tried injecting an ObjectProvider into my AppModule buildService method, but it doesn't work. Tapestry reports that Service id "ObjectLocator" isn't defined by any module. I see that the MasterObjectProvider is available, but I don't think that's what I want. Here's my code: static public ServiceFactory buildServiceFactory(@InjectService("ObjectLocator") ObjectLocator objectLocator) throws Exception { } Any suggestions? - Original Message From: Howard Lewis Ship <[EMAIL PROTECTED]> To: Tapestry users Sent: Wednesday, May 16, 2007 2:55:44 PM Subject: Re: Using registry in a factory You can't get the Registry, but you can get an ObjectLocator, which includes all the key methods of Registry. This can be injected into your ServiceFactory implementation. On 5/16/07, Mark Addleman <[EMAIL PROTECTED]> wrote: > > I'd like to use tapestry-ioc outside the context of a web app but I'm > running into a conceptual problem. I need to create and destroy objects in > response to asynchronous events, so I've defined the following interface: > > public interface ServiceFactory > { >public Service createService(Registry registry); > } > > I pass the registry object so the service factory can look up all the > necessary services in order to construct the particular service. > > I'd like the event publisher to be in the Tapestry Registry with the > following interface: > > public interface EventPublisher > { > public void addServiceFactory(ServiceFactory factory); > } > > The problem is, I don't know how to get the registry object into the > EventPublisher's implementation. Ideally, I'd like to inject the Registry > into the EventPublisherImpl's constructor, but I know that's impossible > under 5.0.4's implementation. What do you think about enhancing injection > to support this kind of bootstrapping? > -- Howard M. Lewis Ship TWD Consulting, Inc. Independent J2EE / Open-Source Java Consultant Creator and PMC Chair, Apache Tapestry Creator, Apache HiveMind Professional Tapestry training, mentoring, support and project work. http://howardlewisship.com
Re: Using registry in a factory
You can't get the Registry, but you can get an ObjectLocator, which includes all the key methods of Registry. This can be injected into your ServiceFactory implementation. On 5/16/07, Mark Addleman <[EMAIL PROTECTED]> wrote: I'd like to use tapestry-ioc outside the context of a web app but I'm running into a conceptual problem. I need to create and destroy objects in response to asynchronous events, so I've defined the following interface: public interface ServiceFactory { public Service createService(Registry registry); } I pass the registry object so the service factory can look up all the necessary services in order to construct the particular service. I'd like the event publisher to be in the Tapestry Registry with the following interface: public interface EventPublisher { public void addServiceFactory(ServiceFactory factory); } The problem is, I don't know how to get the registry object into the EventPublisher's implementation. Ideally, I'd like to inject the Registry into the EventPublisherImpl's constructor, but I know that's impossible under 5.0.4's implementation. What do you think about enhancing injection to support this kind of bootstrapping? -- Howard M. Lewis Ship TWD Consulting, Inc. Independent J2EE / Open-Source Java Consultant Creator and PMC Chair, Apache Tapestry Creator, Apache HiveMind Professional Tapestry training, mentoring, support and project work. http://howardlewisship.com
Using registry in a factory
I'd like to use tapestry-ioc outside the context of a web app but I'm running into a conceptual problem. I need to create and destroy objects in response to asynchronous events, so I've defined the following interface: public interface ServiceFactory { public Service createService(Registry registry); } I pass the registry object so the service factory can look up all the necessary services in order to construct the particular service. I'd like the event publisher to be in the Tapestry Registry with the following interface: public interface EventPublisher { public void addServiceFactory(ServiceFactory factory); } The problem is, I don't know how to get the registry object into the EventPublisher's implementation. Ideally, I'd like to inject the Registry into the EventPublisherImpl's constructor, but I know that's impossible under 5.0.4's implementation. What do you think about enhancing injection to support this kind of bootstrapping?