Hi,
You have to alias the Cookies service.
public static void bind(ServiceBinder binder) {
binder.bind(SecureCookies.class,
SecureCookiesImpl.class).withId("SecureCookies");
}
public static void
contributeAliasOverrides(Configuration<AliasContribution> configuration,
@InjectService("SecureCookies") SecureCookies secureCookies) {
configuration.add(AliasContribution.create(Cookies.class,
secureCookies));
}
SecureCookies extends Cookies, SecureCookiesImpl extends CookiesImpl and
implements SecureCookies.
I just tried it out and it worked for me on Tapestry 5.0.13.
Hope this helps.
-Filip
On 2008-07-29 14:26, Russell Brown wrote:
Hi Thanks for the response.
What do I alias though? The PersistentLocaleImpl? I've tried creating an
alias for Cookies and SecureCookies. The problem is when TapestryModule
tries to build PersistentLocaleImpl it finds two Cookies interfaces
(SecureCookies that extends Cookies and Cookies itself (arguable that
they are the same interface at all (I think not))).
I set it up with an alias for each of the offending services and a
builder for PersistenLocaleImpl that uses an @Marker to inject my
Cookies alias but the original TapestryModule still has problems
creating its PersistenLocaleImpl. Why is it even creating one if I have
contributed an alias?
What I have done is separated SecureCookies from Cookies. Just seems
simpler, though much less clean. So I lose some OO stuff, so what, eh?
Cheers
Russell
-----Original Message-----
From: Filip S. Adamsen [mailto:[EMAIL PROTECTED]
Sent: 29 July 2008 13:11
To: Tapestry users
Subject: Re: T5: Service disambiguation
Hi Russell,
Take a look at aliases - should do the trick:
http://tapestry.formos.com/nightly/tapestry5/tapestry-core/guide/alias.h
tml
-Filip
On 2008-07-29 13:38, Russell Brown wrote:
Hi Chris,
Do I? I'm not sure. Will that help the fact that PersistentLocalImpl
has
a problem disambiguating between SecureCookies interface impl and
Cookies interface impl? I can add a marker to MY class that uses
SecureCookies but I can't add a marker to the TapestryModule auto
binder
built PersistentLocaleImpl class (can I??)
Cheers
Russell
-----Original Message-----
From: Chris Lewis [mailto:[EMAIL PROTECTED]
Sent: 29 July 2008 12:07
To: Tapestry users
Subject: Re: T5: Service disambiguation
Sounds like you want @Marker:
http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/ioc/an
notations/Marker.html
chris
Russell Brown wrote:
Hi,
I need to write secure session cookies and Tapestry Cookies interface
and CookiesImpl don't do that. So I extend the Cookies interface like
this
Public interface SecureCookies extends Cookies {
void writeSecureCookie(yada,yada);
}
And create an imple that injects the existing, TapestryModule created
CookiesImpl as a delegate and delegates all method calls to the
existing
CookiesImpl and implements writeSecureCookie itself.
The problem is...the service PersistentLocale depends on Cookies and
I
can't disambiguate that dependency.
The question why is SecureCookies the same interface as Cookies to
Tapestry IoC?
How do I go about creating a service that implements the same
interface
as an existing tapestry service?
I'm a bit confused by all this. It seems that the safest way for me
to
go is create a class that has no relationship to Cookies.
Russell
Communications on or through ioko's computer systems may be monitored
or recorded to secure effective system operation and for other lawful
purposes.
Unless otherwise agreed expressly in writing, this communication is
to
be treated as confidential and the information in it may not be used
or
disclosed except for the purpose for which it has been sent. If you
have
reason to believe that you are not the intended recipient of this
communication, please contact the sender immediately. No employee is
authorised to conclude any binding agreement on behalf of ioko with
another party by e-mail without prior express written confirmation.
ioko365 Ltd. VAT reg 656 2443 31. Reg no 3048367. All rights
reserved.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Communications on or through ioko's computer systems may be monitored or
recorded to secure effective system operation and for other lawful purposes.
Unless otherwise agreed expressly in writing, this communication is to be
treated as confidential and the information in it may not be used or disclosed
except for the purpose for which it has been sent. If you have reason to
believe that you are not the intended recipient of this communication, please
contact the sender immediately. No employee is authorised to conclude any
binding agreement on behalf of ioko with another party by e-mail without prior
express written confirmation.
ioko365 Ltd. VAT reg 656 2443 31. Reg no 3048367. All rights reserved.
---------------------------------------------------------------------
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]