Skip to content
This repository has been archived by the owner. It is now read-only.
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


An up-to-date implementation of the PEPPOL LIME protocol. It is based on the discontinued CIPA libraries. No new functionality is added, but the existing dependencies are kept up-to-date.

This version of the LIME server uses AS2 to forward messages to foreign APs. START is no longer supported!

Latest version: 3.0.1 as of 2016-01-21

Note: 3.0.1 will be the last release except some issues or pull requests are opened. This means this project is now in "low effort maintenance" mode :)

Note: for the fun of it I updated the head revision to 3.5.0-SNAPSHOT with updated Java 8 bindings (untested).

Project layout

This project has the following sub-projects

  • peppol-lime-api with the most generic API and a lot of JAXB generated classes (JAR library)
  • peppol-lime-client is the client API for LIME. See the test class MainLimeClient for a fully working example application.
  • peppol-lime-server is the LIME server application. It is a web application and requires an application server like Tomcat or Jetty to run.


To build the project you need at least Java 1.7. Simply call mvn clean install on the commandline to build all projects.


The LIME server uses the file for configuration. The default file resides in the folder src/main/resources of the peppol-lime-server project. You can change the path of the properties file by setting the system property to the absolute path of the configuration file (e.g. by specifying on Java startup). The name of the file does not matter, but if you specify a different properties file please make sure that you also specify an absolute path to the keystore!

Details of the configuration items:

  • the ID of the SML to use. Maybe one of the following: digitprod for the DIGIT production SML, digittest for the DIGIT test SMK or local for a locally running SML on http://localhost:8080. If not specified, the default is digitprod.
  • as2.keystore.path: the path to the keystore for the AS2 message sending. Must be of type PKCS12 and must be a writable path, as the keystore is modified during runtime. If it is a relative path, it is relative to the web application (relative to src/main/resources in development mode, depending on the application server in production mode). It is preferred that this is an absolute path to the keystore file.
  • as2.keystore.password: the password needed to access the keystore.
  • as2.sender.keyalias: the alias of the sender key in the key store. The password for the key must be the same as the key for the whole keystore.
  • the AS2 ID of the sender. For PEPPOL this MUST be the common name contained in the certificate (APP_....).
  • the AS2 email address of the sender.
  • as2.sign.algorithm: the signing algorithm to use. Must be one of the following: md5, sha1, sha-256, sha-384 or sha-512. If none of these values is specified, the value defaults to sha1.
  • the absolute directory where the LIME inbox directory should be created. If this property is not defined the path is defaulted to the value of ServletContext.getRealPath ("/").
  • lime.service.url: the absolute URL of LIME service how it is publicly accessible. If this property is not defined or empty the URL is dynamically build based on the current HttpServletContext. If this property is defined, it must end with /limeService as this is the Webservice local name.

My personal Coding Styleguide | On Twitter: @philiphelger


An up-to-date implementation of the PEPPOL LIME protocol



No packages published