User Tools

Site Tools


access:agtek_access_dev

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
access/agtek_access_dev.txt · Last modified: 2018/10/19 21:39 by mjallison