Hi Gerald,

now it works!

thank you much
Mahmut


Gerald Schöffel schrieb:
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]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to