epserver
End Point application server. Non-blocking, java nio, tcp with custom messages. Target: java 8
ep_server_examples.zip epserver-1.0.1.jar is included in the examples.
Last updated: 29.11.2025
First released: 8.04.2025
End point
Apps must implement EndPoint interface methods:
init(EpContext) - called once when the end point is instantiated;
call(Request, Response) - process the request and return response;
destroy() - close the app properly. Call session.invalidate() to close the client.
Client
Request: Create EpMessage and send message bytes. The message must have at least a receiver and message data.
receiver format: // as set in web.xml
Response: read from the channel and unpack the message.
The requests are processed concurrently at the server by the worker threads, this requires end point synchronization.
The responses are done sequentially as they are send by the end point through the client message queue to the socket.
One way to guarantee the message order is to make the requests in a sequence: request|response, request|response, etc.
Or the client may not care about the order, send multiple request, collect responses to construct a state at the client.
Deployment
Apps are bundled in a .war file.
App path classes and libraries:
/WEB-INF/classes/
/WEB-INF/lib/
EndPoint class loader has access to packages starting with:
java.
javax.
org.xml.
org.w3c.
com.aza.ep_api.
EpServer should be used with trusted apps only.
Example echo
Start ep_server
unzip - ep_server.zip
in ep_server/conf/ep_server.conf or ep_server/conf/ep_server_lin.conf
set server directory "server_dir"
java -cp g:/ep_server/lib/* com.aza.ep.epserver config=g:/ep_server/conf/ep_server.conf
java -cp /home/aza/ep_server/lib/ep_api-1.0.1.jar:/home/aza/ep_server/lib/ep_server-1.0.1.jar:/home/aza/ep_server/lib/kvs-2.0.jar com.aza.ep.epserver config=/home/aza/ep_server/conf/ep_server_lin.conf
Deploy ep_echo
Configure build.xml
set deploy directory - "ep_server_dir"
Configure src/resources/web.xml
Run build.xml
run EchoClient