ETA-NG | Documentation | Javadocs | Application Server | ETA-NG API
As there were things to add onto ETA not readily capable within the confines of php a second non-web platform was needed with option of future and some immediate web capabilities. How best to approach fronting ETA backend database brought about a tangent of a crude application server.
ETA takes advantage of a basic application server. It is largely though not entirely tied to web applications, the ETA irc bot being a case in point even though it is initialized and takes advantage of the resources available by the application server by being a servlet it interacts with users on an non web platform. Using a web server with a servlet engine, like W3C's Jigsaw allows it to use a central class loader and servlets, once initialized are kept alive and resident in memory. This combination allows for central resources available to multiple applications concurrently. Any other means to coordinate object instantiation through a single class loader could also use this basic application server.
Jigsaw or whichever servlet engine being used should be started with the -D flag to pass an environment variable alerting the application server of where to find it's property file if it's somewhere other than under /usr/local/eta as in this sample command.
All that a person object for instance needs to know is it's application name, table and primary key[s], all standard insert, update, delete and select sql is generated and processed using that application's pool. Such objects can be shared across applications and even serialized as the database connection pool isn't called until sql is being executed on an object's load or store. The table objects are beans, allowing for bean introspection and event listening alerting other objects potentially concerned with a state or value change.
This API takes advantage of the aforementioned application server to simply represent Events, Issues, Contacts, Forums, Skills and other such aspects of ETA. Also present are some objects to handle these base ETA objects and ETA-NG email and irc interfaces. The Javadocs would give more detailed descriptions to these objects and their methods, as well as those of the underlying architecture it is utilizing.