Extending the Metro server

From MeLibraries Wiki
Jump to: navigation, search

How to modify and update the Metro server

The Metro server is the node that sits within the DMZ of a library and communicates ME Library requests to the ILS. There are times when changes have to be made, like when there are 2 versions of the same ILS being used by different institutions.

Migrating a Library from one ILS to another

PRL, as of March 14, 2019, is moving from Horizon to Polaris 6.2. Fortunately the Polaris module has been written, unfortunately it was written and tested for a different version of Polaris 5.2. To bring it up to date we need to take describe %TABLE;. The staff at PRL were extremely helpful in dumping this information and pointing out the changes from the older version. As tradition would have it, III have removed a string column and replaced it with an integer column to represent a foreign key in a new table. We don't need to address this new table, but we do need to add some conditional code that will run differently if the target ILS is Polaris 5.2 or 6.2.

Implementation

To do this I added an emum which defines the 2 supported versions, and added an optional tag to the polaris_sql.properties file called:
<entry key="conformance">Polaris 6.2</entry>
. This means that the PropertyReader will read the file, and if it finds the tag, will read it and make it available to any other class at run time. The classes that use it are:

Library updates

Here library is defined as the additional jar files, or dependencies for the MeCard.jar file. Currently they include:

  • commons-daemon-1.1.0.jar
  • sqljdbc42.jar
  • mysql-connector-java-5.1.31-bin.jar
  • commons-logging-1.1.3.jar
  • commons-codec-1.8.jar
  • httpclient-4.3.4.jar
  • fluent-hc-4.3.4.jar
  • commons-cli-1.2.jar
  • httpcore-4.3.2.jar
  • gson-2.2.4.jar