info.magnolia.setup.for5_0
Class AbstractNodeTypeRegistrationTask

java.lang.Object
  extended by info.magnolia.module.delta.AbstractTask
      extended by info.magnolia.module.delta.AbstractRepositoryTask
          extended by 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.


Field Summary
 
Fields inherited from class info.magnolia.module.delta.AbstractTask
DO_NOTHING
 
Constructor Summary
AbstractNodeTypeRegistrationTask(String name, String description, String workspaceName)
           
 
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.
 
Methods inherited from class info.magnolia.module.delta.AbstractRepositoryTask
execute
 
Methods inherited from class info.magnolia.module.delta.AbstractTask
getDescription, getName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractNodeTypeRegistrationTask

public AbstractNodeTypeRegistrationTask(String name,
                                        String description,
                                        String workspaceName)
Method Detail

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.