Hi Mahmut,
you could inject a ApplicationStateManager instead.
In your service:
private ApplicationStateManager stateManager ;
public ApplicationStateManager getStateManager() {
return stateManager;
}
public void setStateManager(ApplicationStateManager stateManager) {
this.stateManager = stateManager;
}
In hivemodule.xml:
<set-object property="stateManager"
value="infrastructure:applicationStateManager"/>
To get access to your ASOs you can do the following:
stateManager.get("name_of_your_aso_in_hivemodule_xml")
stateManager.exists("name_of_your_aso_in_hivemodule_xml")
stateManager.store("name_of_your_aso_in_hivemodule_xml", new_value)
You have to do some casting to get things to work:
((MySessionObject)
stateManager.get("mySessionObject")).method_of_your_object()
I do not know if this is the only / right way to do this. But thats the
way I do it in my services.
Hope this helps,
Gerald
Mahmut Izci wrote:
Hi,
I'm using several engine services in my application and
this services must get access to the application's session object.
In hivemind.xml i defined a session object:
<contribution configuration-id="tapestry.state.ApplicationObjects">
<state-object name="mySessionObject" scope="session">
<create-instance class="com.my.application.MySessionObject"/>
</state-object> </contribution>
Then I injected this into my service:
<service-point id="MyService"
interface="org.apache.tapestry.engine.IEngineService">
<invoke-factory>
<construct class="com.my.application.MyService">
<set-object property="exceptionReporter"
value="infrastructure:requestExceptionReporter"/>
<set-object property="response" value="infrastructure:response"/>
<set-object property="linkFactory"
value="infrastructure:linkFactory"/>
<set-object property="request" value="infrastructure:request"/>
/<set-object property="mySessionObject"
value="app-property:mySessionObject"/>/
</construct>
</invoke-factory>
</service-point>
This session object is always not initialized and is null when I access
it out of my service.
But when i inject the session object into the pages, it is initialized.
How can an engine service get access to the session object?
Thanks
Mahmut
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]