<?xml version="1.0"?>
<!DOCTYPE DeploymentSets [
<!ELEMENT DeploymentSets (DeploymentSet*) >
<!ELEMENT DeploymentSet (ActionSet*, Component*, DeployList*)>
<!ATTLIST DeploymentSet
          when (PRE | POST) "PRE">
<!ATTLIST DeploymentSet
          deploy (DEPL | DEPL-TASK | SKIP-NWDI | SKIP-DEPL) "DEPL">		 
<!ELEMENT ActionSet (action+)>
<!ATTLIST ActionSet
          when (PRE | POST) "PRE">
<!ELEMENT action (param*)>
<!ATTLIST action
			type (SEQUENCE | CLUSTER-OPERATION | CHECK-ONLINE-MIGRATION) #REQUIRED>
<!ELEMENT param EMPTY>
<!ATTLIST param
			name CDATA #REQUIRED
			value  CDATA #REQUIRED >

<!-- The next param variations are shown for informative and readability purposes only,
as possible combinations for expected name-value binding by the JSPM program logic. 
	
SEQUENCE based name-value bindings
============================= 	
<!ATTLIST param
			name (ACTION-DEF) "ACTION-DEF"
			value  CDATA #REQUIRED>

RESTART based name-value bindings
=============================
<!ATTLIST param
			name (TYPE) "TYPE"
			value (RESTART | START | STOP) "START">
<!ATTLIST param
			name (TARGET) "TARGET"
			value (ENGINE | SDM | CLUSTER | JSPM | SCS) "CLUSTER" >
<!ATTLIST param			
			name (MODE) "MODE"
			value (NORMAL | SAFE | STANDALONE | INTEGRATED) "NORMAL">
<!ATTLIST param			
			name (ACTION) "ACTION"
			value (NONE) "NONE">
-->

<!ELEMENT Component (ActionSet*)>
<!ATTLIST Component
          name CDATA #REQUIRED
          vendor CDATA #REQUIRED
          mandatory CDATA #IMPLIED >

<!ELEMENT DeployList (ActionSet*)>
<!ATTLIST DeployList 
          inputFile CDATA #REQUIRED >
]>
 
<!-- 

 A sample for usage
========================== 	  	

  <DeploymentSet when="SKIP-DEPL">
		<Component name="SAP_BUILDT" vendor="sap.com"/>
		<Component name="EP_BUILDT" vendor="sap.com"/>
  </DeploymentSet>
  
  <DeploymentSet when="PRE">
		<ActionSet when="PRE">
			 <action type="SEQUENCE" >
				<param name="seq_1" value="zzz"/>
				<param name="ACTION-DEF" value="ddd1.xml" />
			</action>
			<action type="SEQUENCE">
				<param name="seq_2" value="zzz2"/>
				<param name="ACTION-DEF" value="ddd3.xml" />
			</action>
			<action type="CLUSTER-OPERATION">
				<param name="TYPE" value="RESTART"/>
				<param name="TARGET"   value="ENGINE" />
				<param name="MODE"   value="SAFE"/>
			</action>
		</ActionSet>
    
		<ActionSet when="POST">
			<action type="SEQUENCE">
				<param name="seq_3" value="zzz4"/>
				<param name="ACTION-DEF" value="ddd4.xml" />
			</action>	
		</ActionSet>
		
		<Component name="SAP KERNEL" vendor="sap.com" mandatory="true"/>
		<Component name="BC-FES-IGS" vendor="sap.com" mandatory="true" />
 		<Component name="JSPM" vendor="sap.com" mandatory="true">
			  <ActionSet when="PRE">
					<action type="SEQUENCE" >
						<param name="seq_15" value="jspm"/>
						<param name="ACTION-DEF" value="ddd.xml" />
					</action>
			  </ActionSet>
			  <ActionSet when="POST">
					<action type="SEQUENCE" >
						<param name="seq_25" value="jspm2"/>
						<param name="ACTION-DEF" value="ddd.xml" />
					</action>
			  </ActionSet>
		</Component>
  </DeploymentSet>
  
  </DeploymentSets>
-->

<DeploymentSets>	

<!-- Skipped components -->
  <DeploymentSet when="PRE" deploy="SKIP-NWDI">
    <Component name="SAP_BUILDT" vendor="sap.com"/>
	<Component name="EP_BUILDT" vendor="sap.com"/>
    <Component name="TEALEAF" vendor="sap.com"/>
    <Component name="STRUTS" vendor="sap.com"/>
    <Component name="SAP-CRMJAV" vendor="sap.com"/>
    <Component name="SAP-SHRJAV" vendor="sap.com"/>
    <Component name="SAP-IPCMSA" vendor="sap.com"/>
    <Component name="SAP-CRMWEB" vendor="sap.com"/>
    <Component name="SAP-SHRWEB" vendor="sap.com"/>

  </DeploymentSet>
  
  <!-- JSPM update - first -->
  <DeploymentSet when="PRE">
    <ActionSet when="POST">
			<action type="CLUSTER-OPERATION">
				<param name="TYPE" value="STOP"/>
				<param name="TARGET"  value="JSPM" />
			</action>	
    </ActionSet>
    <Component name="JSPM" vendor="sap.com"/>
  </DeploymentSet>
	<DeploymentSet when="PRE" deploy="SKIP-DEPL">
	<ActionSet when="PRE">
		<action type="CLUSTER-OPERATION">
			<param name="TYPE" value="STOP"/>
			<param name="TARGET"  value="ENGINE" />
		</action>	
	</ActionSet>
	</DeploymentSet>

  <!--============================ Kernel Update =======================================================-->  
  <!-- PRE Kernel -->
  <DeploymentSet when="PRE">
	<Component name="SAP KERNEL" vendor="sap.com"/>
  </DeploymentSet>

  <DeploymentSet when="PRE">
    <Component name="BC-FES-IGS" vendor="sap.com"/>
    <Component name="SAP JVM" vendor="sap.com"/>
  </DeploymentSet>



<!-- Extramile tool deployment 
Compoents that should be deployed via extrimele are described in LST files. For them
we defined deployment sets that should be not deployed and action sets that should be executed for this components.
-->
  <DeploymentSet when="PRE" deploy="DEPL-TASK">
	<ActionSet when="PRE">
		<action type="SEQUENCE">		
			<param name="DEPLOY_JDD_EXTRAMILE" value="JspmPlusTasksSequence.xml"/>
		</action>
		<action type="SEQUENCE">		
			<param name="DEPLOY_FS_EXTRAMILE" value="JspmPlusTasksSequence.xml"/>
		</action>
		<action type="SEQUENCE">		
			<param name="DEPLOY_OFFLINE_EXTRAMILE" value="JspmPlusTasksSequence.xml"/>
		</action>
	</ActionSet>

    <DeployList inputFile="DEPLOY_ENGINE_JDD.LST">
	</DeployList>
    <DeployList inputFile="DEPLOY_ENGINE_FS.LST">
	</DeployList>  
	<DeployList inputFile="DEPLOY_ENGINE_OFFLINE.LST">
	</DeployList>  
</DeploymentSet>

<DeploymentSet when="PRE" deploy="SKIP-DEPL">
    <ActionSet when="PRE">
	    <action type="CLUSTER-OPERATION">
			<param name="TYPE"  value="SET" />
			<param name="MODE" value="SAFE" />
			<param name="TARGET"  value="ENGINE" />
			<param name="ACTION"  value="MIGRATE" />			
		</action>	
    	<action type="CLUSTER-OPERATION">
			<param name="TYPE" value="START" />
			<param name="TARGET"  value="ENGINE" />
		</action>
		<action type="CHECK-ONLINE-MIGRATION">
		</action>
    </ActionSet>
</DeploymentSet>

<!-- Deploy with DC deploy list-->
<DeploymentSet when="PRE">
	<DeployList inputFile="DEPLOY_ENGINE_ONLINE.LST" />
</DeploymentSet>
<DeploymentSet when="POST" deploy="SKIP-DEPL">
	<ActionSet when="POST">
<action type="CLUSTER-OPERATION">
  <param name="TYPE" value="RESTART" /> 
  <param name="TARGET" value="CLUSTER" /> 
  <param name="MODE" value="NORMAL" /> 
  <param name="ACTION" value="NONE" /> 
 </action>
</ActionSet>
</DeploymentSet>
</DeploymentSets>