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 if not present else update the existing one.
Warning: Be careful with the order of the list of NodeTypeDefinition
- Always put the parent NodeType or newly reference NodeTypes first.
-- 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 unregistering, override getNodeTypesToUnregister(NodeTypeManager).
Warning: A NodeType will be unregistered only if no dependency issue is found
Potential dependency issues:
- NodeType is referenced as child node by one ore more other NodeType definitions
- NodeType is defined as super of one ore more other NodeType definitions
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)
          Get a List of NodeTypeDefinition to register or update (in case they are already created).
abstract  List<String> getNodeTypesToUnregister(javax.jcr.nodetype.NodeTypeManager nodeTypeManager)
          Get 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
Get 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
Get 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.