Migrating from M5 to M6
Java Source Compliance Level
The minimum required JVM version was updated from Java 8 to Java 11.
A number of packages related to JavaEE were removed from the JRE, but these packages are used by the framework, specifically
-
JAX-WS packages (
javax.jws,javax.jws.soap,javax.xml.soap, andjavax.xml.ws.*) -
JAXB packages (
javax.xml.bind.*)
Changes to the Programming Model
Removed (Programming Model)
| was | now what? |
|---|---|
|
use |
|
use |
|
instead on a Property use |
|
use |
|
use |
|
(translatable) text is now always escaped |
Configuration
Following configuration options changed:
isis.core.meta-model.validator.ensure-unique-object-types // removed
isis.core.meta-model.validator.explicit-object-type // renamed to ...
isis.core.meta-model.validator.explicit-logical-type-names
Some 'mavendeps' artifacts have been removed:
<!-- removed
<groupId>org.apache.isis.mavendeps</groupId>
<artifactId>isis-mavendeps-jdk11</artifactId>
no replacement, no longer required
-->
<!-- removed
<groupId>org.apache.isis.mavendeps</groupId>
<artifactId>isis-mavendeps-jpa</artifactId>
-->
<!-- instead use -->
<groupId>org.apache.isis.persistence</groupId>
<artifactId>isis-persistence-jpa-eclipselink</artifactId>
<!-- removed
<groupId>org.apache.isis.mavendeps</groupId>
<artifactId>isis-mavendeps-jdo</artifactId>
-->
<!-- instead use -->
<groupId>org.apache.isis.persistence</groupId>
<artifactId>isis-persistence-jdo-datanucleus</artifactId>
Other Changes
Module IsisModuleExtCorsImpl was renamed to IsisModuleExtCors.
Module IsisModuleExtModelAnnotation was removed and is no longer required.
Service BookmarkService has been improved, such that its methods return Optional<?> instead of nullable objects.
Service RepositoryService.isPersistent(Object domainObject) has been removed. Use getEntityState(Object domainObject) instead.
Service RepositoryService.isDeleted(Object domainObject) has been removed. Use getEntityState(Object domainObject) instead.
Enum EntityState.PERSISTABLE_DESTROYED and isDestroyed() were renamed to PERSISTABLE_REMOVED and isRemoved(). Also note: the removed entity life-cycle state is only supported by JDO,
whereas JPA is indifferent to whether an entity instance was removed or is detached. The framework’s JPA integration will always report detached.
The Wicket Viewer was migrated from using Bootstrap 3 to Bootstrap 4, which might have more or less severe implications on (your) customized CSS and JavaScript and Wicket components.
Extensions
SecMan
Following SecMan artifacts have been renamed:
<artifactId>isis-extensions-secman-model</artifactId> <!-- old -->
<artifactId>isis-extensions-secman-integration</artifactId> <!-- new -->
<artifactId>isis-extensions-secman-api</artifactId> <!-- old -->
<artifactId>isis-extensions-secman-applib</artifactId> <!-- new -->
Following SecMan packages have been renamed:
org.apache.isis.extensions.secman.api.*; // old
org.apache.isis.extensions.secman.applib.*; // new
org.apache.isis.extensions.secman.model.*; // old
org.apache.isis.extensions.secman.integration.*; // new
Following SecMan modules have been renamed:
IsisModuleExtSecmanApi -> IsisModuleExtSecmanApplib
IsisModuleExtSecmanModel -> IsisModuleExtSecmanIntegration
Following menu actions for User Management have been removed:
<!--
<mb3:serviceAction objectType="isis.ext.secman.ApplicationUserMenu" id="newLocalUser">
<cpt:named>New Local User</cpt:named>
</mb3:serviceAction>
<mb3:serviceAction objectType="isis.ext.secman.ApplicationUserMenu" id="allUsers">
<cpt:named>All Users</cpt:named>
</mb3:serviceAction>
<mb3:serviceAction objectType="isis.ext.secman.ApplicationUserMenu" id="newDelegateUser">
<cpt:named>New Delegate User</cpt:named>
</mb3:serviceAction>
-->
Use the new User Manager View Model instead:
<mb3:serviceAction objectType="isis.ext.secman.ApplicationUserMenu" id="userManager">
<cpt:named>User Manager</cpt:named>
</mb3:serviceAction>
DB schema changes:
-- mariadb/mysql syntax - adapt to your specific vendor, schema names omitted
UPDATE ApplicationUser set `status`='UNLOCKED' where `status` like 'ENABLED';
UPDATE ApplicationUser set `status`='LOCKED' where `status` like 'DISABLED';