To anybody whom it may concern...
The threading problem referred to in this thread, can be worked
around by overriding the AbstractEngine's protected
createComponentClassEnhancer method to return a synchronized version
of the enhancer. This makes 3.0.4 work like earlier versions of
Tapestry as far as we can tell.
Of course, you shouldn't *have* to do this.
Below is some code:
In your custom engine:
protected IComponentClassEnhancer createComponentClassEnhancer
(RequestContext context)
{
boolean disableValidation =
"true".equals(
this._propertySource.getPropertyValue(
"org.apache.tapestry.enhance.disable-abstract-
method-validation"));
return new SynchronizedComponentClassEnhancer
(this._resolver, disableValidation);
}
And a new class:
public class SynchronizedComponentClassEnhancer extends
DefaultComponentClassEnhancer {
public SynchronizedComponentClassEnhancer(IResourceResolver
resolver, boolean disableValidation) {
super(resolver, disableValidation);
}
/**
* Returns the Class, in a synchronized manner.
*
* @see
org.apache.tapestry.enhance.DefaultComponentClassEnhancer#getEnhancedCla
ss(org.apache.tapestry.spec.IComponentSpecification, java.lang.String)
*/
public synchronized Class getEnhancedClass
(IComponentSpecification specification, String className)
{
Class result = getCachedClass(specification);
if (result == null) {
result = constructComponentClass(specification, className);
storeCachedClass(specification, result);
}
return result;
}
/**
* Returns a Synchronized implemenation of IEnhancedClassFactory
*
* @see
org.apache.tapestry.enhance.DefaultComponentClassEnhancer#createEnhanced
ClassFactory()
*/
protected IEnhancedClassFactory createEnhancedClassFactory()
{
return new SynchronizedEnhancedClassFactory
(getResourceResolver());
}
}
On Jan 31, 2007, at 2:37 PM, Mark Stang wrote:
Howard,
It appears that development on 3.x has stalled to a complete stop.
The web-site lists the latest 3.x release as 3.0.4. According to
the "news" it says 3.0.4 has hundreds of bug fixes. What it
doesn't show is that 3.0.4 has a threading issue. The issue was
identified over two months ago. The 3.0.4 is not on any of the
mirrors, I guess because of the bug.
All-in-all, it appears that not only is 3.x dead but there is a
"bad" version sitting out there mis-leading potential users.
Unless someone is going to pick up 3.x, the web site should be
reverted back to 3.0.3. Then 3.0.4 and 3.0.5 should be deleted and
all JIRA issues reflecting the fixes that were done should be re-
listed as outstanding. Those "fixes" which happened in 3.0.4 are
still a problem for anyone using 3.0.3 but JIRA says they were fixed.
The web site might as well show that 3.x is dead and tell everyone
that it will no longer be maintained.
Mark
Mark J. Stang
Senior Engineer/Architect
office: +1 303.468.2900
mobile: +1 303.507.2833
Ping Identity
-----Original Message-----
From: Mark Stang
Sent: Tue 1/30/2007 11:33 PM
To: Tapestry users; Tapestry users
Subject: RE: FW: Tapestry 3.0.4..not on mirrors
Nick,
Thanks for pointing that out, I finally found the e-mail trail. I
decided that I couldn't take a chance on 3.0.4 and reverted back to
3.0.3. I guess we are done with 3.x and will wait for 5.x or the
next great GUI Framework. Tapestry has been fun and very interesting.
regards,
Mark
Mark J. Stang
Senior Engineer/Architect
office: +1 303.468.2900
mobile: +1 303.507.2833
Ping Identity
-----Original Message-----
From: Nick Westgate [mailto:[EMAIL PROTECTED]
Sent: Tue 1/30/2007 8:10 PM
To: Tapestry users
Subject: Re: FW: Tapestry 3.0.4..not on mirrors
Hi Mark.
I'm referring to this thread:
"3.0.4 and repetitive method name/signature problem (class
enhancement)"
http://thread.gmane.org/gmane.comp.java.tapestry.user/43121
Take it to the dev list when you've read that.
(I'm not a dev, so as to who is managing 3 now ...)
Cheers,
Nick.
Mark Stang wrote:
Nick,
I did a quick look and only saw references to 4.x. If 3.0.4 is
not the current release, then why does the Tapestry Web site have
it listed as such?
http://tapestry.apache.org/tapestry3/
Who is managing this?
thanks,
Mark
---------------------------------------------------------------------
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]