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';