This document describes the steps needed to upgrade the edoras one application to 1.5.0.S124.
Please stop the edoras one server, perform all upgrade steps described below and then restart the server again at the end.
Account UI customisation
The account colours and logo customization has been removed from the account form. It has been replaced with a "css class" field.
If you used the colour and/or logo customisation on Account basis before, you will need to make those changes through the accounts.css file. The way to customize account styling is explained in the documentation:
The file custom.css should still be used for installation-wide UI customisations.
Bulk update interface change
The bulk update interfaces BulkWorkObjectProcessor
and BulkWorkObjectDefinitionProcessor
have been changed.
The function that is provided for processing the work objects or work object definitions respectively now takes a
concrete class as the input type instead of the previous generic type:
Function<AnyWorkObject, Void> Function<AnyWorkObjectDefinition, Void>
Elasticsearch full index replication
The template for the elasticsearch full index has been updated to support replication of the index shards in an elasticsearch cluster. This means that an elasticsearch node may fail without losing the index.
If your project uses the default full index provided by the elasticsearch integration then you will require a resynchronization of the index to take advantage of this new configuration.
GlobalID UNDEFINED value
A new UNDEFINED
value is provided for the GlobalId
class, matching the behaviour for the other work object IDs.
The UNDEFINED
value should be used instead of null
when clearing the global ID (e.g. to remove the
existing parent reference).
Support for XA data sources
The default definition of the databaseSchemaService
bean has now been changed to use its own
data source (databaseSchemaManagerDataSource
) and transaction manager (schemaTransactionManager
):
<bean id="databaseSchemaService"
class="com.edorasware.commons.core.persistence.schema.internal.DefaultDatabaseSchemaService">
<constructor-arg name="dataSource" ref="databaseSchemaManagerDataSource"/>
<constructor-arg name="migrationsLocation" value="com/edorasware/commons/core/persistence/schema"/>
<constructor-arg name="transactionManager" ref="schemaTransactionManager"/>
<!-- any DatabaseSchemaServiceListener beans will be autowired into this service -->
</bean>
This change allows an XA data source and transaction manager to be used for normal operations, with schema management using a non-XA channel. This change is necessary as for some databases (e.g. Oracle) schema modification is fundamentally incompatible with XA transactions.
Projects need to make sure that the relevant beans are defined. For non-XA environments this can simply be done by creating aliases for the relevant bean, e.g.:
<bean id="schemaTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="transactionManager" parent="schemaTransactionManager"/>
In an XA environment the beans should be created in such a way that the dataSource
and transactionManager
beans are configured for the XA environment, with non-XA equivalents
being used for the schema manager. In the following example the schemaTransactionManager
is
defined by the default configuration given above and transactionManager
is overwritten:
<beans profile="database-jndi-xa">
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${databaseJndiName}"/>
</bean>
<bean id="databaseSchemaManagerDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${schemaDatabaseJndiName}"/>
</bean>
</beans>
Bootstrap project
Here you will find a list of files which have changed in the bootstrap project since the last release. This helps you check the difference between your bootstrap project version and the current one:
-
src/main/resources/com/edorasware/bootstrap/config/database-context.xml
-
added separate data source and transaction manager beans for schema management
-
src/main/resources/com/edorasware/acme/config/acme-context.xml
-
distributed caches configuration was replaced by ehcache configuration
-
src/main/webapp/WEB-INF/web.xml
-
appGraphScriptFilter
andfmsFilesScriptFiler
were added to support empty content return foreo-app-graph.[js|css]
file in the case of non activeexperimental.app.graph.enabled
property andfms.files.js
for activeexperimental.view.engine.enabled
property.