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]
> 

-- 
"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]

Reply via email to