Upgrading from 4.8 to 2023
This guide covers the migration from ARender 4.8 to ARender 2023. The primary change in this release is the transition of the UI component from WAR deployment to Spring Boot deployment. For the Rendition side, the installation process remains similar, but several properties have been deleted, renamed, or restructured.
Prerequisites
Before starting the migration, ensure you meet the following prerequisites:
- Basic knowledge of Spring Boot.
- The ARender UI 2023 binary, downloaded and ready to deploy.
- The ARender Rendition 2023 binary, downloaded and ready to install.
- Your specific configurations from the ARender 4.8 deployment.
Migrating ARender Rendition
Before installing ARender Rendition 2023, perform the following steps:
-
Stop and remove the Rendition service.
On Windows:
sc stop ARenderRenditionService
.\removeService.batOn Linux with systemd:
systemctl stop ARenderRenditionEngineService.service
./removeService.shOn Linux with initd:
service ARenderRenditionEngineService stop
./removeService.sh -
Install Rendition 2023. Follow the standard Rendition installation instructions for version 2023.
-
Transfer properties. Migrate your v4 configuration to 2023 using the property change tables below.
-
Configure Rendition 2023. After transferring properties, apply any additional configuration specific to your environment.
Migrating ARender Web UI
This section does not apply to ARender configured within IBM FileNet. No changes are required for IBM FileNet configuration when transitioning from version 4 to 2023.
-
Stop the application server where ARender UI version 4 is deployed.
-
Install ARender Web UI 2023. Follow the standard Web UI installation instructions. Version 2023 uses Spring Boot deployment instead of WAR deployment.
-
Transfer properties. Migrate your v4 configuration using the property change tables below.
-
Configure Web UI 2023. Apply any additional customizations for your deployment.
Rendition property changes
Document Service Broker
Deleted properties (application.properties)
| V4 property | Description |
|---|---|
eureka.client.register-with-eureka | Former property no longer in use |
eureka.client.fetch-registry | Former property no longer in use |
logging.level.com.netflix.eureka | Former property no longer in use |
logging.level.com.netflix.discovery | Former property no longer in use |
spring.servlet.multipart.enabled | Enable multipart uploads |
spring.servlet.multipart.file-size-threshold | Threshold after which files are written to disk |
spring.servlet.multipart.location | Location of temporary files |
spring.servlet.multipart.max-file-size | Max file size |
spring.servlet.multipart.max-request-size | Max request size |
server.tomcat.max-http-form-post-size | Max request size |
arender.endpoint.metrics.export.document.accessor.enabled | ARender load document accessor endpoint metrics export |
arender.endpoint.metrics.export.document.size.enabled | ARender document size endpoint metrics export |
arender.endpoint.metrics.export.document.dpi.enabled | ARender document DPI endpoint metrics export |
Renamed properties (application.properties)
| V4 property | 2023 property | Description |
|---|---|---|
arender.endpoint.metrics.export.alter.document.enabled | arender.endpoint.metrics.export.transformation.enabled | ARender document transformation endpoint metrics export |
arender.endpoint.metrics.export.video.enabled | arender.endpoint.metrics.export.get.file.chunk.enabled | ARender file chunk endpoint metrics export |
Deleted properties (application.yaml)
| V4 property | Description |
|---|---|
rest-template:connect-timeout | Timeout until a new connection is fully established |
rest-template:read-timeout | Timeout until it finishes reading data bytes from the socket |
rest-template:max-connection-total | Total number of reusable connections |
rest-template:max-connection-per-route | Total number of reusable connections per route |
rest-template:max-keep-alive | Lifespan of a connection while not used |
Connections are still configurable with new properties located in the application.properties file.
Document Converter
Deleted properties (application.properties)
| V4 property | Description |
|---|---|
rtf.conversion.timeout | Timeout in seconds for RTF files conversion to PDF |
pdf.merge.timeout | Timeout in seconds to merge PDFs into a single PDF |
emltopdf.custom.mail.title | EML-to-PDF default configuration for mail headers |
emltopdf.custom.mail.title.separator | EML-to-PDF default configuration for mail headers |
emltopdf.custom.mail.attachment.header | EML-to-PDF default configuration for mail headers |
emltopdf.custom.mail.display.subject.in.title | EML-to-PDF default configuration for mail headers |
emltopdf.use.legacy.header | EML-to-PDF default configuration for mail headers |
emltopdf.custom.rtf.tag.list | EML-to-PDF default configuration for mail headers |
emltopdf.config.filter.special.characters.regex | EML-to-PDF default configuration for mail headers |
emltopdf.config.filter.replacement.character | EML-to-PDF default configuration for mail headers |
emltopdf.encode.header.with.body.encoding | If true, may encode subject and attachment titles according to the body main encoding |
emltopdf.config.format.date | Determines the date format in mails |
text.factory.delegate.bean.name | Determines to which bean we delegate text-to-PDF conversion |
arender.endpoint.metrics.export.document.accessor.enabled | ARender load document accessor endpoint metrics export |
arender.endpoint.metrics.export.document.size.enabled | ARender document size endpoint metrics export |
arender.endpoint.metrics.export.document.dpi.enabled | ARender document DPI endpoint metrics export |
The mail configuration properties have moved to application.properties of the Document Service Broker.
Renamed properties (application.properties)
| V4 property | 2023 property | Description |
|---|---|---|
rendition.office.options=--headless,--convert-to,pdf:writer_pdf_Export | rendition.office.options=--headless,--convert-to | Office conversion options (value changed) |
obfuscate.deleteText=true | redact.deleteText=true | Property name changed (obfuscate to redact) |
obfuscate.flattenText=false | redact.flattenText=false | Property name changed (obfuscate to redact) |
document.fallback.font.path=../fonts/ | document.font.path=../fonts/ | Property name changed |
arender.endpoint.metrics.export.alter.document.enabled | arender.endpoint.metrics.export.transformation.enabled | ARender document transformation endpoint metrics export |
arender.endpoint.metrics.export.video.enabled | arender.endpoint.metrics.export.get.file.chunk.enabled | ARender file chunk endpoint metrics export |
Deleted properties (application.yaml)
| V4 property | Description |
|---|---|
rest-template:connect-timeout | Timeout until a new connection is fully established |
rest-template:read-timeout | Timeout until it finishes reading data bytes from the socket |
rest-template:max-connection-total | Total number of reusable connections |
rest-template:max-connection-per-route | Total number of reusable connections per route |
rest-template:max-keep-alive | Lifespan of a connection while not used |
eureka:instance:statusPageUrlPath | Former Eureka property no longer in use |
eureka:instance:healthCheckUrlPath | Former Eureka property no longer in use |
eureka:instance:leaseRenewalIntervalInSeconds | Former Eureka property no longer in use |
eureka:instance:leaseExpirationDurationInSeconds | Former Eureka property no longer in use |
eureka:instance:metadataMap:nativeMimeType | Former Eureka property no longer in use |
eureka:instance:client:enabled | Former Eureka property no longer in use |
eureka:instance:client:registerWithEureka | Former Eureka property no longer in use |
eureka:instance:client:fetchRegistry | Former Eureka property no longer in use |
eureka:instance:client:serviceUrl | Former Eureka property no longer in use |
eureka:instance:client:serviceUrl:defaultZone | Former Eureka property no longer in use |
app:factoriesBeanNames:pdfFactory | PDF converter |
app:factoriesBeanNames:mailFactory | Mail converter |
app:factoriesBeanNames:archiveFactory | Archive converter |
app:factoriesBeanNames:emptyDocumentConverter | Empty document converter |
app:alterDocumentContentOperations:split | Internal document transformation operation name |
app:alterDocumentContentOperations:multiSplit | Internal document transformation operation name |
app:alterDocumentContentOperations:hierarchicalMultiSplit | Internal document transformation operation name |
app:alterDocumentContentOperations:convert | Internal document transformation operation name |
app:alterDocumentContentOperations:renderAnnotations | Internal document transformation operation name |
app:alterDocumentContentOperations:renderFDFAnnotations | Internal document transformation operation name |
app:alterDocumentContentOperations:compress | Internal document transformation operation name |
nurse:components[0]functionality | Mail nurse configuration |
nurse:components[0]factoryName | Mail nurse configuration |
nurse:components[0]samplePath | Mail nurse configuration |
nurse:components[0]docIdStr | Mail nurse configuration |
Renamed properties (application.yaml)
| V4 property | 2023 property | Description |
|---|---|---|
eureka:instance:metadataMap:context | eureka:instance:metadataMap:context | Value changed |
app:factoriesBeanNames:imageFactory | app:factoriesBeanNames:imageFactory | Value changed |
app:factoriesBeanNames:textFactory | app:factoriesBeanNames:pdfboxTextFactory | Name changed |
nurse:components[1]samplePath: "video.mp4" | nurse:components[1]samplePath: "video.avi" | Value changed |
nurse:components[2]factoryName: "textFactory" | nurse:components[2]factoryName: "pdfboxTextFactory" | Value changed |
Document Renderer
Deleted properties (application.properties)
| V4 property | Description |
|---|---|
arender.endpoint.metrics.export.document.accessor.enabled | ARender load document accessor endpoint metrics export |
arender.endpoint.metrics.export.document.size.enabled | ARender document size endpoint metrics export |
arender.endpoint.metrics.export.document.dpi.enabled | ARender document DPI endpoint metrics export |
Renamed properties (application.properties)
| V4 property | 2023 property | Description |
|---|---|---|
arender.endpoint.metrics.export.alter.document.enabled | arender.endpoint.metrics.export.transformation.enabled | ARender document transformation endpoint metrics export |
arender.endpoint.metrics.export.video.enabled | arender.endpoint.metrics.export.get.file.chunk.enabled | ARender file chunk endpoint metrics export |
Deleted properties (application.yaml)
| V4 property | Description |
|---|---|
eureka:instance:statusPageUrlPath | Former Eureka property no longer in use |
eureka:instance:healthCheckUrlPath | Former Eureka property no longer in use |
eureka:instance:leaseRenewalIntervalInSeconds | Former Eureka property no longer in use |
eureka:instance:leaseExpirationDurationInSeconds | Former Eureka property no longer in use |
eureka:client:serviceUrl:defaultZone | Former Eureka property no longer in use |
kubprovider:services:Rendition-Engine:serviceId | Former property no longer in use |
kubprovider:services:Rendition-Engine:host | Former property no longer in use |
kubprovider:services:Rendition-Engine:port | Former property no longer in use |
kubprovider:services:Rendition-Engine:secure | Former property no longer in use |
kubprovider:services:Rendition-Engine:uri | Former property no longer in use |
cache:document:maxCacheSize | Former property no longer in use |
cache:renderer:cacheDuration | Former property no longer in use |
rest-template:connect-timeout | Timeout until a new connection is fully established |
rest-template:read-timeout | Timeout until it finishes reading data bytes from the socket |
rest-template:max-connection-total | Total number of reusable connections |
rest-template:max-connection-per-route | Total number of reusable connections per route |
rest-template:max-keep-alive | Lifespan of a connection while not used |
Document Text Handler
Deleted properties (application.properties)
| V4 property | Description |
|---|---|
arender.endpoint.metrics.export.document.accessor.enabled | ARender load document accessor endpoint metrics export |
arender.endpoint.metrics.export.document.size.enabled | ARender document size endpoint metrics export |
arender.endpoint.metrics.export.document.dpi.enabled | ARender document DPI endpoint metrics export |
Renamed properties (application.properties)
| V4 property | 2023 property | Description |
|---|---|---|
arender.endpoint.metrics.export.alter.document.enabled | arender.endpoint.metrics.export.transformation.enabled | ARender document transformation endpoint metrics export |
arender.endpoint.metrics.export.video.enabled | arender.endpoint.metrics.export.get.file.chunk.enabled | ARender file chunk endpoint metrics export |
Deleted properties (application.yaml)
| V4 property | Description |
|---|---|
eureka:instance:statusPageUrlPath | Former Eureka property no longer in use |
eureka:instance:healthCheckUrlPath | Former Eureka property no longer in use |
eureka:instance:leaseRenewalIntervalInSeconds | Former Eureka property no longer in use |
eureka:instance:leaseExpirationDurationInSeconds | Former Eureka property no longer in use |
eureka:client:serviceUrl:defaultZone | Former Eureka property no longer in use |
rest-template:connect-timeout | Timeout until a new connection is fully established |
rest-template:read-timeout | Timeout until it finishes reading data bytes from the socket |
rest-template:max-connection-total | Total number of reusable connections |
rest-template:max-connection-per-route | Total number of reusable connections per route |
rest-template:max-keep-alive | Lifespan of a connection while not used |
Renamed properties (application.yaml)
| V4 property | 2023 property | Description |
|---|---|---|
eureka:instance:metadataMap:context | eureka:instance:metadataMap:context | Value changed |
Web UI property changes
Client properties (arender.properties)
Deleted properties
| V4 property | Description |
|---|---|
topPanel.logo | Show the top panel logo |
topPanel.logo.url | Define the top panel logo URL |
topPanel.logo.width | The top panel logo width (in pixels) |
topPanel.logo.height | The top panel logo height (in pixels) |
topPanel.logo.margin.left | The top panel logo margin left (in pixels) |
topPanel.section.file.annotation.buttons.beanNames | Widget list for the file/annotation section |
topPanel.section.modification.buttons.beanNames | Widget list for the modification section |
topPanel.section.plugin.buttons.beanNames | Widget list for plugins |
topPanel.navigation.buttons.beanNames | Widget list for the navigation section |
topPanel.zoom.buttons.beanNames | Widget list for the zoom section |
topPanel.rotation.buttons.beanNames | Widget list for the rotation section |
topPanel.imageProcessMenu.processBrightness | Slider to handle brightness |
topPanel.imageProcessMenu.processContrast | Slider to handle contrast |
topPanel.imageProcessMenu.maxBrightness | Max value of the brightness slider |
topPanel.imageProcessMenu.maxContrast | Max value of the contrast slider |
topPanel.imageProcessMenu.defaultBrightness | Default value of the brightness slider |
topPanel.imageProcessMenu.defaultContrast | Default value of the contrast slider |
advanced.searchexplorer.tooltipOnHover.enabled | Enables tooltip on hover |
advanced.searchexplorer.caseSensitive.tooltip.enabled | Enables case-sensitive tooltip |
advanced.searchexplorer.accentSensitive.tooltip.enabled | Enables accent-sensitive tooltip |
annotationexplorer.enabled | Enables the legacy annotation explorer |
annotation.richtext.edition.doubleClick.time | Default double-click time in milliseconds |
filter.comment.showTabImage | Allows filtering annotations in the comment explorer |
filter.comment.showTabLabel | Shows a label instead of icons for filtering |
filter.comment.showSwitchFilter | Shows the switch filter for solved/unresolved requests |
annotationExplorer.showStickyNoteReplies | Legacy annotation explorer: show sticky note replies |
annotationExplorer.showStickyNoteLabel | Legacy annotation explorer: show sticky note labels |
annotationExplorer.adaptativeWidth.enabled | Legacy annotation explorer: adapt panel width |
Renamed properties
| V4 property | 2023 property | Description |
|---|---|---|
topPanel.section.file.buttons.beanNames | topPanel.section.left.buttons.beanNames | Widget list for the left section of the top panel |
topPanel.annotation.buttons.beanNames | toolbar.annotation.buttons.beanNames | Widget list for the annotation toolbar |
topPanel.obfuscate | redactexplorer.redact | Activate the redact text annotation button |
topPanel.obfuscateZone | redactexplorer.redactZone | Activate the redact annotation zone button |
toolbar.lockedObfuscate | toolbar.redact.locked | All redact annotations become locked once saved |
annotation.canHideObfuscate | annotation.can.hide.redact | Redact annotations can be hidden with the hide annotations button |
topPanel.imageProcessMenu | topPanel.imageProcessMenu.brightness.enabled and topPanel.imageProcessMenu.contrast.enabled | Split into separate brightness and contrast toggles |
Server properties (arender-server-custom-vanilla.properties)
Deleted properties
| V4 property | Description |
|---|---|
arender.rest.b64.encoding | REST API configuration |
arender.rest.serialization.model | REST API configuration |
Modified properties
| V4 property | Change |
|---|---|
arender.server.default.annotation.accessor | Value changed from xfdfAnnotationAccessor to redactConverterAnnotationAccessor to facilitate conversion from V4 to V2023 redact annotation model. The xfdfAnnotationAccessor value is now at the arender.server.wrapper.source.annotation.accessor property. |
Bean changes
UI configuration (arender-hmi-configuration.xml)
Deleted beans:
| V4 bean ID |
|---|
sorterCommentPresenter |
annotationExplorer |
Modified beans:
| V4 bean ID | Change |
|---|---|
shortcutManager | No longer holds shortcut values directly. Use individual properties instead, for example shortCut.print.key. |
Events configuration (events-configuration.xml)
Renamed beans:
| V4 bean ID | 2023 bean ID |
|---|---|
obfuscateCreationAction | redactCreationAction |
obfuscateZoneCreationAction | redactZoneCreationAction |
Top panel annotation configuration (toppanel-annotations-configuration.xml)
Renamed beans:
| V4 bean ID | 2023 bean ID | Location |
|---|---|---|
addObfuscateAnnotationButton | addRedactAnnotationButton | arender-hmi-configuration.xml |
addObfuscateZoneAnnotationButton | addRedactZoneAnnotationButton | arender-hmi-configuration.xml |
Top panel configuration (toppanel-configuration.xml)
Modified beans:
| V4 bean ID | Change |
|---|---|
separatorHorizontal, separatorVertical, obfuscationSeparator, printSeparatorHorizontal | Deleted. Replaced by rotationSeparatorVertical and annotationSeparatorVertical. You can still add custom separators. |
fileAndAnnotationSection | Replaced by topPanelLeftSection. The top panel is now divided into three sections; this is the left section. |
Class changes
Renamed classes
| V4 class | 2023 class | V4 artifact ID | 2023 artifact ID |
|---|---|---|---|
DocumentServiceRestClient | RenditionRestClient | arondor-arender-client-javarmi | arender-rendition-rest-client |
Deleted classes
| V4 class |
|---|
DocumentAccessorHasContentSize |
Summary of key changes
| Area | Change |
|---|---|
| Deployment | WAR (application server) to Spring Boot JAR |
| Obfuscate renamed to redact | All obfuscate properties, beans, and actions renamed to redact equivalents |
| Annotation accessor | Default annotation accessor changed to redactConverterAnnotationAccessor for V4-to-2023 redact model conversion |
| Eureka properties | Many former Eureka properties removed across all Rendition services |
| REST template | rest-template:* YAML properties removed; connections configured through new application.properties properties |
| Metrics endpoints | alter.document renamed to transformation, video renamed to get.file.chunk |
| Mail conversion | EML-to-PDF properties moved from Document Converter to Document Service Broker |
| Top panel | Restructured into three sections (left, center, right); separator beans replaced |
| Legacy annotation explorer | Removed along with related properties |
| Artifact IDs | arondor-arender-client-javarmi renamed to arender-rendition-rest-client |