Skip to content

Migrations

Philip Helger edited this page Sep 11, 2024 · 12 revisions

This page contains everything necessary related to migrating phase4 versions

Upgrade from 2.x to 3.x

  • The phase4-profile-bpc was removed in favour of phase4-profile-dbnalliance
  • All deprecated methods marked for removal have been removed
  • Here are the main coding related changes
    • Renamed packages
      • Renamed package com.helger.phase4.error to com.helger.phase4.model.error
      • Renamed package com.helger.phase4.messaging.domain to com.helger.phase4.model.message
      • Renamed package com.helger.phase4.http to com.helger.phase4.messaging.http
    • Moved classes
      • Moved classes IAS4IncomingSecurityConfiguration and AS4IncomingSecurityConfiguration to package com.helger.phase4.incoming.crypto
      • Moved classes from com.helger.phase4.servlet to com.helger.phase4.incoming
      • Moved classes from com.helger.phase4.servlet.mgr to com.helger.phase4.incoming.mgr
      • Moved classes from com.helger.phase4.servlet.soap to com.helger.phase4.incoming.soap
      • Moved classes from com.helger.phase4.servlet.spi to com.helger.phase4.incoming.spi
      • Moved class IAS4IncomingMessageMetadata to com.helger.phase4.incoming
      • Moved class ESoapVersion to com.helger.phase4.model`
      • Moved class IAS4SignalMessageConsumer to com.helger.phase4.incoming
      • Moved class IAS4UserMessageConsumer to com.helger.phase4.incoming
      • Moved class IAS4RawResponseConsumer to com.helger.phase4.sender
      • Moved class AbstractAS4RawResponseConsumer to com.helger.phase4.sender
    • Renamed classes
      • Renamed class AS4ServletMessageProcessorManager to AS4IncomingMessageProcessorManager
      • Renamed class AS4ServletPullRequestProcessorManager to AS4IncomingPullRequestProcessorManager
      • Renamed class AbstractAS4UserMessageBuilder.ESimpleUserMessageSendResult to EAS4UserMessageSendResult
      • Renamed class AS4XServletHandler.IHandlerCustomizer to IAS4ServletRequestHandlerCustomizer
        • Made method customizeAfterHandling non-default
      • Renamed SPI class IAS4ServletMessageProcessorSPI to IAS4IncomingMessageProcessorSPI
        • Was also moved to a different package - see above
        • Made method IAS4IncomingMessageProcessorSPI non-default
      • Renamed SPI class IAS4ServletPullRequestProcessorSPI to IAS4IncomingPullRequestProcessorSPI
        • Was also moved to a different package - see above
      • Renamed class Phase4PeppolServletConfiguration to Phase4PeppolDefaultReceiverConfiguration
      • Renamed class Phase4PeppolReceiverCheckData to Phase4PeppolReceiverConfiguration
      • Renamed class IAS4MessageState to IAS4IncomingMessageState
      • Renamed class AS4MessageState to AS4IncomingMessageState
      • Renamed class AS4MessagingHelper to AS4IncomingHelper
        • And moved to com.helger.phase4.incoming
      • Renamed class MimeMessageCreator to AS4MimeMessageHelper
      • Renamed class SoapMimeMultipart to AS4SoapMimeMultipart
      • Renamed class AS4SingleSOAPHeader to AS4SingleSoapHeader (casing only)
      • Renamed class ISOAPHeaderElementProcessor to ISoapHeaderElementProcessor (casing only)
      • Renamed class SOAPHeaderElementProcessorExtractEbms3Messaging to SoapHeaderElementProcessorExtractEbms3Messaging (casing only)
      • Renamed class SOAPHeaderElementProcessorRegistry to SoapHeaderElementProcessorRegistry (casing only)
      • Renamed class SOAPHeaderElementProcessorWSS4J to SoapHeaderElementProcessorWSS4J (casing only)
      • Renamed class Phase4PeppolSender.Builder to Phase4PeppolSender.PeppolUserMessageBuilder
      • Renamed class Phase4PeppolSender.SBDHBuilder to Phase4PeppolSender.PeppolUserMessageSBDHBuilder
    • Removed classes
      • Removed class Phase4PeppolClientException
    • Altered classes
      • Added template parameter to class AbstractAS4IncomingDumperWithHeaders
      • Added template parameter to class AbstractAS4OutgoingDumperWithHeaders
    • Moved methods
      • Moved all setters from AS4XServletHandler to AS4RequestHandler
      • Moved method IAS4ResponseAbstraction.wrap to AS4XServletHandler.createResponseAbstraction
      • Moved methods MessageHelperMethods.forEachHeaderAndRemoveAfterwards and MessageHelperMethods.getAndRemoveAllHeaders to class AS4MimeMessageHelper
      • Moved methods AS4ReceiptMessage.getAllDSigReferenceNodes and AS4ReceiptMessage.getAllDSigReferences to class MessageHelperMethods
    • Renamed methods
      • Renamed method IPModeResolver.getPModeOfID to findPMode
      • Renamed methods AS4XServletHandler.(get|set)HandlerCustomizer to (get|set)RequestHandlerCustomizer
      • Renamed methods AS4ClientBuiltMessage.getCustomHeaders to getAllCustomHttpHeaders
      • Renamed method AS4ClientErrorMessage.isReceiptShouldBeSigned to isErrorShouldBeSigned
      • Renamed method AS4ClientSentMessage.getResponse to getResponseContent
      • Renamed method AS4ClientSentMessage.hasResponse to hasResponseContent
      • Renamed methods AbstractAS4Client.(get|set)AS4CryptoFactory* to (get|set)CryptoFactory...
    • Altered methods
      • Made method IAS4CryptoFactory.getKeyPasswordPerAlias(String) non-default
      • Made method IAS4IncomingDumper.onEndRequest non-default and added optional "caughtException" parameter
      • Made method IAS4OutgoingDumper.onEndRequest non-default and added optional "caughtException" parameter
      • Extended method IAS4ProfileValidator.validatePMode with an additional parameter to differentiate UserMessage and SignalMessage

Upgrade from 1.x to 2.x

The major change in v2.x is the new software baseline.

  • It requires at least Java 11 for building and execution
  • It was updated to the JakartaEE 9 specifications
    • Uses Servlet Specification 5.0.x
    • All the namespaces javax.servlet where changed to jakarta.servlet
    • Uses Eclipse Angus instead of Jakarta Mail
  • The minimum requirements for application servers are
    • Tomcat 10.0.x or Tomcat 10.1.x
    • Jetty 11.x

All other potentially breaking changes are listed in News and noteworthy.