It's already integrated into Tapestry 4.1 (due out soon). So, everyone can
enjoy auto-wiring!
-----Original Message-----
From: Mark Lehmacher [mailto:[EMAIL PROTECTED]
Sent: Friday, May 12, 2006 7:46 AM
To: Tapestry users
Subject: RE: Tapernate-Example HiveMindAutowireWorker Problem
My answer might be a little late in coming but I thought I'd let you know
that the fix changed my problem as well!
Thanks! The autowire-worker sure is *very* useful because it reduces xml
clutter, which in my book is a good thing.
It would probably make sense to move it into a seperate project, like HLS
did for the flash-property strategy for example. That way everyone who wants
to use it can just download the drop-in jar.
--- Ursprüngliche Nachricht ---
Von: "James Carman" <[EMAIL PROTECTED]>
An: "'Tapestry users'" <users@tapestry.apache.org>
Betreff: RE: Tapernate-Example HiveMindAutowireWorker Problem
Datum: Tue, 9 May 2006 20:13:50 -0400
Oh, sorry. I committed a change to my tapernate-example application which
implements this change. For those of you who were encountering this
problem, can you download it and try out the changes? Thanks!
-----Original Message-----
From: James Carman [mailto:[EMAIL PROTECTED]
Sent: Monday, May 08, 2006 9:31 PM
To: 'Tapestry users'
Subject: RE: Tapernate-Example HiveMindAutowireWorker Problem
Well, I could specify *all* of the workers that I want my auto-wire worker
to follow by using a comma-separated list. That might do the trick!
-----Original Message-----
From: Mark Lehmacher [mailto:[EMAIL PROTECTED]
Sent: Monday, May 08, 2006 6:04 PM
To: Tapestry users
Subject: RE: Tapernate-Example HiveMindAutowireWorker Problem
Importance: High
The way I see it, it definitely IS the ordering:
When you contribute the autowirer with
before="tapestry.enhance.abstract-property" and
after="tapestry.enhance.dispatch-inject" parameters you don't guarantee
that
the parameter-worker already performed it's work, because it is not part
of
those services which make up dispatch-inject.
The ordering of the enhancement workers is unspecified and relies on the
underlying Hivemind Order object, which in turn is backed by a HashMap. So
I
guess if you add one or several enhancement workers to your chain you will
get the same problem sooner or later (as soon as the HashMap fucks up the
ordering for you and the parameter-worker runs before your
autowire-worker).
However, I'd really love to see a working autowiring function like that.
If
it goes into the tapestry core it could be combined into the
abstract-property-worker, which would solve the ordering problem but raise
other questions instead (like seperation of concerns).
--- Ursprüngliche Nachricht ---
Von: "James Carman" <[EMAIL PROTECTED]>
An: "'Tapestry users'" <users@tapestry.apache.org>
Betreff: RE: Tapernate-Example HiveMindAutowireWorker Problem
Datum: Mon, 8 May 2006 10:57:05 -0400
I thought the ordering was getting screwed up too. But, I added
LoggingInterceptor to the ParameterPropertyWorker and my auto-wire
worker
and the parameter one seems to be running first. If the parameter
worker
runs first, this problem should not occur, since the property would have
already been claimed and my worker would just bypass it. I
intentionally
put my worker after all that stuff, so I wouldn't step on anyone's toes.
I
wonder if there's some special case that's getting the ordering screwed
up?
-----Original Message-----
From: Mark Lehmacher [mailto:[EMAIL PROTECTED]
Sent: Monday, May 08, 2006 6:31 AM
To: Tapestry users
Subject: RE: Tapernate-Example HiveMindAutowireWorker Problem
Importance: High
Yup, that's what I am saying.
Looks like it's wiring component parameters as well:
5705 HiveMindAutowireWorker:performEnhancement [DEBUG] Creating
auto-wired
accessor for property delegate on component
classpath:/org/apache/tapestry/html/Shell.jwc, line 22, column 96
5856 HiveMindAutowireWorker:performEnhancement [DEBUG] Creating
auto-wired
accessor for property delegate on component
classpath:/org/apache/tapestry/html/Shell.jwc, line 22, column 96
With the result of getting this error:
Error at classpath:/org/apache/tapestry/html/Shell.jwc, line 78, column
20:
Error adding property delegate to class org.apache.tapestry.html.Shell:
Property delegate has already been claimed by a different enhancement
worker.
So my uneducated guess is that somewhere in the depths of tapestry there
might be a service which implements IValidationDelegate and it's gets
wired
to the component parameter. Looks like the order gets somehow fucked-up,
because at the point at which the autowire stuff comes in all parameter
properties should have already been claimed. So it probably has to do
with
the configuration contribution taking place in the seperate module
descriptor within my drop-in jar.
--- Ursprüngliche Nachricht ---
Von: "James Carman" <[EMAIL PROTECTED]>
An: "'Tapestry users'" <users@tapestry.apache.org>
Betreff: RE: Tapernate-Example HiveMindAutowireWorker Problem
Datum: Sun, 7 May 2006 18:25:17 -0400
Hmmmm. That's weird. But, thanks for the tip. I've submitted the
code
as
a patch to Tapestry. So, I need to figure out how to get it working.
So,
what you're saying is that if the auto-wiring stuff is inside a jar
file
and
not part of your application's hivemodule.xml file, then it bombs?
-----Original Message-----
From: Mark Lehmacher [mailto:[EMAIL PROTECTED]
Sent: Sunday, May 07, 2006 5:21 PM
To: Tapestry users
Subject: Re: Tapernate-Example HiveMindAutowireWorker Problem
Importance: High
I had that very same problem when I tried to package the Tapernate
auto-wiring stuff in a drop-in jar. It said that one of the parameters
of
the Shell component has already been claimed by a different
enhancement
worker.
When I just put the service definition and configuration contribution
into
my application's "root" module descriptor everything works fine.
--- Ursprüngliche Nachricht ---
Von: Tat leung <[EMAIL PROTECTED]>
An: Tapestry users <users@tapestry.apache.org>
Betreff: Tapernate-Example HiveMindAutowireWorker Problem
Datum: Sun, 07 May 2006 12:52:15 -0700
Hi All,
I am using Tapernate and HiveMindAutowireWorker and
HiveMindAutowireWorkerFactory from the Tapernate example in my
applicaiton. The XML in my hivemind.xml file and the auto-wire
classes
are taken from the Tapernate example:
<service-point id="AutowireWorkerFactory"
interface="org.apache.hivemind.ServiceImplementationFactory"
parameters-occurs="none">
<invoke-factory>
<construct
class="org.apache.tapestry.enhance.HiveMindAutowireWorkerFactory" />
</invoke-factory>
</service-point>
<service-point id="AutowireWorker"
interface="org.apache.tapestry.enhance.EnhancementWorker">
<invoke-factory service-id="AutowireWorkerFactory" />
</service-point>
<contribution
configuration-id="tapestry.enhance.EnhancementWorkers">
<command before="tapestry.enhance.abstract-property"
after="tapestry.enhance.dispatch-inject"
id="inject-autowire" object="service:AutowireWorker" />
</contribution>
This is working as expected when there is no exception. But when
the
application throws any exception, it is causing the following
exception
in the log file. Has anyone encounter this problem?
Thanks!
Tat
org.apache.hivemind.ApplicationRuntimeException: Property delegate
has
already been claimed by a different enhancement worker.
at
org.apache.tapestry.enhance.EnhancementOperationImpl.claimProperty(Enhanceme
ntOperationImpl.java:241)
at
org.apache.tapestry.enhance.ParameterPropertyWorker.addParameter(ParameterPr
opertyWorker.java:117)
at
org.apache.tapestry.enhance.ParameterPropertyWorker.performEnhancement(Param
eterPropertyWorker.java:81)
at
org.apache.tapestry.enhance.ParameterPropertyWorker.performEnhancement(Param
eterPropertyWorker.java:53)
at
$EnhancementWorker_10b103b1964.performEnhancement($EnhancementWorker_10b103b
1964.java)
at
$EnhancementWorker_10b103b197c.performEnhancement($EnhancementWorker_10b103b
197c.java)
at
$EnhancementWorker_10b103b195a.performEnhancement($EnhancementWorker_10b103b
195a.java)
at
org.apache.tapestry.services.impl.ComponentConstructorFactoryImpl.getCompone
ntConstructor(ComponentConstructorFactoryImpl.java:97)
at
$ComponentConstructorFactory_10b103b1947.getComponentConstructor($ComponentC
onstructorFactory_10b103b1947.java)
at
org.apache.tapestry.pageload.PageLoader.instantiateComponent(PageLoader.java
:531)
at
org.apache.tapestry.pageload.PageLoader.createImplicitComponent(PageLoader.j
ava:481)
at
$IPageLoader_10b103b1937.createImplicitComponent($IPageLoader_10b103b1937.ja
va)
at
$IPageLoader_10b103b1938.createImplicitComponent($IPageLoader_10b103b1938.ja
va)
at
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplici
tComponent(ComponentTemplateLoaderLogic.java:218)
at
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(Compo
nentTemplateLoaderLogic.java:172)
at
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process(Compo
nentTemplateLoaderLogic.java:111)
at
org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate(
ComponentTemplateLoaderLogic.java:88)
at
org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate(C
omponentTemplateLoaderImpl.java:60)
at
$ComponentTemplateLoader_10b103b194b.loadTemplate($ComponentTemplateLoader_1
0b103b194b.java)
at
org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent(PageLoader.
java:648)
at
org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77)
at
org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java:107)
at $Exception_7.finishLoad($Exception_7.java)
at
org.apache.tapestry.pageload.PageLoader.constructComponent(PageLoader.java:4
39)
at
org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:613)
at
$IPageLoader_10b103b1937.loadPage($IPageLoader_10b103b1937.java)
at
$IPageLoader_10b103b1938.loadPage($IPageLoader_10b103b1938.java)
at
org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:120)
at
$IPageSource_10b103b1897.getPage($IPageSource_10b103b1897.java)
at
org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java:268)
at
org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:251)
at
org.apache.tapestry.error.ExceptionPresenterImpl.presentException(ExceptionP
resenterImpl.java:40)
at
$ExceptionPresenter_10b103b18a3.presentException($ExceptionPresenter_10b103b
18a3.java)
at
org.apache.tapestry.engine.AbstractEngine.activateExceptionPage(AbstractEngi
ne.java:121)
at
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:280)
at
org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngin
eTerminator.java:60)
at
$WebRequestServicer_10b103b1907.service($WebRequestServicer_10b103b1907.java
)
at
$WebRequestServicer_10b103b1903.service($WebRequestServicer_10b103b1903.java
)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
---------------------------------------------------------------------
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]
--
GMX Produkte empfehlen und ganz einfach Geld verdienen!
Satte Provisionen für GMX Partner: http://www.gmx.net/de/go/partner
---------------------------------------------------------------------
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]
--
Echte DSL-Flatrate dauerhaft für 0,- Euro*!
"Feel free" mit GMX DSL! http://www.gmx.net/de/go/dsl
---------------------------------------------------------------------
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]