Componize CCMS 6.1.3 improves translation cancellation, license management, broken-link repair, and branch ancestry checks. It restores pipeline rules in Share and fixes translation imports and link-status handling.
Cancel translation workflows and export the outstanding work again. Cancelling a translation workflow in Share now repairs its export tracking automatically. Eligible entries return to their state before the cancelled export, allowing the outstanding work to be exported again. Cancellation operates independently for each target language and supports additions, updates, moves, deletions, images, and empty files.
A recovery API also repairs tracking for an export whose workflow has already been closed.
TranslationService.cancel(URI exportManifestUri) returns a TranslationCancellationResult containing restored and skipped source paths by target language. The script API exposes componize.i18n.cancel(exportManifestUri).
The authenticated, transactional recovery endpoint POST /alfresco/service/componize/i18n/cancel accepts exportManifestUri as a query parameter or JSON property. Its JSON response contains changed, restoredPaths, and skippedPaths. The endpoint repairs tracking without terminating an Activiti workflow.
Reload newly installed licenses automatically. License access checks for replacement license resources at most once per minute, allowing a new license to take effect without restarting the application. Refresh preserves active-user records. If refresh fails, the current license is retained and the failure is logged.
LicenseModule.reloadLicense() checks for replacement licenses immediately and propagates failures to its caller.
Repair broken inbound links in batches. When resources are created, moved, or renamed, repair requests are collected and deduplicated before a repair job runs. Requests created within a transaction are published after commit, so workers see committed target nodes. Repairs use bounded database batches and a cluster job lock; affected source and target status flags are refreshed after the repair batches.
The default scheduling settings are:
| Property | Default |
|---|---|
| componize.link.repair.debounce_delay_ms | 5000 ms |
| componize.link.repair.maximum_delay_ms | 30000 ms |
DefaultLinkManager accepts an InboundLinkRepairScheduler through setInboundLinkRepairScheduler(...). Without a configured scheduler, existing asynchronous repair behavior continues. LinkManager.connectInboundLink(...) connects a link using a known ending-resource absolute URI.
Check branch ancestry more efficiently. Services and branch listings use an existence check that stops as soon as a shared ancestor is found. Branch listings also skip graph lookups when both repository IDs are known and differ, while retaining graph checks for legacy nodes with missing IDs.
VersionControlService.hasMergeBase(URI source, URI target) and VcsGraph.hasMergeBase(URI source, URI target) test whether branches, tags, or commits share an ancestor without selecting the closest merge base.
The new AsynchronousWorkMonitor interface exposes isIdle() so integrations can report completion of asynchronous work managed outside the main job executor.
Run pipelines from Share rules. The pipeline action is available again in the rule editor. A configuration selector lists the available pipeline configurations, and the rule details display the selected configuration's title.
Integration tests now wait for asynchronous actions and cleanup work before assertions or subsequent cleanup operations, and load MIME mappings synchronously to avoid timing-dependent failures.
Package Alfresco MVC as separate AMPs. Spring MVC REST controllers and their supporting services have moved from the core repository module to componize-alfresco-mvc. Share bulk check-in and check-out actions and their assets have moved to componize-share-mvc. Both modules provide separate AMPs.
Deploy the separate MVC modules where their functionality is required:
Custom implementations of the following interfaces need to implement the added methods when recompiling against 6.1.3:
ExportManifest.getSourceLanguage() exposes the source language even when an export contains only moves or deletions. ExportManifest.getTargetLanguages() now derives its result from recorded source commits, so callers also receive languages with no added or updated export entries.
Update Componize CCMS modules and SDK dependencies to 6.1.3.
Conflicting XML parser dependencies. The repository and DITA-OT integration modules exclude com.componize.xerces:xercesImpl from their DITA-OT dependency, preventing the conflicting custom Xerces library from being bundled through that dependency.