This is the JMRI distributed "lib" directory, available as the "lib" directory in JMRI/JMRI Git. These are the library files, .jars and others, needed at build and run time.
Generally, we use subdirectories to hold the Git-resident versions of OS-specific code for Windows (.dll files) and Linux (.so files) so that we can separate various builds.
For example, the RXTX rxtxSerial.dll comes in separate versions for 32-bit and 64-bit Windows, but the files have the same name. We store them in separate subdirectories under windows/, and let the installer sort them out.
A similar mechanism is used for Linux under the linux/ directory.
macOS binaries are treated slightly differently, see the README file there.
If you make a change in this directory (add/change/remove a file), please make corresponding changes in the control files that are used for various JMRI development and release operations:
- build.xml - used by Ant, and in turn by various IDEs
- .classpath - used by Eclipse
- pom.xml - used by Maven (see notes below)
- nbproject/ide-file-targets.xml, nbproject/project.xml - used by NetBeans
Note that Windows installers don't necessarily remove existing library versions. (See JMRI Issue #359 for discussion on this) Until that's changed, if you remove a library from here that really needs to not be in user installs, you need to add an explicit delete to the scripts/WinInstallFiles/InstallJMRI.nsi file, in addition to modifying those above.
If the specific library being added or updated is not published to Maven Central by the upstream provider, run the following command after updating the pom.xml file, replacing the tokens in ALL CAPS with the correct values for that library:
mvn deploy:deploy-file -DgroupId=GROUP -DartifactId=ARTIFACT -Dversion=VERSION -Durl=file:./lib -DrepositoryId=lib -DupdateReleaseInfo=true -Dfile=./lib/FILE.jar
for example:
mvn deploy:deploy-file -DgroupId=net.bobis.jinput.hidraw -DartifactId=jhidrawplugin -Dversion=0.0 -Durl=file:./lib -DrepositoryId=lib -DupdateReleaseInfo=true -Dfile=./lib/jhidrawplugin.jar
- from Java3D 1.5.2
- from http://search.maven.org/#search%7Cga%7C1%7Cg%3Ajavax.vecmath
- from http://serialio.com
- version 3.2.1
- provides org.apache.commons.lang3
- from https://commons.apache.org/proper/commons-lang/
- version 2.0 of 2006-12-12
- from http://javacsv.sourceforge.net/
- version 2.03
- from http://java.sun.com/javase/technologies/desktop/javahelp/
- version 1.2.15
- slf4j logging interface to log4j
- from http://www.slf4j.org
- updated JMRI 4.1.4 from version 1.7.6, added jul-to-slf4j
- 0.7.14 from https://oss.sonatype.org/service/local/repositories/releases/content/org/openlcb/openlcb/0.7.14/openlcb-0.7.14.jar or the maven central repository.
- left over from javax.comm version 2.0 (minor version unknown) from Sun
- From Rxtx-2.2pre2 http://rxtx.qbang.org (http://rxtx.qbang.org/pub/rxtx/rxtx-2.2pre2-bins.zip)
- The win32 and win64 directories contain the necessary rxtxSerial.dll for the two windows varients
- The i686-pc-linux-gnu directory contains two .so libraries for 32-bit Linux
- For MacOS X: macosx/librxtxSerial.jnilib 169488 from rxtx-2.2pre2-bins distribution macosx/ppc/librxtxSerial.jnilib 301908 built for MacOS X 10.4 by John Plocher 2010-02-04
- (JMRI file)
- version Xerces-J 2.9.1
- from http://www.apache.org/dist/xerces/j/
- (deprecated, we've moved to JDOM2; will be removed from here and control files post JMRI 3.12, but remains for e.g. CATS now)
- version 1.1
- from <jdom.org>
- version 2.0.5
- from <jdom.org>
- JSON processing library com.fasterxml.jackson
- version 2.8.5
- see http://www.journaldev.com/2324/jackson-json-processing-api-in-java-example-tutorial
- JavaDoc http://www.javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/2.8.5
bluecove-2.1.1-SNAPSHOT.jar lib/bluecove-bluez-2.1.1-SNAPSHOT.jar bluecove-gpl-2.1.1-SNAPSHOT.jar Installed from JMRI patch 1037 BlueCove (http://bluecove.org/). The file bluecove-2.1.1-SNAPSHOT.jar is licensed under Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0) while the file bluecove-gpl-2.1.1-SNAPSHOT.jar, needed for use on linux, i is licensed under GNU General Public License (http://www.gnu.org/licenses/gpl.html). Questions to [email protected] The particular files are actually lib/github-machaval/bluecove-2.1.1-SNAPSHOT.jar lib/github-machaval/bluecove-bluez-2.1.1-SNAPSHOT.jar lib/github-machaval/bluecove-gpl-2.1.1-SNAPSHOT.jar from https://github.com/ieee8023/blucat/find/master The source for these is also available there. The related project seems to be https://github.com/machaval/bluecove The native libraries were installed on a best guess effort; exact locations might not be right. lib/windows/bluecove.dll lib/windows/bluecove_ce.dll lib/windows/intelbth_ce.dll lib/windows/x64/intelbth_x64.dll lib/windows/x86/intelbth.dll
- from http://repo1.maven.org/maven2/org/python/jython-standalone/2.7.0/
- unlike jython-2.7.0.jar, includes embedded standard python libs
- (needed for jfcunit)
- Used for testing only, not at runtime
- from https://jinput.dev.java.net/ jinput_dist_20090401
- (most recent as of 2010-Jan-02)
http://inf.ntb.ch/infoportal/help/index.jsp?topic=/ch.ntb.infoportal/tools.html
http://libusb.wiki.sourceforge.net/
libusb installers from "TWAIN SANE" http://www.ellert.se/twain-sane/
version 0.5.7 libusbJava.jnilib for MacOS X to get 64-bit, from http://wiki.ztex.de/doku.php?id=en:software:porting#macos_port requires /usr/local/lib/libusb-0.1.4.dylib via MacPorts or Homebrew or an installer from http://www.ellert.se/twain-sane/ LibusbJava.dll for Windows is 0.2.3.0 (Feb 18, 2008) libusbJava.so for Linux was built on Ubuntu 7.10 w libusb 2:0.1.12-7
- mailapi.jar
- smtp.jar
from http://jogamp.org/deployment/archive/rc/v2.3.1/jar/ cross-platform .jar files joal.jar gluegen-rt.jar
plus helper native libraries: for MacOS X 10.4+ extracted from joal-natives-macosx-universal.jar libjoal.jnilib extracted from gluegen-rt-natives-macosx-universal.jar libgluegen-rt.jnilib
for Windows x86 extracted from joal-natives-windows-i586.jar joal.dll extracted from glugen-rt-natives-windows-i586.jar gluegen-rt.dll
for Windows x64 extracted from joal-natives-windows-amd64.jar joal.dll extracted from glugen-rt-natives-windows-amd64.jar gluegen-rt.dll
for Linux i386 extracted from joal-natives-linux-i586.jar libjoal.so extracted from glugen-rt-natives-linux-i586.jar libgluegen-rt.so
for Linux x86_64 extracted from joal-natives-linux-amd64.jar libjoal.so extracted from glugen-rt-natives-linux-amd64.jar libgluegen-rt.so
for Linux armv6l extracted from joal-natives-linux-armv6.jar libjoal.so extracted from glugen-rt-natives-linux-armv6.jar libgluegen-rt.so
for Linux armv7l extracted from joal-natives-linux-armv6hf.jar libjoal.so extracted from glugen-rt-natives-linux-armv6hf.jar libgluegen-rt.so
NOTE: joal.jar is currently replaced by an own-built version with modifications to correct the load of WAV files with appended metadata - see GitHub PR for details of modifications.
- Version 3.5.1 (4 August 2016)
- from https://github.com/jmdns/jmdns/releases
- The Checker Framework 2.0.1 (1-Jun-2016)
- From http://types.cs.washington.edu/checker-framework/
- Eclipse compiler 4.6 from
- http://download.eclipse.org/eclipse/downloads/drops4/R-4.6-201606061100/ (via ecj-4.6.jar) June 22, 2016
- used in ant warnings target
- Java Native Access library
- from http://search.maven.org/#artifactdetails%7Cnet.java.dev.jna%7Cjna%7C4.4.0%7Cjar
- Java Native Access platform-specific utilities library
- from http://search.maven.org/#artifactdetails%7Cnet.java.dev.jna%7Cjna-platform%7C4.4.0%7Cjar
- xAP automation protocol support
- From http://patrick.lidstone.net/html/dev_tools.html
- See license http://patrick.lidstone.net/html/xap.html
- PBender 03-Mar-2014 This version comes from the XBee library source repository
- (we needed some of the functionality, but the pre-compiled library has not been updated).
- from http://www.umlgraph.org/download.html
- only used for ant javadoc-uml
- version 4.12
- Used for testing only, not at runtime
- from http://search.maven.org/#artifactdetails%7Cjunit%7Cjunit%7C4.12%7Cjar
- version 1.3
- Used for testing only, not at runtime
- from http://search.maven.org/#artifactdetails%7Corg.hamcrest%7Chamcrest-core%7C1.3%7Cjar
- version 2.08
- Used for testing only, not at runtime
- from http://jfcunit.sourceforge.net
Internationalization checker: used in source code development, for checking
proper implementation of text internationalization. This archive need not
be included in JMRI releases.
From https://github.com/phamernik/i18nchecker .
See license https://github.com/phamernik/i18nchecker/blob/master/i18nchecker/LICENSE-2.0.txt
Usage info at https://github.com/phamernik/i18nchecker/blob/master/README.md
Additional useful information at https://blogs.oracle.com/geertjan/entry/i18nchecker
and https://blogs.oracle.com/geertjan/entry/i18nchecker_part_2
- check for duplicated properties
- Handle rules for testing calls to java.System methods
- version 1.5
- from http://developer.apple.com/library/mac/samplecode/AppleJavaExtensions/
- Used for building only, not at runtime
- From Findbugs 3.0.0 from http://findbugs.sourceforge.net
- Only needed at compile/build time, not runtime
- version 1.1.3
- from http://xml.apache.org/crimson/
- No longer used as of JMRI 2.7.6
- version, source unknown
- No longer used as of JMRI 2.13.4
- made with Java 1.6 by JMRI to handle the single jmri.util.ExternalLinkContentViewerUI class, now being carried in this jar file instead of source until we migrate to Java 1.6
- No longer used as of JMRI 2.99.1
- jakarta-servletapi-3.2.3-src/lib/servlet.jar but no longer included