Guide - IOM 4.1 - 4.2 Migration

Table of Contents


Product Version

4.1

Product To Version

4.2

Status

New Labels

1 Introduction

This guide lists all migrations required from Intershop Order Management 4.1 to 4.2. The document is aimed to project developers.

2 Stronger Check on Unpersisted Enum Values During Startup

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.

3 Simplified Handling of Expanded Enumerations

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:

  1. Replace the existing class level annotation bakery.persistence.annotation.PersistedEnumerationTable by bakery.persistence.annotation.ExpandedEnum on your expanded enums.

  2. 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.

  3. Delete the class ExpandEnumerations.java.

  4. 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.

4 Require IOM Helm Charts 2.2.0, WildFly 26.1.2.Final, and Adoptium OpenJDK 17.0.4.1+1

5 Deprecations

ID

Title

77194

Deprecated obsolete ImportConfigurationDO.priceComparisonProviderDefRef (database)

6 Removals

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.

ID

Title

77073

Removed obsolete cluster property is.oms.mail.resources.base.url

77153

Removed obsolete ImportPriceComparisonDO, PriceComparisonDO, update_price_comparison (database)

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Tickets