info.magnolia.setup.for5_0
Class AbstractNodeTypeRegistrationTask
java.lang.Object
info.magnolia.module.delta.AbstractTask
info.magnolia.module.delta.AbstractRepositoryTask
info.magnolia.setup.for5_0.AbstractNodeTypeRegistrationTask
- All Implemented Interfaces:
- Task
- Direct Known Subclasses:
- AddActivatableMixinForContentNodeTask, Register50NodeTypeTask, RemoveMetaDataInNodeTypeDefinitionTask
public abstract class AbstractNodeTypeRegistrationTask
- extends AbstractRepositoryTask
Task allowing to register or unregister nodeTypes.
For registration, override getNodeTypesToRegister(NodeTypeManager)
.
- For every NodeTypeDefinition
, create them if not present or update the existing one's.
Warning: Be careful of the List order of NodeTypeDefinition
- Always put the parent NodeType first, or newly reference NodeType.
-- For example, you may want to create a new NodeType A that is referenced as Super by an Updated NodeType B, the list
-- should be [A,B] so A is created before B. Otherwise, A will not be updated.
In this case, the NodeType A will not be registered and a warn log is displayed.
For unregister, override getNodeTypesToUnregister(NodeTypeManager)
.
- For every NodeType defined by their name, unregister them.
Warning: A NodeType will be unregister only if no dependency issue is found
Dependency issue:
- The NodeType is referenced as child node by one ore more other NodeType definition
- The NodeType is defined as super by one ore more other NodeType definition
In this case, the NodeType will not be unregistered and a warn log is displayed.
Method Summary |
protected void |
doExecute(InstallContext installContext)
|
protected HashMap<String,javax.jcr.nodetype.NodeTypeDefinition> |
getDependentNodeTypes(javax.jcr.nodetype.NodeTypeDefinition nodeType,
org.apache.jackrabbit.core.nodetype.NodeTypeRegistry registry,
org.apache.jackrabbit.spi.commons.conversion.NamePathResolver namePathResolver,
javax.jcr.nodetype.NodeTypeManager nodeTypeManager)
Create a Map containing all child NodeType of.
- key = NodeType name.
- value = NodeTypeDefinition . |
abstract List<javax.jcr.nodetype.NodeTypeDefinition> |
getNodeTypesToRegister(javax.jcr.nodetype.NodeTypeManager nodeTypeManager)
Create a List of NodeTypeDefinition to register or update (in case they are already created). |
abstract List<String> |
getNodeTypesToUnregister(javax.jcr.nodetype.NodeTypeManager nodeTypeManager)
Create a List of NodeTypeDefinition.getName() to unregister. |
AbstractNodeTypeRegistrationTask
public AbstractNodeTypeRegistrationTask(String name,
String description,
String workspaceName)
doExecute
protected void doExecute(InstallContext installContext)
throws javax.jcr.RepositoryException,
TaskExecutionException
- Specified by:
doExecute
in class AbstractRepositoryTask
- Throws:
javax.jcr.RepositoryException
TaskExecutionException
getNodeTypesToRegister
public abstract List<javax.jcr.nodetype.NodeTypeDefinition> getNodeTypesToRegister(javax.jcr.nodetype.NodeTypeManager nodeTypeManager)
throws javax.jcr.RepositoryException
- Create a List of
NodeTypeDefinition
to register or update (in case they are already created).
- Throws:
javax.jcr.RepositoryException
getNodeTypesToUnregister
public abstract List<String> getNodeTypesToUnregister(javax.jcr.nodetype.NodeTypeManager nodeTypeManager)
throws javax.jcr.RepositoryException
- Create a List of
NodeTypeDefinition.getName()
to unregister.
- Throws:
javax.jcr.RepositoryException
getDependentNodeTypes
protected HashMap<String,javax.jcr.nodetype.NodeTypeDefinition> getDependentNodeTypes(javax.jcr.nodetype.NodeTypeDefinition nodeType,
org.apache.jackrabbit.core.nodetype.NodeTypeRegistry registry,
org.apache.jackrabbit.spi.commons.conversion.NamePathResolver namePathResolver,
javax.jcr.nodetype.NodeTypeManager nodeTypeManager)
throws javax.jcr.RepositoryException
- Create a Map containing all child NodeType of.
- key = NodeType name.
- value = NodeTypeDefinition
.
- Throws:
javax.jcr.RepositoryException
Copyright © 2003-2014 Magnolia International Ltd.. All Rights Reserved.