The Jefferson Lab Java Logbook API for programmatic access to the logbook server.
This library requires a Java 11+ JVM and standard library at run time.
You can obtain the library jar file from the Maven Central repository or (Sonatype backing store) or from a Maven friendly build tool with the following coordinates (Gradle example shown):
implementation 'org.jlab:jlog:<version>'
Check the Release Notes to see what has changed in each version.
import org.jlab.jlog.LogEntry;
import org.jlab.jlog.exception.LogException;
public class HelloWorldDemo {
public static void main(String[] args) throws LogException {
LogEntry entry = new LogEntry("Hello World", "TLOG");
long lognumber = entry.submitNow();
System.out.println("Successfully submitted log entry number: " + lognumber);
}
}
The default configuration properties are located in jlog-default.properties. You can override them by creating your own jlog.properties and including it in your home directory. Or you can programmatically set properties within a Java application using Library.setConfiguration().
In order to interact with the logbook server users must authenticate. This is done using a logbook server client certificate, which is assumed to be located in the user's home directory in a file named .elogcert. You can override the location of the certificate with LogEntry.setClientCertificatePath().
This project is built with Java 17 (compiled to Java 11 bytecode), and uses the Gradle 7 build tool to automatically download dependencies and build the project from source:
git clone https://github.com/JeffersonLab/jlog
cd jlog
gradlew build
Note: If you do not already have Gradle installed, it will be installed automatically by the wrapper script included in the source
Note for JLab On-Site Users: Jefferson Lab has an intercepting proxy
- Bump the version number in the VERSION file and commit and push to GitHub (using Semantic Versioning).
- The CD GitHub Action should run automatically invoking:
- The Create release GitHub Action to tag the source and create release notes summarizing any pull requests. Edit the release notes to add any missing details.
- The Publish artifact GitHub Action to create a deployment artifact on maven central.
- The Publish docs GitHub Action to create javadocs.