Developing Java Services
Structure of a Java Service Repository
A Java service repository has to be a self-contained JAR file containing also a folder META-INF/MANIFEST.MF holding the meta information of the Java Service.
You need to add the following name/values to META-INF/MANIFEST.MF.
|E2E-Service-Name||Name of the service. Must be unique for each Bridge you deploy to.||E2E-Service-Name=helloworld|
|E2E-Service-Version||Version of the service. Can be any string. It is not parsed by the Bridge.||E2E-Service-Version=1.2.3|
|E2E-Service-Description||Short description of the service.||E2E-Service-Description=Hello World Service|
Adding Information to META-INF/MANIFEST.MF
You cannot directly create or edit the MANIFEST.MF. There are two ways to add information to this file:
- Use the command line JAR tool as described in the Java tutorial Modifying a Manifest File.
- Do it within Java code as described in Add Manifest into JAR File Using Java.
Building the JAR File
The Java service repository has to be a self-contained JAR file. With the open-source tool One-Jar you can create such a file.
An easy way to start developing a new Java service with One-Jar is the Application Generator approach. This approach provides you with a complete Eclipse/Ant application directory, that you can use as a starting point for your own One-JAR application. The application generator is driven by a template built into the one-jar-appgen.jar file (see one-jar-appgen).
- Download one-jar-appgen-0.97.jar.
Generate the application, build, and run it.
Add source code to the src directory, library jars to the lib directory, and rebuild.
- Gradle task jar for building repositories without dependencies
- task selfContainedJar for building repositories which are depending on the Java libraries you added to the service.
Writing to Bridge Log Files
Implementing a Service Shutdown Activity
Bridge 7.2.0 Upon stopping a Java service, the Bridge will send an operating system signal (
SIGINT) to the service to stop it. If you want to do some clean-up actions before stopping, you have to implement a signal handler for
SIGINT in your Java service.
For more information, refer to the Oracle Documentation of addShutdownHook.