Tapestry Training -- From The Source

Let me help you get your team up to speed in Tapestry ... fast. Visit howardlewisship.com for details on training, mentoring and support!

Monday, April 11, 2005

HiveMind article on TheServerSide

James Carman's Introduction to HiveMind has appeared on TheServerSide.com today. James must have been working pretty hard, this final version of the article is much more in depth than the early version of the article I reviewed for him a couple of month's back.

I'm really psyched about the HiveMind community ... maybe even more so than the Tapestry community. Not to dig at the Tapestry or developer or user community, I just think that HiveMind is running truer to the ideals of an Apache open source project. I think that HiveMind started on the right foot, and has several key members who are contributing code, but also recognition (such as this article by James, who is a HiveMind committer). Perhaps its because HiveMind is a more well defined problem space than Tapestry, and started more clean and better organized. I hope to get the Tapestry project functioning as smoothly as the smaller HiveMind project some day.

Just finished reading the article; he covered a lot of ground quite nicely, but didn't even mention HiveMind's distinguishing characteristics: distributed configuration (that is, support for many individual modules) and configurations. Most of his examples could be done almost as easily in Spring (though I don't think Spring has a threaded service model). A follow-up article, perhaps?


Colin Sampaleanu said...

Hi Howard. I'm not 100% sure what exactly your definition of a threaded service model is, but it's actually relatively easy to have threadlocal services in Spring.

When creating a proxy, you'd just use a ThreadLocalTargetSource
to wrap the target, instead of relying on the default creation of a SingletonTargetSource. So for example, the ProxyFactoryBean can be used to create proxies, and normally you'd set its 'target' property to point to the target bean. If you want to create a ThreadLocal proxy around a target, you'd just instead set the targetSource property, feeding in an instance of ThreadLocalTargetSource which is pointing at the target bean (by name). This would normally be done as a nested bean definition, so it's pretty concise.

That said, I find that people very rately have to use threadlocal services. Most services you actually want to put in your container end up being singletons.

colt_nz said...

I like hivemind but one area where its lacking is support for macro functional components each having their own registery. Or in english why cant we add registeries at runtime.. this allows runtime application composition strategies where a codebase is deployed as a selected or configured group of artifacts. I'm confused why this seems to be so discouraged.

Howard said...

Too easy to inadventently spread the FUD when writing a blog (and multi-tasking). I think I was trying to say that I didn't know if threaded was built-in, or an add on.

Ahmed Mohombe said...

As of this moment, TSS is down again(and it was in the last hour).
Not mean as a flame, but since TSS is on Tapestry, I saw much more crashes than before.
I don't have much experience with Tapestry, and I'm convinced that is a fantastic software, but the lot of crashes from TSS makes me worry about the reliability of the framework.

bioye said...

This is off-topic but please, who ever is in charge of this blog software, can you do some window fixing by adding the date of posting rather than just the time? Oops!!

Howard said...

Ahmed -- does this LOOK like the TSS complaints forum? I don't work for TechTarget or have any access to the TSS code anymore, so its out of my hands. From talking with Pat Linskey, I believe there is a tuning problem with the cache that flares up every couple of months, and it has nothing to do with Tapestry.

Ahmed Mohombe said...

Ahmed -- does this LOOK like the TSS complaints forum?
I want to applogise. I just got a little scared :). I just thought that if even TSS are not able to get it work 24x7, than who? - we? - simple users that need to learn from them.