Honeycomb is another integration between Tapestry and Hibernate. What's neat is that it supports Session Per Conversation (somewhat like Seam) and Session Per Request (much more common) right out of the box.
It even includes Maven archetypes to get the project set up quickly. Nice.
Once again, the power of HiveMind is evident here; just placing the Honeycomb JARs on the classpath mixes all the Honeycomb support directly into the application. No additional configuration needed.
On the other hand, there's virtually no documentation on how to use Honeycomb beyond the Javadoc ... and some of that is in German!
Howard, are you nuts? Why did you not note that it even contains an excel export component, woa! And german is great ;-)
ReplyDeleteI think that important piece of Tapestry 5 architecture should be to allow easy managing of domain object state.
ReplyDeleteWeb layer is only a layer, not living on its own, but is tightly integrated with other layers, so that's why I have respect for Seam, because it emphasised good integration of web layer with layers below. As said, this is especially evident with session-per-conversation way, which is extremely hard to implement correctly. I remember everybody mentioning it on the web, but none has successfuly managed to implement it in some easy consistent way (before Seam at least). It really requires top-notch developers to put correct design for that, therefore it is essential to have out-of-box solution or pluggable design for this problem.
Wow, my little pet project made it on your blog! Thanks, Howard. That might even make me consider writing real docs ... .
ReplyDeleteFunnily the whole thing was initially meant to be a means for discussing glue-layer-design rather than an out-of-the-box thing... .
anonym, Tapestry-4 makes managing Domain-State already very easy with its pluggable strategies for property/app-state lifecycle. And the "property-bijection" is not really so unique to Seam once you consider Tapestry's component-bindings.
Viele Grüsse, ;-) Marcus
marcus,
ReplyDeleteYou plugin uses only Hibernate, whereas some people like to use Spring-Hibernate (Spring for transactio demarcation), or some other ORM library.
Therefore, I think it would be good to have documented session-per-request and session-per-conversation problem on Tapestry's main documentation, and to offer some "abstract" module that user has to implement for desired ORM library. Since all this stuff is so complicated, this module would really enlighten the user how to achieve this. Of course, implementation specific to Hibernate like yours could exist additionally also.
Easy managing of domain object state in T5 would be sweet!
ReplyDeleteIs this something you have in mind Howard?
Hi, how could I make a default page in my tapestry project what defines the follow situation: while the user exist in the session, the session continue validate, if not, the page is redirect to the login´s page?
ReplyDeleteThanks.