Panther 0.9.4a review

Download
by rbytes.net on

Panther is a lightweight, modular Java application server, suitable for embedding in a web server. The intention of the project is

License: The Apache License
File size: 0K
Developer: Lateral NZ
0 stars award from rbytes.net

Panther is a lightweight, modular Java application server, suitable for embedding in a web server.

The intention of the project is not to duplicate all the functionality found in a J2EE app server, rather just some of the most commonly used features (Note: panther was formerly known as Wicker).

1. Panther is not trying to be a full application server, rather it provides a limited subset of services that most app servers provide.
2. Most app servers seem to be huge monolithic behemoths where it's all or nothing. If you want one service, then you pretty much need them all. Even where you can modify the configuration to only include the services you require, based upon our experience, many projects don't.
3. Many projects only use a microscopic subset of the features an app server provides. This is particularly true if you want to be cross-appserver/cross-platform, so a modular app server, where you include the bits you want, makes a lot of sense (at least to us). This is, of course, rather similar to the argument certain luminaries have used in the past against the feature bloat in Office software like Word.
4. There isn't another open source app server out there that does what we want (or that we could get working just the way we wanted).

Here are some key features of "Panther":
A Stateless Session Bean container.
Note 1: SSBs were not pooled prior to version 0.9.1, so there -was- a single instance of each EJB in the container. There didn't seem to be any overhead/negative impact doing things this way, except that the beans are truly/completely stateless -- if you're writing code with this is mind, then you shouldn't have any problems, but we recommend using the latest release anyway.
Note 2: At time of writing only the ejbCreate method has been implemented in panther (the other ejb* methods are not currently called).
deployment and configuration by Jython
transaction manager -- linked to the data source service. This only works with JDBC data sources, and has only been tested with Postgres so far. (Note, transactions do not cross VM boundaries.)
a basic messaging service (multicast, broadcast and lightweight reliable multicast options available)
jdbc distributed caching service, codenamed c3d -- basically a jdbc driver that caches selects to reduce load on the database and to improve performance (slightly)
a python-scripted (well, jython) telnet management console
example mail and datasource (using Jakarta DBCP) python scripts are also included

Limitations:
You cannot currently pass parameters to ejbCreate, or indeed include parameters in your home create methods.
transaction support is currently extremely limited. The transaction manager is a basic service written to 'get us going' -- "Required", "Supports" and "NotSupported" should (hopefully) work as advertised, anything else (i.e. "RequiresNew") may get unpredictable results. We're working on the transaction service at the moment.

What's New in This Release:
NOTES

Fix a bunch of bugs I discovered this morning with the build process, demo, etc

CHANGES

Reorganised the doc directory. Moved example files to doc/examples
added jetty.sh, start.sh and stop.sh, to be used for running jetty5. Create a bin dir in $JETTY_HOME, put both files there (along with panther in the root of jetty home) and run start.sh to use.
tidied up readme.txt

BUG FIXES

added a Makefile for the simple demo. Fixed a bug with the ant build. Moved the jsp to a plain servlet
distribution tars weren't created with the correct directory (should've had a root panther dir).

Panther 0.9.4a keywords