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
public class QNamePatch extends AbstractPatch
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 Constructor Description QNamePatch()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringapplyInternal()This method does the work.protected voidcheckProperties()Check that the schema version properties have been set appropriately.voidsetNodeDAO(NodeDAO nodeDAO)voidsetPatchDAO(PatchDAO patchDAO)voidsetQnameAfter(java.lang.String qnameStringAfter)Sets the new QName value to be used.voidsetQnameBefore(java.lang.String qnameStringBefore)Sets the QName to be patched.voidsetQnameDAO(QNameDAO qnameDAO)voidsetReindexClass(java.lang.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
-
-
-
-
Method Detail
-
setQnameDAO
public void setQnameDAO(QNameDAO qnameDAO)
- Parameters:
qnameDAO- the qnameDAO to set
-
setPatchDAO
public void setPatchDAO(PatchDAO patchDAO)
- Parameters:
patchDAO- the patchDAO to set
-
setNodeDAO
public void setNodeDAO(NodeDAO nodeDAO)
- Parameters:
nodeDAO- the nodeDAO to set
-
setRetryingTransactionHelper
public void setRetryingTransactionHelper(RetryingTransactionHelper retryingTransactionHelper)
- Parameters:
retryingTransactionHelper- the retryingTransactionHelper to set
-
setQnameBefore
public void setQnameBefore(java.lang.String qnameStringBefore)
Sets the QName to be patched.- Parameters:
qnameStringBefore- the long-form QName to be patched from. {namespaceURI}localName
-
setQnameAfter
public void setQnameAfter(java.lang.String qnameStringAfter)
Sets the new QName value to be used.- Parameters:
qnameStringAfter- the long-form QName to be patched to. {namespaceURI}localName
-
setReindexClass
public void setReindexClass(java.lang.String reindexClass)
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
protected java.lang.String applyInternal() throws java.lang.ExceptionDescription 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:
java.lang.Exception- anything can be thrown. This must be used for all failures.- See Also:
AbstractPatch.apply()
-
-