- Fixed the NullPointerException "The value of 'KeyStoreType' may not be null!" on the Tasks and Problems and the Certificate information pages, if the Peppol Directory integration is enabled but
pdclient.keystore.typeorpdclient.truststore.typeis not configured.
Since peppol-directory-client 1.0.0 these two properties have no implicit defaultJKSanymore, so the pages now report the missing property instead of failing.
See #586. - (SQL) Fixed the SQL backend reporting a failed SML registration or deregistration of a Service Group as a generic "Error creating ServiceGroup" / "Failed to delete ServiceGroup" internal error.
TheRegistrationHookExceptionwas wrapped in anSQLExceptionby the database transaction handling and therefore not recognized, so the SML fault details were lost.
The REST API now returns the same SML error message as the other backends.
See #585. - The REST APIs
PUT /migration/inbound/{ServiceGroupId}/{MigrationKey}andPUT /migration/inboundnow support a participant that is migrated from this SMP to this SMP, like the Migrate to this SMP page already did.
If the Service Group exists and an outbound migration for it is in progress, the Service Group is kept,Migrate()is called at the SML, the inbound migration is stored and the outbound migration is set toMIGRATED.
Previously this case was rejected with HTTP 400 "The Service Group '...' already exists.", and the only workaround (finalizing the outbound migration) deleted the Service Group including all its registrations and the Business Card.
The response contains the additional attributeoutboundMigrationFinalizedin this case.
See #584. - Added optional HTTP caching headers for the REST API endpoints
GET /{ServiceGroupId}andGET /{ServiceGroupId}/services/{DocumentTypeId}.
The new configuration propertysmp.rest.cache.http.maxageenablesCache-Control: public, max-age=N.
The new configuration propertysmp.rest.cache.http.etagenables a strongETag(SHA-256 of the response) and304 Not Modifiedresponses for conditional requests.
Both are disabled by default and independent ofsmp.rest.cache.enabled.
See #581. - Added the new REST APIs
POST /endpoints/url/bulk-changeandPOST /endpoints/certificate/bulk-changefor the bulk change of endpoint URLs and endpoint certificates, like the Bulk change URL and Bulk change certificate pages already did.
The JSON body containsoldURL,newURLand optionallyserviceGroupIDfor the URL change, andoldCertificateandnewCertificate(PEM) for the certificate change.
The optional URL parameterwait=truemakes the call return200with the number of changed endpoints after the change is done; otherwise the change runs in the background and202is returned.
Only one bulk change per kind may run at a time (UI and API share the lock); a second call returns503.
See #314 and #315 - thx @walles12 for the initial pull request #479. - Added the new Bulk change technical contact URL page in the Endpoints menu and the REST API
POST /endpoints/technicalcontacturl/bulk-changeto change the technical contact URL of multiple endpoints at once.
The new methodsgetEndpointTechnicalContactUrlUsageMapandupdateAllEndpointTechnicalContactUrlswere added toISMPServiceInformationManagerand implemented for the XML, SQL and MongoDB backends.
See #434. - Added the new Bulk change service validity page in the Endpoints menu and the REST API
POST /endpoints/servicevalidity/bulk-changeto change the service activation date and/or the service expiration date of all endpoints of a document type at once.
Each date can be kept, set or removed.
The new methodsgetEndpointDocumentTypeUsageMapandupdateAllEndpointServiceValiditywere added toISMPServiceInformationManagerand implemented for the XML, SQL and MongoDB backends.
See #135. - The Repair SML differences page now shows the participants of the selected report entry and repairs only the selected ones, instead of all-or-nothing.
Nothing is selected by default.
The number of shown participants can be limited to 100, 1000, 10000 or all, and an information is shown if the report contains more participants than are shown.
The selection needs a separate confirmation before anything is sent to the SML or created locally.
The constructor ofSMLRepairJobgot an additional optional parameter with the selected participants.
See #579 - thx @netsual
Full Changelog: phoss-smp-parent-pom-8.6.2...phoss-smp-parent-pom-8.7.0