Yes, thats probably a good way to do the "wrapping"...
Cheers,
Ron
Francesco Degrassi wrote:
Actually, as i understand it, if you contribute to
tapestry.services.ApplicationServices, you can override a specific
service used by tapestry with your own and still have in the registry
the original provided by tapestry.
e.g.: I want to override Home service so it uses my own
HomeServiceWrapper class...
In my hivemodule.xml i would put:
<service-point id="HomeWrapper" interface="IEngineService">
<invoke-factory>
<construct class="HomeServiceWrapper">
<set-object property="wrappedService"
value="service:tapestry.services.Home" />
</construct>
</invoke-factory>
</service-point>
<contribution configuration-id="tapestry.services.ApplicationServices">
<service name="home" object="service:HomeWrapper" />
</contribution>
I did not test it, but i'm fairly confident it would work. Please
correct me if i somehow forgot something, i'm still getting used to
hivemind.
Ron Piterman wrote:
I don't get exactly what you want to do by "wrapping".
You can replace an implementation of a service by providing another
implementation, but then the old one will not exist in the registry
anymore.
But it sounds more what you need is to intercept the services - take a
look at hivemind interceptors...
Cheers,
Ron
Patrick Moore wrote:
Hi --
I am trying to wrap some engine service by replacing the configuration
point, tapestry.services.FactoryServices with this definition:
<contribution
configuration-id="service:tapestry.services.FactoryServices">
<service name="home" object="service:tapestry.services.Home" />
<service name="direct"
object="service:transactionalDirectService" />
<service name="page" object="service:transactionalPageService" />
<service name="reset" object="service:tapestry.services.Reset" />
<service name="restart"
object="service:tapestry.services.Restart" />
<service name="asset" object="service:tapestry.services.Asset" />
<service name="external"
object="service:tapestry.services.External" />
</contribution>
I did something similiar to this to replace
tapestry.services.ResponseContributors:
<contribution
configuration-id="tapestry.services.ResponseContributors">
<invoker object="service:ScriptResponseContributor" />
<invoker
object="service:tapestry.services.JSONResponseContributor" />
<invoker
object="service:tapestry.services.DojoAjaxResponseContributor" />
<invoker
object="service:tapestry.services.DefaultResponseContributor" />
</contribution>
but for the factoryservices I get :
Error building service transparentpolitics.sessionFactory: Error at
context:/WEB-INF/hivemodule.xml, line 76, column 87: Unable to
construct service tapestry.services.ServiceMap: Error building service
tapestry.services.ServiceMap: Error at
jar:file:/C:/Documents%20and%20Settings/Owner/.m2/repository/org/apache/tapestry/tapestry-framework/4.1.1-SNAPSHOT/tapestry-framework-4.1.1-SNAPSHOT.jar!/META-INF/tapestry.services.xml,
line 159, column 81: Unable to initialize service
tapestry.services.ServiceMap (by invoking method initializeService on
org.apache.tapestry.services.impl.ServiceMapImpl): Unable to construct
configuration tapestry.services.FactoryServices: Element service (at
context:/WEB-INF/transpol.persistence.xml, line 47, column 72)
contains errors: Value for attribute 'name' ('home') duplicates a
prior instance at
jar:file:/C:/Documents%20and%20Settings/Owner/.m2/repository/org/apache/tapestry/tapestry-framework/4.1.1-SNAPSHOT/tapestry-framework-4.1.1-SNAPSHOT.jar!/META-INF/tapestry.services.xml,
line 53, column 54.
Does anyone have any ideas on how I can do this service wrapping?
-Pat
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]