AGTEK Access Server Development
This note describes the state of the AGTEK Access Server development environment as of October 2018.
All the server code is written in Java 1.8 and doesn't use any newer language features. In fact
1.8 features are pretty limited to a few instances of lamdas here and there.
The chosen IDE is the Intellij community environment, although Eclipse may still work. Eclipse
was the older environment used previously.
Unit Testing
There are currently 216 JUnit TestCase test functions in the agteknet/test directory.
The best way to test the server is run “TestAll”, which runs all the other test suites.
JUnit assert failures will be flagged in the IDE.
NOTE: The production builds run by Jenkins will fail if any unit test fails.
It is highly recommended that all new functionality is coded with unit tests
(both at the session level and with client api level) to make sure it works
reliably before rolling into either limited testing (e.g. key2) or production.
The unit tests also continue to test for deprecated APIs that may still be utilized
by older software clients being used by customers.
Packages required by Access
The following packages (and their versions) are used. Each of these are checked into GIT in the agteknet/packages directory.
activation.jar - The Java Activation Framework (jaf) for email support
commons-codec-1.6.jar - The Apache commons codec for zip compression to work around issues in native Java ZIP
commons-lang-2.5.jar - Apache commons support for codec and logging
commons-logging-1.1.4 - Apache commons logging used in the server.
glazedlists-1.8.0_java15.jar - A UI package used in AccessSupport/KeyForge (might not be used anymore????)
HikariCP-2.7.8.jar - JDBC connection pool for communication between the server and the SQL DB. Critically important!
httpclient-4.3.4.jar -
httpcore-4.3.2.jar -
jackcess-2.0.6.jar - MS Access DB interface, needed by AccessSupport/KeyForge to get customer lists.
java-xmlbuilder-1.1.jar - (still used?)
javaws.jar -
jdatepicker-1.2.3.jar - Used in AccessSupport/KeyForge, mostly for license edit dialog.
jets3t-0.9.4.jar - AWS S3 shim library, used by server for file storage in S3.
junit-4.12.jar - Used for running unit test, may not be needed with modern Intellij.
mail.jar -
mariadb-java-client-2.2.2.jar - JDBC driver, supports MySQL, Aurora, MariaDB.
min-core-2.0.0-M4.jar
mysql-connector-java-.5.1.29-bin.jar - (not used????)
netty-all-4.1.25.Final.jar - The network interface between the socket and the server dispatch, critically important!
protobuf-java-3.5.1.jar - Google Protobuf implementation for parsing and forming messages, critically important!
sl4j-api-1.7.25.jar
sl4j-jdk14-1.7.25.jar
prooxool-0.9.1jar - Totally deprecated DB pooling (ancient), can probably be removed, but need to change MysqlPool.java
prooxool-cglibjar - Totally deprecated DB pooling (ancient), can probably be removed, but need to change MysqlPool.java