Showing posts with label hivemind. Show all posts
Showing posts with label hivemind. Show all posts

Sunday, February 11, 2007

New Version 1.0.2 of hivedoc-plugin for HiveMind /Maven2

Finally, I got around to enhancing the hivedoc-plugin with:

  • Support for sub-modules

  • Removal of empty columns in the module-summary table.

The new version 1.0.2 should be on the central repo as soon as MAVENUPLOAD-1377 is resolved.

Friday, January 05, 2007

New Version of hivedoc-plugin for HiveMind

Since some people seem to use it, I've updated my hivedoc-plugin to version 1.0.1 . Notable changes are:
  • Support for custom resource root directories
  • Backport to Java 1.4
  • proper plugin-docs
The new version should show up on the central Maven 2 repo soon. If you need it before that, here's the repo-bundle.

Tuesday, January 02, 2007

hivedoc-plugin generates Maven 2 docs for HiveMind descriptors

If you're using HiveMind and Maven 2, generating docs for your HiveMind descriptors is now really quick and simple.
Find the docs under http://marcus-schulte.ch/hivedoc-plugin/.

Sunday, January 15, 2006

With Kickstart 0.2 Tapestry supports the hibernate session-per-conversation pattern out of the box

I've uploaded a new release of KickStart. Improvements are:

  • Full support for the hibernate-session-per-conversation pattern. See hibernate.org for more.

  • fixed wrong unsaved-value-mapping

Saturday, January 07, 2006

KickStart integrates Tapestry with Hibernate for painless full-stack web-dev-support

While Web-Development with Java is supported by a variety of great frameworks it is still not easy (even tedious) to, firstly, choose the right ones for a given problem and, secondly, make them work together. (needless to refer to all the envious appraisals of RoR and, yes, even Visual-Studio by Java-developers).

I've set up a Sourceforge project, called KickStart, (first download available right now!). It's goal is to get newbies started with the most cutting edge JEE-stuff immediately, and even more important, to provide a platform to discuss the non-trivial task of glueing together the most powerful of the existing Java-frameworks into something that "just works". I believe that all the interesting problems (and solution-patterns) of framework integration patterns recurring in mailing lists and wikis deserve being collected and made available in the form of preconfigured templates for whole applications.

Kickstart strives to provide a selection of integration-patterns with well defined domains of application. Each pattern comes with a complete template application getting you kickstarted with your application in minutes.

For the time being, Kickstart is based on Tapestry, Hivemind and Hibernate. Also, Kickstart is in an early state. While it works, there's only one application pattern and template supported right now. But nevertheless, please try it and tell me whether it works for you.

Tuesday, September 27, 2005

Now on the hivemind-wiki: Hivemind support for Hibernate Long-Session-Pattern

Handling Hibernate-Sessions is a recurrent topic on the Tapestry users mailing list. Still, long sessions seem to be surprisingly unknown, once one considers the fact that Gavin King advocates its use in "Hibernate in Action".
So, I've posted some code implementing the Long-Session-Pattern in Hivemind on the Hivemind-Wiki.
I'd be curious to hear whether it worked for anyone (or why it didn't) ...

Thursday, July 28, 2005

Unified service lifecyle-interface for different service-models

Hivemind sports a bunch of service-models (singleton, pooled, threaded). After adding "client-session" for my request-spanning, hibernate-sessions, I realised that it's rather unfortunate that each of the service models comes with its own lifecycle-interface (Discardable, PoolManageable,...). So if you want to be able to switch service-models via configuration in one place, your service has to implement all of these interfaces - and you might not be sure what "all" is, thanks to hivemind's ease of extensibility.
How about a unified lifecycle-interface for all service models? It should reflect the structure of possible client-service-interactions rather than the implementation of a service-model. I would call it, maybe, "Conversation" with the following methods:
  • begin() (a new client starts to talk to the service)
  • end() (current client is finished talking to the service, throw away client state)
  • pause() (client stop's talking to the service for now, but will resume later, so don't throw away client state, but free resources like db-connections.
  • resume() (previous client continues to talk to the service)
So when configured as a "pooled" service, just begin() and end() would be called, "threaded" would probably just use end(), "client-session" would employ all of them.

Friday, June 03, 2005

Hivemind support for Hibernate Long-Session-Pattern

Finally I got around to dig into HiveMind's concept of service-models. Not much digging, actually it's amazingly simple and intuitive. I've implemented a new service-model called "stateful" which attaches service instances to a User-Session. "Stateful" actually is a bit of a misnomer since threaded and pooled services also hold state for the duration of one request.
Basically all one needs is
  • a persistence service I called ClientStateStorage, which can be provided with an http session for production. Otherwise it uses a simple Map for testing.
  • a service-model extending AbstractServiceModelImpl which works much like the PooledServiceModel
  • six (!) lines of xml to configure the stuff
And the best thing: Deployment by jar-dropping - I really love the way, HiveMind collects its config-data from all visible jars. I won't write another Springish application-context.xml.
Cluster-Failover-Safety is of course an issue because, as I understood it, HiveMind serialises services in a stateless manner (just writing its Id and, upon reading, creating a fresh instance with that id). For my Apps, however, that's not a big enough problem to trouble me much. Server-crashes happen so seldomly ...