Server

Upgrade from LTS 2021 to LTS 2023

Updated: November 15, 2024

For the general upgrade process, see the page Upgrading the Nuxeo Platform.

This chapter highlights some major information about upgrade from Nuxeo Platform LTS 2021 (2021.x) to Nuxeo Platform LTS 2023 (2023.x). We strongly encourage you to also have a quick read of the upgrade notes.

Prerequisites

These upgrade notes assume that Nuxeo Server is on 2021 and up to date with the latest hotfixes.

Installation and Configuration

Behavior Changes

Make Nuxeo Code Build With Java 17

Java 17 is now required to build Nuxeo and its packages.

 More on JIRA ticket NXP-31182

Update Nuxeo Docker Image to Use Rocky Linux Instead of CentOS

The docker-private.packages.nuxeo.com/nuxeo/nuxeo:2023 Docker image is built from rockylinux:9.2.

DNF, the enhanced package manager, is installed and recommended instead of YUM.

The following OS packages were upgraded:

The following OS packages were removed:

  • ufraw: unavailable since not maintained. Yet, ImageMagick is able to identify/convert raw image formats such as .cr2 and .dng, though ufraw-batch is not installed.
  • Python 2: deprecated since January 1, 2020, only Python 3 is available.

 More on JIRA ticket NXP-31458

Make certificateKeyAlias Value Configurable From nuxeo.conf

A new nuxeo.conf property is available to configure the alias name for the certificate used in the HTTPS configuration: nuxeo.server.https.keyAlias

 More on JIRA ticket NXP-31425

Core Storage

Behavior Changes

Upgrade H2 to Version 2.x

The H2 2.x upgrade comes with several breaking changes from H2 itself. Nothing has to be done on the Nuxeo side.

If you have H2 data persisted by a previous version of Nuxeo, you should delete the nxserver/data/h2 folder before starting Nuxeo. YOU WILL LOSE DATA.

Otherwise, you can also follow the migration steps detailed by the maintainer of the H2 library.

 More on JIRA ticket NXP-31810

Upgrade to Hibernate 5

Maven dependencies

Upgrade:

  • org.hibernate:hibernate-core from 3.3.2.GA to 5.6.15.Final
  • javax.persistence:persistence-api:1.0.2 to javax.persistence:javax.persistence-api:2.2

Remove:

  • org.hibernate:hibernate-annotations
  • org.hibernate:hibernate-entitymanager
  • org.hibernate:hibernate-commons-annotations
  • org.hibernate:hibernate-validator
  • org.javassist:javassist, only used for Hibernate < 5.6, moved to JSF UI as needed by JBoss Seam
Java Code

Remove:

  • HibernateConfiguration#annotedClasses
  • HibernateConfiguration#addAnnotedClass(Class<?> annotedClass)
  • HibernateConfiguration#removeAnnotedClass(Class<?> annotedClass)
  • HibernateConfiguration#cfg
  • HibernateConfiguration#setupConfiguration()
  • HibernateConfiguration#createEntityManagerFactory(final Map<String, String> properties)
  • HibernateConfiguration#NuxeoTransactionManagerLookup
  • NuxeoConnectionProvider#getConnection()
  • NuxeoConnectionProvider#closeConnection(Connection connection)
  • NuxeoConnectionProvider#close()
  • PersistenceComponent#registerOracle12DialectResolver()

Add:

  • HibernateConfiguration#NuxeoJtaPlatform

Update:

  • HibernateConfiguration#hibernateProperties from Properties to HashMap
  • NuxeoConnectionProvider from implements ConnectionProvider to extends DatasourceConnectionProviderImpl
  • NuxeoConnectionProvider#configure from (Properties props) to (Map props)
  • PersistenceComponent#doPatchForTests from (Properties hibernateProperties) to (Map<String, String> hibernateProperties)
Extension Point

The classes/class list has been removed from the hibernateConfiguration contribution to the following extension point:

<extension target=org.nuxeo.ecm.core.persistence.PersistenceComponent
  point=hibernate>
  <hibernateConfiguration name=...>
    ...
  </hibernateConfiguration>
</extension>
Hibernate Release Notes

4.0.0.Final

https://in.relation.to/2011/12/15/hibernate-core-40-is-final/ https://github.com/hibernate/hibernate-orm/blob/4.3/changelog.txt

5.6.15

https://in.relation.to/2023/02/06/hibernate-orm-5615-final/ https://in.relation.to/2015/08/20/hibernate-orm-500-final-release/ (5.0.0.Final) https://github.com/hibernate/hibernate-orm/blob/5.6/changelog.txt https://hibernate.org/orm/releases/5.6/

 More on JIRA ticket NXP-31791

Add MongoDB Index on Ecm:isVersion

For MongoDB backend, create the index manually:

db.default.createIndex(
   { ecm:isVersion: 1 }
);

Otherwise, the nuxeo server will attempt to create this index if not present at start-up. In the case of an existing instance with large amounts of documents, this process may time out and/or affect performance.

 More on JIRA ticket NXP-31530

Fix Removal of 'Aceinfo' Directory Entries When a Document Is Deleted

For existing instances on MongoDB, in order to improve performance on ace info removal the following index needs to be created manually:

db.aceinfo.createIndex({aceinfo:docId: 1})  

Then enable ace info garbage collection by adding the following line to your nuxeo.conf:

nuxeo.aceinfo.gc.enabled=true

VCS users will need to make their own index.

 More on JIRA ticket NXP-31459

Create a MongoTransientStore That Can Handle Large Number Params

To use a MongoDB optimized implementation of the transientstore, (that is replacing the KeyValueTransientStore implementation), the following property must be se on nuxeo.conf for 10.10 and LTS 2021:

nuxeo.transientstore.provider=mongodb

Note that on LTS 2023 this implementation is used by default.

 More on JIRA ticket NXP-31311

Opensearch

Behavior Changes

Prevent Base64-Encoded Images From Being Sent to Opensearch

When using an HTML Note document, only the fulltext (extracted text) is submitted to elastic for indexation.

 More on JIRA ticket NXP-31698

Add an Option to Disable Hostname Verification During Elastic/Opensearch SSL Handshake

You can now use elasticsearch.restClient.ssl.certificate.verification=false to disable hostname verification during SSL handshake for accessing a testing instance of OpenSearch or Elasticsearch running with a test certificate.

 More on JIRA ticket NXP-31837

Bulk Service (Aka "Bulk Action Framework")

Behavior Changes

Reduce Retries on Recompute Bulk Actions

The maximum number of retries can now be configured for recompute bulk actions using nuxeo.conf options below, also, the new default is one retry (previously 3):

nuxeo.bulk.action.recomputeThumbnails.maxRetries=1
nuxeo.bulk.action.recomputeViews.maxRetries=1
nuxeo.bulk.action.recomputeVideoConversions.maxRetries=1

 More on JIRA ticket NXP-31550

Add a nuxeo.conf Property to Disable Immediate Blob Garbage Collection

To disable the immediate document's blobs garbage collection, set the following nuxeo.conf property to false:

nuxeo.bulk.action.blobGC.enabled=false

 More on JIRA ticket NXP-31794

Monitoring

Behavior Changes

PubSub Usage Must Be Monitored

There is now a metric to count the number of messages published using the PubSub service.

 More on JIRA ticket NXP-29386

Nuxeo Streams

Behavior Changes

Make Kafka Replication Factor Param Optional

Nuxeo is now relying on the default Kafka broker topic replication factor when creating a new topic. This is configured with kafka.default.replication.factor=-1. Note that it works only with Kafka cluster >= 2.4, if you want to use an older Kafka cluster, you have to set explicitly the replication factor in Nuxeo to something > 0.

 More on JIRA ticket NXP-31621

Miscellaneous

Behavior Changes

Use Jackson BOM for Jackson Dependencies

Addons declaring Jackson artifacts in their dependencyManagment section can remove them, as jackson-bom is now imported in the Maven dependency graph of the Nuxeo Platform. This will ease Jackson security upgrades for all Nuxeo artefacts.

 More on JIRA ticket NXP-31455

Deprecated

Document.FetchByProperty Operation

The Document.FetchByProperty operation is deprecated. From now, use Repository.Query to fetch documents by a property.

 More on JIRA ticket NXP-31259

Farewell

Redis

Redis support in Nuxeo has been removed as it isn't an interesting configuration because it doesn't provide a stream implementation, and the only production configuration that provide the stream implementation is Kafka that supplants Redis.

The StreamWorkManager is now the default implementation of the platform.

 More on JIRA ticket NXP-31901

Chronicle Queue

Chronicle Queue is no longer available as log implementation. It is replaced by an In-Memory one for test and dev purpose (no cluster capability, no persistence after restart). Use Kafka for production environment.

 More on JIRA ticket NXP-31296

Remove Deprecated Code Since 5.x

Data Model

  • RouteStep facet was replaced by the Graph API, no replacement
  • StepFolder facet was replaced by the Graph API, no replacement
  • StepFolder document type was replaced by the Graph API, no replacement
  • step_folder schema was replaced by the Graph API, no replacement
  • ConditionalStepFolder facet was replaced by the Graph API, no replacement
  • ConditionalStepFolder document type was replaced by the Graph API, no replacement
  • conditional*step*folder schema was replaced by the Graph API, no replacement
  • DocumentRouteStep document type was replaced by the Graph API, no replacement
  • task_step schema was replaced by the Graph API, no replacement
  • conditional*task*step schema was replaced by the Graph API, no replacement
  • TaskStep facet was replaced by the Graph API, no replacement
  • SimpleTask document type was replaced by the Graph API, no replacement
  • FollowLifeCycleTransitionTask document type was replaced by the Graph API, no replacement
  • PublishTask document type was replaced by the Graph API, no replacement
  • ConditionalTask document type was replaced by the Graph API, no replacement

Operations

  • Document.Routing.Resume.Step was replaced by the Graph API, no replacement
  • Update.NextStep.ConditionalFolder was replaced by the Graph API, no replacement
  • Document.Routing.BackToReady was replaced by the Graph API, no replacement
  • Document.Routing.Step.Done was replaced by the Graph API, no replacement
  • setDone was replaced by the Graph API, no replacement
  • simpleValidate was replaced by the Graph API, no replacement
  • simpleRefuse was replaced by the Graph API, no replacement
  • simpleUndo was replaced by the Graph API, no replacement
  • setNextStep was replaced by the Graph API, no replacement
  • decideNextStepAndSimpleValidate was replaced by the Graph API, no replacement
  • simpleChooseNextOption1AndDone was replaced by the Graph API, no replacement
  • simpleChooseNextOption2AndDone was replaced by the Graph API, no replacement

Contributions

Extension point
  • handlingLabels was replaced by handleLabels control on the widget object descriptor
  • org.nuxeo.ecm.platform.routing.service#chainsToType was replaced by the Graph API, no replacement

Constants

  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.ROUTE*STEP*FACET was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.STEP*FOLDER*FACET was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.EXECUTION*TYPE_PROPERTY*NAME was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.STEP*DOCUMENT*TYPE was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.CONDITIONAL*STEP*FACET was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.CONDITIONAL*STEP_DOCUMENT*TYPE was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.STEP*TO_BE_EXECUTED_NEXT_PROPERTY*NAME was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants.STEP*DOCUMENT*TYPE was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl.CHAINS*TO_TYPE*XP was replaced by the Graph API, no replacement

Fields

  • org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl.typeToChain was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl.undoChainIdFromRunning was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl.undoChainIdFromDone was replaced by the Graph API, no replacement

Methods

  • org.nuxeo.ecm.automation.AutomationService#putOperationChain(OperationChain) was replaced by org.nuxeo.ecm.automation.AutomationService#putOperation(OperationType)
  • org.nuxeo.ecm.automation.AutomationService#putOperationChain(OperationChain, boolean) was replaced by org.nuxeo.ecm.automation.AutomationService#putOperation(OperationType, boolean)
  • org.nuxeo.ecm.automation.AutomationService#removeOperationChain(String) was replaced by org.nuxeo.ecm.automation.AutomationService#removeOperation(OperationType)
  • org.nuxeo.ecm.automation.AutomationService#getOperationChain(String) was replaced by org.nuxeo.ecm.automation.AutomationService#getOperation(String)
  • org.nuxeo.ecm.automation.AutomationService#getOperationChains() was replaced by org.nuxeo.ecm.automation.AutomationService#getOperations()
  • org.nuxeo.connect.update.standalone.LocalPackageImpl#<init>(File, int, PackageUpdateService) was replaced by org.nuxeo.connect.update.standalone.LocalPackageImpl#<init>(File, PackageState, PackageUpdateService)
  • org.nuxeo.connect.update.standalone.LocalPackageImpl#<init>(ClassLoader, File, int, PackageUpdateService) was replaced by org.nuxeo.connect.update.standalone.LocalPackageImpl#<init>(ClassLoader, File, PackageState, PackageUpdateService)
  • org.nuxeo.connect.update.standalone.PackagePersistence#updateState(String, int) was replaced by org.nuxeo.connect.update.standalone.PackagePersistence#updateState(String, PackageState)
  • org.nuxeo.connect.update.task.standalone.commands.Copy#getContentToCopy(Map) was replaced by org.nuxeo.connect.update.task.standalone.commands.Copy#getContentToCopy(File, Map)
  • org.nuxeo.ecm.core.api.security.ACP#listUsernamesForAnyPermission(Set) was replaced by org.nuxeo.ecm.platform.usermanager.UserManager#getUsersForPermission(String, ACP)
  • org.nuxeo.ecm.core.api.security.UserEntry#addPrivilege(String, boolean, boolean) was superseded by org.nuxeo.ecm.core.api.security.UserEntry#addPrivilege(String, boolean) as readOnly flag is not used
  • org.nuxeo.ecm.platform.forms.layout.api.WidgetDefinition#isHandlingLabels() was replaced by org.nuxeo.ecm.platform.forms.layout.api.WidgetDefinition#getControls() with handleLabels control
  • org.nuxeo.ecm.platform.forms.layout.api.WidgetDefinition#setHandlingLabels(boolean) was replaced by org.nuxeo.ecm.platform.forms.layout.api.WidgetDefinition#setControls(Map) with handleLabels control
  • org.nuxeo.ecm.platform.routing.api.DocumentRouteStep#undo(CoreSession) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#createNewInstance(DocumentRoute, String, CoreSession, boolean) was replaced by org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#createNewInstance(DocumentRoute, List, CoreSession, boolean)
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#createNewInstance(DocumentRoute, List, CoreSession) was replaced by org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#createNewInstance(DocumentRoute, List, CoreSession, boolean)
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#createNewInstance(DocumentRoute, String, CoreSession) was replaced by org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#createNewInstance(DocumentRoute, List, CoreSession, boolean)
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#getOperationChainId(String) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#getUndoFromRunningOperationChainId(String) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#getUndoFromDoneOperationChainId(String) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#canUserValidateRoute(NuxeoPrincipal) was replaced by org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#canUserValidateRoute(DocumentModel, CoreSession)
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#addRouteElementToRoute(DocumentRef, int, DocumentRouteElement, CoreSession) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#addRouteElementToRoute(DocumentRef, String, DocumentRouteElement, CoreSession) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#removeRouteElement(DocumentRouteElement, CoreSession) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#getOrderedRouteElement(String, CoreSession) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#getRouteElements(DocumentRoute, CoreSession) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#finishTask(CoreSession, DocumentRoute, Task, boolean) was replaced by org.nuxeo.ecm.platform.routing.api.DocumentRoutingService#completeTask(String, String, Map, String, CoreSession)
  • org.nuxeo.ecm.platform.routing.core.impl.ElementRunner#undo(CoreSession, DocumentRouteElement) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#computeRouteElements() was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#computeRelatedRouteElements() was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#getElements(DocumentRoute) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#getTypeDescription(DocumentRouteTableElement) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#isStep(DocumentModel) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#removeStep() was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#createRouteElement(String) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#moveRouteElement(String) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#saveRouteElement() was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#getOrderedChildren(String, String) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#getChildWithPosition(DocumentModel, String) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.DocumentRoutingActionsBean#getPositionForChild(DocumentModel, DocumentModel) was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.web.RouteSecurityChecker#canValidateRoute() was replaced by org.nuxeo.ecm.platform.routing.web.RouteSecurityChecker#canValidateRoute(DocumentModel)

Classes

  • org.nuxeo.ecm.platform.actions.AbstractActionFilter was not used, no replacement
  • org.nuxeo.ecm.platform.video.convert.MP4Converter was replaced by org.nuxeo.ecm.platform.video.convert.VideoConversionConverter
  • org.nuxeo.ecm.platform.video.convert.OggConverter was replaced by org.nuxeo.ecm.platform.video.convert.VideoConversionConverter
  • org.nuxeo.ecm.platform.video.convert.WebMConverter was replaced by org.nuxeo.ecm.platform.video.convert.VideoConversionConverter
  • org.nuxeo.ecm.platform.routing.api.ActionableObject was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRouteTableElement was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.RouteFolderElement was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.RouteTable was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.RoutingTaskService was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.helper.ActionableValidator was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.helper.ConditionalFolderUpdateRunner was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.helper.StepResumeRunner was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.operation.ResumeStepOperation was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.operation.SetNextStepOnConditionalFolderOperation was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.operation.StepBackToReadyOperation was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.operation.StepDoneOperation was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.ChainToTypeMappingDescriptor was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.ConditionalRunner was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.ParallelRunner was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.RoutingTaskServiceImpl was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.SerialRunner was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.core.impl.StepElementRunner was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.api.DocumentRoutingConstants$ExecutionTypeValues was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.adapter.RoutingTask was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.adapter.RoutingTaskAdapterFactory was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.adapter.RoutingTaskImpl was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.adapter.TaskStep was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.adapter.TaskStepAdapterFactory was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.adapter.TaskStepImpl was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.api.RoutingTaskConstants was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.operation.AbstractTaskStepOperation was replaced by the Graph API, no replacement
  • org.nuxeo.ecm.platform.routing.dm.operation.CreateRoutingTask was replaced by the Graph API, no replacement, the operation id was Workflow.CreateRoutingTask
  • org.nuxeo.ecm.platform.routing.dm.operation.EvaluateCondition was replaced by the Graph API, no replacement, the operation id was Document.Routing.EvaluateCondition
  • org.nuxeo.ecm.platform.routing.dm.operation.RemoveRoutingTask was replaced by the Graph API, no replacement, the operation id was Workflow.RemoveRoutingTask
  • org.nuxeo.ecm.platform.routing.dm.operation.SetCurrentRunningStepFromTask was replaced by the Graph API, no replacement, the operation id was Document.Routing.SetRunningStepFromTask

Maven Modules

org.nuxeo.ecm.routing:nuxeo-routing-dm was replaced by the Graph API, no replacement

 More on JIRA ticket NXP-31639

Remove Deprecated Code Since 6.0

Operations

  • Context.RunDocumentOperationInNewTx was replaced by Context.RunDocumentOperation
  • Context.RunOperationOnListInNewTx was replaced by Context.RunOperationOnList

Contributions

Extension point

whereClause@docType attribute in objects of org.nuxeo.ecm.platform.query.api.PageProviderService#providers was replaced by searchDocumentType element

Constants

  • org.nuxeo.ecm.platform.task.TaskQueryConstant.TASK_VARIABLES_WHERE_CLAUSE was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.TASK_ACTORS_WHERE_CLAUSE was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_ACTORS_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_TARGET_DOCUMENT_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_TARGET_DOCUMENTS_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_TARGET_DOCUMENT_AND_ACTORS_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_TARGET_DOCUMENTS_AND_ACTORS_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_PROCESS_ID_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_PROCESS_ID_AND_ACTORS_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_PROCESS_ID_AND_NODE_ID_QUERY was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant.GET_TASKS_FOR_TARGET_DOCUMENT_AND_ACTORS_QUERY_OR_DELEGATED_ACTORS_QUERY was replaced by Page Provider

Fields

  • org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation.page was replaced by org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation.currentPageIndex, the operation parameter was page and it is now currentPageIndex
  • org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation.sortInfoAsStringList was replaced by org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation.sortBy & org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation.sortOrder, the operation parameter was sortInfo and it is now sortBy & sortOrder
  • org.nuxeo.ecm.automation.core.operations.services.AuditPageProviderOperation.maxResults was not used, no replacement
  • org.nuxeo.ecm.platform.query.core.WhereClauseDescriptor.docType was replaced by org.nuxeo.ecm.platform.query.core.BasePageProviderDescriptor.searchDocumentType

Methods

  • org.nuxeo.elasticsearch.api.ElasticSearchService#query(CoreSession, String, int, int, SortInfo...) was replaced by org.nuxeo.elasticsearch.api.ElasticSearchService#query(NxQueryBuilder)
  • org.nuxeo.elasticsearch.api.ElasticSearchService#query(CoreSession, QueryBuilder, int, int, SortInfo...) was replaced by org.nuxeo.elasticsearch.api.ElasticSearchService#query(NxQueryBuilder)
  • org.nuxeo.ecm.platform.importer.random.HunspellDictionaryHolder#loadDic(String) was not used, no replacement
  • org.nuxeo.ecm.directory.Session#getEntries() was replaced by query methods
  • org.nuxeo.ecm.platform.query.core.WhereClauseDescriptor#getDocType() was replaced by org.nuxeo.ecm.platform.query.core.BasePageProviderDescriptor#getSearchDocumentType()
  • org.nuxeo.ecm.platform.task.TaskQueryConstant#getVariableWhereClause(String, String) was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant#getActorsWhereClause(List) was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.TaskQueryConstant#formatStringList(List) was replaced by Page Provider
  • org.nuxeo.ecm.platform.task.core.service.DocumentTaskProvider#wrapDocModelInTask(DocumentModelList) was replaced by org.nuxeo.ecm.platform.task.core.service.DocumentTaskProvider#wrapDocModelInTask(List)
  • org.nuxeo.ecm.platform.task.core.service.DocumentTaskProvider#wrapDocModelInTask(DocumentModelList, boolean) was replaced by org.nuxeo.ecm.platform.task.core.service.DocumentTaskProvider#wrapDocModelInTask(List)

Classes

  • org.nuxeo.ecm.automation.core.operations.execution.RunInNewTransaction was replaced by org.nuxeo.ecm.automation.core.operations.execution.RunDocumentChain, the operation id was Context.RunDocumentOperationInNewTx, the new one is Context.RunDocumentOperation
  • org.nuxeo.ecm.automation.core.operations.execution.RunOperationOnListInNewTransaction was replaced by org.nuxeo.ecm.automation.core.operations.execution.RunOperationOnList
  • org.nuxeo.ecm.platform.suggestbox.service.SearchDocumentsSuggestion was not used, no replacement
  • org.nuxeo.ecm.platform.suggestbox.service.suggesters.DocumentSearchByDateSuggester was not used, no replacement
  • org.nuxeo.ecm.platform.suggestbox.service.suggesters.DocumentSearchByPropertySuggester was not used, no replacement

 More on JIRA ticket NXP-31640

Remove Deprecated Code Since 7.10

Contributions

Extension point
  • org.nuxeo.theme.styling.service.ThemeStylingService#pages does not take org.nuxeo.theme.styling.service.descriptors.ThemePage objects anymore. It now only takes org.nuxeo.theme.styling.service.descriptors.PageDescriptor
  • org.nuxeo.theme.styling.service.ThemeStylingService#styles was removed as it is replaced by org.nuxeo.ecm.platform.WebResources#resources
  • org.nuxeo.theme.styling.service.ThemeStylingService#resources was removed as it is replaced by org.nuxeo.ecm.platform.WebResources#resources
Facets

org.nuxeo.ecm.platform.picture.coreTypes#MultiviewPicture was removed, no replacement

Constants

  • org.nuxeo.ecm.core.api.event.CoreEventConstants.DOCUMENT_MODEL_ID was used for compatibility, replaced by DESTINATION_NAME
  • org.nuxeo.ecm.core.api.pathsegment.PathSegmentServiceDefault.NUXEO_MAX_SEGMENT_SIZE_PROPERTY was used for compatibility, replaced by PathSegmentService#NUXEO_MAX_SEGMENT_SIZE_PROPERTY
  • org.nuxeo.ecm.core.opencmis.impl.server.NuxeoRepository.NUXEO_VERSION_PROP was used for compatibility, replaced by org.nuxeo.common.Environment#DISTRIBUTION_VERSION
  • PicturePreviewAdapterFactory.ORIGINAL_VIEW_NAME was removed, the Original view does not exist anymore. See NXP-16070 org.nuxeo.ecm.core.io.download.DownloadService.NXBIGFILE was used for compatibility, replaced by #NXFILE

Fields

  • org.nuxeo.ecm.user.invite.UserRegistrationInfo.password The password should not be stored
  • org.nuxeo.theme.styling.service.descriptors.PageDescriptor.appendStyles was removed, use resources instead
  • org.nuxeo.theme.styling.service.descriptors.PageDescriptor.styles was removed, use resources instead

Methods

  • org.nuxeo.ecm.core.api.impl.blob.URLBlob.#URLBlob(URL, String, String, String) was removed. Use a separate #setFilename call instead
  • org.nuxeo.ecm.core.api.security.ACP#addACL(String, ACL) was replaced by #addACL(ACL) to have correctly ordered acls. To force by-passing the order, use #addACL(int, ACL)
  • org.nuxeo.ecm.core.api.security.impl.ACPImpl#addACL(String, ACL) was replaced by #addACL(ACL) to have correctly ordered acls. To force by-passing the order, use #addACL(int, ACL)
  • org.nuxeo.ecm.platform.convert.plugins.CommandLineBasedConverter#getCommandLineService() was removed
  • org.nuxeo.connect.client.vindoz.InstallAfterRestart#isVindozBox() was removed. Use org.apache.commons.lang3.SystemUtils#IS_OS_WINDOWS instead
  • org.nuxeo.ecm.admin.NuxeoCtlManager#isWindows() was removed. Use org.apache.commons.lang3.SystemUtils#IS_OS_WINDOWS instead
  • org.nuxeo.ecm.automation.server.jaxrs.batch.BatchManager#initBatch(String, String) was replaced by #initBatch()
  • org.nuxeo.ecm.automation.server.jaxrs.batch.BatchManagerComponent#initBatch(String, String) was replaced by #initBatch()
  • org.nuxeo.ecm.core.opencmis.impl.server.NuxeoCmisService#getIconRenditionStream(String) was removed. The thumbnail is now a default rendition, see NXP-16662
  • org.nuxeo.ecm.core.opencmis.impl.server.NuxeoObjectData#getIconRendition(DocumentModel, CallContext) was removed. The thumbnail is now a default rendition, see NXP-16662
  • org.nuxeo.ecm.core.opencmis.impl.server.NuxeoObjectData#getIconStream(String, CallContext) was removed. The thumbnail is now a default rendition, see NXP-16662
  • org.nuxeo.ecm.user.invite.UserRegistrationConfiguration#getUserInfoPasswordField() was removed
  • org.nuxeo.ecm.user.invite.UserRegistrationInfo#getPassword() was removed
  • org.nuxeo.ecm.user.invite.UserRegistrationInfo#setPassword(String) was removed
  • org.nuxeo.ecm.directory.Directory#getReference(String) was replaced by #getReferences(String)
  • org.nuxeo.ecm.directory.AbstractDirectory#getReference(String) was replaced by #getReferences(String)
  • org.nuxeo.ecm.platform.filemanager.utils.FileManagerUtils#getBytesFromFile(File) was removed. Use org.apache.commons.io.IOUtils#toByteArray instead
  • org.nuxeo.ecm.platform.picture.ImagingComponent#getImageMetadata(Blob) was removed. Use org.nuxeo.binary.metadata.api.BinaryMetadataService#readMetadata(Blob, boolean) instead
  • org.nuxeo.ecm.platform.picture.api.ImagingService#getImageMetadata(Blob) was removed. Use org.nuxeo.binary.metadata.api.BinaryMetadataService#readMetadata(Blob, boolean) instead
  • org.nuxeo.ecm.platform.picture.api.PictureConversion#getTitle() was replaced by #getId()
  • org.nuxeo.ecm.platform.picture.api.PictureView#getContent() was replaced by #getBlob
  • org.nuxeo.ecm.platform.picture.api.PictureViewImpl#getContent() was replaced by #getBlob
  • org.nuxeo.ecm.platform.picture.api.adapters#AbstractPictureAdapter.setMetadata() was removed
  • org.nuxeo.ecm.platform.rendition.service.RenditionService#getDeclaredRenditionDefinitionsForProviderType(String) was removed
  • org.nuxeo.ecm.platform.rendition.service.RenditionCreator#getDetachedDendition() was replaced by #getDetachedRendition
  • org.nuxeo.ecm.platform.rendition.service.RenditionServiceImpl#getDeclaredRenditionDefinitionsForProviderType(String) was removed
  • org.nuxeo.ecm.platform.task.TaskService#createTask(CoreSession, NuxeoPrincipal, List<DocumentModel>, String, String, String, String, List<String>, boolean, String, String, Date, Map<String, String>, String, Map<String, Serializable>) was replaced by #createTaskForProcess(CoreSession, NuxeoPrincipal, List, String, String, String, String, String, List, boolean, String, String, Date, Map, String, Map)
  • org.nuxeo.ecm.platform.task.core.service.TaskServiceImpl#createTask(CoreSession, NuxeoPrincipal, List<DocumentModel>, String, String, String, String, List<String>, boolean, String, String, Date, Map<String, String>, String, Map<String, Serializable>) was replaced by #createTaskForProcess(CoreSession, NuxeoPrincipal, List, String, String, String, String, String, List, boolean, String, String, Date, Map, String, Map)
  • org.nuxeo.theme.styling.service.ThemeStylingServiceImpl#getResourceFromStyle(String) was removed
  • org.nuxeo.theme.styling.service.descriptors.PageDescriptor#getAppendStyles() was removed. Use resources instead
  • org.nuxeo.theme.styling.service.descriptors.PageDescriptor#getStyles() was removed. Use resources instead
  • org.nuxeo.theme.styling.service.descriptors.PageDescriptor#setStyles(List<String>) was removed. Use resources instead
  • org.nuxeo.theme.styling.service.descriptors.PageDescriptor#setAppendStyles(boolean) was removed. Use resources instead
  • org.nuxeo.theme.styling.service.registries.PageRegistry#getThemePage(String) was replaced by #getPage(String)
  • org.nuxeo.theme.styling.service.registries.PageRegistry#getThemePages() was replaced #getPages(String)
  • org.nuxeo.theme.styling.service.registries.PageRegistry#getConfigurationApplyingToAllThemes() Use #getConfigurationApplyingToAll() instead
  • org.nuxeo.ecm.restapi.server.jaxrs.blob.BlobObject#buildResponseFromBlob(Request, HttpServletRequest, Blob, String) was removed
  • org.nuxeo.connect.update.task.guards.PlatformHelper#isWindows() was removed. Use org.apache.commons.lang3.SystemUtils#IS_OS_WINDOWS instead
  • org.nuxeo.connect.update.task.guards.PlatformHelper#isNotWindows() was removed. Use org.apache.commons.lang3.SystemUtils#IS_OS_WINDOWS instead

Classes

  • org.nuxeo.ecm.core.api.DocumentException was removed
  • org.nuxeo.ecm.automation.core.operations.document.DocumentPermissionHelper was removed. Methods to managing permissions are now on ACP / ACL
  • org.nuxeo.ecm.automation.jaxrs.io.audit.LogEntryListWriter was removed. This marshaller was migrated to org.nuxeo.ecm.platform.audit.io.LogEntryListJsonWriter. To use it in JAX-RS, register the org.nuxeo.ecm.webengine.jaxrs.coreiodelegate.CoreIODelegate to forward the JAX-RS marshalling to nuxeo-core-io
  • org.nuxeo.ecm.automation.jaxrs.io.audit.LogEntryWriter was removed. This marshaller was migrated to org.nuxeo.ecm.platform.audit.io.LogEntryJsonWriter. To use it in JAX-RS, register the org.nuxeo.ecm.webengine.jaxrs.coreiodelegate.CoreIODelegate to forward the JAX-RS marshalling to nuxeo-core-io
  • org.nuxeo.ecm.automation.jaxrs.io.documents.JSONDocumentModelReader was removed. The Nuxeo JSON marshalling was migrated to nuxeo-core-io. This class is replaced by DocumentModelJsonReader which is registered by default and available to marshal DocumentModel from the Nuxeo Rest API thanks to the JAX-RS marshaller org.nuxeo.ecm.webengine.jaxrs.coreiodelegate.CoreIODelegate.
  • org.nuxeo.ecm.platform.picture.api.BlobHelper was removed. Use org.nuxeo.ecm.core.api.Blob#getFile directly
  • org.nuxeo.ecm.platform.picture.api.PictureTemplate was replaced by org.nuxeo.ecm.platform.picture.api.PictureConversion
  • org.nuxeo.ecm.platform.picture.magick.MagickExecutor was removed
  • org.nuxeo.ecm.platform.web.common.UserAgentMatcher was replaced by org.nuxeo.common.utils.UserAgentMatcher
  • og.nuxeo.ecm.platform.web.common.resources.AggregatedJSProvider was removed. Use webresources extension points instead
  • org.nuxeo.theme.styling.service.descriptors.SimpleStyle was removed. Use the org.nuxeo.ecm.web.resources.core.ResourceDescriptor with flavor endpoint instead
  • org.nuxeo.theme.styling.service.descriptors.ThemePage was removed
  • org.nuxeo.ecm.webengine.jaxrs.coreiodelegate.DocumentModelJsonReaderLegacy was removed as it used org.nuxeo.ecm.automation.jaxrs.io.documents.JSONDocumentModelReader

 More on JIRA ticket NXP-31534

Remove Deprecated Code Since 8.10

Constants

  • org.nuxeo.ecm.platform.importer.source.FileWithIndividualMetadasSourceNode.PROPERTY_FILE_SUFIX was replaced by PROPERTY_FILE_SUFFIX
  • org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.DEFAULT_START_PAGE was replaced by LoginScreenHelper#getStartupPagePath()

Methods

  • org.nuxeo.ecm.core.api.CoreSession#isStateSharedByAllThreadSessions() was removed as it always returns true by design
  • org.nuxeo.ecm.core.api.CoreSession#copy(DocumentRef, DocumentRef, String, boolean) was replaced by #copy(DocumentRef, DocumentRef, String, CopyOption...)
  • org.nuxeo.ecm.core.api.CoreSession#copy(List<DocumentRef>, DocumentRef, boolean) was replaced by #copy(List, DocumentRef, CopyOption...)
  • org.nuxeo.ecm.core.api.CoreSession#copyProxyAsDocument(DocumentRef, DocumentRef, String, boolean) was replaced by #copyProxyAsDocument(DocumentRef, DocumentRef, String, CopyOption...)
  • org.nuxeo.ecm.core.api.CoreSession#copyProxyAsDocument(List<DocumentRef>, DocumentRef, boolean) was replaced by #copyProxyAsDocument(List, DocumentRef, CopyOption...)
  • org.nuxeo.ecm.core.api.DocumentModel#setPropertyObject(Property) was added to allow removal of org.nuxeo.ecm.core.api.DocumentModel#getParts()
  • org.nuxeo.ecm.core.api.DocumentModel#getParts() was removed
  • org.nuxeo.ecm.core.api.DocumentModel.getParts() is internal. Use direct org.nuxeo.ecm.core.api.model.Property getters instead
  • org.nuxeo.ecm.core.api.IterableQueryResult#isLife() was replaced by #mustBeClosed()
  • org.nuxeo.ecm.core.api.impl.DocumentModelImpl#setPropertyObject(Property) was added to allow removal of org.nuxeo.ecm.core.api.DocumentModel#getParts()
  • org.nuxeo.ecm.core.api.impl.SimpleDocumentModel#setPropertyObject(Property) was added to allow removal of org.nuxeo.ecm.core.api.DocumentModel#getParts()
  • org.nuxeo.ecm.core.api.impl.SimpleDocumentModel#getParts() was removed
  • org.nuxeo.ecm.core.api.model.DeltaLong#DeltaLong(long, long) was replaced by #DeltaLong(Long, long)
  • org.nuxeo.ecm.core.api.model.DeltaLong#deltaOrLong(Number, long) was replaced by #valueOf(Number, long)
  • org.nuxeo.ecm.core.event.impl.ShallowDocumentModel#getPart(String) was removed
  • org.nuxeo.ecm.core.event.impl.ShallowDocumentModel#getParts() was removed
  • org.nuxeo.ecm.core.event.impl.ShallowDocumentModel#setPropertyObject(Property) was added to allow removal of org.nuxeo.ecm.core.api.DocumentModel#getParts() but is unsupported
  • org.nuxeo.ecm.core.work.AbstractWork#initSession() was replaced by #openSystemSession()
  • org.nuxeo.ecm.core.work.AbstractWork#initSession(String) was replaced by #openSystemSession() to open a session on the configured repository name, otherwise use CoreInstance#getCoreSessionSystem(String)
  • org.nuxeo.ecm.core.storage.dbs.DBSSession.DBSQueryResult#isLife() was replaced by #mustBeClosed()
  • org.nuxeo.ecm.core.storage.sql.jdbc.ResultSetQueryResult#isLife() was replaced by #mustBeClosed()
  • org.nuxeo.ecm.core.api.AbstractSession#copy(DocumentRef, DocumentRef, String, boolean) was replaced by #copy(DocumentRef, DocumentRef, String, CopyOption...)
  • org.nuxeo.ecm.core.api.AbstractSession#copy(List<DocumentRef>, DocumentRef, boolean) was replaced by #copy(List, DocumentRef, CopyOption...)
  • org.nuxeo.ecm.core.api.AbstractSession#copyProxyAsDocument(DocumentRef, DocumentRef, String, boolean) was replaced by #copyProxyAsDocument(DocumentRef, DocumentRef, String, CopyOption...)
  • org.nuxeo.ecm.core.api.AbstractSession#copyProxyAsDocument(List<DocumentRef>, DocumentRef, boolean) was replaced by #copyProxyAsDocument(List, DocumentRef, CopyOption...)
  • org.nuxeo.ecm.core.api.local.LocalSession#isStateSharedByAllThreadSessions() was removed as it always returns true by design
  • org.nuxeo.ecm.core.opencmis.impl.server.CMISQLtoNXQL.NXQLtoCMISIterableQueryResult#isLife() was replaced by #mustBeClosed()
  • org.nuxeo.ecm.csv.core.CSVImporterDocumentFactory#exists(CoreSession, String, String, String, Map<String, Serializable>) was replaced by #exists(CoreSession, String, String, Map<String, Serializable>)
  • org.nuxeo.ecm.csv.core.DefaultCSVImporterDocumentFactory#exists(CoreSession, String, String, String, Map<String, Serializable>) was replaced by #exists(CoreSession, String, String, Map<String, Serializable>)
  • org.nuxeo.elasticsearch.api.EsIterableQueryResultImpl#isLife() was replaced by #mustBeClosed()
  • org.nuxeo.elasticsearch.core.EsResultSetImpl#isLife() was replaced by #mustBeClosed()
  • org.nuxeo.ecm.permissions.PermissionListener#handleReplaceACE(DocumentEventContext, String, ACE, ACE) was removed
  • org.nuxeo.ecm.platform.audit.api.AuditReader#getLogEntriesFor(String) was replaced by #getLogEntriesFor(String, String)
  • org.nuxeo.ecm.platform.audit.service.BaseLogEntryProvider#getLogEntriesFor(String) was replaced by #getLogEntriesFor(String, String)
  • org.nuxeo.ecm.platform.audit.service.BaseLogEntryProvider#getLogEntriesFor(String, Map<String, FilterMapEntry>, boolean) was removed. If you use the org.nuxeo.ecm.platform.audit.service.LogEntryProvider implementation, you can use org.nuxeo.ecm.platform.audit.service.LogEntryProvider#queryLogs(QueryBuilder)
  • org.nuxeo.ecm.platform.audit.service.DefaultAuditBackend#getLogEntriesFor(String) was replaced by #getLogEntriesFor(String, String)
  • org.nuxeo.ecm.platform.audit.service.LogEntryProvider#getLogEntriesFor(String) was replaced by #queryLogs(QueryBuilder)
  • org.nuxeo.ecm.platform.audit.service.LogEntryProvider#getLogEntriesFor(String, Map<String, FilterMapEntry>, boolean) was replaced by #queryLogs(QueryBuilder)
  • org.nuxeo.ecm.platform.importer.source.FileWithIndividualMetadasSourceNode#isPropertyFile(File) was removed
  • org.nuxeo.ecm.platform.rendition.service.RenditionServiceImpl#storeRendition(DocumentModel, Rendition, String) was removed

Classes

  • org.nuxeo.ecm.core.api.DataModelMap was removed. Use Map<String, DataModel>
  • org.nuxeo.ecm.core.api.impl.DataModelMapImpl was removed. Use Map<String, DataModel>
  • org.nuxeo.ecm.platform.routing.core.io.JsonEncodeDecodeUtils was replaced by org.nuxeo.ecm.core.io.registry.Writer#write(Object, Class, java.lang.reflect.Type, javax.ws.rs.core.MediaType, java.io.OutputStream) See how org.nuxeo.ecm.platform.routing.core.io.DocumentRouteWriter#writeVariables(org.nuxeo.ecm.platform.routing.api.DocumentRoute, JsonGenerator, org.nuxeo.ecm.core.io.registry.MarshallerRegistry, org.nuxeo.ecm.core.io.registry.context.RenderingContext, SchemaManager) uses it
  • org.nuxeo.ecm.platform.routing.core.io.TaskCompletionRequestLegacyJsonReader was replaced by TaskCompletionRequestJsonReader
  • org.nuxeo.ecm.platform.routing.core.io.WorkflowRequestLegacyJsonReader was replaced by WorkflowRequestJsonReader

 More on JIRA ticket NXP-31535

Remove Deprecated Code Since 9.10

Configuration Properties

Nuxeo.conf
  • nuxeo.hotreload.compat.mechanism was removed, no replacement
  • org.nuxeo.runtime.reload_strategy doesn't allow unstash anymore
Configuration Service

nuxeo.drive.force.versioning, its default value was true

Contributions

Extension point
  • org.nuxeo.ecm.core.versioning.VersioningService#versioningRules has been removed as it is replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.filemanager.service.FileManagerService#versioning has been removed as it is replaced by Automatic Versioning
Component

org.nuxeo.ecm.core.versioning.VersioningService component has been replaced by org.nuxeo.ecm.core.api.versioning.VersioningService

Constants

  • org.nuxeo.drive.adapter.impl.FileSystemItemHelper.NUXEO_DRIVE_FORCE_VERSIONING_PROPERTY was referencing nuxeo.drive.force.versioning configuration service property
  • org.nuxeo.ecm.core.versioning.StandardVersioningService.DEFAULT_FORMER_RULE_ORDER was used for compatibility, replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.StandardVersioningService.COMPAT_ID_PREFIX was used for compatibility, replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.StandardVersioningService.COMPAT_DEFAULT_ID was used for compatibility, replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent.VERSIONING_RULE_XP was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.StandardVersioningService.FILE_TYPE was not used, no replacement
  • org.nuxeo.ecm.core.versioning.StandardVersioningService.NOTE_TYPE was not used, no replacement
  • org.nuxeo.ecm.core.versioning.StandardVersioningService.PROJECT_STATE was not used, no replacement
  • org.nuxeo.ecm.core.versioning.StandardVersioningService.AUTO_CHECKED_OUT was not used, no replacement
  • org.nuxeo.ecm.core.io.download.DownloadService.NXBIGZIPFILE was replaced by org.nuxeo.ecm.core.io.download.DownloadService.NXBIGBLOB
  • org.nuxeo.ecm.core.storage.mongodb.GridFSBinaryManager.SERVER_PROPERTY was replaced by MongoDBConnectionService contributions
  • org.nuxeo.ecm.core.storage.mongodb.GridFSBinaryManager.DBNAME_PROPERTY was replaced by MongoDBConnectionService contributions
  • org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory.VERSIONING_DELAY_PARAM was replaced by Automatic Versioning
  • org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory.VERSIONING_OPTION_PARAM was replaced by Automatic Versioning
  • org.nuxeo.functionaltests.pages.tabs.CollectionContentTabSubPage.DELETE was not used, no replacement
  • org.nuxeo.ecm.platform.tag.TagConstants.MIGRATION_ID not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.tag.TagConstants.MIGRATION_STATE_RELATIONS not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.tag.TagConstants.MIGRATION_STATE_FACETS not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.tag.TagConstants.MIGRATION_STEP_RELATIONS_TO_FACETS not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.tag.TagConstants.TAGS_BELONG_TO_DOCUMENT not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.ui.web.auth.NXAuthConstants.LANGUAGE_PARAMETER was not used, no replacement
  • org.nuxeo.runtime.reload.ReloadComponent.RELOAD_STRATEGY_VALUE_UNSTASH was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.reload.ReloadService.USE_COMPAT_HOT_RELOAD was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap.USE_COMPAT_HOT_RELOAD was used by former Hot Reload mechanism, no replacement, was referencing nuxeo.hotreload.compat.mechanism nuxeo.conf property
  • org.nuxeo.ecm.user.center.profile.UserProfileConstants.USER_PROFILE_TIMEZONE no timezone field in schema, no replacement
  • org.nuxeo.runtime.api.Framework.NUXEO_STRICT_RUNTIME_SYSTEM_PROP was not used, no replacement, was referencing org.nuxeo.runtime.strict

Fields

  • org.nuxeo.ecm.core.versioning.VersioningComponent.versioningRulesRegistry was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent.defaultVersioningRuleList was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryDescriptor.server was replaced by MongoDBConnectionService contributions
  • org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryDescriptor.dbname was replaced by MongoDBConnectionService contributions
  • org.nuxeo.ecm.csv.core.CSVImportStatus.positionInQueue was not used, not replacement
  • org.nuxeo.ecm.csv.core.CSVImportStatus.queueSize was not used, not replacement
  • org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory.versioningDelay was replaced by Automatic Versioning
  • org.nuxeo.drive.service.impl.DefaultFileSystemItemFactory.versioningOption was replaced by Automatic Versioning
  • org.nuxeo.drive.operations.NuxeoDriveAttachBlob.applyVersioningPolicy was replaced by Automatic Versioning
  • org.nuxeo.drive.operations.NuxeoDriveAttachBlob.factoryName was replaced by Automatic Versioning
  • org.nuxeo.functionaltests.pages.tabs.AbstractContentTabSubPage.filterInput was replaced by filter methods from org.nuxeo.functionaltests.contentView.ContentViewElement
  • org.nuxeo.functionaltests.pages.tabs.AbstractContentTabSubPage.filterButton was replaced by filter methods from org.nuxeo.functionaltests.contentView.ContentViewElement
  • org.nuxeo.functionaltests.pages.tabs.AbstractContentTabSubPage.clearFilterButton was replaced by filter methods from org.nuxeo.functionaltests.contentView.ContentViewElement
  • org.nuxeo.functionaltests.pages.tabs.CollectionContentTabSubPage.documentContentForm was not used, no replacement
  • og.nuxeo.functionaltests.pages.tabs.CollectionContentTabSubPage.childDocumentRows was not used, no replacement
  • org.nuxeo.functionaltests.pages.tabs.SectionContentTabSubPage.contentForm was not used, no replacement
  • org.nuxeo.runtime.model.impl.ComponentRegistry.deployedFiles was removed, no real usage
  • org.nuxeo.runtime.test.runner.RuntimeDeployment.contexts was removed, no real usage
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker.flushSeam was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker.reloadSeam was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker.installWebResources was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker.runDeploymentPreprocessor was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker.deployBundles was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker.undeployBundles was used by former Hot Reload mechanism, no replacement

Methods

  • org.nuxeo.connect.client.status.ConnectStatusHolder#isRegistred() was replaced by org.nuxeo.connect.client.status.ConnectStatusHolder#isRegistered()
  • org.nuxeo.ecm.automation.core.impl.adapters.StringToDocRef#createRef(String) was replaced by org.nuxeo.ecm.automation.core.impl.adapters.helper.TypeAdapterHelper#createDocumentRef(String-
  • org.nuxeo.connect.update.live.UpdateServiceImpl#restart() was replaced by org.nuxeo.ecm.admin.NuxeoCtlManager#restart()
  • org.nuxeo.connect.update.task.live.LiveInstallTask#reloadComponent(String) was removed since former Hot Reload mechanism was removed
  • org.nuxeo.connect.update.task.live.LiveInstallTask#reloadComponents(LocalPackage) was removed since former Hot Reload mechanism was removed
  • org.nuxeo.connect.update.task.live.commands.Deploy#deployFile(File, ReloadService) behavior has changed since former Hot Reload mechanism was removed
  • org.nuxeo.connect.update.task.live.commands.Deploy#deployDirectory(File, ReloadService) behavior has changed since former Hot Reload mechanism was removed
  • org.nuxeo.connect.update.task.live.commands.Deploy#doCompatRun(Task) was removed since former Hot Reload mechanism was removed
  • org.nuxeo.connect.update.task.live.commands.Undeploy#undeployFile(File, ReloadService) behavior has changed since former Hot Reload mechanism was removed
  • org.nuxeo.connect.update.task.live.commands.Undeploy#undeployDirectory(File, ReloadService) behavior has changed since former Hot Reload mechanism was removed
  • org.nuxeo.connect.update.task.live.commands.Undeploy#doCompatRun(Task) was removed since former Hot Reload mechanism was removed
  • org.nuxeo.ecm.core.blob.BlobDispatcher#getBlobProvider(Document, Blob) was replaced by org.nuxeo.ecm.core.blob.BlobDispatcher#getBlobProvider(Document, Blob, String) + in the implementations
  • org.nuxeo.ecm.core.uidgen.UIDSequencer#initSequence(String, int) was replaced by org.nuxeo.ecm.core.uidgen.UIDSequencer#initSequence(String, long)
  • org.nuxeo.ecm.core.uidgen.UIDSequencer#getNext(String) was replaced by org.nuxeo.ecm.core.uidgen.UIDSequencer#getNextLong(String)
  • org.nuxeo.ecm.core.versioning.ExtendableVersioningService#getVersioningRules() was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.ExtendableVersioningService#setVersioningRules(Map) was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.ExtendableVersioningService#setDefaultVersioningRule(DefaultVersioningRuleDescriptor) was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent#registerVersioningRule(VersioningRuleDescriptor) was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent#unregisterVersioningRule(VersioningRuleDescriptor) was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent#registerDefaultVersioningRule(DefaultVersioningRuleDescriptor) was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent#getVersioningRules() was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent#getDefaultVersioningRule() was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.api.ScrollResult#getResultIds() was replaced by org.nuxeo.ecm.core.api.ScrollResult#getResults()
  • org.nuxeo.ecm.core.api.model.Property#getPath() was replaced by org.nuxeo.ecm.core.api.model.Property#getXPath()
  • org.nuxeo.ecm.core.cache.CacheService#registerCache(String, int, int) was replaced by org.nuxeo.ecm.core.cache.CacheService#registerCache(String)
  • org.nuxeo.ecm.core.transientstore.api.TransientStoreProvider#getStorageSizeMB() was replaced by org.nuxeo.ecm.core.transientstore.api.TransientStoreProvider#getStorageSize()
  • org.nuxeo.ecm.core.convert.api.ConversionService#convertBlobToPDF(Blob) was replaced by org.nuxeo.ecm.core.convert.api.ConversionService#convertToMimeType(String, BlobHolder, Map)
  • org.nuxeo.ecm.core.query.sql.model.FromList#get(int) was not used, no replacement
  • org.nuxeo.ecm.core.query.sql.model.SelectList#get(int) was not used, no replacement
  • org.nuxeo.ecm.core.storage.mongodb.MongoDBRepositoryService#handleConnectionContribution(MongoDBRepositoryDescriptor, BiConsumer) was replaced by - MongoDBConnectionService contributions
  • org.nuxeo.ecm.csv.core.CSVImporter#launchImport(CoreSession, String, File, String, CSVImporterOptions) was replaced by org.nuxeo.ecm.csv.core.CSVImporter#launchImport(CoreSession, String, Blob, CSVImporterOptions)
  • org.nuxeo.ecm.csv.core.CSVImportStatus#<init>(State, int, int) was not used, not replacement
  • org.nuxeo.ecm.csv.core.CSVImportStatus#getPositionInQueue() was not used, not replacement
  • org.nuxeo.ecm.csv.core.CSVImportStatus#getQueueSize() was not used, not replacement
  • org.nuxeo.drive.adapter.FolderItem#createFile(Blob) was replaced by org.nuxeo.drive.adapter.FolderItem#createFile(Blob, boolean)
  • org.nuxeo.drive.adapter.FolderItem#createFolder(String) was replaced by org.nuxeo.drive.adapter.FolderItem#createFolder(String, boolean)
  • org.nuxeo.drive.adapter.impl.DocumentBackedFileItem#<init>(VersioningFileSystemItemFactory, DocumentModel) was replaced by Automatic Versioning
  • org.nuxeo.drive.adapter.impl.DocumentBackedFileItem#<init>(VersioningFileSystemItemFactory, DocumentModel, boolean) was replaced by Automatic Versioning
  • org.nuxeo.drive.adapter.impl.DocumentBackedFileItem#<init>(VersioningFileSystemItemFactory, DocumentModel, boolean, boolean) was replaced by Automatic Versioning
  • org.nuxeo.drive.adapter.impl.DocumentBackedFileItem#<init>(VersioningFileSystemItemFactory, FolderItem, DocumentModel) was replaced by Automatic Versioning
  • org.nuxeo.drive.adapter.impl.DocumentBackedFileItem#<init>(VersioningFileSystemItemFactory, FolderItem, DocumentModel, boolean) was replaced by Automatic Versioning
  • org.nuxeo.drive.adapter.impl.DocumentBackedFileItem#<init>(VersioningFileSystemItemFactory, FolderItem, DocumentModel, boolean, boolean) was replaced by Automatic Versioning
  • org.nuxeo.drive.adapter.impl.DocumentBackedFileItem#initialize(VersioningFileSystemItemFactory, FolderItem, DocumentModel) was replaced by Automatic Versioning
  • org.nuxeo.drive.adapter.impl.FileSystemItemHelper#versionIfNeeded(VersioningFileSystemItemFactory, DocumentModel, CoreSession) was replaced by Automatic Versioning
  • org.nuxeo.drive.service.FileSystemItemManager#createFolder(String, String, NuxeoPrincipal) was replaced by org.nuxeo.drive.service.FileSystemItemManager#createFolder(String, String, NuxeoPrincipal, boolean)
  • org.nuxeo.drive.service.FileSystemItemManager#createFile(String, Blob, NuxeoPrincipal) was replaced by org.nuxeo.drive.service.FileSystemItemManager#createFile(String, Blob, NuxeoPrincipal, boolean)
  • org.nuxeo.functionaltests.contentView.ContentViewElement#checkByTitle(String...) was replaced by org.nuxeo.functionaltests.contentView.ContentViewElement#selectByTitle(String...)
  • org.nuxeo.functionaltests.contentView.ContentViewElement#checkByIndex(int...) was replaced by org.nuxeo.functionaltests.contentView.ContentViewElement#selectByIndex(int...) or org.nuxeo.functionaltests.contentView.ContentViewElement#unselectByIndex(int...)
  • org.nuxeo.functionaltests.contentView.ContentViewElement#checkAllItems() was replaced by org.nuxeo.functionaltests.contentView.ContentViewElement#selectAll() or org.nuxeo.functionaltests.contentView.ContentViewElement#unselectAll()
  • org.nuxeo.functionaltests.contentView.ContentViewElement#getSelectionActionByTitle(String) was not used
  • org.nuxeo.functionaltests.pages.DocumentBasePage#getAddAllToCollectionPopup() was replaced by actions from org.nuxeo.functionaltests.pages.tabs.ContentTabSubPage
  • org.nuxeo.functionaltests.pages.LoginPage#login(String, String, String) was replaced by org.nuxeo.functionaltests.pages.LoginPage#(String, String)
  • org.nuxeo.functionaltests.pages.tabs.CollectionContentTabSubPage#deleteSelectedDocuments() was replaced by actions org.nuxeo.functionaltests.pages.contentview.ContentViewElement
  • org.nuxeo.functionaltests.pages.tabs.CollectionContentTabSubPage#filterDocument(String, int, int) was replaced by org.nuxeo.functionaltests.pages.tabs.ContentTabSubPage#filterDocument(String)
  • org.nuxeo.functionaltests.pages.tabs.CollectionContentTabSubPage#clearFilter(int, int) was not used, no replacement
  • org.nuxeo.launcher.NuxeoLauncher#registerTrial() was removed
  • org.nuxeo.ecm.platform.audit.api.AuditReader#getLogEntriesFor(String, Map, boolean) was replaced by org.nuxeo.ecm.platform.audit.api.AuditReader#queryLogs(QueryBuilder)
  • org.nuxeo.ecm.platform.audit.service.AuditBackend#onShutdown() was replaced by org.nuxeo.ecm.platform.audit.service.AuditBackend#onApplicationStopped()
  • org.nuxeo.ecm.platform.audit.service.AuditBulker#onShutdown() was replaced by org.nuxeo.ecm.platform.audit.service.AuditBulker#onApplicationStopped() -org.nuxeo.ecm.platform.audit.service.BaseLogEntryProvider#getLogEntriesFor(String, String) was replaced by org.nuxeo.ecm.platform.audit.api.AuditReader#getLogEntriesFor(String, String)
  • org.nuxeo.ecm.directory.Session#deleteEntry(String, Map) was replaced by org.nuxeo.ecm.directory.Session#deleteEntry(String)
  • org.nuxeo.ecm.platform.filemanager.api.FileManager#createFolder(CoreSession, String, String) was replaced by org.nuxeo.ecm.platform.filemanager.api.FileManager#createFolder(CoreSession, String, String, boolean)
  • org.nuxeo.ecm.platform.filemanager.api.FileManager#getVersioningOption() was replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.filemanager.api.FileManagerService#registerVersioning() was replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.filemanager.api.FileManagerService#defaultCreateFolder(CoreSession, String, String) was replaced by Automatic Versioning org.nuxeo.ecm.platform.filemanager.api.FileManagerService#defaultCreateFolder(CoreSession, String, String, boolean)
  • org.nuxeo.ecm.platform.filemanager.api.FileManagerService#defaultCreateFolder(CoreSession, String, String, String, boolean) was replaced by Automatic Versioning org.nuxeo.ecm.platform.filemanager.api.FileManagerService#defaultCreateFolder(CoreSession, String, String, String, boolean, boolean)
  • org.nuxeo.ecm.platform.filemanager.service.extension.AbstractFileImporter#skipCheckInForBlob(Blob) was replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.filemanager.service.extension.AbstractFileImporter#checkIn(DocumentModel) was replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.filemanager.service.extension.AbstractFileImporter#checkInAfterAdd(DocumentModel) was replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.notification.api.NotificationManager#getSubscribedDocuments(String) was replaced by org.nuxeo.ecm.platform.notification.api.NotificationManager#getSubscribedDocuments(String, String)
  • org.nuxeo.ecm.platform.tag.TagService#tag(CoreSession, String, String, String) was replaced by org.nuxeo.ecm.platform.tag.TagService#tag(CoreSession, String, String)
  • org.nuxeo.ecm.platform.tag.TagService#untag(CoreSession, String, String, String) was replaced by org.nuxeo.ecm.platform.tag.TagService#untag(CoreSession, String, String)
  • org.nuxeo.ecm.platform.tag.TagService#getDocumentTags(CoreSession, String, String) was replaced by org.nuxeo.ecm.platform.tag.TagService#getTags(CoreSession, String)
  • org.nuxeo.ecm.platform.tag.TagService#getDocumentTags(CoreSession, String, String, boolean) was replaced by org.nuxeo.ecm.platform.tag.TagService#getTags(CoreSession, String)
  • org.nuxeo.ecm.platform.tag.TagService#getTagDocumentIds(CoreSession, String, String) was replaced by org.nuxeo.ecm.platform.tag.TagService#getTagDocumentIds(CoreSession, String)
  • org.nuxeo.ecm.platform.tag.TagService#getTagCloud(CoreSession, String, String, boolean) was not used, no replacement
  • org.nuxeo.ecm.platform.tag.TagService#getSuggestions(CoreSession, String, String) was replaced by org.nuxeo.ecm.platform.tag.TagService#getSuggestions(CoreSession, String)
  • org.nuxeo.ecm.platform.tag.TagService#hasFeature(Feature) not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.computedgroups.NuxeoComputedGroup#<init>(String) was replaced by org.nuxeo.ecm.platform.computedgroups.NuxeoComputedGroup#<init>(String, GroupConfig)
  • org.nuxeo.ecm.platform.computedgroups.NuxeoComputedGroup#<init>(String, String) was replaced by org.nuxeo.ecm.platform.computedgroups.NuxeoComputedGroup#<init>(String, String, GroupConfig)
  • org.nuxeo.ecm.platform.userworkspace.api.UserWorkspaceService#getCurrentUserPersonalWorkspace(CoreSession, DocumentModel) was replaced by org.nuxeo.ecm.platform.userworkspace.api.UserWorkspaceService#getCurrentUserPersonalWorkspace(CoreSession)
  • org.nuxeo.ecm.platform.ui.web.DownloadServlet#handleDownloadTemporaryZip(HttpServletRequest, HttpServletResponse, String) was not used, no replacement
  • org.nuxeo.runtime.api.Framework#getLocalService(Class) was replaced by org.nuxeo.runtime.api.Framework#getService(Class)
  • org.nuxeo.runtime.model.Component#applicationStarted(ComponentContext) was replaced by org.nuxeo.runtime.model.Component#start(ComponentContext)
  • org.nuxeo.runtime.model.ComponentInstance#reload() was removed since former Hot Reload mechanism was removed
  • org.nuxeo.runtime.model.ComponentManager#unregisterByLocation(String) was removed, no real usage
  • org.nuxeo.runtime.model.ComponentManager#hasComponentFromLocation(String) was removed, no real usage
  • org.nuxeo.runtime.model.impl.RegistrationInfoImpl#reload() was removed since former Hot Reload mechanism was removed
  • org.nuxeo.runtime.model.impl.RegistrationInfoImpl#restart() was not used, no replacement
  • org.nuxeo.runtime.reload.ReloadService#deployBundle(File) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#deployBundle(File, boolean) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#deployBundles(List) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#deployBundles(List, boolean) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#undeployBundle(File) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#undeployBundle(File, boolean) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#undeployBundles(List) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#undeployBundles(List, boolean) was replaced by org.nuxeo.runtime.reload.ReloadService#reloadBundles(ReloadContext)
  • org.nuxeo.runtime.reload.ReloadService#installWebResources(File) was not used, no replacement
  • org.nuxeo.runtime.reload.ReloadComponent#refreshComponents() was used former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#preloadDevBundles() was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#postloadDevBundles() was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#zipDirectory(Path, Path, CopyOption...) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#clearClassLoader() was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#installNewClassLoader() was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#installSeamClasses(File[]) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#installResourceBundleFragments(List) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.DevFrameworkBootstrap#resourceBundleName(File) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#hotDeployBundles(DevBundle[]) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#hotUndeployBundles(DevBundle[]) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#deployBundles(List) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#undeployBundles(List) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#installWebResources(File) was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#flushSeam() was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#reloadSeam() was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.runtime.tomcat.dev.ReloadServiceInvoker#runDeploymentPreprocessor() was used by former Hot Reload mechanism, no replacement
  • org.nuxeo.ecm.webengine.app.JsonWebengineWriter#writeException(OutputStream, WebException, MediaType) not needed anymore as org.nuxeo.ecm.webengine.WebException was removed
  • org.nuxeo.ecm.webengine.app.JsonWebengineWriter#writeException(JsonGenerator, WebException, MediaType) not needed anymore as org.nuxeo.ecm.webengine.WebException was removed

Classes

  • org.nuxeo.ecm.automation.OperationCompoundExceptionBuilder was not used, no replacement
  • org.nuxeo.ecm.automation.jaxrs.io.operations.MultiPartRequestReader was replaced by org.nuxeo.ecm.automation.jaxrs.io.operations.MultiPartFormRequestReader
  • org.nuxeo.ecm.core.versioning.CompatVersioningService was not used, no replacement
  • org.nuxeo.ecm.core.versioning.DefaultVersioningRuleDescriptor was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningComponent was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.OptionDescriptor was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.SaveOptionsDescriptor was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningRuleDescriptor was replaced by Automatic Versioning
  • org.nuxeo.ecm.core.versioning.VersioningService was replaced by org.nuxeo.ecm.core.api.versioning.VersioningService
  • org.nuxeo.drive.service.VersioningFileSystemItemFactory was replaced by Automatic Versioning
  • org.nuxeo.drive.operations.test.NuxeoDriveSetVersioningOptions was replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.filemanager.service.extension.VersioningDescriptor was replaced by Automatic Versioning
  • org.nuxeo.ecm.platform.tag.RelationTagService was replaced by org.nuxeo.ecm.platform.tag.FacetedTagService
  • org.nuxeo.ecm.platform.tag.BridgeTagService not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.tag.TagsMigrator not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.tag.Tag not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.tag.CheckedInDocumentListener not used anymore since org.nuxeo.ecm.platform.tag.RelationTagService has been removed
  • org.nuxeo.ecm.platform.computedgroups.ComputedGroupsService was not used, no replacement
  • org.nuxeo.runtime.RuntimeExtension was not used, no replacement
  • org.nuxeo.runtime.model.impl.ShutdownTask was removed since Nuxeo Runtime now handles start / stop
  • org.nuxeo.runtime.reload.NuxeoRestart was replaced by org.nuxeo.ecm.admin.NuxeoCtlManager
  • org.nuxeo.runtime.reload.ReloadEventNames was replaced by org.nuxeo.runtime.reload.ReloadService
  • org.nuxeo.ecm.webengine.WebException was replaced by org.nuxeo.ecm.core.api.NuxeoException -org.nuxeo.ecm.webengine.app.JsonExceptionWriter not needed anymore as org.nuxeo.ecm.webengine.WebException was removed
  • org.nuxeo.ecm.webengine.model.AdapterNotFoundException was replaced by org.nuxeo.ecm.webengine.model.exceptions.WebResourceNotFoundException
  • org.nuxeo.ecm.webengine.model.TemplateNotFoundException was replaced by org.nuxeo.ecm.webengine.model.exceptions.WebResourceNotFoundException -org.nuxeo.ecm.webengine.model.TypeException was replaced by org.nuxeo.ecm.webengine.model.exceptions.WebResourceNotFoundException
  • org.nuxeo.ecm.webengine.model.TypeNotFoundException was replaced by org.nuxeo.ecm.webengine.model.exceptions.WebResourceNotFoundException
  • org.nuxeo.ecm.webengine.jaxrs.session.CoreExceptionMapper was not used, no replacement

 More on JIRA ticket NXP-31536

Dependencies Upgrade Versions

Upgrade Apache POI to 5.2.1

Upgraded the following Maven dependencies from 4.1.2 to 5.2.3:

org.apache.poi:poi
org.apache.poi:poi-scratchpad
org.apache.poi:poi-ooxml
org.apache.poi:poi-ooxml-schemas

This required an upgrade from 3.1.0 to 5.1.1 of:

org.apache.xmlbeans:xmlbean

See the Apache POI History of changes.

 More on JIRA ticket NXP-31787

Upgrade Apache mina-core to 2.1.5

The following dependency has been removed:

org.apache.directory.server:apacheds-kerberos-shared:1.5.1

Thus, also removing its transitive dependency:

org.apache.mina:mina-core:1.1.2

Note that apacheds-kerberos-shared was previously made available as a transitive dependency of:

org.apache.directory.server:apacheds-core:1.5.1

 More on JIRA ticket NXP-31786

Upgrade OpenSAML to 4.3.0

The OpenSAML library has been upgraded from 2.6.x to 4.3.0 to benefit from recent fixes and features.

This library upgrade is not backward compatible, so you need to upgrade the code referencing the library. This could be the case if you have a custom UserMapper.

Among changes, there are packages moves, for example in 2.x version you could have:

import org.opensaml.saml2.core.Attribute;
import org.opensaml.xml.schema.impl.XSAnyImpl;

Which become in version:

import org.opensaml.saml.saml2.core.Attribute;
import org.opensaml.core.xml.schema.impl.XSAnyImpl;

 More on JIRA ticket NXP-31847

Other Dependency Version Upgrades

Component Nuxeo Platform LTS 2021 Nuxeo Platform LTS 2023
ANTLR 3.5.2 3.5.3
ant-assembly-maven-plugin 2.1.4 2.1.5
Apache Ant 1.10.9 1.10.13
Apache Avro 1.9.2 1.11.1
Apache Chemistry OpenCMIS 1.1.0 1.1.1-NX01
Apache Geronimo Transaction 3.1.4 3.1.4-NX1
Apache HttpComponents 4.4.13 4.5.14
Apache HttpCore 4.4.13 4.4.16
Apache PDFBox 2.0.21 2.0.27
Apache Xerces >2.12.0-nx1 >2.12.2-nx1
AssertJ >3.17.2 >3.24.2
AWS Java SDK 1.11.885 1.12.261
Azure Storage 3.1.0 8.6.6
biz.neustar:browsermob-proxy 2.0-beta-6 2.0-beta-7
BouncyCastle 1.66 1.69
Build Helper Maven Plugin 1.8 1.12
Build Number Maven Plugin 1.2 1.4
ClassGraph 4.8.90 4.8.157
com.fasterxml.woodstox:woodstox-core 6.2.3 6.5.0
com.google.code.externalsortinginjava:externalsortinginjava 0.6.0 0.6.1
com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer 20190103.NX1 20211018.2.NX1
com.auth0:java-jwt 3.11.0 3.19.4
commons-cli:commons-cli 1.4 1.5.0
commons-fileupload:commons-fileupload 1.4 1.5
Concordion 1.3.0 1.5.1
Confluent 6.0.0 6.2.9
Dependency Check Maven Plugin 5.2.4 5.3.2
Dom4J 2.1.3 2.1.4
Exec Maven Plugin 1.5.0 1.6.0
Gatling Maven Plugin 3.0.4 3.1.2
Google API Client 1.25.0 1.35.2
Google API Drive v2-rev161-1.19.1 v2-rev20201130-1.31.0
Google Cloud Storage 1.76.0 1.118.1
Google Guava 30.0-jre 30.1-jre
Google HTTP Client 1.19.0 1.43.1
Google OAuth Client 1.20.0 >1.34.1
Groovy 2.4.12 >2.4.21
Gson 2.8.6 >2.10.1
io.prometheus:simpleclient_httpserver 0.9.0 >0.16.0
JAXB 2.3.3 2.3.8
Jackson 1 1.8.1 1.9.11
Jackson 2 2.11.3 2.12.7
javax.validation:validation-api 1.0.0.GA 1.1.0.Final
JCIFS 1.2.19 1.3.18-kohsuke-1
Jedis 2.9.0 2.10.2
Joda-Time 2.10.6 2.12.3
JSONassert 1.5.0 1.5.1
JUnit 4.13.1 4.13.2
Jxls-2 2.8.1 2.12.0
Kafka Client 2.6.0 3.4.0
LibrePDF 1.3.22 1.3.30
License Maven Plugin 1.8 1.20
Log4j 2.13.3 2.20.0
MariaDB Java Driver 1.7.4 2.7.9
Maven AntRun Plugin 1.7 1.8
Maven Assembly Plugin 2.4 2.6
Maven Bundle Plugin 2.4.0 2.5.4
Maven Clean Plugin 2.5 2.6.1
Maven Compiler Plugin 3.8.0 3.11.0
Maven Dependency Plugin 3.1.0 3.5.0
Maven Deploy Plugin 2.8.1 2.8.2
Maven Eclipse Plugin 2.9 2.10
Maven Install Plugin 2.5.1 2.5.2
Maven JAR Plugin 2.3.1 2.6
Maven Jarsigner Plugin 1.3.1 1.4
Maven Javadoc Plugin 3.2.0 3.5.0
Maven JXR Plugin 2.4 2.5
Maven Project Info Reports Plugin 3.1.1 3.4.2
Maven Resources Plugin 2.6 2.7
Maven Shade Plugin 3.2.1 3.4.1
Maven Site Plugin 3.9.1 3.12.1
Maven Source Plugin 3.2.0 3.2.1
Maven WAR Plugin 2.4 2.6
Mockito 1.9.5 3.12.4
MongoDB Java Driver 4.1.1 4.9.0
MSSQL Java Driver 7.0.0.jre8 7.4.1.jre8
MVEL 2 2.4.10.Final 2.4.15.Final
MySQL Java Driver 8.0.22 8.0.30
net.jodah:failsafe 1.1.0 1.1.1
net.jodah:expiringmap 0.5.9 0.5.10
Netty 4.1.49.Final 4.1.90.Final
Nuxeo Connect Client 1.8.3 1.8.6
Nuxeo Java Client 3.2.0 3.13.0
OpenCensus 0.27.1 0.31.1
OpenSAML 2.6.4 2.6.6
OPS4J Pax Logging 4.4.0 4.13.1
org.apache.commons:commons-compress 1.20 1.23.0
org.apache.commons:commons-csv 1.8 1.10.0
org.apache.commons:commons-dbcp2 2.8.0 2.9.0
org.apache.commons:commons-lang3 3.11 3.12.0
org.apache.commons:commons-pool2 2.9.0 2.11.1
org.apache.commons:commons-text 1.9 1.10.0
org.apache.jackrabbit:jackrabbit-webdav 2.21.3 2.21.15
org.apache.santuario:xmlsec 2.2.0 2.3.2
org.apache.xbean:xbean-naming 4.18 4.22
org.codehaus.jettison:jettison 1.4.1 1.5.4
org.codehaus.plexus:plexus-utils 1.5.6 3.5.1
org.coursera:metrics-datadog 2.0.0-RC1 2.0.0-RC2
org.eclipse.jdt:core 3.1.1-NXP-4284 3.4.2.v_883_R34x
org.freemarker:freemarker 2.3.30 2.3.32
org.javassist:javassist 3.27.0-GA 3.29.2-GA
org.jboss.logging:jboss-logging-log4j 2.1.0.GA 2.1.2.GA
org.mock-server:mockserver-netty 5.11.1 5.15.0
org.mp4parser:isoparser 1.9.41 1.9.56
org.ops4j.pax.url:pax-url-aether 1.5.2 1.6.0
org.osgi:org.osgi.compendium 4.2.0 4.3.1
org.ow2.asm:asm 7.3.1 9.5
OWASP ESAPI 2.2.1.1 2.5.1.0
PostgreSQL Java Driver 42.2.18 42.6.0
Properties Maven Plugin 1.0-alpha-2 1.1.0
Restlet 2.4.2 2.4.3
Scala 2.12.3 2.12.17
Scala Logging 3.9.0 3.9.5
Scala Maven Plugin 4.3.1 4.8.1
SLF4J 1.7.30 1.7.36
SnakeYAML 1.27 2.0
Tomcat 9.0.41 9.0.73
Vaadin 0.9.12-NX01 0.9.13
Versions Maven Plugin 2.7 2.15.0
Wro4j 1.9.0 1.10.1
XDocReport 1.0.5 1.0.6
xom:xom 1.3.5 1.3.8
XStream 1.4.15 1.4.20

Dependencies Removal

The following Maven dependencies, unused, were removed from the root POM:

Removed component
aopalliance:aopalliance
backport-util-concurrent:backport-util-concurrent
bsh:bsh
caja:caja
com.ericdaugherty.mail:jes
com.github.eirslett:frontend-maven-plugin
com.github.olivergondza:maven-jdk-tools-wrapper
com.github.segmentio:analytics
com.google.code.guice:guice-internal
com.googlecode.json-simple:json-simple
com.google.inject.extensions:guice-assistedinject
com.google.inject.extensions:guice-jmx
com.google.inject.extensions:guice-servlet
com.google.protobuf:protobuf-java
com.spotify:dockerfile-maven-plugin
commons-betwixt:commons-betwixt
commons-logging:commons-logging
com.octo.captcha:jcaptcha
com.tngtech.java:junit-dataprovider
com.tngtech.jgiven:jgiven-core
com.tngtech.jgiven:jgiven-junit
com.tngtech.jgiven:jgiven-maven-plugin
com.versioneye:versioneye-maven-plugin
de.odysseus.juel:juel-impl
de.schlichtherle.io:truezip
dnsjava:dnsjava
imagej:imagej
io.opencensus:opencensus-exporter-trace-stackdriver
io.opencensus:opencensus-exporter-stats-stackdriver
io.opencensus:opencensus-contrib-log-correlation-log4j2
io.repaint.maven:tiles-maven-plugin
javax.script:bsh-engine
javax.script:jexl-engine
javax.script:js-engine
jboss:jboss-serialization
jdom:jdom
jline:jline
jotm:jotm
net.java.dev.jna:jna
net.java.dev.jna:jna-platform
net.logstash.log4j:jsonevent-layout
net.minidev:json-smart
net.oauth.core:oauth-consumer
net.oauth.core:oauth-httpclient3
net.openhft:chronicle-bom
net.openhft:chronicle-threads
net.sf.jtidy:jtidy
net.sourceforge.jtds:jtds
net.sourceforge.nekohtml:nekohtml
org.apache.commons:commons-vfs2
org.apache.directory.server:apacheds-core-shared
org.apache.felix:org.apache.felix.framework
org.apache.httpcomponents:fluent-hc
org.apache.httpcomponents:httpclient-cache
org.apache.kafka:kafka_2.12
org.apache.lucene:lucene-analyzers-common
org.apache.lucene:lucene-codecs
org.apache.lucene:lucene-core
org.apache.lucene:lucene-highlighter
org.apache.lucene:lucene-join
org.apache.lucene:lucene-queries
org.apache.lucene:lucene-queryparser
org.apache.lucene:lucene-memory
org.apache.lucene:lucene-spatial
org.apache.lucene:lucene-suggest
org.apache.maven.plugins:maven-checkstyle-plugin
org.apache.maven.plugins:maven-ejb-plugin
org.apache.maven.plugins:maven-pmd-plugin
org.apache.maven.plugins:maven-rar-plugin
org.apache.maven.plugins:maven-release-plugin
org.apache.shindig:shindig-common
org.apache.shindig:shindig-features
org.apache.shindig:shindig-gadgets
org.apache.shindig:shindig-social-api
org.apache.ws.commons.axiom:axiom-api
org.apache.ws.commons.axiom:axiom-impl
org.apache.xmlgraphics:batik-css
org.apache.xmlgraphics:batik-util
org.codehaus.mojo:cobertura-maven-plugin
org.codehaus.mojo:jboss-packaging-maven-plugin
org.codehaus.mojo:xml-maven-plugin
org.codehaus.sonar-plugins:maven-report
org.codelibs.elasticsearch.module:analysis-common
org.dts:jmyspell-core
org.easymock:easymockclassextension
org.eclipse.m2e:lifecycle-mapping
org.elasticsearch:elasticsearch
org.elasticsearch.client:elasticsearch-rest-client
org.elasticsearch.client:elasticsearch-rest-high-level-client
org.elasticsearch.client:transport
org.elasticsearch.plugin:transport-netty4-client
org.fusesource.jansi:jansi
org.glassfish:javax.json
org.glassfish.embedded:glassfish-embedded-all
org.hamcrest:hamcrest-all
org.jacoco:jacoco-maven-plugin
org.jboss:jboss-common-core
org.jboss:jboss-vfs
org.jboss.logging:jboss-logging-spi
org.jboss.microcontainer:jboss-dependency
org.jboss.microcontainer:jboss-kernel
org.jboss.naming:jnp-client
org.jboss.remoting:jboss-remoting
org.jboss.security:jbosssx
org.jolokia:jolokia-core
org.jsecurity:jsecurity
org.jvnet.maven-antrun-extended-plugin:maven-antrun-extended-plugin
org.jvnet.staxex:stax-ex
org.knallgrau.utils:textcat
org.objectweb.howl:howl
org.opensaml:openws
org.seleniumhq.selenium:selenium-java
org.sonarsource.scanner.maven:sonar-maven-plugin
org.tukaani:xz
oro:oro
ro.isdc.wro4j:wro4j-extensions
rome:rome

 More on JIRA ticket NXP-31492

Complementary Information