diff options
| author | abranson <abranson@PCUWE01.cern.ch> | 2012-07-06 15:53:04 +0200 |
|---|---|---|
| committer | abranson <abranson@PCUWE01.cern.ch> | 2012-07-06 15:53:04 +0200 |
| commit | 0774a45d92569b7d7f05c82c9e036821b1c3aadf (patch) | |
| tree | bea236f34ce5326df9ff5434c13c48e82d2a1625 /src | |
| parent | ecfbae52eca918912f31199519f260c1657acd43 (diff) | |
Require workflow version for item descriptions
Switch to Gateway.getMarshaller() from CastorXMLUtility
Replace module.xml with marshalled form
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/resources/boot/OD/ChooseWorkflow.xsd | 5 | ||||
| -rw-r--r-- | src/main/resources/boot/SC/LocalObjectDefCreator.xml | 4 | ||||
| -rw-r--r-- | src/main/resources/boot/SC/SetWorkflow.xml | 15 | ||||
| -rw-r--r-- | src/main/resources/module.xml | 110 |
4 files changed, 89 insertions, 45 deletions
diff --git a/src/main/resources/boot/OD/ChooseWorkflow.xsd b/src/main/resources/boot/OD/ChooseWorkflow.xsd index 9927231..1fb6238 100644 --- a/src/main/resources/boot/OD/ChooseWorkflow.xsd +++ b/src/main/resources/boot/OD/ChooseWorkflow.xsd @@ -7,6 +7,11 @@ <xs:annotation> <xs:documentation>Give the name of the composite activity description that you would like new instance of this description to run.</xs:documentation> </xs:annotation> + </xs:element>
+ <xs:element name="WorkflowDefinitionVersion" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>Give the version of this activity that you would like to use.</xs:documentation>
+ </xs:annotation>
</xs:element> </xs:sequence> </xs:complexType> diff --git a/src/main/resources/boot/SC/LocalObjectDefCreator.xml b/src/main/resources/boot/SC/LocalObjectDefCreator.xml index 177b635..d6a6762 100644 --- a/src/main/resources/boot/SC/LocalObjectDefCreator.xml +++ b/src/main/resources/boot/SC/LocalObjectDefCreator.xml @@ -2,7 +2,7 @@ <cristalscript>
<output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
<script language="javascript" name="LocalObjectDefCreator"><![CDATA[
- importClass(Packages.com.c2kernel.utils.CastorXMLUtility);
+ importClass(Packages.com.c2kernel.process.Gateway);
importClass(Packages.com.c2kernel.utils.Resource);
importClass(Packages.com.c2kernel.process.Bootstrap);
importClass(Packages.com.c2kernel.lifecycle.CompositeActivityDef);
@@ -33,7 +33,7 @@ if (type.equals("EA") || type.equals("CA")) {
var newAct = type.equals("CA")?new CompositeActivityDef(): new ActivityDef();
newAct.setName(name);
- newObj = CastorXMLUtility.marshall(newAct);
+ newObj = Gateway.getMarshaller().marshall(newAct);
}
else {
// Empty schemas and scripts are stored as outcomes of the factory.
diff --git a/src/main/resources/boot/SC/SetWorkflow.xml b/src/main/resources/boot/SC/SetWorkflow.xml index 88a061f..1b4fdd2 100644 --- a/src/main/resources/boot/SC/SetWorkflow.xml +++ b/src/main/resources/boot/SC/SetWorkflow.xml @@ -5,7 +5,8 @@
importClass(Packages.com.c2kernel.lookup.DomainPath); // Fetch the requested name from the outcome field
- var wfDefName = job.getOutcome().getField("WorkflowDefinitionName"); + var wfDefName = job.getOutcome().getField("WorkflowDefinitionName");
+ var wfDefVersion = job.getOutcome().getField("WorkflowDefinitionVersion"); // Look up the description
var root = new DomainPath("/desc/ActivityDesc"); var wfItem; @@ -22,7 +23,14 @@ if (!itemType.equals("ActivityDesc")) throw wfDefName+" is not an activity description"; if (!complex.equals("Composite")) - throw wfDefName+" is not a composite activity description"; + throw wfDefName+" is not a composite activity description";
+
+ // Check that the named version exists
+ try {
+ var view = wfItem.getObject("/ViewPoint/CompositeActivityDef/"+wfDefVersion);
+ } catch (e) {
+ throw wfDefName + " does not contain a version "+wfDefVersion;
+ } // Fetch the 'Workflow' collection
var coll = item.getObject("/Collection/Workflow"); @@ -31,7 +39,8 @@ coll.removeMember(member.getID()); } // add the new member
- coll.addMember(wfItem.getSystemKey()); + var cm = coll.addMember(wfItem.getSystemKey());
+ cm.getProperties().put("Version", wfDefVersion); // save it back to the item var params = new Array(1); params[0] = agent.marshall(coll); diff --git a/src/main/resources/module.xml b/src/main/resources/module.xml index 63cf54d..12a2142 100644 --- a/src/main/resources/module.xml +++ b/src/main/resources/module.xml @@ -1,74 +1,104 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<CristalModule ns="dev" name="CristalDev" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<CristalModule ns="dev" name="CristalDev">
<Info>
<Description>CRISTAL Development Items, such as resource factories and workflows. Also includes a demonstrative description factory</Description>
<Version>0.2</Version>
</Info>
<ResourceURL>ac/uk/uwe/cristaldev/resources/</ResourceURL>
<Imports>
- <Resource type="OD" name="NewLocalObjectDef">boot/OD/NewLocalObjectDef.xsd</Resource>
- <Resource type="OD" name="NewDevObjectDef">boot/OD/NewDevObjectDef.xsd</Resource>
- <Resource type="OD" name="ChooseWorkflow">boot/OD/ChooseWorkflow.xsd</Resource>
- <Resource type="EA" name="CreateNewLocalObjectDef">boot/EA/CreateNewLocalObjectDef.xml</Resource>
- <Resource type="EA" name="EditPropertyDescription">boot/EA/EditPropertyDescription.xml</Resource>
- <Resource type="EA" name="CreateItem">boot/EA/CreateItem.xml</Resource>
- <Resource type="EA" name="SetInstanceWorkflow">boot/EA/SetInstanceWorkflow.xml</Resource>
- <Resource type="CA" name="CompositeActivityFactory">boot/CA/CompositeActivityFactory.xml</Resource>
- <Resource type="CA" name="ElementaryActivityFactory">boot/CA/ElementaryActivityFactory.xml</Resource>
- <Resource type="CA" name="SchemaFactoryWf">boot/CA/SchemaFactoryWf.xml</Resource>
- <Resource type="CA" name="ScriptFactoryWf">boot/CA/ScriptFactoryWf.xml</Resource>
- <Resource type="CA" name="ItemDescriptionWf">boot/CA/ItemDescriptionWf.xml</Resource>
- <Resource type="CA" name="ItemDescriptionFactoryWf">boot/CA/ItemDescriptionFactoryWf.xml</Resource>
- <Resource type="CA" name="ReadOnlyItemDescriptionWf">boot/CA/ReadOnlyItemDescriptionWf.xml</Resource>
- <Resource type="SC" name="LocalObjectDefCreator">boot/SC/LocalObjectDefCreator.xml</Resource>
- <Resource type="SC" name="InstantiateItem">boot/SC/InstantiateItem.xml</Resource>
- <Resource type="SC" name="SetWorkflow">boot/SC/SetWorkflow.xml</Resource>
- <Item name="ScriptFactory" workflow="ScriptFactoryWf">
+ <Resource name="NewLocalObjectDef" type="OD">boot/OD/NewLocalObjectDef.xsd</Resource>
+ <Resource name="NewDevObjectDef" type="OD">boot/OD/NewDevObjectDef.xsd</Resource>
+ <Resource name="ChooseWorkflow" type="OD">boot/OD/ChooseWorkflow.xsd</Resource>
+ <Resource name="CreateNewLocalObjectDef" type="EA">boot/EA/CreateNewLocalObjectDef.xml</Resource>
+ <Resource name="EditPropertyDescription" type="EA">boot/EA/EditPropertyDescription.xml</Resource>
+ <Resource name="CreateItem" type="EA">boot/EA/CreateItem.xml</Resource>
+ <Resource name="SetInstanceWorkflow" type="EA">boot/EA/SetInstanceWorkflow.xml</Resource>
+ <Resource name="CompositeActivityFactory" type="CA">boot/CA/CompositeActivityFactory.xml</Resource>
+ <Resource name="ElementaryActivityFactory" type="CA">boot/CA/ElementaryActivityFactory.xml</Resource>
+ <Resource name="SchemaFactoryWf" type="CA">boot/CA/SchemaFactoryWf.xml</Resource>
+ <Resource name="ScriptFactoryWf" type="CA">boot/CA/ScriptFactoryWf.xml</Resource>
+ <Resource name="ItemDescriptionWf" type="CA">boot/CA/ItemDescriptionWf.xml</Resource>
+ <Resource name="ItemDescriptionFactoryWf" type="CA">boot/CA/ItemDescriptionFactoryWf.xml</Resource>
+ <Resource name="ReadOnlyItemDescriptionWf" type="CA">boot/CA/ReadOnlyItemDescriptionWf.xml</Resource>
+ <Resource name="LocalObjectDefCreator" type="SC">boot/SC/LocalObjectDefCreator.xml</Resource>
+ <Resource name="InstantiateItem" type="SC">boot/SC/InstantiateItem.xml</Resource>
+ <Resource name="SetWorkflow" type="SC">boot/SC/SetWorkflow.xml</Resource>
+ <Item name="ScriptFactory" initialPath="/desc/dev" workflow="ScriptFactoryWf">
<Property name="LocalObjectType">Script</Property>
<Property name="Type">Factory</Property>
<Outcome viewname="last" schema="PropertyDescription" version="0">boot/property/SCProp.xml</Outcome>
<Outcome viewname="last" schema="Script" version="0">boot/SC/New.xml</Outcome>
- <Dependency name="workflow">
- <DependencyMember>/desc/ActivityDesc/system/kernel/ManageScript</DependencyMember>
- </Dependency>
+ <Dependency name="workflow" isDescription="false">
+ <DependencyMember itemPath="/desc/ActivityDesc/system/kernel/ManageScript">
+ <MemberProperties>
+ <KeyValuePair Key="Version" String="0"/>
+ </MemberProperties>
+ </DependencyMember>
+ <CollectionProperties/>
+ </Dependency>
</Item>
- <Item name="ElementaryActivityDefFactory" workflow="ElementaryActivityFactory">
+ <Item name="ElementaryActivityDefFactory" initialPath="/desc/dev" workflow="ElementaryActivityFactory">
<Property name="LocalObjectType">ElementaryActivityDef</Property>
<Property name="Type">Factory</Property>
<Outcome viewname="last" schema="PropertyDescription" version="0">boot/property/EAProp.xml</Outcome>
- <Dependency name="workflow">
- <DependencyMember>/desc/ActivityDesc/system/kernel/ManageElementaryActDef</DependencyMember>
+ <Dependency name="workflow" isDescription="false">
+ <DependencyMember itemPath="desc/ActivityDesc/system/kernel/ManageElementaryActDef">
+ <MemberProperties>
+ <KeyValuePair Key="Version" String="0"/>
+ </MemberProperties>
+ </DependencyMember>
+ <CollectionProperties/>
</Dependency>
</Item>
- <Item name="CompositeActivityDefFactory" workflow="CompositeActivityFactory">
+ <Item name="CompositeActivityDefFactory" initialPath="/desc/dev" workflow="CompositeActivityFactory">
<Property name="LocalObjectType">CompositeActivityDef</Property>
<Property name="Type">Factory</Property>
<Outcome viewname="last" schema="PropertyDescription" version="0">boot/property/CAProp.xml</Outcome>
- <Dependency name="workflow">
- <DependencyMember>/desc/ActivityDesc/system/kernel/ManageCompositeActDef</DependencyMember>
+ <Dependency name="workflow" isDescription="false">
+ <DependencyMember itemPath="/desc/ActivityDesc/system/kernel/ManageCompositeActDef">
+ <MemberProperties>
+ <KeyValuePair Key="Version" String="0"/>
+ </MemberProperties>
+ </DependencyMember>
+ <CollectionProperties/>
</Dependency>
</Item>
- <Item name="SchemaFactory" workflow="SchemaFactoryWf">
+ <Item name="SchemaFactory" initialPath="/desc/dev" workflow="SchemaFactoryWf">
<Property name="LocalObjectType">Schema</Property>
<Property name="Type">Factory</Property>
<Outcome viewname="last" schema="PropertyDescription" version="0">boot/property/ODProp.xml</Outcome>
<Outcome viewname="last" schema="Schema" version="0">boot/OD/New.xsd</Outcome>
- <Dependency name="workflow">
- <DependencyMember>/desc/ActivityDesc/system/kernel/ManageSchema</DependencyMember>
+ <Dependency name="workflow" isDescription="false">
+ <DependencyMember itemPath="/desc/ActivityDesc/system/kernel/ManageSchema">
+ <MemberProperties>
+ <KeyValuePair Key="Version" String="0"/>
+ </MemberProperties>
+ </DependencyMember>
+ <CollectionProperties/>
</Dependency>
</Item>
- <Item name="DescriptionFactory" workflow="ItemDescriptionFactoryWf">
+ <Item name="DescriptionFactory" initialPath="/desc/dev" workflow="ItemDescriptionFactoryWf">
<Property name="Type">Factory</Property>
<Outcome viewname="last" schema="PropertyDescription" version="0">boot/property/DescProp.xml</Outcome>
- <Dependency name="workflow">
- <DependencyMember>/desc/ActivityDesc/system/dev/ItemDescriptionWf</DependencyMember>
+ <Dependency name="workflow" isDescription="false">
+ <DependencyMember itemPath="/desc/ActivityDesc/system/dev/ItemDescriptionWf">
+ <MemberProperties>
+ <KeyValuePair Key="Version" String="0"/>
+ </MemberProperties>
+ </DependencyMember>
+ <CollectionProperties/>
</Dependency>
<Dependency name="workflow'" isDescription="true">
- <DependencyMember>/desc/dev/CompositeActivityDefFactory</DependencyMember>
- </Dependency>
- </Item>
- <Agent password="test" name="dev">
+ <DependencyMember itemPath="/desc/dev/CompositeActivityDefFactory">
+ <MemberProperties>
+ <KeyValuePair Key="Version" String="0"/>
+ </MemberProperties>
+ </DependencyMember>
+ <CollectionProperties/>
+ </Dependency>
+ </Item>
+ <Agent name="dev" password="test">
<Role>Admin</Role>
+ <Property name="Module">cristal-gui</Property>
</Agent>
</Imports>
-</CristalModule>
+</CristalModule>
\ No newline at end of file |
