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]