Skip to content

News and noteworthy

Philip Helger edited this page May 28, 2019 · 90 revisions


v5.2.0 - work in progress

  • The GitHub project was renamed from peppol-smp-server to phoss-smp
    • The internal submodule names were adopted:
      • peppol-smp-server-libraryphoss-smp-backend
      • peppol-smp-server-sqlphoss-smp-backend-sql
      • peppol-smp-server-xmlphoss-smp-backend-xml
      • peppol-smp-server-webappphoss-smp-webapp
      • peppol-smp-server-webapp-sqlphoss-smp-webapp-sql
      • peppol-smp-server-webapp-xmlphoss-smp-webapp-xml
    • The Maven artifact IDs were changed according to the new submodule names
    • All internal package names were changed to reflect the new naming (com.helger.peppol.smpserver.* was changed to com.helger.phoss.smp.*)
    • System property names, configuration file names or configuration properties are NOT changed. If you don't develop against phoss SMP, nothing changed for you
  • Slightly changed the wording in the small hint menu in the secure area (see issue #100)
  • Changed the order on the "SMP Settings" page, so that "SMK/SML" comes before "Directory" (because it is more important)
  • The "Tasks/problems" page now also checks, if the SMP is registered to the SML (see issue #101)
  • The page "Certificate information" now knows about the "TOOP Pilot" PKI
  • Added a new button on page "Transport Profiles" to ensure all default transport profiles are present
  • Added new backend MongoDB (see issue #105)

v5.1.2 - 2019-05-28

  • A new configuration option webapp.public.login.enabled in can be used to turn off the login possibility from /public URLs (see issue #102)
  • The Docker internal environment variable VERSION was renamed to SMP_VERSION to avoid conflicts
  • The Docker images now use Tomcat 9 with JRE 11 as the basis

v5.1.1 - 2019-04-23

  • The random generator initialization that caused long initialization delays ways fixed (through ph-commons 9.3.2)
  • The default read timeout for the SML connection was updated from 5 to 30 seconds issue #99
  • The Docker images use the non-blocking random by default

v5.1.0 - 2019-03-20

  • Updated user interface to use Bootstrap 4.3.1
  • Reworked the REST API error handling, so that errors are propagated more clearly (see issues issue #72 and issue #80).
  • Added new configuration file property with the default value of false
  • Added new setting if Directory is required or not. Certain warnings are enabled/disabled depending on that status.
  • The Status API got a new item smp.pd.needed that contains the new setting if the Directory is needed or not.
  • The certificate update API was integrated in the SMP (see issue issue #70).
  • When using identifier type simple it is now possible to created process identifiers without a scheme (see issue issue #87).
  • Added new task/problem checks for "global debug" and "global production" settings.
  • The Status API got a new item smp.publicurl that contains the public URL from the configuration file
  • The Status API got a new item smp.forceroot that contains the setting from the configuration file
  • If Directory automatic update is enabled, any ServiceInformation change triggers a Directory update if a Business Card is available for the respective Service Group (see issue issue #94).
  • The X-Frame-Options HTTP header is now by default set to SAMEORIGIN to avoid click-jacking attacks.
  • The REST API implementation was reworked to be more secure and less prone to attacks.
  • The Business Card page now always shows the possibility to manually update a ServiceGroup in the Directory

v5.0.8 - 2018-10-30

  • The simple login from the /public now uses HTTP method POST instead of GET (security issue)
  • An issue with case sensitivity in the writing REST API to create service groups was fixed, if a case-insensitive identifier factory is in used (e.g. "peppol") (see issue #57).

v5.0.7 - 2018-10-29

  • Added new configuration item global.debugjaxws of type boolean to enable WS debug logging
  • Renamed the administration page "SML information" to "SML configuration"
  • Instead of maintaining the SML URL manually in the settings, you now need to chose one of the configured "SML configurations". This implies that the configuration property sml.url got useless.
  • The name of the Directory can now be customized using configuration item By default it is "PEPPOL Directory" but it may be "TOOP Directory" for TOOP as well. This is a pure user interface configuration item and has no functional implications.
  • It's now possible to edit the extension of an Endpoint on the UI (see issue #74).
  • Improved the visualization of extensions when viewing the details of an object
  • In case a BusinessCard exists without a ServiceGroup, this no longer causes an exception
  • If PEPPOL PKI v3 is configured, a certificate chain of 3 elements is expected
  • The Endpoint tree view now also has a button to directly query the endpoint
  • Updated to PEPPOL Directory API 0.6.2
  • Error handling was improved if an error occurred when communicating with the SML.
  • The Status API got a new item build.timestamp
  • The SQL backend now uses MySQL Connector/Java 8.0.x. I had issues with the timestamp handling which forced me to add useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC to the JDBC connection URL. But the solution is still binary compatible with the previous MySQL 5.1 connector version.
  • Fixed an error with same internal ID when copying Business Cards on the UI

v5.0.6 - 2018-06-04

  • Fixed an error with rolling back SML transactions (see issue #71)
  • The UI now has a possibility to explicitly unregister a Service Group from the SML without deleting it
  • Added the possibility to configure the execution time warning (SQL version only)
  • The field "is deprecated?" of transport profiles can now be handled via the UI
  • A new Status API was introduced to query configuration parameters (see issue #73).
  • Added a possibility to disable the status API via the Configuration

v5.0.5 - 2018-04-16

  • Fixed a stupid error that the deletion of a ServiceGroup is not properly propagated to the PEPPOL Directory
  • Updated to Jersey 2.27
  • Updated the default truststore so that the SSL certificates of the DG DIGIT SML are contained, as there seems to be an issue with the latest Java 8 update.
  • The "Create Business Card" page only shows Service Groups that don't have a Business Card yet

v5.0.4 - 2018-03-27

  • A suspicious comment indicating that PEPPOL Directory is not supported by SQL backend was fixed
  • The /complete/ and the /list/ REST APIs are now available for the OASIS BDXR as well
  • The sub-projects previously licensed under EUPL 1.1/MPL 1.1 are now licensed under MPL 2.0
  • The automatic PEPPOL Directory update on import/REST API was fixed (see issue #52)
  • The list of managed participants on the public start page can be disabled (see issue #58). Configure via property webapp.startpage.participants.none in
  • Warning about disabled SML can be turned off (see issue #53). Configure via property sml.needed in
  • Added configurable timeouts from SMP to SML using the properties and as mentioned in issue #67.
  • The Certificate information page now has explicit support for the new OpenPEPPOL PKI v3
  • By using the predefined truststore path truststore/complete-truststore.jks with password peppol support for OpenPEPPOL PKI v2 and v3 is provided
  • By updating to PEPPOL Directory 0.6.0 the extended PD Client configuration in file can be used. See for details.

v5.0.3 - 2017-07-21

  • Initial support for SMP Docker images was added
  • Fixed NPE in REST API if an invalid data format was used
  • Made SML registration IP and hostname configurable (see issue #49)
  • Existing service groups can now be subsequently registered to the SML (see issue #51)
  • The "SML registration" pages now contains a note, if the SMP is already registered to the SML.
  • The default page of the PEPPOL Directory was changed to - because of the very special https setup currently used, an update to the PD client library v0.5.1 is highly recommended
  • An error prevented Business Cards from being imported correctly - Thanks Ger for pointing this out
  • An exception when using the PEPPOL REST API in combination with an Endpoint without an URI was fixed
  • The Docker image got vim by default (see issue #45)

v5.0.2 - 2017-04-04

  • Fixed an NPE in "Check DNS state" when an empty participant identifier scheme is used
  • Added a new entry to the "Tasks/problems" page if the default password of the default Admin user was not changed
  • Improved and unified logging a bit
  • Vagrant configuration has been updated to work with the new structure from 5.0.1
  • Made the public start page static to decrease server load. The previous layout can be restored by switching the property webapp.startpage.dynamictable to true in the file.
  • Added support for a writable REST API to create/update/delete BusinessCards per API (see issue #43)

v5.0.1 - 2016-11-27

  • There are now 2 separate web applications for the SQL and the XML backend to resolve a problem with WildFly if a persistence.xml is in the class path but the XML backend is used.
  • An incompatibility with .NET using the inclusive canonicalization algorithm was fixed ("\r\n" vs. "\n")
  • The canonicalization algorithm used in the signature was changed to "exclusive" as stated in the PEPPOL SMP specification. The OASIS BDXR version still requires the use of the "inclusive" version.

v5.0.0 - 2016-11-15

v5.0.0 Release Candidate 2 - 2016-11-07

  • Fixed extension UI handling for BDXR service groups (see issue #30)
  • Delete Business Card when Service Group gets deleted (see issue #31)
  • Using specific namespace prefixes for SMP REST responses ('smp' in PEPPOL mode and bdxr in BDXR mode)
  • The endpoint list can now also be view as a tree structure (see issue #36)
  • Identifier case sensitivity (or insensitivity) is now based upon the used identifier schemes (to comply with the generic BDXR SMP CS03 specification). In BDXR mode all identifier types are case insensitive where in PEPPOL mode only the participant identifiers are case insensitive (when using the iso6523-actorid-upis scheme).
  • Service groups, endpoints and Business Cards can now be exported and imported to simplify the migration with all data to a different SMP (see issue #37)
  • Added the possibility to delete empty processes and empty document types from the list of endpoints.
  • A simple Vagrant setup for SMP was provided by @jerouris and can be found at

v5.0.0 Release Candidate 1 - 2016-10-13

  • A special Upgrade Guide V5 was created
  • PEPPOL Directory automatic update was added (see issue #25)
  • When running in BDXR mode, the Signature and Digest algorithm was fixed to SHA256
  • The SQL implementation for the business cards is in place (see issue #28)

v5.0.0 Beta 1 - 2016-08-06

  • JDK8 is be the minimum runtime requirement, the configuration is totally backwards compatible
  • The REST-API of the SMP can now supply either the PEPPOL XML format (in namespace or the BDXR SMP XML format (in namespace (see issue #29)
  • The "SMP - SML tools" page from has been integrated (see issue #22)
  • It's possible to customize the SMLs to use inside the tool (see issue #23)
  • A truststore for https connection with the SML can now be configured
  • Keystore and truststore can be reloaded at runtime
  • Identifier types are now customizable (see issue #20)
  • The "minimum SQL" implementation introduced in 4.1.1 was removed again because the original requestor no longer uses it.
  • Improved the integration of the PEPPOL Directory configuration into the system
  • New pages for bulk changing URLs and certificates are present (see issues #4 and #27)
  • Certain settings can now be changed at runtime:
    • Enable or disable the writable REST APIs
    • Enable or disable the PEPPOL Directory integration and specify the hostname
    • Enable or disable the connection to the SML and the specify the management endpoint
  • The "Transport profiles" page was moved into the "Administration" sub menu

v4.1.2 - 2016-03-05

  • This is the last version supporting JDK 7
  • Added experimental support for PEPPOL Directory Business Cards (properties and - see PEPPOL Directory Integration

v4.1.1 - 2016-02-23

  • Added a new "minimum SQL" SMP implementation without a GUI - as simple as possible: peppol-smp-server-webapp-sqlmin
  • All service group (participant) identifiers are now treated case insensitive.
  • Fixed the handling of the SML migration keys as SMK 3 limits them to 24 characters

v4.1.0 - 2015-12-07

  • Changed the application title to "ph-peppol-smp-server"
  • Fixed some internal URL encodings in links (on the UI)
  • Endpoint reference URLs are now optional - creating empty Address elements
  • Fixed a problem that consecutive PUTs for service information caused an internal error and required an intermediate DELETE
  • Deletion of redirects via the REST API works
  • Separated the version number into a separate properties file (
  • Fixed an EclipseLink caching issue that "find"s after delete still delivered a result (SQL backend only)
  • Added new smp-server property smp.publicurl to specify the public (outside) URL of the SMP server in an easy way
  • Added the possibility to define custom transport profiles and use them for your endpoints

v4.0.3 - 2015-11-09

  • Fixed a severe bug - the SML deletion of service groups did not work with the SQL backend - the XML backend is not affected!
  • A new page "Tasks and problems" showing potential misconfiguration and action items for all service groups was added
  • Added new version number property ('webapp.version' in file

v4.0.2 - 2015-11-05

  • Added the configuration option to disable the non-standard writable REST API programmatically. See Configuration for details.
  • Updated the SML client so that it works with the new CIPA SMK 3.0.0 (passing SMP-ID when deleting a participant)

v4.0.1 - 2015-10-08

  • fixed a problem that some signed serialized REST responses could not be validated correctly

v4.0.0 - 2015-10-04

  • Initial version with management GUI and replaceable backend
You can’t perform that action at this time.