Kickstart Documentation
What is Kickstart?
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.
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.
What do you get?
A pattern
Due to lack of time, there's only one pattern currently supported
by Kickstart. It has proven suitable for low to medium load (some 100
concurrent users) web-apps typically found on corporate
extranets. It's characteristics are
- Hibernate-sessions
are held in a request-spanning context called a conversation (see the Hibernate
session-per-conversation pattern). That means persistent
domain objects kept in the conversation-context have exactly the same
lifetime as the Hibernate session. The conversation context, in turn,
is kept in the http session. That does not mean of course that
a conversation should last as long as the whole user-session. There are certain
points in most applications where it is natural to discard persistent
objects along with the Hibernate session in which they were
loaded. By adding a new property-persistence-strategy, called
"conversation" to Tapestry, KickStart makes it very easy to do just that.
- DB-Transaction per request: Each http-request runs in
one database transaction
A more thorough discussion
comes soon
An implementation
Kickstart currently consists of 3 Eclipse projects (or directories).
- KickstartLib provides the glue-code to integrate Hibernate with
Tapestry. There's also a build-script to generate projects for you
own apps. These will consist of two projects/directories which are
instances of the following two template projects:
- KickstartTemplateCore contains the domain logic and the
persistence services
- KickstartTemplateWeb contains the presentation layer
(web-templates plus controller).
Getting Kickstarted
Prerequisites
The
Kickstart-Download comprises all libraries upon which it depends
to compile (to be found in KickstartLib/lib). Besides that, you'll need
- Java 5.0 or later
- Eclipse 3.1 or later as the development environment,
- Your favorite Servlet-Container plus its Eclipse plugin, if
available. I like Jetty
and the Jetty-Launcher
Installation and getting started
- Unzip the distributable into your Eclipse workspace.
- Start up Eclipse and create the 3 projects KickstartLib,
KickstartTemplateCore and KickstartTemplateWeb.
- Run the build.xml in KickstartLib. And create the Eclipse
projects YourNameCore and YourNameWeb
.
- Create an Eclipse Run-Config for HSQLDB - as shown
here and here and start it
- Create a run config for Jetty, like
that and start it.
- Point your browser to
http://localhost:8080/ and play with the foos and bars.
- You might also want to have look at the unit tests in the
testsrc directory of the Core-project.
- Review and adapt the configuration in the
META-INF/hivemodule.xml
file of the Core
project.
- Note: Build-scripts to deploy the app will come
soon.
mschu-at-users.sourceforge.net
Last modified: Sun Jan 15 19:19:53 CET 2006