Platform Explorer / Nuxeo Platform 8.3

Extension point lifecycle

Extension point for registering life cycle definition.

A life cycle is a state-transition model described as an XML document.

A life cycle within Nuxeo Core describes only the states and the transitions without any security policy whatsoever. For instance, the workflow service (or BPM service) will be responsible of the security policy and actors involved.

Contribution Descriptor

Existing Contributions

  • nuxeo-routing-core-8.3.jar /OSGI-INF/document-routing-life-cycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="draft" name="documentRouteElement">
          <transitions>
            <transition destinationState="validated" name="toValidated">
              <description>the model is validated</description>
            </transition>
            <transition destinationState="ready" name="toReady">
              <description>the element is ready to be executed</description>
            </transition>
            <transition destinationState="running" name="toRunning">
              <description>the element starts</description>
            </transition>
            <transition destinationState="done" name="toDone">
              <description>the element finishes</description>
            </transition>
            <transition destinationState="waiting" name="toWaiting">
              <description>the element waits for a join</description>
            </transition>
            <transition destinationState="suspended" name="toSuspended">
              <description>the element waits for a task</description>
            </transition>
            <transition destinationState="ready" name="backToReady">
              <description>the element finishes</description>
            </transition>
            <transition destinationState="canceled" name="toCanceled">
              <description>cancel this element</description>
            </transition>
            <transition destinationState="draft" name="toDraft">
              <description>
                go to the draft state, this is done when creating a new instance
                from a model
              </description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" initial="true" name="draft">
              <transitions>
                <transition>toValidated</transition>
              </transitions>
            </state>
            <state description="The element is validated" initial="true" name="validated">
              <transitions>
                <transition>toReady</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is ready" initial="true" name="ready">
              <transitions>
                <transition>toRunning</transition>
                <transition>toWaiting</transition>
                <transition>toSuspended</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is running" name="running">
              <transitions>
                <transition>toDone</transition>
                <transition>backToReady</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is done" name="done">
              <transitions>
                <transition>backToReady</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element waits for a join" name="waiting">
              <transitions>
                <transition>toReady</transition>
                <transition>toSuspended</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element waits for a task" name="suspended">
              <transitions>
                <transition>toReady</transition>
                <transition>toWaiting</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is cancelled" name="canceled">
              <transitions>
                <transition>backToReady</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
          </states>
        </lifecycle>
      </extension>
  • nuxeo-core-8.3.jar /OSGI-INF/LifeCycleCoreExtensions.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <documentation>Nuxeo core default life cycle definition.</documentation>
    
        <lifecycle defaultInitial="project" name="default">
          <transitions>
            <transition destinationState="approved" name="approve">
              <description>Approve the content</description>
            </transition>
            <transition destinationState="obsolete" name="obsolete">
              <description>Content becomes obsolete</description>
            </transition>
            <transition destinationState="deleted" name="delete">
              <description>Move document to trash (temporary delete)</description>
            </transition>
            <transition destinationState="project" name="undelete">
              <description>Recover the document from trash</description>
            </transition>
            <transition destinationState="project" name="backToProject">
              <description>Recover the document from trash</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" initial="true" name="project">
              <transitions>
                <transition>approve</transition>
                <transition>obsolete</transition>
                <transition>delete</transition>
              </transitions>
            </state>
            <state description="Content has been validated" name="approved">
              <transitions>
                <transition>delete</transition>
                <transition>backToProject</transition>
              </transitions>
            </state>
            <state description="Content is obsolete" name="obsolete">
              <transitions>
                <transition>delete</transition>
                <transition>backToProject</transition>
              </transitions>
            </state>
            <state description="Document is deleted" name="deleted">
              <transitions>
                <transition>undelete</transition>
              </transitions>
            </state>
          </states>
        </lifecycle>
      </extension>
  • nuxeo-invite-8.3.jar /OSGI-INF/user-registration-lifecycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="created" name="registrationRequest">
          <transitions>
            <transition destinationState="approved" name="approve">
              <description>Approve the registration request</description>
            </transition>
            <transition destinationState="rejected" name="reject">
              <description>Reject the registration request</description>
            </transition>
            <transition destinationState="accepted" name="accept">
              <description>Accept the registration request</description>
            </transition>
            <transition destinationState="processed" name="process">
              <description>Process the registration request</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" initial="true" name="created">
              <transitions>
                <transition>approve</transition>
                <transition>reject</transition>
              </transitions>
            </state>
            <state description="Registration has been approved" name="approved">
              <transitions>
                <transition>accept</transition>
              </transitions>
            </state>
            <state description="Registration has been rejected" name="rejected">
              <transitions/>
            </state>
            <state description="Registration has been accepted" name="accepted">
              <transitions>
                <transition>process</transition>
              </transitions>
            </state>
            <state description="Registration request has been processed" name="processed">
              <transitions/>
            </state>
          </states>
        </lifecycle>
      </extension>
  • nuxeo-platform-task-core-8.3.jar /OSGI-INF/task-lifecycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="opened" name="task">
          <transitions>
            <transition destinationState="ended" name="end">
              <description>End the task</description>
            </transition>
            <transition destinationState="cancelled" name="cancel">
              <description>Cancel the task</description>
            </transition>
          </transitions>
          <states>
            <state description="Task is open." name="opened">
              <transitions>
                <transition>end</transition>
                <transition>cancel</transition>
              </transitions>
            </state>
            <state description="task has been ended" name="ended">
            </state>
            <state description="Task is cancelled" name="cancelled">
            </state>
          </states>
        </lifecycle>
    
      </extension>
  • nuxeo-platform-forum-core-8.3.jar /OSGI-INF/forum-life-cycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="moderation_pending" name="post_moderation">
    
          <transitions>
            <transition destinationState="moderation_published" name="moderation_publish">
              <description>Approve the post</description>
            </transition>
            <transition destinationState="moderation_rejected" name="moderation_reject">
              <description>Reject the post</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" name="moderation_pending">
              <transitions>
                <transition>moderation_publish</transition>
                <transition>moderation_reject</transition>
              </transitions>
            </state>
            <state description="Post published" name="moderation_published"/>
            <state description="Post Rejected" name="moderation_rejected"/>
          </states>
    
        </lifecycle>
    
      </extension>
  • nuxeo-platform-comment-8.3.jar /OSGI-INF/comment-life-cycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="moderation_pending" name="comment_moderation">
    
          <transitions>
            <transition destinationState="moderation_published" name="moderation_publish">
              <description>Approve the comment</description>
            </transition>
            <transition destinationState="moderation_rejected" name="moderation_reject">
              <description>Reject the comment</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" name="moderation_pending">
              <transitions>
                <transition>moderation_publish</transition>
                <transition>moderation_reject</transition>
              </transitions>
            </state>
            <state description="Comment published" name="moderation_published"/>
            <state description="Comment Rejected" name="moderation_rejected"/>
          </states>
    
        </lifecycle>
    
      </extension>