Protomatter Application Server v1.0

Package com.protomatter.pas

A simple Application Server.


Class Summary
PASCore The PAS Core.
PASPropertyUtil A utility class for parsing properties files.
PASServlet The PAS Servlet.

Package com.protomatter.pas Description

A simple Application Server. It is intended to be used in conjunction with the Apache JServ servlet engine, but should work with pretty-much any servlet engine.

Easy configuration

Everything about PAS can be configured via it's properties file, and you can also import other properties files in-place using the following directive in a properties file:
    Import filename
This will cause the contents of filename to be read into this file in-place. The imported file can also import other files, but be careful, since circular references are not checked and could result in an infinite loop. Importing other files is a nice way to segment configurations for different projects.

Unified Logging Via Syslog

PAS initializes the com.protomatter.syslog logging system when it starts. Syslog is configured from an XML file using the SyslogXML.configure() method.

Other Services Provided by PAS

Hierarchical event trees:
com.protomatter.pas.event (interfaces)
com.protomatter.pas.eventmanager (implementation)

Cron facilities:
com.protomatter.pas.cron (interfaces)
com.protomatter.pas.cronmanager (implementation)

JNDI implementation:

JDBC Connection Pools:
com.protomatter.jdbc.pool.PASJdbcPoolStartup (startup class)
com.protomatter.jdbc.pool.PASJdbcPoolShutdown (shutdown class)

Miscellaneous services:
com.protomatter.pas.service (interfaces)
com.protomatter.pas.serviceimpl (implementation)

PAS and Apache JServ

PAS was designed from the start to work with Apache JServ, though it should work with any servlet engine. PAS is a servlet, and you should configure your servlet engine to initialize it at startup, rather than when the first request to it comes in.

PAS works very well with JServ, and can be used independantly in different servlet zones. This is a very important feature, as it means that one instance of JServ can support multiple PAS instances, one per zone. For this to work, you must have your wrapper.classpath set to only include the JDK's, the JServ jar file, and the JSDK jar file. For each zone, you must then set the "repositories" property in the configuration file for that zone to be the list of all the jar files, zip files and directories you are going to need classes from for anything that you're doing in that zone. This works because JServ uses a separate classloader for each servlet zone.

To configure PAS to run in a given zone, add the following properties to the zone's configuration file:

    ## add PAS to the list of servlets to start when JServ starts


    ## define the PAS servlet, and give PAS its startup args
PAS will be started when the zone it's defined in is loaded by JServ.


PAS is free for comercial and non-commercial use. I'd like to know where it's being used, just out of curiosity.

PAS requires the following packages to function properly

JNDI 1.1.x
Available for download from JavaSoft at:


For support and feedback on PAS, please email Remember that I do this in my spare time, so I may not be able to respond instantly.

Protomatter Application Server v1.0
Copyright 1998-2002 Nate Sammons

Protomatter Application Server v1.0