I have some expertise in Tapestry, and I side with Chris. An ASO is a global object that is associated with a particular user, typically via the user's HttpSession. It doesn't have a service interface, as it is typically a POJO. Because it doesn't have an interface, Tapesty doesn't create a proxy for the ASO.
In most cases, the ASO is a true POJO (a true POJO has a public non-arguments constructor) in which case Tapestry can manage the ASO entirely, creating it as necessary. To be honest, since the ASO code was written, Tapestry has gotten smarter, and could probably operate on a more complicated constructor using the normal autobuild approach. This would allow injection of services into an ASO ... which is dangerous, because service proxies are not serializable, and an ASO typically must be. You can also explicitly define the ASO, which gives you an opportunity to provide the code to instantiate the ASO. This is what you currently do if your ASO doesn't have a simple constructor. If you need to access an ASO from a component, you use the @ApplicationState annotation, which marks a field as being linked to an ASO. If a service needs access to an ASO, it must inject the ApplicationState, it must obtain the ASO from the ApplicationStateManager. http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry/services/ApplicationStateManager.html On 10/15/07, Peter Stavrinides <[EMAIL PROTECTED]> wrote: > > Hi Chris > > I am no expert on T5, but strongly disagree with you. > > Peter > > Chris Lewis wrote: > > Hi Peter > > > > 1) I think the general opinion on this is that a service and an aso > > are completely different animals. I can't think of a situation where > > I'd ever want an aso to be a service (or vice versa), but that's just > > me. If there is a way to do this, someone else will need to chime in. > > > > 2) @Inject it. Assuming you bound or built your service, you can > > simply inject it using @Inject as the general type (usually an > > interface) of object, and Tapestry IoC will resolve it for you. > > > > sincerely, > > chris > > > > Peter Stavrinides wrote: > >> Hi all, > >> > >> Following on from a previous post on this subject I have some > >> questions on Tapestry 5 IoC: > >> > >> 1. How do you register an ASO as a service if you have to provide > >> arguments to the constructor (i.e. you cannot use @ApplicationState > >> in this case). > >> > >> 2. How do you retrieve a service object that has been contributed to > >> the framework > >> > >> Thanks > >> Peter > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Howard M. Lewis Ship Partner and Senior Architect at Feature50 Creator Apache Tapestry and Apache HiveMind