Migrating from 9.2 to 9.3

New project version

tag-ops-changed tag-project-auto-convert

Due to the migration of the External Databases, Rest Clients, Web Service Clients, Environments, Formats, and Projects to Eclipse Maven projects, we introduced a new project version 93900. If you have an existing project in version:code:80000, it will still run on the Axon Ivy Engine, but we recommend migrating your projects to the new version and re-deploy them.

Defining Databases

tag-ops-changed tag-project-changed tag-project-auto-convert

Configurations of Databases are stored in new locations. During development, the project’s Databases are now stored in the databases.yaml file. On the Axon Ivy Engine, the configurations of Databases have been moved from the System Database to the application’s app.yaml file. Furthermore, the System Database and project migration converts from the old to the new format automatically.

Details

We have dropped the System Database tables IWA_ExternalDatabase and IWA_ExternalDatabaseProperty and migrated its data to the app.yaml. We recommend that you migrate your projects and redeploy them to your engine.

All APIs to load databases configuration from IApplication and IEnvironment has been removed. They were introduced to show the configuration in the legacy AdminUI. They were never intended to be used in your Axon Ivy Projects.

Defining REST Clients

tag-ops-changed tag-project-changed tag-project-auto-convert

Configurations of REST Clients are stored in new locations. During development, the project’s Rest Clients are now stored in the rest-clients.yaml file. On the Axon Ivy Engine, configurations of REST Clients have been moved from the System Database to the application’s app.yaml file. Furthermore, System Database and project migrations do converts from the old to the new format automatically.

Details

We have dropped the System Database tables IWA_RestClient, IWA_RestClientFeature and IWA_RestClientProperty and migrated its data to the app.yaml. We recommend that you migrate your projects and redeploy them to your engine.

Defining Web Service Clients

tag-ops-changed tag-project-changed tag-project-auto-convert

Configurations of Web Service Clients are stored in new locations. During development, the project’s Web Service Clients are now stored in the webservice-clients.yaml file. On the Axon Ivy Engine, configurations of Web Service Clients have been moved from the System Database to the application’s app.yaml file. Furthermore, System Database and project migrations converts from the old to the new format automatically.

Details

We have dropped the System Database tables IWA_WebService, IWA_WebServiceEndpoints, IWA_WebServiceEnvironments, IWA_WebServiceFeature, IWA_WebServicePortType and IWA_WebServiceProperty and migrated its data to the app.yaml. We recommend that you migrate your projects and redeploy them to your engine.

Environments

tag-project-changed tag-project-deprecated

The environment editor and all environment aware editors like the Web Service Client Editor, the REST Client Editor, and the Database Editor are not environment aware anymore. Learn how you can define environment aware configurations.

Read more here about the future of environments: https://community.axonivy.com/d/142-environments-will-disappear-in-the-long-term

Formats

tag-project-changed tag-project-auto-convert

Formats are migrated from the so-called config CMS to the config/formats.yaml in your project. There is no more UI Editor to edit those formats. If you migrate a running Axon Ivy Engine you need to convert your projects and redeploy them again to make formats work.

Configuration deployment options removed

tag-ops-changed tag-ops-deprecated

Now that most of the app configuration is defined in YAML files, the configuration deployment options are disregarded and can be removed from your deploy.options.yaml file.

Details

The following options are deprecated and can be removed:

configuration:
  overwrite: false               # [false], true
  cleanup: DISABLED              # [DISABLED], REMOVE_UNUSED, REMOVE_ALL

Removed support for CMS Page

tag-project-removed

We no longer support CMS pages. Both in Axon Ivy Designer and on Axon Ivy Engine. You will need to manually re-implement them to an alternative. For example as HTML Dialog (JSF) or as static JSF page. We still support plain JSP pages which would be a non-future alternative.

Removed support for Macro expansion in RTF documents

tag-project-removed

RTF is not a common format anymore. We have supported macro expansion in RTF documents from CMS. This is no longer working. To generate documents with placeholders, use other well-maintained components like the DocFactory.

Moved JSP pages from CMS to webContent

tag-project-changed tag-project-auto-convert

We now only support plain JSP pages in the webContent folder. The project conversion copies the JSP pages from the CMS automatically to the webContent folder.

Non-public API Email

tag-project-removed

If you have used some non-public email classes like EmailSetupConfiguration, EmailSetupProviderUtil or SimpleMailSender then you need to touch your project because they no longer exist. We are currently building a public API for mail. It is already available but not officially public yet:

import ch.ivyteam.ivy.mail.MailClient:
import ch.ivyteam.ivy.mail.MailMessage;

try (var client = MailClient.newMailClient()) {
  var message = MailMessage.create()
    .to("my.good.old.friend@neighborhood.com")
    .subject("Beer!")
    .textContent("Do you feel like having a beer on Friday?")
    .toMailMessage();
  client.send(message);
}

Drop AXIS Technology for Web Service Client

tag-project-removed tag-project-auto-convert

With Axon Ivy 7.1 we have introduced the CXF Web Service Client as a super-fast, secure, and future-proof technology to call SOAP Web Services. AXIS has been making more and more trouble. To keep the quality of Axon Ivy on a high level we need to remove AXIS. You have to convert all Web Service Clients based on AXIS (1+2) to CXF in the Axon Ivy Designer.

Details

The Designer comes with a project converter to convert your Axis2 clients automatically to CXF. Additionally, a quick fix is available on the Axis error marker.

The detailed steps to migrate from AXIS clients to CXF are outlined here: https://community.axonivy.com/d/199-migrate-from-axis2-webservice-to-cxf

Overriding

tag-project-deprecated

We deprecated the Case Scope (deprecated) project overrides in favor of Strict Overriding.

Details

If your application uses Overrides. You should migrate to Strict Overriding. Define the customization project in your app.yaml.

OverrideProject: com.acme.solution:MyCustomerAdaption

Default REST Client entity processing changed to buffered

tag-ops-changed

Since we are using the ApacheConnectorProvider as the default provider for Rest Clients, the default entity processing has changed from BUFFERED to CHUNKED. This means that the HTTP header Content-length is not set which makes trouble with a lot of services. You can fix this by switching to chunked processing again. Change your REST Client config and set the property jersey.config.client.request.entity.processing to CHUNKED.

System Database Cache Configuration and MBean (JMX)

tag-ops-changed

We have changed the System Database cache configuration. Instead of configuring a UsageLimit you can now configure a TimeToIdle (TTI) value. As an alternative, you can also configure a TimeToLive (TTL) value.

Details

The TimeToIdle value specifies how long the cache keeps an object after the last usage. Whereas the TimeToLive value specifies how long the cache keeps an object after the first usage. Have a look at configuration\ivy.cache.properties and replace all configured UsageLimit values with appropriate TimeToIdle and/or TimeToLive values. By default, the TimeToIdle value is 600 (10 minutes) and the TimeToLive is 0 (disabled).

The usageLimit attribute on MBeans with name pattern ivy Engine:type=CacheClassPersistencyService,name=*,strategy=CacheAllRemoveUnused has been removed. Instead, we introduced the timeToIdle and timeToLive attributes.

Cluster Name

tag-ops-changed tag-ops-wizard

The name of a cluster (Axon Ivy Engine Enterprise Edition) can now be configured in the ivy.yaml file. Before, it was pre-configured in the license file as server.cluster.name property.

JGroups Configuration

tag-ops-changed

JGroups is the library we use to communicate between cluster nodes (Axon Ivy Engine Enterprise Edition). By default, you do not need to provide the jgroups.xml file in the configuration folder anymore. Please remove your existing jgroups.xml file from the configuration folder, if you have not made any changes to it; otherwise replace it with a standard JGroups 5.0 jgroups.xml file and re-apply your changes to this file. jgroups.xml files used in earlier versions of the Axon Ivy Engine are not compatible with JGroups 5.0.


Tag Legend:

tag-ops-wizard

This migration is handled either by the Migration Wizard or by the System Database conversion. The wizard will interact with you if you are affected by this change.

tag-ops-changed

This migration will change something in the engine operation. If you are responsible for the operation of an engine, check if this change affects you.

tag-ops-deprecated

This migration highlights behaviors or features that are deprecated. That functionality will be removed soon. If you are responsible for the operation of an engine, you should check if this change affects you.

tag-ops-removed

This migration will remove a behavior or feature that has been available for the engine operation. If you are responsible for the operation of an engine, check if this change affects you.

tag-project-auto-convert

This migration is handled by the Project Conversion automatically.

tag-project-changed

This migration will change a certain behavior in the projects. If you are a project developer, check if this change affects you.

tag-project-deprecated

This migration will mark features or APIs as deprecated in projects. That functionality will be removed soon. If you are a project developer, check if this change affects you.

tag-project-removed

This migration will remove a behavior or feature of a project. If you are a project developer, check if this change affects you.