Class QNamePatch
java.lang.Object
org.alfresco.repo.admin.patch.AbstractPatch
org.alfresco.repo.admin.patch.impl.QNamePatch
- All Implemented Interfaces:
Patch,org.springframework.beans.factory.Aware,org.springframework.context.ApplicationEventPublisherAware
A patch to update the value of a QName. This patch will only succeed if the target QName has not been used i.e. if there is no content that actually references the QName.
A property 'reindexClass' can be optionally injected. If it is not injected then the QName is updated and no reindexing is requested by this patch. If it is set to either 'TYPE' or 'ASPECT' (as appropriate) then that String will be used to locate out-of-date references to the old QName and have them reindexed in a targetted way.
Please refer to the implementation in this class for the details of how this is achieved.
- Author:
- Neil McErlean
-
Field Summary
Fields inherited from class org.alfresco.repo.admin.patch.AbstractPatch
applicationEventPublisher, authenticationContext, ERR_PROPERTY_NOT_SET, namespaceService, nodeService, patchService, searchService, tenantAdminService, transactionHelper, transactionService -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected StringThis method does the work.protected voidCheck that the schema version properties have been set appropriately.voidsetNodeDAO(NodeDAO nodeDAO) voidsetPatchDAO(PatchDAO patchDAO) voidsetQnameAfter(String qnameStringAfter) Sets the new QName value to be used.voidsetQnameBefore(String qnameStringBefore) Sets the QName to be patched.voidsetQnameDAO(QNameDAO qnameDAO) voidsetReindexClass(String reindexClass) Sets a value for the class to reindex.voidsetRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper) Methods inherited from class org.alfresco.repo.admin.patch.AbstractPatch
applies, apply, applyAsync, checkPropertyNotNull, getAlternatives, getDependsOn, getDescription, getFixesFromSchema, getFixesToSchema, getId, getTargetSchema, init, isDeferred, isForce, isIgnored, reportProgress, requiresTransaction, setAlternatives, setApplicationEventPublisher, setApplyToTenants, setAuthenticationContext, setDeferred, setDependsOn, setDescription, setFixesFromSchema, setFixesToSchema, setForce, setId, setIgnored, setNamespaceService, setNodeService, setPatchService, setRequiresTransaction, setSearchService, setTargetSchema, setTenantAdminService, setTransactionService, toString
-
Constructor Details
-
QNamePatch
public QNamePatch()
-
-
Method Details
-
setQnameDAO
- Parameters:
qnameDAO- the qnameDAO to set
-
setPatchDAO
- Parameters:
patchDAO- the patchDAO to set
-
setNodeDAO
- Parameters:
nodeDAO- the nodeDAO to set
-
setRetryingTransactionHelper
- Parameters:
retryingTransactionHelper- the retryingTransactionHelper to set
-
setQnameBefore
Sets the QName to be patched.- Parameters:
qnameStringBefore- the long-form QName to be patched from. {namespaceURI}localName
-
setQnameAfter
Sets the new QName value to be used.- Parameters:
qnameStringAfter- the long-form QName to be patched to. {namespaceURI}localName
-
setReindexClass
Sets a value for the class to reindex. This will be used in the Lucene query below and should be either "TYPE" or "ASPECT" or not set if reindexing is not required.- Parameters:
reindexClass- "TYPE" or "ASPECT" or not set.
-
checkProperties
protected void checkProperties()Description copied from class:AbstractPatchCheck that the schema version properties have been set appropriately. Derived classes can override this method to perform their own validation provided that this method is called by the derived class.- Overrides:
checkPropertiesin classAbstractPatch
-
applyInternal
Description copied from class:AbstractPatchThis method does the work. All transactions and thread-safety will be taken care of by this class. Any exception will result in the transaction being rolled back. Integrity checks are downgraded for the duration of the transaction.- Specified by:
applyInternalin classAbstractPatch- Returns:
- Returns the report (only success messages).
- Throws:
Exception- anything can be thrown. This must be used for all failures.- See Also:
-