This guide lists all migrations required from Intershop Order Management 4.1 to 4.2. The document is aimed to project developers.
The deployment now modifies only possible differences in persisted enumerations but throws an exception if the value is not yet persisted and stops the deployment.
It is hence necessary to write an SQL migration script to add these new values in the database additionally to the Java definition. Checkout the iom-blueprint-project/001_ExpandedEnumerations.sql in relation to the affected Expanded*.java
file, for example.
The modification cannot affect already deployed projects, but missing enum definitions in existing configuration scripts may prevent new deployments, e.g., creating a new test environment.
The handling of expanded enumerations has been refactored to require less code and make the process less error-prone. In order to benefit from this, follow these steps:
Replace the existing class level annotation bakery.persistence.annotation.PersistedEnumerationTable
by bakery.persistence.annotation.ExpandedEnum
on your expanded enums.
Furthermore, add the same annotations to expanded enums that have not had the annotation PersistedEnumerationTable
yet — for example, ExpandedProcessTaskDefDO
. Please note that you are supposed only to add this annotation to classes that are supposed to be extended in the IOM platform.
Delete the class ExpandEnumerations.java
.
Replace the entire code of class InitializeExpandedEnumerations.java
using:
package com.intershop.oms.enums.expand; import javax.annotation.PostConstruct; import javax.ejb.EJB; import javax.ejb.Singleton; import javax.ejb.Startup; import bakery.persistence.dataobject.EnumUtil; import bakery.persistence.expand.EnumInitializer; @Singleton @Startup public class InitializeExpandedEnumerations extends EnumInitializer { // packages to scan for enumerations private static final Object[] PACKAGES = { "com.intershop.oms.enums.expand" }; @EJB(lookup = EnumUtil.JNDI_NAME) private EnumUtil util; @PostConstruct public void init() { util.registerEnumerations(getExpandedEnums(PACKAGES)); } }
In addition to that there was a breaking change in TransmissionTypeDefDOEnumInterface - the new methods “getTransmissionTypeGroups” and “getDescription” have to be implemented in ExpandedTransmissionTypeDefDO. They are supposed to return a human-readable name and a collection of transmission classes (e.g. OrderTransmissionDO.class) that are mapped to the according TransmissionTypes in the enumeration. The decision to introduce this as a breaking change (instead of a default method) has been made in order to make sure the custom transmission types are correctly mapped and displayed in the new Transmissions REST API.
IOM Helm Charts 2.2.0 or newer are required to operate IOM 4.2. For more information, refer to https://github.com/intershop/helm-charts/releases/tag/iom-2.2.0.
WildFly application server was updated to version 26.1.2.Final. Projects have to update dependencies.
IOM now uses Adoptium OpenJDK 17.0.4.1+1.
ID | Title |
---|---|
Deprecated obsolete |
With regard to 77073, mailResourcesBaseUrl
cannot be longer used in the mail-templates. According to the environment variable OMS_MAIL_RESOURCES_BASE_URL
was removed from Dockerfile. Also refer to https://github.com/intershop/helm-charts/tree/main/charts/iom.