<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!-- $Id: usecases-workflow-deactivate.xconf 348547 2005-11-23 20:13:01Z chestnut $ -->
<!--
    This file defines the publication specific use-cases
-->

  <xconf xpath="/cocoon/usecases" unless="/cocoon/usecases/component-instance[@name = 'workflow.multiWorkflow']">
    <component-instance name="workflow.multiWorkflow" logger="lenya.workflow" class="org.apache.lenya.cms.workflow.usecases.MultiWorkflow">
      <view uri="modules/workflow/usecases/multiWorkflow.jx" menu="true"/>
      <exit usecase="workflow.multiWorkflow"/>
      <usecase name="workflow.submit" event="submit"/>
      <usecase name="workflow.publish" event="publish"/>
      <usecase name="workflow.reject" event="reject"/>
      <usecase name="workflow.deactivate" event="deactivate"/>
      <usecase name="sitemanagement.delete" event="delete"/>
      <usecase name="sitemanagement.archive" event="archive"/>
      <usecase name="sitemanagement.restore" event="restore"/>
      <parameter name="style" value="text"/>
    </component-instance>
  </xconf>
