Migrating from 8.0 to 10.0

License

tag-ops-changed

You need to request a new license for Axon Ivy Engine 10.0.


Updates

Java 17

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

We updated Java to version 17:

  • Convert your Axon Ivy projects to the latest version to use the new Java 17 features.

  • You may have to update third-party libraries that do not yet support Java 17 to newer versions.

  • Use Java 17 to run your Maven project builds.

  • Use an Adoptium / Eclipse Temurin JDK or JRE to run Axon Ivy on Linux or macOS.

Details

TLS 1.0 and TLS 1.1 disabled tag-ops-changed

We disabled TLS 1.0 and 1.1 by default because they are outdated and should no longer be used. This can break communication links with legacy databases or other external services that still use the old TLS protocols. Have a look at our community blog post if you experience such problems to find out how to enable those protocols again.

Primefaces 11

tag-project-changed tag-project-removed tag-project-deprecated tag-project-auto-convert

We upgraded the Primefaces library from version 7 to version 11. Unfortunately, Primefaces made some breaking changes in its latest versions. Therefore, your user interfaces are most likely broken. To mitigate the migration pain, we have built a project converter that fixes most breaking changes. See Primefaces 11 Migration for more information.

Details

Old Themes removed tag-project-removed

Instead of modena, primefaces-ivy, or all-themes, use freya-ivy or serenity-ivy. You may need to adjust your hand-crafted CSS rules to the new theme.

Elasticsearch 7.17

tag-ops-changed

Elasticsearch has been upgraded from 7.3 to 7.17. If you use an external Elasticsearch server you need to upgrade to version 7.17.

Upgrade Log4j 1 to Log4j 2

tag-ops-changed

Logs are written now with Log4j 2, which has a new configuration format. If you made any custom logging configuration entries, you need to adapt these changes to the new logging configuration.

Details

The legacy logging configuration file [engineDir]/configuration/log4jconfig.xml is no longer in charge. You need to make all your custom logging configuration in [engineDir]/configuration/log4j2.xml. Read more about customizing in the Logging chapter.

Portal 10.0

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

Portal version 8 and earlier are no longer compatible with Axon Ivy 10.0. If you have used the Portal in your projects, you have to migrate your projects also to Portal 10.0. Please have a look at the Portal Migration Notes.

Hibernate 5.4

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

All persistence.xml` will have a property hibernate.id.new_generator_mappings with the value set to false. This is made so that all persistence unit still work the same way according to primary key columns. They will still use the auto increment feature of the database management system. Read more here: https://community.axonivy.com/d/470-hibernate-update-54-in-axon-ivy-10-and-inserting-new-entites


Engine changes

Engine default base path changed

tag-ops-changed tag-ops-wizard

We changed the default value of the WebServer.IvyContextName from "ivy" to "". This means the default engine URL has changed (from http://localhost:8080/ivy/) to http://localhost:8080/.

If you have a Reverse Proxy configured, you have to manually define the WebServer.IvyContextName with the old value ivy. Otherwise the AJP uri workers will not find a valid path.

URL changes

tag-ops-changed

The paths in the URL have changed. The name of the application is now at the top.

Details

Setting up a classic frontend server is now much easier, because you can now define routes on app level. If you have a Reverse Proxy configured and you block some URLs for security reasons, you need to adjust them.

Here are some examples:

Old URL

New URL

/<servlet>/<appName>/<pmv>/…

/<appName>/<servlet>/<pmv>/…

/pro/myApp/myPmv/…

/myApp/pro/myPmv/…

/api/myApp/myPmv/…

/myApp/api/myPmv/…

/wf/myApp/myPmv/…

/myApp/wf/myPmv/…

app.yaml new file location

tag-ops-changed

Shifting towards highly configurable Axon Ivy projects, we needed to move the app.yaml to a new location in the Axon Ivy Engine.

Details

If the new engine is aware of the existing applications, the app.yaml files will be migrated automatically. The new locations are the following:

Old Location

New Location

/[engineDir]/applications/myApplication/app.yaml

/[engineDir]/applications/myApplication/config/app.yaml

/[engineDir]/configuration/app-myApplication.yaml

/[engineDir]/configuration/applications/myApplication/app.yaml

If you deploy an app.yaml in an application zip file, it has to be placed now in the sub-folder config. For compatibility reasons, the old legacy location in the root of the application deployment zip is still supported for the time being.

Global Variables moved and renamed

tag-ops-changed tag-ops-wizard

The GlobalVariables in the app.yaml are renamed to Variables. System database migration does this automatically.

Details

System Database:

We have dropped the system database table IWA_GlobalVariables and migrated its data to the app.yaml. We recommend that you migrate your projects and redeploy them to your engine. If you used your app.yaml to override Global Variables, please take note of this change as well: Supporting Environments.

Configuration:

Old app.yaml:

GlobalVariables:
  myVariable: value

New app.yaml:

Variables:
  myVariable: value

Multi Application Security System

tag-ops-changed tag-ops-wizard tag-project-deprecated

Users and roles are no longer attached to a single application, but can be shared across multiple applications in a security system. Now, different applications can be developed and installed with their own release cycles, and the end user receives one single task list for all applications. This enables independent feature-driven development.

Details

Most engine installations will only have the predefined security context default. By default, new applications end up in this context. There are two use cases for multiple security contexts on one engine:

  • you want to isolate applications against each other - each application has its own security context.

  • you implement multi-tenancy by having one security system per tenant.

For both use cases, we suggest using multiple engines in order to make accidental security breaches impossible.

During migration, however, the status quo is maintained. The migrated applications are placed in an isolated security system with the name of the application. It is no longer possible to change the security system at runtime, this must always be done when the application is created.

Refer to Application Lifecycle for further details.

  • Users are no longer attached to the application, but to the Security System. This means that the user is unique over several applications.

  • Roles are still defined in projects. The roles are deployed into a security system. Now, the roles must not only be unique in the application, but in the security system.

  • Business Data has not been scoped. Now, it is scoped to the security system.

  • Standard process default pages are now automatically determined at runtime. You don’t have to define them anymore. If there are multiple implementations of a default process, one is simply selected. But you can fix this using settings.

  • EmailNotification Settings are no longer part of the application configuration. They are part of the security system and can be found there.

Changed Configuration tag-ops-changed tag-ops-wizard

We renamed configuration keys to be more clear.

  • ImportOnDemand -> UserSynch.OnSchedule.ImportUsers

  • UpdateEnabled -> UserSynch.OnSchedule.Enabled

  • UpdateTime -> UserSynch.OnSchedule.Time

ImportOnDemand also changes the semantic - the value needs to be changed from false to true or otherwise.

Read more in Identity Provider.

User id and role id deprecated tag-project-deprecated

IUser#getId() and IRole#getId` are obsolete and should not be used any further. Always use getSecurityMemberId(). For now, user id and role id are still fully supported and are also unique. But these will be completely removed in upcoming versions also from the database (IWA_User.UserId` and IWA_Role.RoleId).

Standard mail notification process still support the parameter notificationUserId but you should already change to notificationSecurityMemberId`.

Role Mapping moved to ivy.yaml

tag-ops-wizard

The external name of a role that can be set in the Engine Cockpit is no longer stored in the System Database. It has been moved from IWA_Role.ExternalSecurityName to ivy.yaml. This change allows you to easily automate the role mapping configuration, which is now located in ivy.yaml.

Language

tag-ops-wizard

There is a new global language concept. The content language as well as the formatting language can be defined per security system in ivy.yaml, which are considered as default languages. Users can overwrite these two language settings in their user profiles.

The existing EMailNotification.Language is automatically migrated to Language.Content in ivy.yaml.

Read more here: Language and Content resolution.


Ivy Project changes

Variables configuration file

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

Variables (former Global Variables) are stored in new locations. During development, the project’s Variables are now stored in the variables.yaml file. Furthermore, the project migration do the conversion from the old to the new format for you automatically.

Details

Global Variables are no longer defined using the configuration editor but in the variables.yaml file within your project.

By running the latest Project-Migration in your Designer, your existing Global Variables are automatically migrated into the variable.yaml files.

Databases, Rest Clients and Web Service configuration files

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

Configurations of Databases, Rest Clients and Web Services are stored in new locations. On the Axon Ivy Engine, the configurations of of these 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 recommend that you migrate your projects and redeploy them to your engine.

Databases

During development, the project’s Databases are now stored in the databases.yaml file.

We have dropped the System Database tables IWA_ExternalDatabase and IWA_ExternalDatabaseProperty and migrated its data to the app.yaml.

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.

Rest Clients

During development, the project’s Rest Clients are now stored in the rest-clients.yaml file.

We have dropped the System Database tables IWA_RestClient, IWA_RestClientFeature and IWA_RestClientProperty and migrated its data to the app.yaml.

Web Services

During development, the project’s Web Service Clients are now stored in the webservice-clients.yaml file.

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.

Supporting Environments

tag-ops-changed

As we now support Environments for our app.yaml, the app.yaml will no longer override all environment values. If you want to override a value for a specific Environment, define this value in the _<environment>/app.yaml file, besides in the normal app.yaml file.

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.

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.


Enterprise changes

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.


More changes

Business Case Lifecycle

tag-project-changed

The lifecycle of the Business Case has been simplified. The first case is the business case and will always be the business case. Additional cases will be sub-cases of the business case.

Details

Previously, the first case (formerly, the initial case) has been copied as soon as new cases have been attached. The copy has then become the business case.

This change also means that the business case can now have tasks as direct children and not only sub-cases.

Maven dependencies automatically packed into Axon Ivy archives

tag-project-changed

With 9.2, it is no longer necessary to copy maven dependencies to a specific folder manually or with the Maven dependency plugin. However, the old way still works.

Details

There is a new project-build-plugin version 9.2.1 with new execution goals, which are active by default:

If you use the functions to pack or export projects in Axon Ivy Designer, the same happens as with the Maven plugin:

  • Your Maven dependencies are copied to the lib/mvn-deps folder.

If you used the Maven dependency plugin to copy your dependencies and you have made manual entries to the .classpath file, you can remove those now and use the normal Maven dependencies descriptor. To remove those entries you can edit the .classpath file directly or use the Axon Ivy Designer.

Before:

../../_images/mvn-deps-before.png

After:

../../_images/mvn-deps-after.png

Warning

Make sure that your project is converted to a Maven project!

Only dependencies with the scope compile, system and runtime are copied. To reduce the size of your Axon Ivy archive, make sure that your dependencies are configured correctly:

Web integration tests simplified

tag-project-changed

Selenium based integration test do no longer require huge manually crafted maven build pom.xml definitions. Existing pom.xml files for test projects must be manually simplified.

Details

We introduced an new lifecycle called iar-integration-test that basically binds all the plugin executions which are required to have a running in memory engine with your workflow app deployed.

Here’s how you make use of these simplified stack in the pom.xml of a test project:

  1. change the packaging from type iar to iar-integration-test

  2. remove manually bound executions of the goals start-test-engine and stop-test-engine

  3. consider removing bound deployment executions (goal deploy-to-engine or deploy-iar). The new plugin lifecycle automatically takes all your IAR dependencies and deploys them.

  4. remove unittest jvm argLine configurations that propagate the start engine URL (test.engine.url) and test application hint (test.engine.app).

  5. verify that your web tests stick to a naming pattern which complies with the maven-failsafe-plugin includes. If not, rename the unit tests to end with IT (e.g. WebTestCustomerOnboardingIT.java)

  6. run the maven build to verify your changes.

A sample conversion can be reviewed on Github. Another way to get a valid example is to use the new Axon Ivy Test Project wizard of the Axon Ivy Designer, select IvyWebTest as testing flavour and examine the created pom.xml in the newly created test project.

IvyScript Validation is Enabled by Default

tag-project-changed

The ivy.script.validation.skip compilation parameter of our Project Build Plugin is now set to false. This validates IvyScript code within Ivy processes by default during compilation. Therefore, errors and warnings related to the IvyScript code will be reported.

Read more about the compilation parameters and their default values here: https://axonivy.github.io/project-build-plugin/release/9.4/compileProject-mojo.html#skipScriptValidation

Programmable Process Elements

tag-project-changed

We changed the UI technology to build custom inscription editors for programmable process elements. Therefore, existing programmable elements, built with AWT, will show deprecation warnings.

Affected elements are: Program Start Event, Program Interface (PI) Activity and Wait Intermediate Event

Details

To make your custom editors compliant, change your internal Editor implementation to extend from UiEditorExtension, and create widgets using the new ExtensionUiBuilder.

Here are some valid examples:

ui.label("seconds to wait").create()
scriptEditor = ui.scriptField().requiredType(Integer.class).create();
textArea = ui.textField().multiline().create();

Enabled JavaTime module for REST Clients by default

tag-project-changed

The standard JSON serialization feature for REST Clients is now aware of JavaTime objects, such as ZonedDateTime, and will therefore optimize their JSON representation.

Details

E.g. java.time.ZonedDateTime will be serialized as a simple timestamp number, rather than a complex object structure.

This change should not have any side-effects on existing clients since java.time objects, which did not have any special serializer features enabled, could not be serialized in a way that provides any value outside of the Java world.

However, if you face any issues with the changed java.time object serialization, you may disable the JavaTime module by setting the REST Client property JSON.Module.JavaTime=false

Using HttpAsyncClient for CXF web service calls

tag-project-changed

We switched the default connection implementation of CXF web service calls from HttpURLConnection to org.apache.http.nio.client.HttpAsyncClient.

Details

The HttpAsyncClient has improved performance and provides better support for NTML authentication.

There are no known issues with HttpAsyncClient, but if you still want to use HttpURLConnection you can set the property use.async.http.conduit to false on the web service client configuration.

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.

New Security System config Membership.UserMemberOfLookupAllowed

tag-ops-changed

We introduced a new security system configuration property Membership.UserMemberOfLookupAllowed, with true as its default value. If your active directory or eDirectory does not allow to read the memberOf property of a user (groups of a user), you need to set this configuration property to false. With the introduction of this new property we removed the property Membership.UseUserMemberOfForUserRoleMembership.

SSL Client Configuration

tag-ops-changed

We made the life of Axon Ivy Engine administrators easier with some simplifications in the SSL configuration.

Details

We removed SSL.Client.UseSystemTruststore and SSL.Client.UseCustomTruststore in the ivy.yaml. It’s not possible to configure them anymore. The system truststore of the JVM and the custom truststore of Axon Ivy are always active now. If you don’t trust a certificate, simply remove it from the truststore.

HTTPS port disabled by default

tag-ops-changed

HTTPS port is now disabled by default on the Axon Ivy Engine, because you should always terminate SSL on the reverse proxy (frontend webserver). If you need HTTPS directly on the Axon Ivy Engine then you need to set the property WebServer.HTTPS.Enabled to true in ivy.webserver.yaml (a part of ivy.yaml).

Frontend config combined into BaseUrl

tag-ops-changed tag-ops-wizard

The configuration of the frontend URL in ivy.yaml has been simplified. You need to define now the BaseUrl in your ivy.yaml. This property is a combination of the old frontend properties Frontend.Host, Frontend.Protocol and Frontend.Port.

Daily Jobs are only executed at configured time

tag-ops-changed

Daily jobs are now executed only at the configured time, even if the Axon Ivy Engine was not running at the last execution time.

Details

Daily jobs like sending task summary emails or synchronizing users are executed once a day. Prior to 9.1, if the Axon Ivy Engine was not running at the configured time, the daily jobs were executed on the next start of the Axon Ivy Engine. This lead sometimes to a heavy workload on start-up, making the Axon Ivy Engine unusable for other tasks.

We changed this behavior in order to make the Axon Ivy Engine responsive straight after start-up.

context.xml and web.xml moved to configuration folder

tag-ops-changed tag-ops-wizard

The context.xml and web.xml files are now in the global /configuration/ folder. If you modified them you need to apply these changes to the files in the new location.

Details

Prior to 9.1 they were located under webapps/ivy/META-INF/context.xml and webapps/ivy/WEB-INF/web.xml.

Changes to the Axon Ivy System Database

tag-ops-changed

We have introduced a new table IWA_SecurityMember that contains entries for all users and roles. Migration to the new database schema is done automatically.

Details

We also removed most of the foreign key references to the tables IWA_User and IWA_Role and replaced them with references to IWA_SecurityMember. Entries in table IWA_SecurityMember will not be deleted even if a corresponding user or role is deleted.

During migration all users and roles that could not be mapped to existing entries (e.g. because they were deleted from the database) but still have an entry in a Name column, will be added to the IWA_SecurityMembers table, to ensure referential integrity. All security members added this way will be in state disabled.

Note that the following database definitions have changed:

  • In view IWA_TaskQuery the naming of the activator columns has slightly changed, to match the Java API methods naming:

    • ActivatorName and ActivatorDisplayName change to OriginalActivatorName and OriginalActivatorDisplayName

    • CurrentActivatorName and CurrentDisplayName change to ActivatorName and ActivatorDisplayName

  • Column IWA_WorkflowEvent.UserId now references IWA_SecurityMember.SecurityMemberId and changes to a VARCHAR(210) value.

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.


Deprecations and Removals

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

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

Custom Application Properties API deprecated

tag-project-deprecated

The Public-API’s ICustomProperties, ICustomProperty and ICustomPropertyProvider are deprecated and will be removed in the near future. Please use the Ivy.var() API to create application variables.

AJP support is deprecated

tag-ops-deprecated

AJP is used to integrate the Axon Ivy Engine with Microsoft IIS or Apache HTTP as reverse proxy. We still support AJP, but you should migrate to a more modern URL rewrite approach based on HTTP/HTTPS.

Details

AJP’s days are numbered. It is not getting developed any further and prevents the use of new web features such as websockets. We highly recommend migrating to a modern URL rewrite approach based on HTTP/HTTPS. In future versions of the Axon Ivy Engine, you won’t be able to use AJP.

If you are using Microsoft IIS as your reverse proxy, proceed as follows:

  1. Open the IIS administration interface.

  2. Delete the virtual directory named ivy. It is located under Default Website.

  3. Follow the instructions here on how to integrate Microsoft IIS with a modern URL rewrite.

If you are using Apache HTTP Server as your reverse proxy you need to reconfigure Apache HTTP.

System Database

tag-ops-changed tag-ops-deprecated

Dropped support for outdated System Database versions.

Details

Oracle Database

The support for Oracle Database 12c, 18c is removed as Oracle support has ended for these versions. If using Oracle Database we recommend using version 19c as this is the long term support version.

Postgres Database

The support for Postgres Database 9 and 10 is removed as Postgres support has ended for this version. We recommend using Postgres 14 as this is the latest and longest supported version.

MySQL Database

The support for MySQL 5.6 is removed as MySQL support has ended for this version. We recommend upgrading to MySQL 8.0 as this is the latest and longest supported version.

MariaDB Database

The support for MariaDB 10.0 - 10.2 is removed as they are not supported anymore. We recommend upgrading to MariaDB 10.6 as this is the long term support version.

Windows Server

tag-ops-changed tag-ops-deprecated

The support for Windows Server 2008 R2 is removed as Microsoft support has ended for this version. If using Windows Server we recommend using version 2022 as this is the long term support version.

Global deploy.options.yaml removed

tag-ops-removed

The deploy.options.yaml in the deployment directory can no longer be used to influence deployments.

Details

We think that it made deployments unnecessary hard to track and that administrators are better off with the deployment options packed as part of the application ZIP or specific YAML per artifact.

Configuration deployment options removed

tag-ops-removed

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

Legacy jTDS driver for MS SQL Server dropped

tag-ops-removed tag-project-removed

The legacy jTDS driver have been dropped. You need to switch to the official Microsoft JDBC Driver for the System Database and external databases if you still have used the jTDS driver.

Details

System Database

  1. Go to Engine Cockpit / System Database

  2. Choose Driver Microsoft SQL Server

  3. Click Check Connection

  4. Click Save

  5. Restart Axon Ivy Engine

External Databases

  1. Go to Engine Cockpit / External Databases

  2. Edit all External Databases with Driver net.sourceforge.jtds.jdbc.Driver

  3. Choose com.microsoft.sqlserver.jdbc.SQLServerDriver as Driver

  4. Save configuration

VisualVM Plugin no longer delivered with the Axon Ivy Engine

tag-ops-removed

The Axon Ivy Visual VM plugin to monitor your Axon Ivy Engine is now available in the Axon Ivy Market. It is not bundled with the Axon Ivy Engine in the directory [engineDir]/misc/visualvm/ anymore.

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

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);
}

Workflow Event Log API removed

tag-project-removed

The Workflow Event Log API has been deprecated in Axon Ivy 8.0 and has been removed now. As it was never Public API, most projects will not be affected.

Details

The API consists of the following methods, interfaces and enums:

  • ch.ivyteam.ivy.workflow.IWorkflowContext.findEventLog(...)

  • ch.ivyteam.ivy.workflow.IWorkflowContext.createEventLog(...)

  • ch.ivyteam.ivy.workflow.IWorkflowContext.createEventLogPropertyFilter(...)

  • ch.ivyteam.ivy.workflow.eventlog.EventLogDescription

  • ch.ivyteam.ivy.workflow.eventlog.EventLogProperty

  • ch.ivyteam.ivy.workflow.eventlog.EventLogSeverity

  • ch.ivyteam.ivy.workflow.eventlog.EventLogStatus

  • ch.ivyteam.ivy.workflow.eventlog.IEventLog

  • ch.ivyteam.ivy.workflow.eventlog.IEventLogCase

  • ch.ivyteam.ivy.workflow.eventlog.IEventLogTask

Removed StartSignalEventElementQuery

tag-project-removed

There used to be an API to create a query for StartSignalEventElements (StartSignalEventElementQuery). As the StartElements are no longer part of the System Database, we removed this API. If you had this API in usage, please change to the simpler methods all(), matches(pattern) or contains(part).

Details

Replace usages of:

  • Ivy.wf().signals().receivers().createStartSignalQuery()

With one of:

  • Ivy.wf().signals().receivers().all()

  • Ivy.wf().signals().receivers().matches(pattern)

  • Ivy.wf().signals().receivers().contains(part)

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.

Call & Wait intermediate event

tag-project-removed

The Call&Wait intermediate process element is no longer supported.

It will be automatically removed from existing processes where it has been present.

In most cases the ‘call’ aspect implementation can be replaced with a normal PI (Programming Interface) Activity which subsequently is connected to a Wait Program Intermediate Event element that implements the ‘wait’ aspect.

Subversion Client unplugged from Axon Ivy Designer

tag-project-removed

We removed the Subversion client Subclipse from the Axon Ivy Designer. It can still be easily installed through the Eclipse Marketplace in the Designer. Go to Help ‣ Eclipse Marketplace, search for Subclipse and install it.

Special handling for Informix as external third-party database

tag-project-removed

Informix is a database management system and can be integrated with Axon Ivy like any other database system. We have removed any special handling for Informix as this is no longer necessary. If you are using Informix and have any problems, please contact us.


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.