summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorabranson <andrew.branson@cern.ch>2011-11-23 10:35:53 +0100
committerabranson <andrew.branson@cern.ch>2011-11-23 10:35:53 +0100
commit63219230f343598b449c817890b730a2f02edc49 (patch)
treeccc56f742e9e468b0e3551ca2c40c4a4be8e6772
parente7b92e1640be005db77804f018e3cdbc2aff90cf (diff)
parent349144cc196e85a8ee0383be4646f5932fe63146 (diff)
Merge branch 'modules'2.3
-rw-r--r--.classpath4
-rw-r--r--build.xml2
-rw-r--r--[-rwxr-xr-x]changelog18
-rwxr-xr-xresources/boot/CA/CompositeActivityFactory.xml108
-rwxr-xr-xresources/boot/CA/ElementaryActivityFactory.xml108
-rwxr-xr-xresources/boot/CA/ManageCompositeActDef.xml219
-rwxr-xr-xresources/boot/CA/ManageElementaryActDef.xml219
-rwxr-xr-xresources/boot/CA/ManageSchema.xml218
-rwxr-xr-xresources/boot/CA/ManageScript.xml219
-rwxr-xr-xresources/boot/CA/SchemaFactory.xml108
-rwxr-xr-xresources/boot/CA/ScriptFactory.xml108
-rwxr-xr-xresources/boot/EA/AssignNewVersionFromLast.xml20
-rwxr-xr-xresources/boot/EA/CreateNewLocalObjectDef.xml19
-rwxr-xr-xresources/boot/EA/EditActivityDef.xml19
-rwxr-xr-xresources/boot/EA/EditProperties.xml20
-rwxr-xr-xresources/boot/EA/EditSchema.xml19
-rwxr-xr-xresources/boot/EA/EditScriptDefinition.xml19
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/CompositeActivityDef.xsd (renamed from resources/boot/OD/CompositeActivityDef.xml)0
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/ElementaryActivityDef.xsd (renamed from resources/boot/OD/ElementaryActivityDef.xml)0
-rw-r--r--resources/boot/OD/Module.xsd141
-rwxr-xr-xresources/boot/OD/New.xml3
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/NewAgent.xsd (renamed from resources/boot/OD/NewAgent.xml)0
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/NewItem.xsd (renamed from resources/boot/OD/NewItem.xml)0
-rwxr-xr-xresources/boot/OD/NewLocalObjectDef.xml20
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/PredefinedStepOutcome.xsd (renamed from resources/boot/OD/PredefinedStepOutcome.xml)0
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/PropertyDescription.xsd (renamed from resources/boot/OD/PropertyDescription.xml)0
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/Schema.xsd (renamed from resources/boot/OD/Schema.xml)0
-rw-r--r--[-rwxr-xr-x]resources/boot/OD/Script.xsd (renamed from resources/boot/OD/Script.xml)0
-rwxr-xr-xresources/boot/SC/CreateNewNumberedVersionFromLast.xml39
-rwxr-xr-xresources/boot/SC/LocalObjectDefCreator.xml57
-rwxr-xr-xresources/boot/SC/New.xml13
-rw-r--r--[-rwxr-xr-x]resources/boot/allbootitems.txt28
-rwxr-xr-xresources/boot/factory/CA.xml8
-rwxr-xr-xresources/boot/factory/EA.xml8
-rwxr-xr-xresources/boot/factory/OD.xml8
-rwxr-xr-xresources/boot/factory/SC.xml8
-rwxr-xr-xresources/images/typeicons/localobjectfactory_16.pngbin916 -> 0 bytes
-rwxr-xr-xresources/images/typeicons/localobjectfactory_32.pngbin2084 -> 0 bytes
-rw-r--r--resources/mapFiles/ModuleMap.xml27
-rw-r--r--resources/mapFiles/index2
-rw-r--r--[-rwxr-xr-x]resources/textFiles/version.txt2
-rw-r--r--source/com/c2kernel/collection/AggregationMember.java2
-rw-r--r--source/com/c2kernel/graph/view/EditorToolBar.java14
-rw-r--r--source/com/c2kernel/graph/view/GraphPanel.java2
-rw-r--r--source/com/c2kernel/gui/Console.java4
-rw-r--r--source/com/c2kernel/gui/DynamicTreeBuilder.java8
-rw-r--r--source/com/c2kernel/gui/EntityDetails.java2
-rw-r--r--source/com/c2kernel/gui/EntityFinder.java8
-rw-r--r--source/com/c2kernel/gui/LoginBox.java6
-rw-r--r--source/com/c2kernel/gui/Main.java5
-rw-r--r--source/com/c2kernel/gui/MainFrame.java6
-rw-r--r--source/com/c2kernel/gui/MenuBuilder.java22
-rw-r--r--source/com/c2kernel/gui/data/Node.java6
-rw-r--r--source/com/c2kernel/gui/tabs/EntityTabPane.java8
-rw-r--r--source/com/c2kernel/gui/tabs/WorkflowPane.java8
-rw-r--r--source/com/c2kernel/gui/tabs/collection/AggregationView.java4
-rw-r--r--source/com/c2kernel/lifecycle/chooser/ActivityChooser.java2
-rw-r--r--source/com/c2kernel/lifecycle/gui/model/WfVertexDefFactory.java4
-rw-r--r--source/com/c2kernel/lifecycle/gui/view/CompActDefOutcomeHandler.java4
-rw-r--r--source/com/c2kernel/lifecycle/instance/Activity.java2
-rw-r--r--source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java4
-rw-r--r--source/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java6
-rw-r--r--source/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java1
-rw-r--r--source/com/c2kernel/lookup/LDAPLookup.java10
-rw-r--r--source/com/c2kernel/persistency/RemoteMap.java1
-rw-r--r--source/com/c2kernel/process/AbstractMain.java44
-rw-r--r--source/com/c2kernel/process/Bootstrap.java156
-rw-r--r--source/com/c2kernel/process/Gateway.java77
-rw-r--r--source/com/c2kernel/process/Module.java303
-rw-r--r--source/com/c2kernel/process/ModuleManager.java81
-rw-r--r--source/com/c2kernel/process/StandardServer.java5
-rw-r--r--source/com/c2kernel/process/UserCodeProcess.java6
-rw-r--r--source/com/c2kernel/scripting/ErrorInfo.java5
-rw-r--r--source/com/c2kernel/scripting/Script.java11
-rw-r--r--source/com/c2kernel/scripting/ScriptConsole.java6
-rw-r--r--source/com/c2kernel/utils/CastorArrayList.java2
-rw-r--r--source/com/c2kernel/utils/Resource.java171
77 files changed, 837 insertions, 1980 deletions
diff --git a/.classpath b/.classpath
index 79ed770..86010e1 100644
--- a/.classpath
+++ b/.classpath
@@ -7,13 +7,13 @@
<classpathentry kind="lib" path="lib/xml-apis.jar"/>
<classpathentry kind="lib" path="lib/wrapper.jar"/>
<classpathentry kind="lib" path="lib/bsf.jar"/>
- <classpathentry kind="lib" path="lib/dom4j.jar"/>
<classpathentry kind="lib" path="lib/ldap.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/castor-1.3.2-core.jar"/>
<classpathentry kind="lib" path="lib/castor-1.3.2-xml-schema.jar"/>
<classpathentry kind="lib" path="lib/castor-1.3.2-xml.jar"/>
<classpathentry kind="lib" path="lib/commons-lang-2.6.jar"/>
<classpathentry kind="lib" path="lib/commons-logging-1.1.1.jar"/>
+ <classpathentry kind="lib" path="lib/dom4j.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0"/>
<classpathentry kind="output" path="build/classes"/>
</classpath>
diff --git a/build.xml b/build.xml
index 81bfea3..4d86455 100644
--- a/build.xml
+++ b/build.xml
@@ -47,7 +47,7 @@
<patternset id="resource.files">
<include name="boot/**/*.txt"/>
<include name="boot/**/*.xml"/>
- <include name="schemas/*.xsd"/>
+ <include name="boot/**/*.xsd"/>
<include name="mapFiles/*"/>
<include name="textFiles/*.*"/>
<include name="images/**/*.gif"/>
diff --git a/changelog b/changelog
index 0fcaa3f..84cec45 100755..100644
--- a/changelog
+++ b/changelog
@@ -1,8 +1,14 @@
-Build 5 - Java 1.6 Compliance
-Build 4 - First GIT commit
-- WF: Added 'AlwaysUseOutcome' activity property to require an outcome for every state change
+Release 2.3
+-----------
+Build 3 - Module support
+- SYS: Cristal now supports multiple domain libraries concurrently - CRISTAL modules. Each declares its components in a module.xml in the root of its jar which can add config, resources, items and agents. Also scripts on startup/shutdown.
+Build 2 - Java 1.6 Compliance
+Build 1 - First GIT commit
- SYS: Cleaned up some proxy methods. getContents() now calls storage directly.
- SYS: Removed Orbacus. Use JDK ORB instead. Use JDK idlj compiler instead of Orbacus one. Remove all Orbacus tools.
+
+Release 2.2
+-----------
Build 3 - Last CERN
- GUI: Local object creating script now opens new desc when done.
- LDAP: Optimised Path setting by String.
@@ -51,7 +57,7 @@ Build 1
- SYS: Moved all API objects out of AbstractMain into the Gateway. AbstractMain is no longer required to initialise a kernel process.
- SYS: Moved Gateway to process package. Moved LDAP init to process.Bootstrap - will be entry point for basic item creation
-Changes for release 1.2
+Release 1.2
-----------------------
Build 22
- GUI: Multiple table row select when read only
@@ -104,7 +110,7 @@ Build 8
- UC: Usercode process suspends on all Throwables instead of just Exceptions. This catches OutOfMemoryErrors.
- SYS: Added version resources
-Release 1.1
+Release 2.1
-----------
- WF: New workflow straight edge styles
@@ -135,7 +141,7 @@ Release 1.1
- LDAP: Change IOR encoding to hostname to allow IP change
- WF: Fixed addition of composite activities into instance workflow from composition
-Release 1.0
+Release 2.0
-----------
- Initial Release
diff --git a/resources/boot/CA/CompositeActivityFactory.xml b/resources/boot/CA/CompositeActivityFactory.xml
deleted file mode 100755
index 1a963cb..0000000
--- a/resources/boot/CA/CompositeActivityFactory.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<CompositeActivityDef ID="-1" Name="CompositeActivityFactory" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="5" NextId="14">
- <JoinDef ID="6" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="325"/>
- <OutlinePoint x="291" y="313"/>
- <OutlinePoint x="351" y="313"/>
- <OutlinePoint x="351" y="337"/>
- <OutlinePoint x="291" y="337"/>
- <InEdgeId>9</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <JoinDef ID="5" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="92"/>
- <OutlinePoint x="291" y="80"/>
- <OutlinePoint x="351" y="80"/>
- <OutlinePoint x="351" y="104"/>
- <OutlinePoint x="291" y="104"/>
- <InEdgeId>7</InEdgeId>
- <OutEdgeId>12</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="321" y="211"/>
- <OutlinePoint x="291" y="199"/>
- <OutlinePoint x="351" y="199"/>
- <OutlinePoint x="351" y="223"/>
- <OutlinePoint x="291" y="223"/>
- <InEdgeId>13</InEdgeId>
- <OutEdgeId>7</OutEdgeId>
- <OutEdgeId>9</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <ActivitySlotDef ID="10" Name="CreateNewLocalObjectDef_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="133" y="215"/>
- <OutlinePoint x="68" y="185"/>
- <OutlinePoint x="198" y="185"/>
- <OutlinePoint x="198" y="245"/>
- <OutlinePoint x="68" y="245"/>
- <InEdgeId>12</InEdgeId>
- <OutEdgeId>13</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="CreateNewCompositeActivityDef"/>
- <KeyValuePair Key="NewType" String="CA"/>
- </Properties>
- <activityDef>CreateNewLocalObjectDef</activityDef>
- </ActivitySlotDef>
- <NextDef ID="13" OriginVertexId="10" TerminusVertexId="3">
- <OriginPoint x="133" y="215"/>
- <TerminusPoint x="321" y="211"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="12" OriginVertexId="5" TerminusVertexId="10">
- <OriginPoint x="321" y="92"/>
- <TerminusPoint x="133" y="215"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="9" OriginVertexId="3" TerminusVertexId="6">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="325"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="7" OriginVertexId="3" TerminusVertexId="5">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="92"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
- <castorNonLayoutableChildren>CreateNewLocalObjectDef</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/CA/ElementaryActivityFactory.xml b/resources/boot/CA/ElementaryActivityFactory.xml
deleted file mode 100755
index bf14607..0000000
--- a/resources/boot/CA/ElementaryActivityFactory.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<CompositeActivityDef ID="-1" Name="ElementaryActivityFactory" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="5" NextId="14">
- <JoinDef ID="6" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="325"/>
- <OutlinePoint x="291" y="313"/>
- <OutlinePoint x="351" y="313"/>
- <OutlinePoint x="351" y="337"/>
- <OutlinePoint x="291" y="337"/>
- <InEdgeId>9</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <JoinDef ID="5" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="92"/>
- <OutlinePoint x="291" y="80"/>
- <OutlinePoint x="351" y="80"/>
- <OutlinePoint x="351" y="104"/>
- <OutlinePoint x="291" y="104"/>
- <InEdgeId>7</InEdgeId>
- <OutEdgeId>12</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="321" y="211"/>
- <OutlinePoint x="291" y="199"/>
- <OutlinePoint x="351" y="199"/>
- <OutlinePoint x="351" y="223"/>
- <OutlinePoint x="291" y="223"/>
- <InEdgeId>13</InEdgeId>
- <OutEdgeId>7</OutEdgeId>
- <OutEdgeId>9</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <ActivitySlotDef ID="10" Name="CreateNewLocalObjectDef_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="133" y="215"/>
- <OutlinePoint x="68" y="185"/>
- <OutlinePoint x="198" y="185"/>
- <OutlinePoint x="198" y="245"/>
- <OutlinePoint x="68" y="245"/>
- <InEdgeId>12</InEdgeId>
- <OutEdgeId>13</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="CreateNewElementaryActivityDef"/>
- <KeyValuePair Key="NewType" String="EA"/>
- </Properties>
- <activityDef>CreateNewLocalObjectDef</activityDef>
- </ActivitySlotDef>
- <NextDef ID="13" OriginVertexId="10" TerminusVertexId="3">
- <OriginPoint x="133" y="215"/>
- <TerminusPoint x="321" y="211"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="12" OriginVertexId="5" TerminusVertexId="10">
- <OriginPoint x="321" y="92"/>
- <TerminusPoint x="133" y="215"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="9" OriginVertexId="3" TerminusVertexId="6">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="325"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="7" OriginVertexId="3" TerminusVertexId="5">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="92"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
- <castorNonLayoutableChildren>CreateNewLocalObjectDef</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/CA/ManageCompositeActDef.xml b/resources/boot/CA/ManageCompositeActDef.xml
deleted file mode 100755
index 9a48f1c..0000000
--- a/resources/boot/CA/ManageCompositeActDef.xml
+++ /dev/null
@@ -1,219 +0,0 @@
-<CompositeActivityDef ID="-1" Name="ManageCompositeActDef" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="13" NextId="26">
- <LoopDef ID="15" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="358" y="360"/>
- <OutlinePoint x="328" y="348"/>
- <OutlinePoint x="388" y="348"/>
- <OutlinePoint x="388" y="372"/>
- <OutlinePoint x="328" y="372"/>
- <InEdgeId>19</InEdgeId>
- <OutEdgeId>20</OutEdgeId>
- <OutEdgeId>21</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <JoinDef ID="14" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="357" y="132"/>
- <OutlinePoint x="327" y="120"/>
- <OutlinePoint x="387" y="120"/>
- <OutlinePoint x="387" y="144"/>
- <OutlinePoint x="327" y="144"/>
- <InEdgeId>17</InEdgeId>
- <InEdgeId>20</InEdgeId>
- <OutEdgeId>18</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <AndSplitDef ID="13" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="274" y="39"/>
- <OutlinePoint x="244" y="27"/>
- <OutlinePoint x="304" y="27"/>
- <OutlinePoint x="304" y="51"/>
- <OutlinePoint x="244" y="51"/>
- <OutEdgeId>16</OutEdgeId>
- <OutEdgeId>17</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
- </AndSplitDef>
- <JoinDef ID="4" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="265" y="473"/>
- <OutlinePoint x="235" y="461"/>
- <OutlinePoint x="295" y="461"/>
- <OutlinePoint x="295" y="485"/>
- <OutlinePoint x="235" y="485"/>
- <InEdgeId>8</InEdgeId>
- <InEdgeId>21</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="177" y="359"/>
- <OutlinePoint x="147" y="347"/>
- <OutlinePoint x="207" y="347"/>
- <OutlinePoint x="207" y="371"/>
- <OutlinePoint x="147" y="371"/>
- <InEdgeId>25</InEdgeId>
- <OutEdgeId>7</OutEdgeId>
- <OutEdgeId>8</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <ActivitySlotDef ID="11" Name="AssignNewVersionFromLast_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="270" y="251"/>
- <OutlinePoint x="205" y="221"/>
- <OutlinePoint x="335" y="221"/>
- <OutlinePoint x="335" y="281"/>
- <OutlinePoint x="205" y="281"/>
- <InEdgeId>18</InEdgeId>
- <OutEdgeId>19</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="ViewName" String="CompositeActivityDef"/>
- <KeyValuePair Key="Name" String="AssignNewActivityVersionFromLast"/>
- </Properties>
- <activityDef>AssignNewVersionFromLast</activityDef>
- </ActivitySlotDef>
- <JoinDef ID="2" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="175" y="131"/>
- <OutlinePoint x="145" y="119"/>
- <OutlinePoint x="205" y="119"/>
- <OutlinePoint x="205" y="143"/>
- <OutlinePoint x="145" y="143"/>
- <InEdgeId>7</InEdgeId>
- <InEdgeId>16</InEdgeId>
- <OutEdgeId>24</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <ActivitySlotDef ID="22" Name="EditDefinition" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="76" y="251"/>
- <OutlinePoint x="11" y="221"/>
- <OutlinePoint x="141" y="221"/>
- <OutlinePoint x="141" y="281"/>
- <OutlinePoint x="11" y="281"/>
- <InEdgeId>24</InEdgeId>
- <OutEdgeId>25</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="EditDefinition"/>
- <KeyValuePair Key="SchemaType" String="CompositeActivityDef"/>
- </Properties>
- <activityDef>EditActivityDef</activityDef>
- </ActivitySlotDef>
- <NextDef ID="25" OriginVertexId="22" TerminusVertexId="3">
- <OriginPoint x="76" y="251"/>
- <TerminusPoint x="177" y="359"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="24" OriginVertexId="2" TerminusVertexId="22">
- <OriginPoint x="175" y="131"/>
- <TerminusPoint x="76" y="251"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="19" OriginVertexId="11" TerminusVertexId="15">
- <OriginPoint x="270" y="251"/>
- <TerminusPoint x="358" y="360"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="21" OriginVertexId="15" TerminusVertexId="4">
- <OriginPoint x="358" y="360"/>
- <TerminusPoint x="265" y="473"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="18" OriginVertexId="14" TerminusVertexId="11">
- <OriginPoint x="357" y="132"/>
- <TerminusPoint x="270" y="251"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="20" OriginVertexId="15" TerminusVertexId="14">
- <OriginPoint x="358" y="360"/>
- <TerminusPoint x="357" y="132"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- <NextDef ID="8" OriginVertexId="3" TerminusVertexId="4">
- <OriginPoint x="177" y="359"/>
- <TerminusPoint x="265" y="473"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="17" OriginVertexId="13" TerminusVertexId="14">
- <OriginPoint x="274" y="39"/>
- <TerminusPoint x="357" y="132"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="16" OriginVertexId="13" TerminusVertexId="2">
- <OriginPoint x="274" y="39"/>
- <TerminusPoint x="175" y="131"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="7" OriginVertexId="3" TerminusVertexId="2">
- <OriginPoint x="177" y="359"/>
- <TerminusPoint x="175" y="131"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Expected Time" Integer="0"/>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Has Timeout" Boolean="false"/>
- <KeyValuePair Key="Time Out Action" Integer="2"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Expected Time Unit" Integer="3"/>
- <KeyValuePair Key="Maximum Time" Integer="0"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Maximum Time Unit" Integer="3"/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="Timeout Activated" Boolean="false"/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
- <castorNonLayoutableChildren>AssignNewVersionFromLast</castorNonLayoutableChildren>
- <castorNonLayoutableChildren>EditActivityDef</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/CA/ManageElementaryActDef.xml b/resources/boot/CA/ManageElementaryActDef.xml
deleted file mode 100755
index 1aa3840..0000000
--- a/resources/boot/CA/ManageElementaryActDef.xml
+++ /dev/null
@@ -1,219 +0,0 @@
-<CompositeActivityDef ID="-1" Name="ManageElementaryActDef" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="13" NextId="26">
- <LoopDef ID="15" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="358" y="360"/>
- <OutlinePoint x="328" y="348"/>
- <OutlinePoint x="388" y="348"/>
- <OutlinePoint x="388" y="372"/>
- <OutlinePoint x="328" y="372"/>
- <InEdgeId>19</InEdgeId>
- <OutEdgeId>20</OutEdgeId>
- <OutEdgeId>21</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <JoinDef ID="14" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="357" y="132"/>
- <OutlinePoint x="327" y="120"/>
- <OutlinePoint x="387" y="120"/>
- <OutlinePoint x="387" y="144"/>
- <OutlinePoint x="327" y="144"/>
- <InEdgeId>17</InEdgeId>
- <InEdgeId>20</InEdgeId>
- <OutEdgeId>18</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <JoinDef ID="4" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="265" y="473"/>
- <OutlinePoint x="235" y="461"/>
- <OutlinePoint x="295" y="461"/>
- <OutlinePoint x="295" y="485"/>
- <OutlinePoint x="235" y="485"/>
- <InEdgeId>8</InEdgeId>
- <InEdgeId>21</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <AndSplitDef ID="13" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="274" y="39"/>
- <OutlinePoint x="244" y="27"/>
- <OutlinePoint x="304" y="27"/>
- <OutlinePoint x="304" y="51"/>
- <OutlinePoint x="244" y="51"/>
- <OutEdgeId>16</OutEdgeId>
- <OutEdgeId>17</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
- </AndSplitDef>
- <LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="177" y="359"/>
- <OutlinePoint x="147" y="347"/>
- <OutlinePoint x="207" y="347"/>
- <OutlinePoint x="207" y="371"/>
- <OutlinePoint x="147" y="371"/>
- <InEdgeId>25</InEdgeId>
- <OutEdgeId>7</OutEdgeId>
- <OutEdgeId>8</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <JoinDef ID="2" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="175" y="131"/>
- <OutlinePoint x="145" y="119"/>
- <OutlinePoint x="205" y="119"/>
- <OutlinePoint x="205" y="143"/>
- <OutlinePoint x="145" y="143"/>
- <InEdgeId>7</InEdgeId>
- <InEdgeId>16</InEdgeId>
- <OutEdgeId>24</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <ActivitySlotDef ID="11" Name="AssignNewVersionFromLast_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="270" y="251"/>
- <OutlinePoint x="205" y="221"/>
- <OutlinePoint x="335" y="221"/>
- <OutlinePoint x="335" y="281"/>
- <OutlinePoint x="205" y="281"/>
- <InEdgeId>18</InEdgeId>
- <OutEdgeId>19</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="ViewName" String="ElementaryActivityDef"/>
- <KeyValuePair Key="Name" String="AssignNewSchemaVersionFromLast"/>
- </Properties>
- <activityDef>AssignNewVersionFromLast</activityDef>
- </ActivitySlotDef>
- <ActivitySlotDef ID="22" Name="EditDefinition" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="76" y="251"/>
- <OutlinePoint x="11" y="221"/>
- <OutlinePoint x="141" y="221"/>
- <OutlinePoint x="141" y="281"/>
- <OutlinePoint x="11" y="281"/>
- <InEdgeId>24</InEdgeId>
- <OutEdgeId>25</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="EditDefinition"/>
- <KeyValuePair Key="SchemaType" String="ElementaryActivityDef"/>
- </Properties>
- <activityDef>EditActivityDef</activityDef>
- </ActivitySlotDef>
- <NextDef ID="25" OriginVertexId="22" TerminusVertexId="3">
- <OriginPoint x="76" y="251"/>
- <TerminusPoint x="177" y="359"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="24" OriginVertexId="2" TerminusVertexId="22">
- <OriginPoint x="175" y="131"/>
- <TerminusPoint x="76" y="251"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="19" OriginVertexId="11" TerminusVertexId="15">
- <OriginPoint x="270" y="251"/>
- <TerminusPoint x="358" y="360"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="21" OriginVertexId="15" TerminusVertexId="4">
- <OriginPoint x="358" y="360"/>
- <TerminusPoint x="265" y="473"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="18" OriginVertexId="14" TerminusVertexId="11">
- <OriginPoint x="357" y="132"/>
- <TerminusPoint x="270" y="251"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="20" OriginVertexId="15" TerminusVertexId="14">
- <OriginPoint x="358" y="360"/>
- <TerminusPoint x="357" y="132"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- <NextDef ID="8" OriginVertexId="3" TerminusVertexId="4">
- <OriginPoint x="177" y="359"/>
- <TerminusPoint x="265" y="473"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="17" OriginVertexId="13" TerminusVertexId="14">
- <OriginPoint x="274" y="39"/>
- <TerminusPoint x="357" y="132"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="7" OriginVertexId="3" TerminusVertexId="2">
- <OriginPoint x="177" y="359"/>
- <TerminusPoint x="175" y="131"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- <NextDef ID="16" OriginVertexId="13" TerminusVertexId="2">
- <OriginPoint x="274" y="39"/>
- <TerminusPoint x="175" y="131"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Expected Time" Integer="0"/>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Has Timeout" Boolean="false"/>
- <KeyValuePair Key="Time Out Action" Integer="2"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Expected Time Unit" Integer="3"/>
- <KeyValuePair Key="Maximum Time" Integer="0"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Maximum Time Unit" Integer="3"/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="Timeout Activated" Boolean="false"/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
- <castorNonLayoutableChildren>AssignNewVersionFromLast</castorNonLayoutableChildren>
- <castorNonLayoutableChildren>EditActivityDef</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/CA/ManageSchema.xml b/resources/boot/CA/ManageSchema.xml
deleted file mode 100755
index da501e4..0000000
--- a/resources/boot/CA/ManageSchema.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-<CompositeActivityDef ID="-1" Name="ManageSchema" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="13" NextId="22">
- <LoopDef ID="15" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="358" y="360"/>
- <OutlinePoint x="328" y="348"/>
- <OutlinePoint x="388" y="348"/>
- <OutlinePoint x="388" y="372"/>
- <OutlinePoint x="328" y="372"/>
- <InEdgeId>19</InEdgeId>
- <OutEdgeId>20</OutEdgeId>
- <OutEdgeId>21</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <JoinDef ID="14" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="357" y="132"/>
- <OutlinePoint x="327" y="120"/>
- <OutlinePoint x="387" y="120"/>
- <OutlinePoint x="387" y="144"/>
- <OutlinePoint x="327" y="144"/>
- <InEdgeId>17</InEdgeId>
- <InEdgeId>20</InEdgeId>
- <OutEdgeId>18</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <AndSplitDef ID="13" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="274" y="39"/>
- <OutlinePoint x="244" y="27"/>
- <OutlinePoint x="304" y="27"/>
- <OutlinePoint x="304" y="51"/>
- <OutlinePoint x="244" y="51"/>
- <OutEdgeId>16</OutEdgeId>
- <OutEdgeId>17</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
- </AndSplitDef>
- <JoinDef ID="4" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="265" y="473"/>
- <OutlinePoint x="235" y="461"/>
- <OutlinePoint x="295" y="461"/>
- <OutlinePoint x="295" y="485"/>
- <OutlinePoint x="235" y="485"/>
- <InEdgeId>8</InEdgeId>
- <InEdgeId>21</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="177" y="359"/>
- <OutlinePoint x="147" y="347"/>
- <OutlinePoint x="207" y="347"/>
- <OutlinePoint x="207" y="371"/>
- <OutlinePoint x="147" y="371"/>
- <InEdgeId>6</InEdgeId>
- <OutEdgeId>7</OutEdgeId>
- <OutEdgeId>8</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <ActivitySlotDef ID="11" Name="AssignNewVersionFromLast_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="270" y="251"/>
- <OutlinePoint x="205" y="221"/>
- <OutlinePoint x="335" y="221"/>
- <OutlinePoint x="335" y="281"/>
- <OutlinePoint x="205" y="281"/>
- <InEdgeId>18</InEdgeId>
- <OutEdgeId>19</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="ViewName" String="Schema"/>
- <KeyValuePair Key="Name" String="AssignNewSchemaVersionFromLast"/>
- </Properties>
- <activityDef>AssignNewVersionFromLast</activityDef>
- </ActivitySlotDef>
- <JoinDef ID="2" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="175" y="131"/>
- <OutlinePoint x="145" y="119"/>
- <OutlinePoint x="205" y="119"/>
- <OutlinePoint x="205" y="143"/>
- <OutlinePoint x="145" y="143"/>
- <InEdgeId>7</InEdgeId>
- <InEdgeId>16</InEdgeId>
- <OutEdgeId>5</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <ActivitySlotDef ID="0" Name="EditDefinition" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="93" y="252"/>
- <OutlinePoint x="28" y="222"/>
- <OutlinePoint x="158" y="222"/>
- <OutlinePoint x="158" y="282"/>
- <OutlinePoint x="28" y="282"/>
- <InEdgeId>5</InEdgeId>
- <OutEdgeId>6</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="EditDefinition"/>
- </Properties>
- <activityDef>EditSchema</activityDef>
- </ActivitySlotDef>
- <NextDef ID="21" OriginVertexId="15" TerminusVertexId="4">
- <OriginPoint x="358" y="360"/>
- <TerminusPoint x="265" y="473"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="19" OriginVertexId="11" TerminusVertexId="15">
- <OriginPoint x="270" y="251"/>
- <TerminusPoint x="358" y="360"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="20" OriginVertexId="15" TerminusVertexId="14">
- <OriginPoint x="358" y="360"/>
- <TerminusPoint x="357" y="132"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- <NextDef ID="18" OriginVertexId="14" TerminusVertexId="11">
- <OriginPoint x="357" y="132"/>
- <TerminusPoint x="270" y="251"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="8" OriginVertexId="3" TerminusVertexId="4">
- <OriginPoint x="177" y="359"/>
- <TerminusPoint x="265" y="473"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="17" OriginVertexId="13" TerminusVertexId="14">
- <OriginPoint x="274" y="39"/>
- <TerminusPoint x="357" y="132"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="7" OriginVertexId="3" TerminusVertexId="2">
- <OriginPoint x="177" y="359"/>
- <TerminusPoint x="175" y="131"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- <NextDef ID="16" OriginVertexId="13" TerminusVertexId="2">
- <OriginPoint x="274" y="39"/>
- <TerminusPoint x="175" y="131"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="6" OriginVertexId="0" TerminusVertexId="3">
- <OriginPoint x="93" y="252"/>
- <TerminusPoint x="177" y="359"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="5" OriginVertexId="2" TerminusVertexId="0">
- <OriginPoint x="175" y="131"/>
- <TerminusPoint x="93" y="252"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Expected Time" Integer="0"/>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Has Timeout" Boolean="false"/>
- <KeyValuePair Key="Time Out Action" Integer="2"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Expected Time Unit" Integer="3"/>
- <KeyValuePair Key="Maximum Time" Integer="0"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Maximum Time Unit" Integer="3"/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="Timeout Activated" Boolean="false"/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
- <castorNonLayoutableChildren>AssignNewVersionFromLast</castorNonLayoutableChildren>
- <castorNonLayoutableChildren>EditSchema</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/CA/ManageScript.xml b/resources/boot/CA/ManageScript.xml
deleted file mode 100755
index f8100b0..0000000
--- a/resources/boot/CA/ManageScript.xml
+++ /dev/null
@@ -1,219 +0,0 @@
-<CompositeActivityDef ID="-1" Name="ManageScript" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="11" NextId="27">
- <LoopDef ID="15" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="425" y="291"/>
- <OutlinePoint x="395" y="279"/>
- <OutlinePoint x="455" y="279"/>
- <OutlinePoint x="455" y="303"/>
- <OutlinePoint x="395" y="303"/>
- <InEdgeId>24</InEdgeId>
- <OutEdgeId>25</OutEdgeId>
- <OutEdgeId>26</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <LoopDef ID="14" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="184" y="289"/>
- <OutlinePoint x="154" y="277"/>
- <OutlinePoint x="214" y="277"/>
- <OutlinePoint x="214" y="301"/>
- <OutlinePoint x="154" y="301"/>
- <InEdgeId>21</InEdgeId>
- <OutEdgeId>22</OutEdgeId>
- <OutEdgeId>23</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <JoinDef ID="13" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="425" y="80"/>
- <OutlinePoint x="395" y="68"/>
- <OutlinePoint x="455" y="68"/>
- <OutlinePoint x="455" y="92"/>
- <OutlinePoint x="395" y="92"/>
- <InEdgeId>18</InEdgeId>
- <InEdgeId>25</InEdgeId>
- <OutEdgeId>20</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <JoinDef ID="12" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="184" y="80"/>
- <OutlinePoint x="154" y="68"/>
- <OutlinePoint x="214" y="68"/>
- <OutlinePoint x="214" y="92"/>
- <OutlinePoint x="154" y="92"/>
- <InEdgeId>17</InEdgeId>
- <InEdgeId>23</InEdgeId>
- <OutEdgeId>19</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <AndSplitDef ID="11" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="305" y="26"/>
- <OutlinePoint x="275" y="14"/>
- <OutlinePoint x="335" y="14"/>
- <OutlinePoint x="335" y="38"/>
- <OutlinePoint x="275" y="38"/>
- <OutEdgeId>17</OutEdgeId>
- <OutEdgeId>18</OutEdgeId>
- <Properties>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String=""/>
- </Properties>
- </AndSplitDef>
- <ActivitySlotDef ID="0" Name="EditDefinition" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="115" y="182"/>
- <OutlinePoint x="50" y="152"/>
- <OutlinePoint x="180" y="152"/>
- <OutlinePoint x="180" y="212"/>
- <OutlinePoint x="50" y="212"/>
- <InEdgeId>19</InEdgeId>
- <OutEdgeId>21</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="EditDefinition"/>
- </Properties>
- <activityDef>EditScriptDefinition</activityDef>
- </ActivitySlotDef>
- <ActivitySlotDef ID="9" Name="AssignNewVersionFromLast_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="344" y="184"/>
- <OutlinePoint x="279" y="154"/>
- <OutlinePoint x="409" y="154"/>
- <OutlinePoint x="409" y="214"/>
- <OutlinePoint x="279" y="214"/>
- <InEdgeId>20</InEdgeId>
- <OutEdgeId>24</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="ViewName" String="Script"/>
- <KeyValuePair Key="Name" String="AssignNewVersionFromLast"/>
- </Properties>
- <activityDef>AssignNewVersionFromLast</activityDef>
- </ActivitySlotDef>
- <JoinDef ID="16" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="293" y="399"/>
- <OutlinePoint x="263" y="387"/>
- <OutlinePoint x="323" y="387"/>
- <OutlinePoint x="323" y="411"/>
- <OutlinePoint x="263" y="411"/>
- <InEdgeId>22</InEdgeId>
- <InEdgeId>26</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <NextDef ID="26" OriginVertexId="15" TerminusVertexId="16">
- <OriginPoint x="425" y="291"/>
- <TerminusPoint x="293" y="399"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="25" OriginVertexId="15" TerminusVertexId="13">
- <OriginPoint x="425" y="291"/>
- <TerminusPoint x="425" y="80"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- <NextDef ID="24" OriginVertexId="9" TerminusVertexId="15">
- <OriginPoint x="344" y="184"/>
- <TerminusPoint x="425" y="291"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="23" OriginVertexId="14" TerminusVertexId="12">
- <OriginPoint x="184" y="289"/>
- <TerminusPoint x="184" y="80"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- <NextDef ID="22" OriginVertexId="14" TerminusVertexId="16">
- <OriginPoint x="184" y="289"/>
- <TerminusPoint x="293" y="399"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="19" OriginVertexId="12" TerminusVertexId="0">
- <OriginPoint x="184" y="80"/>
- <TerminusPoint x="115" y="182"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="21" OriginVertexId="0" TerminusVertexId="14">
- <OriginPoint x="115" y="182"/>
- <TerminusPoint x="184" y="289"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="20" OriginVertexId="13" TerminusVertexId="9">
- <OriginPoint x="425" y="80"/>
- <TerminusPoint x="344" y="184"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="18" OriginVertexId="11" TerminusVertexId="13">
- <OriginPoint x="305" y="26"/>
- <TerminusPoint x="425" y="80"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="17" OriginVertexId="11" TerminusVertexId="12">
- <OriginPoint x="305" y="26"/>
- <TerminusPoint x="184" y="80"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Expected Time" Integer="0"/>
- <KeyValuePair Key="Has Timeout" Boolean="false"/>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Time Out Action" Integer="2"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Expected Time Unit" Integer="3"/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Maximum Time" Integer="0"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Maximum Time Unit" Integer="3"/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Timeout Activated" Boolean="false"/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- </Properties>
- <castorNonLayoutableChildren>EditScriptDefinition</castorNonLayoutableChildren>
- <castorNonLayoutableChildren>AssignNewVersionFromLast</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/CA/SchemaFactory.xml b/resources/boot/CA/SchemaFactory.xml
deleted file mode 100755
index aa903db..0000000
--- a/resources/boot/CA/SchemaFactory.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<CompositeActivityDef ID="-1" Name="SchemaFactory" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="5" NextId="14">
- <JoinDef ID="6" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="325"/>
- <OutlinePoint x="291" y="313"/>
- <OutlinePoint x="351" y="313"/>
- <OutlinePoint x="351" y="337"/>
- <OutlinePoint x="291" y="337"/>
- <InEdgeId>9</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <JoinDef ID="5" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="92"/>
- <OutlinePoint x="291" y="80"/>
- <OutlinePoint x="351" y="80"/>
- <OutlinePoint x="351" y="104"/>
- <OutlinePoint x="291" y="104"/>
- <InEdgeId>7</InEdgeId>
- <OutEdgeId>12</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="321" y="211"/>
- <OutlinePoint x="291" y="199"/>
- <OutlinePoint x="351" y="199"/>
- <OutlinePoint x="351" y="223"/>
- <OutlinePoint x="291" y="223"/>
- <InEdgeId>13</InEdgeId>
- <OutEdgeId>7</OutEdgeId>
- <OutEdgeId>9</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <ActivitySlotDef ID="10" Name="CreateNewLocalObjectDef_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="133" y="215"/>
- <OutlinePoint x="68" y="185"/>
- <OutlinePoint x="198" y="185"/>
- <OutlinePoint x="198" y="245"/>
- <OutlinePoint x="68" y="245"/>
- <InEdgeId>12</InEdgeId>
- <OutEdgeId>13</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="CreateNewSchema"/>
- <KeyValuePair Key="NewType" String="OD"/>
- </Properties>
- <activityDef>CreateNewLocalObjectDef</activityDef>
- </ActivitySlotDef>
- <NextDef ID="13" OriginVertexId="10" TerminusVertexId="3">
- <OriginPoint x="133" y="215"/>
- <TerminusPoint x="321" y="211"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="12" OriginVertexId="5" TerminusVertexId="10">
- <OriginPoint x="321" y="92"/>
- <TerminusPoint x="133" y="215"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="9" OriginVertexId="3" TerminusVertexId="6">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="325"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="7" OriginVertexId="3" TerminusVertexId="5">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="92"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
- <castorNonLayoutableChildren>CreateNewLocalObjectDef</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/CA/ScriptFactory.xml b/resources/boot/CA/ScriptFactory.xml
deleted file mode 100755
index dac5ba7..0000000
--- a/resources/boot/CA/ScriptFactory.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<CompositeActivityDef ID="-1" Name="ScriptFactory" Height="0" Width="0" IsLayoutable="false" IsComposite="true">
- <childrenGraphModel>
- <GraphModelCastorData ClassNameOfVertexOutlineCreator="com.c2kernel.lifecycle.gui.model.WfVertexDefOutlineCreator" StartVertexId="5" NextId="14">
- <JoinDef ID="6" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="325"/>
- <OutlinePoint x="291" y="313"/>
- <OutlinePoint x="351" y="313"/>
- <OutlinePoint x="351" y="337"/>
- <OutlinePoint x="291" y="337"/>
- <InEdgeId>9</InEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <JoinDef ID="5" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="321" y="92"/>
- <OutlinePoint x="291" y="80"/>
- <OutlinePoint x="351" y="80"/>
- <OutlinePoint x="351" y="104"/>
- <OutlinePoint x="291" y="104"/>
- <InEdgeId>7</InEdgeId>
- <OutEdgeId>12</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Type" String="Join"/>
- </Properties>
- </JoinDef>
- <LoopDef ID="3" Name="" Height="24" Width="60" IsLayoutable="true" IsComposite="false" isNext="0">
- <CentrePoint x="321" y="211"/>
- <OutlinePoint x="291" y="199"/>
- <OutlinePoint x="351" y="199"/>
- <OutlinePoint x="351" y="223"/>
- <OutlinePoint x="291" y="223"/>
- <InEdgeId>13</InEdgeId>
- <OutEdgeId>7</OutEdgeId>
- <OutEdgeId>9</OutEdgeId>
- <Properties>
- <KeyValuePair Key="LastNum" String="2"/>
- <KeyValuePair Key="RoutingScriptVersion" String=""/>
- <KeyValuePair Key="RoutingScriptName" String="javascript:true;"/>
- </Properties>
- </LoopDef>
- <ActivitySlotDef ID="10" Name="CreateNewLocalObjectDef_" Height="60" Width="130" IsLayoutable="true" IsComposite="false">
- <CentrePoint x="133" y="215"/>
- <OutlinePoint x="68" y="185"/>
- <OutlinePoint x="198" y="185"/>
- <OutlinePoint x="198" y="245"/>
- <OutlinePoint x="68" y="245"/>
- <InEdgeId>12</InEdgeId>
- <OutEdgeId>13</OutEdgeId>
- <Properties>
- <KeyValuePair Key="Prefill" Boolean="false"/>
- <KeyValuePair Key="Prefill Version" String="-1"/>
- <KeyValuePair Key="Name" String="CreateNewScript"/>
- <KeyValuePair Key="NewType" String="SC"/>
- </Properties>
- <activityDef>CreateNewLocalObjectDef</activityDef>
- </ActivitySlotDef>
- <NextDef ID="13" OriginVertexId="10" TerminusVertexId="3">
- <OriginPoint x="133" y="215"/>
- <TerminusPoint x="321" y="211"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="12" OriginVertexId="5" TerminusVertexId="10">
- <OriginPoint x="321" y="92"/>
- <TerminusPoint x="133" y="215"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- </Properties>
- </NextDef>
- <NextDef ID="9" OriginVertexId="3" TerminusVertexId="6">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="325"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="false"/>
- </Properties>
- </NextDef>
- <NextDef ID="7" OriginVertexId="3" TerminusVertexId="5">
- <OriginPoint x="321" y="211"/>
- <TerminusPoint x="321" y="92"/>
- <Properties>
- <KeyValuePair Key="Type" String="Straight"/>
- <KeyValuePair Key="Alias" String="true"/>
- </Properties>
- </NextDef>
- </GraphModelCastorData>
- </childrenGraphModel>
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String=""/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String=""/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
- <castorNonLayoutableChildren>CreateNewLocalObjectDef</castorNonLayoutableChildren>
-</CompositeActivityDef>
diff --git a/resources/boot/EA/AssignNewVersionFromLast.xml b/resources/boot/EA/AssignNewVersionFromLast.xml
deleted file mode 100755
index 1ef30b5..0000000
--- a/resources/boot/EA/AssignNewVersionFromLast.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<ActivityDef ID="10" Name="AssignNewVersionFromLast" Height="0" Width="0" IsLayoutable="false" IsComposite="false">
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String="Creates a new numbered viewpoint as a clone of the last for use in workflows. You can change the referenced version in the Data Viewer."/>
- <KeyValuePair Key="SchemaVersion" String=""/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String="Admin"/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String="CreateNewNumberedVersionFromLast"/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String="0"/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- <KeyValuePair Key="ViewName" String=""/>
- </Properties>
-</ActivityDef>
diff --git a/resources/boot/EA/CreateNewLocalObjectDef.xml b/resources/boot/EA/CreateNewLocalObjectDef.xml
deleted file mode 100755
index e4a9426..0000000
--- a/resources/boot/EA/CreateNewLocalObjectDef.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<ActivityDef ID="11" Name="CreateNewLocalObjectDef" Height="0" Width="0" IsLayoutable="false" IsComposite="false">
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String="CreateNewLocalObjectDef"/>
- <KeyValuePair Key="SchemaVersion" String="0"/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String=""/>
- <KeyValuePair Key="Agent Role" String="Admin"/>
- <KeyValuePair Key="SchemaType" String="NewLocalObjectDef"/>
- <KeyValuePair Key="ScriptName" String="LocalObjectDefCreator"/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String="0"/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
-</ActivityDef>
diff --git a/resources/boot/EA/EditActivityDef.xml b/resources/boot/EA/EditActivityDef.xml
deleted file mode 100755
index e90c225..0000000
--- a/resources/boot/EA/EditActivityDef.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<ActivityDef ID="23" Name="EditActivityDef" Height="0" Width="0" IsLayoutable="false" IsComposite="false">
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String="Edit this Activity Definition"/>
- <KeyValuePair Key="SchemaVersion" String="0"/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String="last"/>
- <KeyValuePair Key="Agent Role" String="Admin"/>
- <KeyValuePair Key="SchemaType" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
-</ActivityDef>
diff --git a/resources/boot/EA/EditProperties.xml b/resources/boot/EA/EditProperties.xml
deleted file mode 100755
index 15d51b8..0000000
--- a/resources/boot/EA/EditProperties.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Andrew Branson (CERN) -->
-<ActivityDef ID="251" Name="EditProperties" Height="0" Width="0" IsLayoutable="false" IsComposite="false">
- <Properties>
- <KeyValuePair Key="SchemaType" String="PropertyDescription"/>
- <KeyValuePair Key="Description" String="Define the properties for instances of this description"/>
- <KeyValuePair Key="ItemSystemKey" String=""/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- <KeyValuePair Key="Agent Role" String="Coor"/>
- <KeyValuePair Key="Name" String="EditProperties"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Viewpoint" String="last"/>
- <KeyValuePair Key="SchemaVersion" String="0"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- </Properties>
-</ActivityDef>
diff --git a/resources/boot/EA/EditSchema.xml b/resources/boot/EA/EditSchema.xml
deleted file mode 100755
index 3b01fdc..0000000
--- a/resources/boot/EA/EditSchema.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<ActivityDef ID="1" Name="EditSchema" Height="0" Width="0" IsLayoutable="false" IsComposite="false">
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String="Edit this XML Schema"/>
- <KeyValuePair Key="SchemaVersion" String="0"/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Viewpoint" String="last"/>
- <KeyValuePair Key="Agent Role" String="Admin"/>
- <KeyValuePair Key="SchemaType" String="Schema"/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- </Properties>
-</ActivityDef>
diff --git a/resources/boot/EA/EditScriptDefinition.xml b/resources/boot/EA/EditScriptDefinition.xml
deleted file mode 100755
index 11c14ec..0000000
--- a/resources/boot/EA/EditScriptDefinition.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<ActivityDef ID="1" Name="EditScriptDefinition" Height="0" Width="0" IsLayoutable="false" IsComposite="false">
- <Properties>
- <KeyValuePair Key="Repeatable" Boolean="false"/>
- <KeyValuePair Key="Agent Name" String=""/>
- <KeyValuePair Key="Autostart" Boolean="true"/>
- <KeyValuePair Key="Mail Message" String=""/>
- <KeyValuePair Key="Mail event" String=""/>
- <KeyValuePair Key="Description" String="Edit this script definition"/>
- <KeyValuePair Key="SchemaVersion" String="0"/>
- <KeyValuePair Key="Show time" Boolean="true"/>
- <KeyValuePair Key="Agent Role" String="Admin"/>
- <KeyValuePair Key="Viewpoint" String="last"/>
- <KeyValuePair Key="SchemaType" String="Script"/>
- <KeyValuePair Key="Ignorable" Boolean="false"/>
- <KeyValuePair Key="ScriptName" String=""/>
- <KeyValuePair Key="Skippable" Boolean="false"/>
- <KeyValuePair Key="ScriptVersion" String=""/>
- </Properties>
-</ActivityDef>
diff --git a/resources/boot/OD/CompositeActivityDef.xml b/resources/boot/OD/CompositeActivityDef.xsd
index e840734..e840734 100755..100644
--- a/resources/boot/OD/CompositeActivityDef.xml
+++ b/resources/boot/OD/CompositeActivityDef.xsd
diff --git a/resources/boot/OD/ElementaryActivityDef.xml b/resources/boot/OD/ElementaryActivityDef.xsd
index ea637e4..ea637e4 100755..100644
--- a/resources/boot/OD/ElementaryActivityDef.xml
+++ b/resources/boot/OD/ElementaryActivityDef.xsd
diff --git a/resources/boot/OD/Module.xsd b/resources/boot/OD/Module.xsd
new file mode 100644
index 0000000..78d34d7
--- /dev/null
+++ b/resources/boot/OD/Module.xsd
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2007 rel. 3 (http://www.altova.com) by Andrew Branson (CERN) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:element name="CristalModule">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Info">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Description" type="xs:string"/>
+ <xs:element name="Version" type="xs:string"/>
+ <xs:element name="Dependency" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ResourceURL" type="xs:string" minOccurs="0"/>
+ <xs:element name="Config" minOccurs="0" maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>Configuration parameters to add to the Cristal VM on launch. May target either client or server processes.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute ref="target"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Script" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="event"/>
+ <xs:attribute ref="target"/>
+ <xs:attribute name="lang" type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Imports" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>Items to import into or verify within the Cristal server upon launch.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="Resource" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="type" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="EA"/>
+ <xs:enumeration value="CA"/>
+ <xs:enumeration value="OD"/>
+ <xs:enumeration value="SC"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Property" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Outcome" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="schema" type="xs:string" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="required"/>
+ <xs:attribute name="viewname" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Dependency" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="DependencyMember" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="workflow" type="xs:string" use="optional"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Agent" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="Role" type="xs:string" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="password" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string" use="required"/>
+ <xs:attribute name="ns" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>Prefix for module components</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:attribute name="target">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="client"/>
+ <xs:enumeration value="server"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="event">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="startup"/>
+ <xs:enumeration value="shutdown"/>
+ <xs:enumeration value="install"/>
+ <xs:enumeration value="uninstall"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+</xs:schema>
diff --git a/resources/boot/OD/New.xml b/resources/boot/OD/New.xml
deleted file mode 100755
index 91755c8..0000000
--- a/resources/boot/OD/New.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
-</xs:schema>
diff --git a/resources/boot/OD/NewAgent.xml b/resources/boot/OD/NewAgent.xsd
index 773f4fc..773f4fc 100755..100644
--- a/resources/boot/OD/NewAgent.xml
+++ b/resources/boot/OD/NewAgent.xsd
diff --git a/resources/boot/OD/NewItem.xml b/resources/boot/OD/NewItem.xsd
index bcd5298..bcd5298 100755..100644
--- a/resources/boot/OD/NewItem.xml
+++ b/resources/boot/OD/NewItem.xsd
diff --git a/resources/boot/OD/NewLocalObjectDef.xml b/resources/boot/OD/NewLocalObjectDef.xml
deleted file mode 100755
index 0186872..0000000
--- a/resources/boot/OD/NewLocalObjectDef.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2006 sp1 U (http://www.altova.com) by Andrew Branson (CERN) -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
- <xs:element name="NewLocalObjectDef">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="ObjectName" type="xs:string">
- <xs:annotation>
- <xs:documentation>Please give a name for your new object.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="SubFolder" type="xs:string">
- <xs:annotation>
- <xs:documentation>If you want to store your object in a subfolder, give the subpath here.</xs:documentation>
- </xs:annotation>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-</xs:schema>
diff --git a/resources/boot/OD/PredefinedStepOutcome.xml b/resources/boot/OD/PredefinedStepOutcome.xsd
index bc0ac52..bc0ac52 100755..100644
--- a/resources/boot/OD/PredefinedStepOutcome.xml
+++ b/resources/boot/OD/PredefinedStepOutcome.xsd
diff --git a/resources/boot/OD/PropertyDescription.xml b/resources/boot/OD/PropertyDescription.xsd
index 886092a..886092a 100755..100644
--- a/resources/boot/OD/PropertyDescription.xml
+++ b/resources/boot/OD/PropertyDescription.xsd
diff --git a/resources/boot/OD/Schema.xml b/resources/boot/OD/Schema.xsd
index fed1949..fed1949 100755..100644
--- a/resources/boot/OD/Schema.xml
+++ b/resources/boot/OD/Schema.xsd
diff --git a/resources/boot/OD/Script.xml b/resources/boot/OD/Script.xsd
index 5726aca..5726aca 100755..100644
--- a/resources/boot/OD/Script.xml
+++ b/resources/boot/OD/Script.xsd
diff --git a/resources/boot/SC/CreateNewNumberedVersionFromLast.xml b/resources/boot/SC/CreateNewNumberedVersionFromLast.xml
deleted file mode 100755
index bb66f4c..0000000
--- a/resources/boot/SC/CreateNewNumberedVersionFromLast.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<cristalscript>
- <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
- <script language="javascript" name="CreateNewNumberedVersionFromLast"><![CDATA[
-
- var job = bsf.lookupBean("job");
- var item = bsf.lookupBean("item");
- var agent = bsf.lookupBean("agent");
- var errorBuffer = bsf.lookupBean("errors");
-
- var viewName = job.getActPropString("ViewName");
-
- if (viewName.equals("")) {
- errorBuffer.addError("ViewName not specified. Cannot create new version.");
- errorBuffer.setFatal();
- }
-
- if (!(errorBuffer.getFatal())) {
- var lastView = -1;
- var existingViews = item.getContents("/ViewPoint/"+viewName);
- for (i=0; i<existingViews.length; i++) {
- var thisView = parseInt(existingViews[i]);
- if (thisView!=NaN && lastView < thisView) lastView = thisView;
- }
- lastView++;
- try {
- var existingLast = agent.unmarshall(item.queryData("/ViewPoint/"+viewName+"/last"));
- } catch (e) {
- errorBuffer.addError("No data found. You must submit at least one version before executing this activity.");
- errorBuffer.setFatal();
- }
- if (!(errorBuffer.getFatal())) {
- existingLast.setName(lastView);
- agent.execute(item, "AddC2KObject", existingLast);
- }
- }
- errorBuffer;
- ]]></script>
-</cristalscript>
diff --git a/resources/boot/SC/LocalObjectDefCreator.xml b/resources/boot/SC/LocalObjectDefCreator.xml
deleted file mode 100755
index c57cbc1..0000000
--- a/resources/boot/SC/LocalObjectDefCreator.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.utils.Resource);
- importClass(Packages.com.c2kernel.process.Bootstrap);
- importClass(Packages.com.c2kernel.lifecycle.CompositeActivityDef);
- importClass(Packages.com.c2kernel.lifecycle.ActivityDef);
-
- var job = bsf.lookupBean("job");
- var item = bsf.lookupBean("item");
- var agent = bsf.lookupBean("agent");
- var errorBuffer = bsf.lookupBean("errors");
- var type = job.getActPropString("NewType");
- var name = job.getOutcome().getDOM().getDocumentElement().
- getElementsByTagName("ObjectName").item(0).getFirstChild().getData();
- var folder = job.getOutcome().getDOM().getDocumentElement().
- getElementsByTagName("SubFolder").item(0).getFirstChild();
- var domPath = Bootstrap.getTypeRoot(type).toString();
- if (folder != null) domPath = domPath + "/" + folder.getData();
-
- var params = new Array(2);
- params[0] = name;
-
- params[1] = domPath;
-
- if (!(errorBuffer.getFatal())) {
- try {
- agent.execute(item, "CreateItemFromDescription", params);
- } catch (e) {
- errorBuffer.addError("Could not create "+name+": "+e.message);
- errorBuffer.setFatal();
- }
- }
-
- if (!(errorBuffer.getFatal())) { // store an outcome in the new desc
- var newObj;
- if (type.equals("EA") || type.equals("CA")) {
- var newAct = type.equals("CA")?new CompositeActivityDef(): new ActivityDef();
- newAct.setName(name);
- newObj = CastorXMLUtility.marshall(newAct);
- }
- else
- newObj = Resource.getTextResource("boot/"+type+"/New.xml");
-
- var newPath = new Packages.com.c2kernel.lookup.DomainPath(domPath+"/"+name);
- var newItem = agent.getItem(newPath);
- newItem.requestAction(agent.getSystemKey(), "workflow/domain/EditDefinition", 4, newObj);
- var tree = Packages.com.c2kernel.gui.MainFrame.treeBrowser;
- if (tree != null) // open new item in the gui
- tree.push(newPath);
-
- }
- errorBuffer;
- ]]></script>
-</cristalscript>
diff --git a/resources/boot/SC/New.xml b/resources/boot/SC/New.xml
deleted file mode 100755
index a706310..0000000
--- a/resources/boot/SC/New.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<cristalscript>
- <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
- <script language="javascript" name=""><![CDATA[
-
- var job = bsf.lookupBean("job");
- var item = bsf.lookupBean("item");
- var agent = bsf.lookupBean("agent");
- var errorBuffer = bsf.lookupBean("errors");
-
- errorBuffer;
- ]]></script>
-</cristalscript>
diff --git a/resources/boot/allbootitems.txt b/resources/boot/allbootitems.txt
index 004bdf1..277699c 100755..100644
--- a/resources/boot/allbootitems.txt
+++ b/resources/boot/allbootitems.txt
@@ -1,34 +1,14 @@
-OD/Schema
OD/CompositeActivityDef
OD/ElementaryActivityDef
+OD/Module
+OD/NewAgent
+OD/NewItem
OD/PredefinedStepOutcome
OD/PropertyDescription
+OD/Schema
OD/Script
-OD/NewLocalObjectDef
-OD/NewItem
-OD/NewAgent
-EA/AssignNewVersionFromLast
-EA/EditActivityDef
-EA/EditSchema
-EA/EditScriptDefinition
-EA/CreateNewLocalObjectDef
EA/CreateNewItem
EA/CreateNewAgent
-EA/EditProperties
-CA/ManageCompositeActDef
-CA/ManageElementaryActDef
-CA/ManageSchema
-CA/ManageScript
-CA/SchemaFactory
-CA/CompositeActivityFactory
-CA/ElementaryActivityFactory
-CA/ScriptFactory
CA/NoWorkflow
CA/ServerItemWorkflow
-SC/CreateNewNumberedVersionFromLast
-SC/LocalObjectDefCreator
SC/ServerNewEntity
-factory/CA
-factory/EA
-factory/OD
-factory/SC \ No newline at end of file
diff --git a/resources/boot/factory/CA.xml b/resources/boot/factory/CA.xml
deleted file mode 100755
index 908647a..0000000
--- a/resources/boot/factory/CA.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-<NewItem initialPath="/desc" name="CompositeActivityDefFactory" workflow="CompositeActivityFactory">
- <Property name="LocalObjectType" value="CompositeActivityDef"/>
- <Property name="Type" value="LocalObjectFactory"/>
- <Dependency name="Workflow" isDescription="false">
- <DependencyMember itemPath="/desc/ActivityDesc/system/kernel/ManageCompositeActDef"/>
- </Dependency>
-</NewItem>
diff --git a/resources/boot/factory/EA.xml b/resources/boot/factory/EA.xml
deleted file mode 100755
index 1185f10..0000000
--- a/resources/boot/factory/EA.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-<NewItem initialPath="/desc" name="ElementaryActivityDefFactory" workflow="ElementaryActivityFactory">
- <Property name="LocalObjectType" value="ElementaryActivityDef"/>
- <Property name="Type" value="LocalObjectFactory"/>
- <Dependency name="Workflow" isDescription="false">
- <DependencyMember itemPath="/desc/ActivityDesc/system/kernel/ManageElementaryActDef"/>
- </Dependency>
-</NewItem>
diff --git a/resources/boot/factory/OD.xml b/resources/boot/factory/OD.xml
deleted file mode 100755
index 275048b..0000000
--- a/resources/boot/factory/OD.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-<NewItem initialPath="/desc" name="SchemaFactory" workflow="SchemaFactory">
- <Property name="LocalObjectType" value="Schema"/>
- <Property name="Type" value="LocalObjectFactory"/>
- <Dependency name="Workflow" isDescription="false">
- <DependencyMember itemPath="/desc/ActivityDesc/system/kernel/ManageSchema"/>
- </Dependency>
-</NewItem>
diff --git a/resources/boot/factory/SC.xml b/resources/boot/factory/SC.xml
deleted file mode 100755
index 7f3f97e..0000000
--- a/resources/boot/factory/SC.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0"?>
-<NewItem initialPath="/desc" name="ScriptFactory" workflow="ScriptFactory">
- <Property name="LocalObjectType" value="Script"/>
- <Property name="Type" value="LocalObjectFactory"/>
- <Dependency name="Workflow" isDescription="false">
- <DependencyMember itemPath="/desc/ActivityDesc/system/kernel/ManageScript"/>
- </Dependency>
-</NewItem>
diff --git a/resources/images/typeicons/localobjectfactory_16.png b/resources/images/typeicons/localobjectfactory_16.png
deleted file mode 100755
index 9979ee7..0000000
--- a/resources/images/typeicons/localobjectfactory_16.png
+++ /dev/null
Binary files differ
diff --git a/resources/images/typeicons/localobjectfactory_32.png b/resources/images/typeicons/localobjectfactory_32.png
deleted file mode 100755
index f43f44f..0000000
--- a/resources/images/typeicons/localobjectfactory_32.png
+++ /dev/null
Binary files differ
diff --git a/resources/mapFiles/ModuleMap.xml b/resources/mapFiles/ModuleMap.xml
new file mode 100644
index 0000000..4bc4db1
--- /dev/null
+++ b/resources/mapFiles/ModuleMap.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<mapping>
+ <class name="com.c2kernel.process.Module">
+ <map-to xml="CristalModule"/>
+ <field name="ns" direct="false" type="string">
+ <bind-xml name="ns" node="attribute"/>
+ </field>
+ <field name="name" direct="false" type="string">
+ <bind-xml name="name" node="attribute"/>
+ </field>
+ <field name="desc" direct="false" type="string">
+ <bind-xml name="Description" node="element"/>
+ </field>
+ <field name="version" direct="false" type="string">
+ <bind-xml name="Version" node="element"/>
+ </field>
+ <field name="dependency" collection="array" direct="false" type="string">
+ <bind-xml name="Dependency" node="element"/>
+ </field>
+ <field name="resURL" direct="false" type="string">
+ <bind-xml name="ResourceURL" node="element"/>
+ </field>
+ <field name="dependency" collection="arraylist" direct="false" type="string">
+ <bind-xml name="Config" node="element"/>
+ </field>
+ </class>
+</mapping>
diff --git a/resources/mapFiles/index b/resources/mapFiles/index
index 58295a1..03de6f2 100644
--- a/resources/mapFiles/index
+++ b/resources/mapFiles/index
@@ -7,4 +7,4 @@ CollectionMap.xml
JobListMap.xml
ViewpointMap.xml
TransferMap.xml
-NewEntityMap.xml \ No newline at end of file
+NewEntityMap.xml
diff --git a/resources/textFiles/version.txt b/resources/textFiles/version.txt
index 17e85ef..64c18b9 100755..100644
--- a/resources/textFiles/version.txt
+++ b/resources/textFiles/version.txt
@@ -1 +1 @@
-C2Kernel V2.2 Build 2 \ No newline at end of file
+C2Kernel V2.3 Build 1 \ No newline at end of file
diff --git a/source/com/c2kernel/collection/AggregationMember.java b/source/com/c2kernel/collection/AggregationMember.java
index d383f02..e3b213e 100644
--- a/source/com/c2kernel/collection/AggregationMember.java
+++ b/source/com/c2kernel/collection/AggregationMember.java
@@ -136,7 +136,7 @@ public class AggregationMember extends GraphableVertex implements CollectionMemb
public Image getImage() {
if (image == null) {
- image = Resource.getImageResource("typeicons/"+getProperties().get("Type")+"_16.png").getImage();
+ image = Resource.findImage("typeicons/"+getProperties().get("Type")+"_16.png").getImage();
}
return image;
}
diff --git a/source/com/c2kernel/graph/view/EditorToolBar.java b/source/com/c2kernel/graph/view/EditorToolBar.java
index f84b084..61c7409 100644
--- a/source/com/c2kernel/graph/view/EditorToolBar.java
+++ b/source/com/c2kernel/graph/view/EditorToolBar.java
@@ -62,15 +62,15 @@ public class EditorToolBar extends Box implements Printable
protected JComboBox mEdgeTypeBox = new JComboBox();
// Mode buttons
protected ButtonGroup mModeButtonGroup = new ButtonGroup();
- protected JToggleButton mVertexModeButton = new JToggleButton(Resource.getImageResource("graph/newvertex.png"));
- protected JToggleButton mSelectModeButton = new JToggleButton(Resource.getImageResource("graph/selection.gif"));
- protected JToggleButton mEdgeModeButton = new JToggleButton(Resource.getImageResource("graph/edge.png"));
+ protected JToggleButton mVertexModeButton = new JToggleButton(Resource.findImage("graph/newvertex.png"));
+ protected JToggleButton mSelectModeButton = new JToggleButton(Resource.findImage("graph/selection.gif"));
+ protected JToggleButton mEdgeModeButton = new JToggleButton(Resource.findImage("graph/edge.png"));
// Normal buttons
protected JButton[] mOtherButtons = null;
- protected JButton mStartButton = new JButton(Resource.getImageResource("graph/start.png"));
- protected JButton mDeleteButton = new JButton(Resource.getImageResource("graph/delete.png"));
- protected JButton mPrintButton = new JButton(Resource.getImageResource("graph/print.png"));
- protected JButton mCopyButton = new JButton(Resource.getImageResource("graph/copy.png"));
+ protected JButton mStartButton = new JButton(Resource.findImage("graph/start.png"));
+ protected JButton mDeleteButton = new JButton(Resource.findImage("graph/delete.png"));
+ protected JButton mPrintButton = new JButton(Resource.findImage("graph/print.png"));
+ protected JButton mCopyButton = new JButton(Resource.findImage("graph/copy.png"));
// Controllers
protected StartVertexController mStartVertexController = new StartVertexController();
protected DeletionController mDeletionController = new DeletionController();
diff --git a/source/com/c2kernel/graph/view/GraphPanel.java b/source/com/c2kernel/graph/view/GraphPanel.java
index 5edd070..012fe25 100644
--- a/source/com/c2kernel/graph/view/GraphPanel.java
+++ b/source/com/c2kernel/graph/view/GraphPanel.java
@@ -27,7 +27,7 @@ public class GraphPanel extends JPanel implements Observer
{
protected final Paint mSelectionPaint = Color.black;
protected final Paint mStartPaint = Color.green;
- protected final Image mResizePadImg = Resource.getImageResource("graph/resizepad.gif").getImage();
+ protected final Image mResizePadImg = Resource.findImage("graph/resizepad.gif").getImage();
protected final BasicStroke mDashed =
new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, new float[] { 5.0f }, 0.0f);
protected GraphModelManager mGraphModelManager = null;
diff --git a/source/com/c2kernel/gui/Console.java b/source/com/c2kernel/gui/Console.java
index a16e6f6..3427f82 100644
--- a/source/com/c2kernel/gui/Console.java
+++ b/source/com/c2kernel/gui/Console.java
@@ -130,7 +130,9 @@ public class Console extends JFrame {
getContentPane().add(inputBox);
try {
- Properties utilProps = FileStringUtility.loadConfigFile( Resource.getDomainResourceURL("ScriptUtils.conf").toString());
+ // TODO: merge module script utilities together and prepend with namespace
+ Properties utilProps = FileStringUtility.loadConfigFile( Resource.findTextResource("ScriptUtils.conf") );
+
Box utilBox = Box.createHorizontalBox();
for (Object name2 : utilProps.keySet()) {
String name = (String) name2;
diff --git a/source/com/c2kernel/gui/DynamicTreeBuilder.java b/source/com/c2kernel/gui/DynamicTreeBuilder.java
index a72c156..050a76a 100644
--- a/source/com/c2kernel/gui/DynamicTreeBuilder.java
+++ b/source/com/c2kernel/gui/DynamicTreeBuilder.java
@@ -25,15 +25,15 @@ import com.c2kernel.utils.Resource;
public class DynamicTreeBuilder implements NodeSubscriber {
private DefaultTreeModel treeModel;
- private DefaultMutableTreeNode parent;
+ private final DefaultMutableTreeNode parent;
public short state = IDLE;
public static final short IDLE = 0;
public static final short LOADING = 1;
public static final short PARTIAL = 2;
public static final short FINISHED = 3;
- private DefaultMutableTreeNode loading;
- private static ImageIcon loadIcon = Resource.getImageResource("loading.gif");
- private static ImageIcon pauseIcon = Resource.getImageResource("reload.gif");
+ private final DefaultMutableTreeNode loading;
+ private static ImageIcon loadIcon = Resource.findImage("loading.gif");
+ private static ImageIcon pauseIcon = Resource.findImage("reload.gif");
/**
* The newly created DynamicTreeBuilder records its parent node - the one for which it will build child nodes for.
diff --git a/source/com/c2kernel/gui/EntityDetails.java b/source/com/c2kernel/gui/EntityDetails.java
index 7cb4f66..0a04536 100644
--- a/source/com/c2kernel/gui/EntityDetails.java
+++ b/source/com/c2kernel/gui/EntityDetails.java
@@ -134,7 +134,7 @@ public class EntityDetails extends JPanel implements ChangeListener, Runnable {
c.anchor = GridBagConstraints.NORTH;
c.ipadx = 5;
c.ipady = 5;
- current = new JLabel(Resource.getImageResource("typeicons/"+myEntity.getIconName()+"_32.png"));
+ current = new JLabel(Resource.findImage("typeicons/"+myEntity.getIconName()+"_32.png"));
gridbag.setConstraints(current, c);
titlePanel.add(current);
// Place Name/ID Label
diff --git a/source/com/c2kernel/gui/EntityFinder.java b/source/com/c2kernel/gui/EntityFinder.java
index 18038c9..0d53545 100644
--- a/source/com/c2kernel/gui/EntityFinder.java
+++ b/source/com/c2kernel/gui/EntityFinder.java
@@ -43,8 +43,8 @@ public class EntityFinder extends Box implements Runnable {
static {
try
{
- mNextIcon =Resource.getImageResource("next.png");
- mFindIcon =Resource.getImageResource("find.png");
+ mNextIcon =Resource.findImage("next.png");
+ mFindIcon =Resource.findImage("find.png");
}
catch (Exception e)
{
@@ -187,8 +187,8 @@ public class EntityFinder extends Box implements Runnable {
}
private class ListenerButtonListener implements ItemListener {
- private DomainKeyListener listener;
- private JToggleButton listenerButton;
+ private final DomainKeyListener listener;
+ private final JToggleButton listenerButton;
public ListenerButtonListener(DomainKeyListener newListener, JToggleButton listenerButton) {
this.listener = newListener;
diff --git a/source/com/c2kernel/gui/LoginBox.java b/source/com/c2kernel/gui/LoginBox.java
index 415469b..aee469f 100644
--- a/source/com/c2kernel/gui/LoginBox.java
+++ b/source/com/c2kernel/gui/LoginBox.java
@@ -47,8 +47,8 @@ import com.c2kernel.utils.Resource;
*/
public class LoginBox extends JFrame {
- private int xMov;
- private int yMov;
+ private final int xMov;
+ private final int yMov;
public String errorMessage=new String("");
private int maxNumberLogon;
public boolean action = false;
@@ -72,7 +72,7 @@ public class LoginBox extends JFrame {
javax.swing.ImageIcon imageHolder,MainFrame mainFrame) {
String iconFile = Gateway.getProperty("AppIcon");
if (iconFile != null)
- this.setIconImage(Resource.getImageResource(iconFile).getImage());
+ this.setIconImage(Resource.findImage(iconFile).getImage());
this.errorLabel.setText(bottomMessage);
if (errorMessage.compareTo("")!=0) this.errorLabel.setText(errorMessage);
mainFrameFather=mainFrame;
diff --git a/source/com/c2kernel/gui/Main.java b/source/com/c2kernel/gui/Main.java
index 5a9209e..7cf54cb 100644
--- a/source/com/c2kernel/gui/Main.java
+++ b/source/com/c2kernel/gui/Main.java
@@ -1,6 +1,7 @@
package com.c2kernel.gui;
+import com.c2kernel.process.Gateway;
import com.c2kernel.process.StandardClient;
import com.c2kernel.utils.Logger;
@@ -16,7 +17,7 @@ public class Main extends StandardClient
{
try
{
- standardSetUp(args);
+ Gateway.init(readC2KArgs(args), false);
Logger.initConsole("GUI");
MainFrame client = new MainFrame();
client.showLogin();
@@ -28,7 +29,7 @@ public class Main extends StandardClient
try
{
- standardTearDown();
+ Gateway.close();
}
catch(Exception ex1)
{
diff --git a/source/com/c2kernel/gui/MainFrame.java b/source/com/c2kernel/gui/MainFrame.java
index 2e39d0d..d09bc4c 100644
--- a/source/com/c2kernel/gui/MainFrame.java
+++ b/source/com/c2kernel/gui/MainFrame.java
@@ -108,7 +108,7 @@ public class MainFrame extends javax.swing.JFrame {
pictureUrl = new URL(logoURL);
imageHolder = new ImageIcon(pictureUrl);
} catch (java.net.MalformedURLException m) {
- imageHolder = Resource.getImageResource(logoURL);
+ imageHolder = Resource.findImage(logoURL);
}
LoginBox login =
@@ -133,10 +133,10 @@ public class MainFrame extends javax.swing.JFrame {
String iconFile = Gateway.getProperty("AppIcon");
if (iconFile != null)
- this.setIconImage(Resource.getImageResource(iconFile).getImage());
+ this.setIconImage(Resource.findImage(iconFile).getImage());
//preload loading image
- Resource.getImageResource("loading.gif");
+ Resource.findImage("loading.gif");
// close listener
addWindowListener(new java.awt.event.WindowAdapter() {
@Override
diff --git a/source/com/c2kernel/gui/MenuBuilder.java b/source/com/c2kernel/gui/MenuBuilder.java
index 6d1bfbc..8acfca7 100644
--- a/source/com/c2kernel/gui/MenuBuilder.java
+++ b/source/com/c2kernel/gui/MenuBuilder.java
@@ -25,6 +25,7 @@ import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.html.HTMLEditorKit;
+import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.lookup.DomainPath;
import com.c2kernel.lookup.Path;
import com.c2kernel.persistency.ClusterStorage;
@@ -218,14 +219,23 @@ public class MenuBuilder extends JMenuBar implements ActionListener, ItemListene
JLabel title = new JLabel(aboutInfo);
about.add(title);
- about.add(new JLabel("Domain version: "+Resource.getDomainVersion()));
about.add(new JLabel("Kernel version: "+Resource.getKernelVersion()));
+ about.add(new JLabel("Modules loaded: "+Gateway.getModuleManager().getModuleVersions()));
// get license info
+
StringBuffer lictxt = new StringBuffer();
- String domlictxt = Resource.getTextResource("license.html");
- if (domlictxt != null)
- lictxt.append(domlictxt);
- lictxt.append(Resource.getTextResource("textFiles/license.html"));
+ try {
+ lictxt.append(Resource.getTextResource(null, "textFiles/license.html"));
+ } catch (ObjectNotFoundException e) { } // no kernel license found
+ for (String ns : Resource.getModuleBaseURLs().keySet()) {
+ String domlictxt;
+ try {
+ domlictxt = Resource.getTextResource(ns, "license.html");
+ lictxt.append(domlictxt).append("\n");
+ } catch (ObjectNotFoundException e) { }
+
+ }
+
JEditorPane license = new JEditorPane();
license.setEditable(false);
@@ -242,7 +252,7 @@ public class MenuBuilder extends JMenuBar implements ActionListener, ItemListene
myPane.setMessageType(JOptionPane.INFORMATION_MESSAGE);
JDialog dialog = myPane.createDialog(null, Language.translate("About"));
dialog.setResizable(false);
- Icon icon = Resource.getImageResource(Gateway.getProperty("banner"));
+ Icon icon = Resource.findImage(Gateway.getProperty("banner"));
myPane.setIcon(icon);
dialog.pack();
dialog.setVisible(true);
diff --git a/source/com/c2kernel/gui/data/Node.java b/source/com/c2kernel/gui/data/Node.java
index 6556b3a..2f12d6b 100644
--- a/source/com/c2kernel/gui/data/Node.java
+++ b/source/com/c2kernel/gui/data/Node.java
@@ -37,8 +37,8 @@ public abstract class Node implements Runnable {
private boolean loaded = false;
private String iconName;
protected EntityTabManager desktop;
- static ImageIcon folder = Resource.getImageResource("folder.png");
- static ImageIcon emptyLeaf = Resource.getImageResource("leaf.png");
+ static ImageIcon folder = Resource.findImage("folder.png");
+ static ImageIcon emptyLeaf = Resource.findImage("leaf.png");
public Node() {
}
@@ -214,7 +214,7 @@ public abstract class Node implements Runnable {
public void setIcon(String icon) {
iconName = icon;
- this.icon = Resource.getImageResource("typeicons/"+icon+"_16.png");
+ this.icon = Resource.findImage("typeicons/"+icon+"_16.png");
}
public JPopupMenu getPopupMenu() {
diff --git a/source/com/c2kernel/gui/tabs/EntityTabPane.java b/source/com/c2kernel/gui/tabs/EntityTabPane.java
index 5a374dd..0a8a0cd 100644
--- a/source/com/c2kernel/gui/tabs/EntityTabPane.java
+++ b/source/com/c2kernel/gui/tabs/EntityTabPane.java
@@ -43,7 +43,7 @@ public class EntityTabPane extends JPanel implements Runnable {
protected NodeEntity sourceEntity;
protected String titleText = null;
protected ImageIcon titleIcon = null;
- private String tabName;
+ private final String tabName;
protected GridBagLayout gridbag = new GridBagLayout();
protected GridBagConstraints c = null;
public static Font titleFont = null;
@@ -53,7 +53,7 @@ public class EntityTabPane extends JPanel implements Runnable {
protected Box titleBox;
static {
try {
- mReloadIcon = Resource.getImageResource("reload.gif");
+ mReloadIcon = Resource.findImage("reload.gif");
} catch (Exception e) {
Logger.warning("Couldn't load images: " + e);
}
@@ -96,7 +96,7 @@ public class EntityTabPane extends JPanel implements Runnable {
if (titleText == null)
titleText = tabName;
if (titleIcon == null)
- titleIcon = Resource.getImageResource("info.png");
+ titleIcon = Resource.findImage("info.png");
JLabel title = new JLabel(titleText, titleIcon, SwingConstants.LEFT);
title.setFont(titleFont);
title.setForeground(headingColor);
@@ -113,7 +113,7 @@ public class EntityTabPane extends JPanel implements Runnable {
});
String defaultStartTab = MainFrame.getPref("DefaultStartTab", "Properties");
JToggleButton defaultStart =
- new JToggleButton(Resource.getImageResource("graph/start.png"));
+ new JToggleButton(Resource.findImage("graph/start.png"));
defaultStart.setMargin(new Insets(0, 0, 0, 0));
defaultStart.setToolTipText(
Language.translate("Select this tab to be the default one opened when you double click an item"));
diff --git a/source/com/c2kernel/gui/tabs/WorkflowPane.java b/source/com/c2kernel/gui/tabs/WorkflowPane.java
index 6bccd08..e4acd8d 100644
--- a/source/com/c2kernel/gui/tabs/WorkflowPane.java
+++ b/source/com/c2kernel/gui/tabs/WorkflowPane.java
@@ -41,10 +41,10 @@ public class WorkflowPane extends EntityTabPane implements EntityProxyObserver<W
protected Workflow mWorkflow = null;
boolean init = false;
TransitionPanel transPanel;
- protected JButton mLoadButton = new JButton(Resource.getImageResource("graph/load.png"));
- protected JButton mSaveButton = new JButton(Resource.getImageResource("graph/save.png"));
- protected JButton mLayoutButton = new JButton(Resource.getImageResource("graph/autolayout.png"));
- protected JButton mZoomOutButton = new JButton(Resource.getImageResource("graph/zoomout.png"));
+ protected JButton mLoadButton = new JButton(Resource.findImage("graph/load.png"));
+ protected JButton mSaveButton = new JButton(Resource.findImage("graph/save.png"));
+ protected JButton mLayoutButton = new JButton(Resource.findImage("graph/autolayout.png"));
+ protected JButton mZoomOutButton = new JButton(Resource.findImage("graph/zoomout.png"));
protected JButton[] mOtherToolBarButtons;
// Workflow factories
protected EdgeFactory mWfEdgeFactory;
diff --git a/source/com/c2kernel/gui/tabs/collection/AggregationView.java b/source/com/c2kernel/gui/tabs/collection/AggregationView.java
index 35cdb11..b6578bb 100644
--- a/source/com/c2kernel/gui/tabs/collection/AggregationView.java
+++ b/source/com/c2kernel/gui/tabs/collection/AggregationView.java
@@ -25,8 +25,8 @@ import com.c2kernel.utils.Resource;
*/
public class AggregationView extends CollectionView<AggregationMember>
{
- protected JButton mSaveButton = new JButton(Resource.getImageResource("graph/save.png"));
- protected JButton mHistoryButton = new JButton(Resource.getImageResource("graph/history.png"));
+ protected JButton mSaveButton = new JButton(Resource.findImage("graph/save.png"));
+ protected JButton mHistoryButton = new JButton(Resource.findImage("graph/history.png"));
protected JButton[] mOtherToolBarButtons = { mSaveButton, mHistoryButton };
// Graph editor panel
protected EditorPanel mEditorPanel;
diff --git a/source/com/c2kernel/lifecycle/chooser/ActivityChooser.java b/source/com/c2kernel/lifecycle/chooser/ActivityChooser.java
index 4b0ae4c..d5f62a0 100644
--- a/source/com/c2kernel/lifecycle/chooser/ActivityChooser.java
+++ b/source/com/c2kernel/lifecycle/chooser/ActivityChooser.java
@@ -56,7 +56,7 @@ public class ActivityChooser extends JFrame
{
super(title);
mMessage = message;
- img = Resource.getImageResource("graph/newvertex_large.png").getImage();
+ img = Resource.findImage("graph/newvertex_large.png").getImage();
setIconImage(img);
mParent = parent;
mhashmap = hashmap;
diff --git a/source/com/c2kernel/lifecycle/gui/model/WfVertexDefFactory.java b/source/com/c2kernel/lifecycle/gui/model/WfVertexDefFactory.java
index da59efd..132fdcf 100644
--- a/source/com/c2kernel/lifecycle/gui/model/WfVertexDefFactory.java
+++ b/source/com/c2kernel/lifecycle/gui/model/WfVertexDefFactory.java
@@ -38,7 +38,7 @@ public class WfVertexDefFactory implements VertexFactory, WorkflowDialogue
new ActivityChooser(
Language.translate("Please enter a Type for the new activityDef"),
Language.translate("New " + vertexTypeId + " Activity"),
- Resource.getImageResource("graph/newvertex_large.png").getImage(),
+ Resource.findImage("graph/newvertex_large.png").getImage(),
this,
mhm);
a.setVisible(true);
@@ -68,7 +68,7 @@ public class WfVertexDefFactory implements VertexFactory, WorkflowDialogue
Language.translate("Please type a Name"),
Language.translate("New " + vertexTypeId + " Activity"),
JOptionPane.QUESTION_MESSAGE,
- Resource.getImageResource("graph/newvertex_large.png"),
+ Resource.findImage("graph/newvertex_large.png"),
null,
null);
act = (ActivityDef) mCompositeActivityDef.search(mCompositeActivityDef.getID() + "/" + newName);
diff --git a/source/com/c2kernel/lifecycle/gui/view/CompActDefOutcomeHandler.java b/source/com/c2kernel/lifecycle/gui/view/CompActDefOutcomeHandler.java
index 58964aa..4c69f15 100644
--- a/source/com/c2kernel/lifecycle/gui/view/CompActDefOutcomeHandler.java
+++ b/source/com/c2kernel/lifecycle/gui/view/CompActDefOutcomeHandler.java
@@ -45,8 +45,8 @@ public class CompActDefOutcomeHandler
extends JPanel
implements OutcomeHandler {
- protected JButton mLoadButton = new JButton(Resource.getImageResource("graph/load.png"));
- protected JButton mLayoutButton = new JButton(Resource.getImageResource("graph/autolayout.png"));
+ protected JButton mLoadButton = new JButton(Resource.findImage("graph/load.png"));
+ protected JButton mLayoutButton = new JButton(Resource.findImage("graph/autolayout.png"));
protected JButton[] mOtherToolBarButtons = { mLayoutButton, mLoadButton };
protected CompositeActivityDef mCompActDef = null;
diff --git a/source/com/c2kernel/lifecycle/instance/Activity.java b/source/com/c2kernel/lifecycle/instance/Activity.java
index 226f0af..8a07d15 100644
--- a/source/com/c2kernel/lifecycle/instance/Activity.java
+++ b/source/com/c2kernel/lifecycle/instance/Activity.java
@@ -600,7 +600,7 @@ public class Activity extends WfVertex
event = auditEvent(transitionID, agent);
if (event != null)
eventID = event.getID();
- if (Boolean.TRUE.equals(getProperties().get("AlwaysUseOutcome")) || transitionID == Transitions.DONE || transitionID == Transitions.COMPLETE)
+ if (transitionID == Transitions.DONE || transitionID == Transitions.COMPLETE)
storeOutcome(eventID, requestData);
EntityPath entityPath = getItemEntityPath();
TransactionManager storage = Gateway.getStorage();
diff --git a/source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java b/source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java
index 0b6c9e4..39e7ee9 100644
--- a/source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java
+++ b/source/com/c2kernel/lifecycle/instance/gui/model/WfVertexFactory.java
@@ -36,7 +36,7 @@ public class WfVertexFactory implements VertexFactory, WorkflowDialogue
new ActivityChooser(
Language.translate("Please enter a Type for the new activity"),
Language.translate("New " + vertexTypeId + " Activity"),
- Resource.getImageResource("graph/newvertex_large.png").getImage(),
+ Resource.findImage("graph/newvertex_large.png").getImage(),
this,
mhm);
a.setVisible(true);
@@ -69,7 +69,7 @@ public class WfVertexFactory implements VertexFactory, WorkflowDialogue
Language.translate("Activity name not unique. Please give another."),
Language.translate("New " + vertexTypeId + " Activity"),
JOptionPane.QUESTION_MESSAGE,
- Resource.getImageResource("graph/newvertex_large.png"),
+ Resource.findImage("graph/newvertex_large.png"),
null,
null);
if (newName.equals(""))
diff --git a/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java b/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java
index 96371dd..aa30677 100644
--- a/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java
+++ b/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java
@@ -33,15 +33,17 @@ public class CreateNewAgent extends PredefinedStep
InvalidDataException
{
checkAccessRights(agent);
-
+ String redactedRequestData;
try {
NewAgent newAgent = (NewAgent)CastorXMLUtility.unmarshall(requestData);
newAgent.create(agent.getSysKey());
+ newAgent.password = "REDACTED";
+ redactedRequestData = CastorXMLUtility.marshall(newAgent);
} catch (Exception ex) {
Logger.error(ex);
throw new InvalidDataException("Error creating agent", "");
}
- sendEventStoreOutcome(transitionID, requestData, agent);
+ sendEventStoreOutcome(transitionID, redactedRequestData, agent);
}
}
diff --git a/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java b/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java
index 5666a00..f155ced 100644
--- a/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java
+++ b/source/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java
@@ -24,6 +24,7 @@ import com.c2kernel.utils.Logger;
*
* @version $Revision: 1.8 $ $Date: 2006/03/03 13:52:21 $
*/
+
public class NewItem {
public String name;
diff --git a/source/com/c2kernel/lookup/LDAPLookup.java b/source/com/c2kernel/lookup/LDAPLookup.java
index 9bae873..39744ac 100644
--- a/source/com/c2kernel/lookup/LDAPLookup.java
+++ b/source/com/c2kernel/lookup/LDAPLookup.java
@@ -41,10 +41,10 @@ public class LDAPLookup
{
private LDAPConnection mLDAPConn;
- private LDAPProperties mLDAPProps;
- private NextKeyManager mNextKeyManager;
+ private final LDAPProperties mLDAPProps;
+ private final NextKeyManager mNextKeyManager;
private LDAPPropertyManager mPropManager;
- private LDAPRoleManager mRoleManager;
+ private final LDAPRoleManager mRoleManager;
@@ -302,10 +302,10 @@ public class LDAPLookup
LDAPLookupUtils.createCristalContext(getConnection(), Path.mLocalPath);
}
- public void install()
+ public void install() throws ObjectNotFoundException
{
createBootTree();
- initTree( Resource.getTextResource("boot/LDAPboot.txt"));
+ initTree( Resource.getTextResource(null, "boot/LDAPboot.txt"));
}
public void initTree(String bootFile)
diff --git a/source/com/c2kernel/persistency/RemoteMap.java b/source/com/c2kernel/persistency/RemoteMap.java
index 2147047..c7e0b9d 100644
--- a/source/com/c2kernel/persistency/RemoteMap.java
+++ b/source/com/c2kernel/persistency/RemoteMap.java
@@ -4,6 +4,7 @@ import java.util.AbstractSet;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
+import java.util.NoSuchElementException;
import java.util.Set;
import java.util.TreeMap;
diff --git a/source/com/c2kernel/process/AbstractMain.java b/source/com/c2kernel/process/AbstractMain.java
index 9282d45..7401d1b 100644
--- a/source/com/c2kernel/process/AbstractMain.java
+++ b/source/com/c2kernel/process/AbstractMain.java
@@ -16,7 +16,6 @@ import java.io.PrintStream;
import com.c2kernel.utils.FileStringUtility;
import com.c2kernel.utils.Logger;
-import com.c2kernel.utils.Resource;
/**************************************************************************
*
@@ -106,20 +105,6 @@ abstract public class AbstractMain
}
logStream = new PrintStream(new FileOutputStream(args[++i], true));
}
- else if(args[i].equals("-resURL"))
- {
- String resString = args[++i];
- System.out.println("AbstractMain::readC2KArgs() - Resource location:" +
- resString);
- Resource.setKernelBaseURL(resString);
- }
- else if(args[i].equals("-domResURL"))
- {
- String resString = args[++i];
- System.out.println("AbstractMain::readC2KArgs() - Domain resource location:" +
- resString);
- Resource.setDomainBaseURL(resString);
- }
i++;
}
@@ -173,33 +158,4 @@ abstract public class AbstractMain
return c2kProps;
}
- /**************************************************************************
- * Required for most of the client & server application
- *
- * reads arguments
- * initialises C2K properties
- * initialises ORB
- * initialises VirtualTreeManager
- * initialises EventValueFactory + ProxyEventValueFactory
- * initialises
- **************************************************************************/
- static protected void standardSetUp(String[] args)
- throws Exception
- {
- //Reads the C2Kernel arguments, and inits the Gateway with them
- Gateway.init(readC2KArgs(args));
-
- }
-
-
- /**************************************************************************
- *
- **************************************************************************/
- static protected void standardTearDown()
- throws Exception
- {
- Gateway.close();
- Logger.msg(5, "AbstractMain::standardTearDown() - DONE.");
- }
-
}
diff --git a/source/com/c2kernel/process/Bootstrap.java b/source/com/c2kernel/process/Bootstrap.java
index 5011b7f..5b83d89 100644
--- a/source/com/c2kernel/process/Bootstrap.java
+++ b/source/com/c2kernel/process/Bootstrap.java
@@ -2,7 +2,6 @@ package com.c2kernel.process;
import java.net.InetAddress;
import java.util.Enumeration;
-import java.util.HashMap;
import java.util.StringTokenizer;
import com.c2kernel.common.ObjectNotFoundException;
@@ -15,7 +14,6 @@ import com.c2kernel.lifecycle.instance.CompositeActivity;
import com.c2kernel.lifecycle.instance.Workflow;
import com.c2kernel.lifecycle.instance.predefined.PredefinedStepContainer;
import com.c2kernel.lifecycle.instance.predefined.ServerPredefinedStepContainer;
-import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewItem;
import com.c2kernel.lifecycle.instance.stateMachine.States;
import com.c2kernel.lifecycle.instance.stateMachine.Transitions;
import com.c2kernel.lookup.AgentPath;
@@ -44,7 +42,6 @@ import com.c2kernel.utils.Resource;
public class Bootstrap
{
- static HashMap<String, String> bootstrapFactoryItems = new HashMap<String, String>();
static DomainPath thisServerPath;
/**
@@ -68,8 +65,6 @@ public class Bootstrap
// verify the server item's wf
initServerItemWf();
- // create the factories etc.
- createBootstrapFactoryItems();
Logger.msg("Bootstrap.run() - Bootstrapping complete");
} catch (Exception e) {
Logger.error(e);
@@ -86,45 +81,11 @@ public class Bootstrap
String bootItems;
Logger.msg(1, "Verifying kernel boot items");
bootItems = FileStringUtility.url2String(Resource.getKernelResourceURL("boot/allbootitems.txt"));
- verifyBootDataItems(bootItems, true);
- if (Resource.getDomainBaseURL() == null)
- Logger.msg(1, "No Domain base URL. Skipping domain boot check.");
- else {
- try {
- Logger.msg(1, "Verifying domain boot items");
- bootItems = FileStringUtility.url2String(Resource.getDomainResourceURL("boot/allbootitems.txt"));
- verifyBootDataItems(bootItems, false);
- } catch (Exception ex) {
- Logger.error(ex);
- Logger.msg("No domain boot items found.");
- return;
- }
- Logger.msg(1, "Verifying domain agents");
-
- try {
- bootItems = FileStringUtility.url2String(Resource.getDomainResourceURL("boot/domainagents.txt"));
- verifyDomainAgents(bootItems);
- } catch (Exception ex) {
- Logger.error(ex);
- Logger.msg("No domain agents found.");
- return;
- }
- }
-
+ verifyBootDataItems(bootItems, null);
Logger.msg(1, "Boot data items complete");
-
- }
-
- private static void verifyDomainAgents(String agentFile) throws Exception {
- StringTokenizer str = new StringTokenizer(agentFile, "\n\r");
- while (str.hasMoreTokens()) {
- String thisItem = str.nextToken();
- StringTokenizer agent = new StringTokenizer(thisItem, ",");
- checkAgent(agent.nextToken(), agent.nextToken(), agent.nextToken(), agent.nextToken().equalsIgnoreCase("true"));
- }
}
- private static void verifyBootDataItems(String bootList, boolean isKernel) {
+ private static void verifyBootDataItems(String bootList, String ns) {
StringTokenizer str = new StringTokenizer(bootList, "\n\r");
while (str.hasMoreTokens()) {
String thisItem = str.nextToken();
@@ -132,63 +93,62 @@ public class Bootstrap
String itemType = thisItem.substring(0,delim);
String itemName = thisItem.substring(delim+1);
try {
- String data = Resource.getTextResource("boot/"+thisItem+".xml");
+ String data = Resource.getTextResource(ns, "boot/"+thisItem+(itemType.equals("OD")?".xsd":".xml"));
if (data == null)
Logger.die("No data found for "+getDataType(itemType)+" "+itemName);
- if (itemType.equals("factory")) {
- bootstrapFactoryItems.put(itemName, data);
- continue;
- }
-
- Logger.msg(1, "Bootstrap.verifyBootItems() - Verifying data of "+getDataType(itemType)+" "+itemName);
- Enumeration<Path> en = Gateway.getLDAPLookup().search(getTypeRoot(itemType), itemName);
- ItemProxy thisProxy;
-
- if (!en.hasMoreElements()) {
- Logger.msg("Bootstrap.verifyBootItems() - "+getDataType(itemType)+" "+itemName+" not found. Creating new.");
- thisProxy = createBootstrapDataItem(itemType, itemName, isKernel);
- }
- else {
- DomainPath path = (DomainPath)en.nextElement();
- thisProxy = (ItemProxy)Gateway.getProxyManager().getProxy(path);
- try {
- Viewpoint currentData = (Viewpoint)thisProxy.getObject(ClusterStorage.VIEWPOINT+"/"+getDataType(itemType)+"/last");
- String oldData = currentData.getOutcome().getData();
- if (data.equals(oldData)) {
- Logger.msg(5, "Bootstrap.verifyBootItems() - Data identical, no update required");
-
- continue;
- }
- } catch (ObjectNotFoundException ex) {
- Logger.error("Bootstrap.verifyBootItems() - Item exists but no data found! Attempting to insert new.");
- }
- }
- // data was missing or doesn't match
- Logger.msg("Bootstrap.verifyBootItems() - Writing new data to "+getDataType(itemType)+" "+itemName);
- History hist = (History)thisProxy.getObject(ClusterStorage.HISTORY);
- Event newEvent = hist.addEvent("system", "Admin", Transitions.DONE, "Import", "Import", "Import", States.FINISHED);
- Outcome newOutcome = new Outcome(newEvent.getID(), data, getDataType(itemType), 0);
- Viewpoint newLastView = new Viewpoint(thisProxy.getSystemKey(), getDataType(itemType), "last", 0, newEvent.getID());
- Viewpoint newZeroView = new Viewpoint(thisProxy.getSystemKey(), getDataType(itemType), "0", 0, newEvent.getID());
- Gateway.getStorage().put(thisProxy.getSystemKey(), newOutcome, thisProxy);
- Gateway.getStorage().put(thisProxy.getSystemKey(), newLastView, thisProxy);
- Gateway.getStorage().put(thisProxy.getSystemKey(), newZeroView, thisProxy);
- Gateway.getStorage().commit(thisProxy);
+ verifyResource(ns, itemName, itemType, data);
} catch (Exception e) {
Logger.error(e);
Logger.die("Error importing bootstrap items. Unsafe to continue.");
}
}
}
+
+
+ public static void verifyResource(String ns, String itemName, String itemType, String data) throws Exception {
+ Logger.msg(1, "Bootstrap.verifyResource() - Verifying data of "+getDataType(itemType)+" "+itemName);
+ Enumeration<Path> en = Gateway.getLDAPLookup().search(getTypeRoot(itemType), itemName);
+ ItemProxy thisProxy;
+
+ if (!en.hasMoreElements()) {
+ Logger.msg("Bootstrap.verifyResource() - "+getDataType(itemType)+" "+itemName+" not found. Creating new.");
+ thisProxy = createResourceItem(itemType, itemName, ns);
+ }
+ else {
+ DomainPath path = (DomainPath)en.nextElement();
+ thisProxy = (ItemProxy)Gateway.getProxyManager().getProxy(path);
+ try {
+ Viewpoint currentData = (Viewpoint)thisProxy.getObject(ClusterStorage.VIEWPOINT+"/"+getDataType(itemType)+"/last");
+ String oldData = currentData.getOutcome().getData();
+ if (data.equals(oldData)) {
+ Logger.msg(5, "Bootstrap.verifyResource() - Data identical, no update required");
+ return;
+ }
+ } catch (ObjectNotFoundException ex) {
+ Logger.error("Bootstrap.verifyResource() - Item exists but no data found! Attempting to insert new.");
+ }
+ }
+ // data was missing or doesn't match
+ Logger.msg("Bootstrap.verifyResource() - Writing new data to "+getDataType(itemType)+" "+itemName);
+ History hist = (History)thisProxy.getObject(ClusterStorage.HISTORY);
+ Event newEvent = hist.addEvent("system", "Admin", Transitions.DONE, "Import", "Import", "Import", States.FINISHED);
+ Outcome newOutcome = new Outcome(newEvent.getID(), data, getDataType(itemType), 0);
+ Viewpoint newLastView = new Viewpoint(thisProxy.getSystemKey(), getDataType(itemType), "last", 0, newEvent.getID());
+ Viewpoint newZeroView = new Viewpoint(thisProxy.getSystemKey(), getDataType(itemType), "0", 0, newEvent.getID());
+ Gateway.getStorage().put(thisProxy.getSystemKey(), newOutcome, thisProxy);
+ Gateway.getStorage().put(thisProxy.getSystemKey(), newLastView, thisProxy);
+ Gateway.getStorage().put(thisProxy.getSystemKey(), newZeroView, thisProxy);
+ Gateway.getStorage().commit(thisProxy);
+ }
/**
* @param itemType
* @param itemName
* @param data
*/
- private static ItemProxy createBootstrapDataItem(String itemType, String itemName, boolean isKernel) throws Exception {
+ private static ItemProxy createResourceItem(String itemType, String itemName, String ns) throws Exception {
// create props
- PropertyDescriptionList pdList = (PropertyDescriptionList)CastorXMLUtility.unmarshall(Resource.getTextResource("boot/property/"+itemType+"Prop.xml"));
+ PropertyDescriptionList pdList = (PropertyDescriptionList)CastorXMLUtility.unmarshall(Resource.getTextResource(null, "boot/property/"+itemType+"Prop.xml"));
PropertyArrayList props = new PropertyArrayList();
for (int i = 0; i < pdList.list.size(); i++) {
PropertyDescription pd = pdList.list.get(i);
@@ -204,7 +164,7 @@ public class Bootstrap
1,
CastorXMLUtility.marshall(props),
CastorXMLUtility.marshall(new CompositeActivity()));
- DomainPath newDomPath = new DomainPath(getTypeRoot(itemType).toString()+"/system/"+(isKernel?"kernel":"domain")+"/"+itemName);
+ DomainPath newDomPath = new DomainPath(getTypeRoot(itemType).toString()+"/system/"+(ns==null?"kernel":ns)+"/"+itemName);
newDomPath.setEntity(entityPath);
Gateway.getLDAPLookup().add(newDomPath);
return (ItemProxy)Gateway.getProxyManager().getProxy(entityPath);
@@ -325,32 +285,4 @@ public class Bootstrap
Gateway.getStorage().put(thisServerPath.getSysKey(), wf, null);
// add this proxy server in case it was just registered, or the port has changed
}
-
- public static void createBootstrapFactoryItems() throws Exception {
- Logger.msg(1, "Verifying local object factories");
- for (String itemName : bootstrapFactoryItems.keySet()) {
- String itemXML = bootstrapFactoryItems.get(itemName);
- Logger.msg(2, "Verifying "+itemName);
- NewItem item = (NewItem)CastorXMLUtility.unmarshall(itemXML);
- DomainPath factPath = new DomainPath(new DomainPath(item.initialPath), item.name);
- if (factPath.exists()) continue;
- ItemProxy serverEntity = (ItemProxy)Gateway.getProxyManager().getProxy(thisServerPath);
- serverEntity.requestAction(
- Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey(),
- "workflow/predefined/CreateNewItem",
- Transitions.DONE,
- itemXML);
- Logger.msg("Bootstrap.createBootstrapFactoryItems() - Created factory item: "+itemName);
- ItemProxy factProxy = (ItemProxy)Gateway.getProxyManager().getProxy(factPath);
- String propDesc = Resource.getTextResource("boot/property/"+itemName+"Prop.xml");
- History hist = (History)factProxy.getObject(ClusterStorage.HISTORY);
- Event newEvent = hist.addEvent("system", "Admin", Transitions.DONE, "Import", "Import", "Import", States.FINISHED);
- Outcome newOutcome = new Outcome(newEvent.getID(), propDesc, "PropertyDescription", 0);
- Viewpoint newLastView = new Viewpoint(factProxy.getSystemKey(), "PropertyDescription", "last", 0, newEvent.getID());
- Gateway.getStorage().put(factProxy.getSystemKey(), newOutcome, factProxy);
- Gateway.getStorage().put(factProxy.getSystemKey(), newLastView, factProxy);
- Gateway.getStorage().commit(factProxy);
- }
- }
-
}
diff --git a/source/com/c2kernel/process/Gateway.java b/source/com/c2kernel/process/Gateway.java
index 3a03088..f399351 100644
--- a/source/com/c2kernel/process/Gateway.java
+++ b/source/com/c2kernel/process/Gateway.java
@@ -5,8 +5,8 @@ package com.c2kernel.process;
* @author $Author: abranson $
*/
+import java.io.IOException;
import java.net.MalformedURLException;
-import java.net.URL;
import java.util.Enumeration;
import java.util.Properties;
@@ -51,6 +51,7 @@ import com.c2kernel.utils.server.SimpleTCPIPServer;
public class Gateway
{
static private Properties mC2KProps;
+ static private ModuleManager mModules;
static private org.omg.CORBA.ORB mORB;
static private LDAPLookup mLDAPLookup;
static private TransactionManager mStorage;
@@ -59,6 +60,7 @@ public class Gateway
static private SimpleTCPIPServer mHTTPServer;
+
private Gateway() { }
/**
@@ -69,18 +71,21 @@ public class Gateway
* If null, the java system properties are used
* @throws InvalidDataException - invalid properties caused a failure in initialisation
*/
- static public void init(Properties props) throws InvalidDataException {
+ static public void init(Properties props, boolean isServer) throws InvalidDataException {
+
// if supplied props are null, use system props
if (props == null) props = System.getProperties();
- // set resource URLs from config
- String resURL = props.getProperty("KernelResourceURL");
- if (resURL != null && resURL.length()>0)
- Resource.setKernelBaseURL(resURL);
-
- resURL = props.getProperty("DomainResourceURL");
- if (resURL != null && resURL.length()>0)
- Resource.setDomainBaseURL(resURL);
+ // report version info
+ Logger.msg("Kernel version: "+Resource.getKernelVersion());
+
+ // init module manager
+ try {
+ mModules = new ModuleManager(ClassLoader.getSystemResources("module.xml"), isServer);
+ } catch (IOException e) {
+ Logger.error(e);
+ throw new InvalidDataException("Could not load module definitions. Classpath problem", "");
+ }
// Start with default props from kernel jar
try {
@@ -88,6 +93,13 @@ public class Gateway
} catch (MalformedURLException ex) {
Logger.die("Default properties not found. Probable cause is missing resources");
}
+
+ // merge in module props
+ Properties moduleProperties = mModules.getAllModuleProperties();
+ for (Enumeration<?> e = moduleProperties.propertyNames(); e.hasMoreElements();) {
+ String propName = (String)e.nextElement();
+ mC2KProps.put(propName, moduleProperties.get(propName));
+ }
// Overwrite with supplied props
for (Enumeration<?> e = props.propertyNames(); e.hasMoreElements();) {
@@ -98,15 +110,9 @@ public class Gateway
// dump properties
dumpC2KProps(7);
- // report version info
- Logger.msg("Domain version: "+Resource.getDomainVersion());
- Logger.msg("Kernel version: "+Resource.getKernelVersion());
-
- // load kernel and domain mapfiles
+ // load kernel mapfiles
try {
CastorXMLUtility.loadMapsFrom(Resource.getKernelResourceURL("mapFiles/"));
- if (Resource.getDomainBaseURL()!=null)
- CastorXMLUtility.loadMapsFrom(Resource.getDomainResourceURL("mapFiles/"));
} catch (MalformedURLException e1) {
throw new InvalidDataException("Invalid Resource Location", "");
}
@@ -117,12 +123,9 @@ public class Gateway
Language.isTranlated=true;
Language.mTableOfTranslation = FileStringUtility.loadLanguageFile(languageFile);
}
-
- try {
- Resource.setImportURL(new URL("file:"+getProperty("Import.dir")));
- } catch (MalformedURLException e) {
- Logger.error("Import directory not set. "+getProperty("Import.dir"));
- }
+
+ // run module startup scripts
+ mModules.runScripts("startup");
}
/**
@@ -162,25 +165,32 @@ public class Gateway
// start checking bootstrap items
Bootstrap.run();
+ // register modules
+ mModules.registerModules();
+
} catch (Exception ex) {
Logger.error(ex);
Logger.die("Exception starting server components. Shutting down.");
}
// start the http server
- try {
- int httpPort = Integer.parseInt(Gateway.getProperty("ItemServer.HTTP.port"));
- Logger.msg(2, "Starting HTTP Server on port "+httpPort);
- mHTTPServer = new SimpleTCPIPServer(httpPort, ItemHTTPBridge.class, 5);
- mHTTPServer.startListening();
- } catch (NumberFormatException ex) {
- Logger.msg(3, "Invalid or no HTTP port defined. HTTP server not available.");
- }
+// try {
+// int httpPort = Integer.parseInt(Gateway.getProperty("ItemServer.HTTP.port"));
+// Logger.msg(2, "Starting HTTP Server on port "+httpPort);
+// mHTTPServer = new SimpleTCPIPServer(httpPort, ItemHTTPBridge.class, 5);
+// mHTTPServer.startListening();
+// } catch (NumberFormatException ex) {
+// Logger.msg(3, "Invalid or no HTTP port defined. HTTP server not available.");
+// }
System.out.println("Server '"+Gateway.getCentreId()+"' initialised.");
}
- /**
+ public static ModuleManager getModuleManager() {
+ return mModules;
+ }
+
+ /**
* Connects to the LDAP server in an administrative context - using the admin username and
* password given in the LDAP.user and LDAP.password props of the kernel properties.
*
@@ -327,6 +337,9 @@ public class Gateway
*/
public static void close()
{
+ // run shutdown module scripts
+ mModules.runScripts("shutdown");
+
// shut down servers if running
if (mCorbaServer != null)
mCorbaServer.close();
diff --git a/source/com/c2kernel/process/Module.java b/source/com/c2kernel/process/Module.java
new file mode 100644
index 0000000..e32c72e
--- /dev/null
+++ b/source/com/c2kernel/process/Module.java
@@ -0,0 +1,303 @@
+package com.c2kernel.process;
+
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Properties;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.Text;
+import org.xml.sax.InputSource;
+
+import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.entity.proxy.ItemProxy;
+import com.c2kernel.events.Event;
+import com.c2kernel.events.History;
+import com.c2kernel.lifecycle.instance.predefined.entitycreation.Dependency;
+import com.c2kernel.lifecycle.instance.predefined.entitycreation.DependencyMember;
+import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewAgent;
+import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewItem;
+import com.c2kernel.lifecycle.instance.predefined.entitycreation.Property;
+import com.c2kernel.lifecycle.instance.stateMachine.States;
+import com.c2kernel.lifecycle.instance.stateMachine.Transitions;
+import com.c2kernel.lookup.DomainPath;
+import com.c2kernel.persistency.ClusterStorage;
+import com.c2kernel.persistency.outcome.Outcome;
+import com.c2kernel.persistency.outcome.Viewpoint;
+import com.c2kernel.scripting.ErrorInfo;
+import com.c2kernel.scripting.Script;
+import com.c2kernel.scripting.ScriptingEngineException;
+import com.c2kernel.utils.CastorXMLUtility;
+import com.c2kernel.utils.Logger;
+import com.c2kernel.utils.Resource;
+
+public class Module {
+
+ private final String ns, name, desc, version;
+ private String resURL;
+ private final ArrayList<String> dependency = new ArrayList<String>();
+ private final Properties clientProps = new Properties();
+ private final Properties serverProps = new Properties();
+ private final HashMap<String, Script> clientScripts = new HashMap<String, Script>();
+ private final HashMap<String, Script> serverScripts = new HashMap<String, Script>();
+ private final ArrayList<ModuleImport> imports = new ArrayList<ModuleImport>();
+ private static DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ private final DocumentBuilder parser;
+
+ static {
+ dbf.setValidating(false);
+ dbf.setNamespaceAware(false);
+ }
+
+ public Module(String moduleXML) throws Exception {
+ parser = dbf.newDocumentBuilder();
+ Document moduleDOM = parser.parse(new InputSource(new StringReader(moduleXML)));
+
+ Element root = (Element)moduleDOM.getElementsByTagName("CristalModule").item(0);
+
+ // Get module metadata
+ ns = root.getAttribute("ns");
+ name = root.getAttribute("name");
+ Element info = (Element)moduleDOM.getElementsByTagName("Info").item(0);
+ desc = ((Text)info.getElementsByTagName("Description").item(0).getFirstChild()).getData();
+ version = ((Text)info.getElementsByTagName("Version").item(0).getFirstChild()).getData();
+ NodeList nl = info.getElementsByTagName("Dependency");
+ for (int i=0; i<nl.getLength();i++)
+ dependency.add(((Text)nl.item(i).getFirstChild()).getData());
+
+ // register resource URL
+ nl = root.getElementsByTagName("ResourceURL");
+ if (nl.getLength()>0) {
+ resURL = ((Text)nl.item(0).getFirstChild()).getData();
+ Resource.addModuleBaseURL(ns, resURL);
+ }
+
+ // Get config properties
+ nl = root.getElementsByTagName("Config");
+ for (int i=0; i<nl.getLength();i++) {
+ Element confElement = (Element)nl.item(i);
+ String target = confElement.getAttribute("target");
+ String name = confElement.getAttribute("name");
+ String value = ((Text)confElement.getFirstChild()).getData();
+ // target can be 'client', 'server' or missing, which implies both.
+ if (!target.equals("client")) serverProps.put(name, value);
+ if (!target.equals("server")) clientProps.put(name, value);
+ }
+
+ // find scripts
+ nl = root.getElementsByTagName("Script");
+ for (int i=0; i<nl.getLength();i++) {
+ Element confElement = (Element)nl.item(i);
+ String target = confElement.getAttribute("target");
+ String event = confElement.getAttribute("event");
+ String lang = confElement.getAttribute("lang");
+ Script thisScript = new Script(lang, ((Text)confElement.getFirstChild()).getData(), ErrorInfo.class);
+ // target can be 'client', 'server' or missing, which implies both.
+ if (!target.equals("client")) serverScripts.put(event, thisScript);
+ if (!target.equals("server")) clientScripts.put(event, thisScript);
+ }
+
+ // Get imports
+ nl = moduleDOM.getElementsByTagName("Imports");
+ if (nl.getLength()>0) {
+ Element impElem = (Element)nl.item(0);
+ nl = impElem.getChildNodes();
+ for (int i=0; i<nl.getLength();i++) {
+ if (!(nl.item(i) instanceof Element)) continue;
+ Element imp = (Element)nl.item(i);
+ ModuleImport newImp;
+ String type = imp.getTagName();
+ if (type.equals("Resource")) {
+ ModuleResource newRes = new ModuleResource();
+ newRes.resourceType = imp.getAttribute("type");
+ newRes.resourceLocation = ((Text)imp.getFirstChild()).getData();
+ newImp = newRes;
+ }
+ else if (type.equals("Item")) {
+ ModuleItem newItem = new ModuleItem();
+ newItem.workflow = imp.getAttribute("workflow");
+ NodeList pnl = imp.getElementsByTagName("Property");
+ for (int j=0; j<pnl.getLength(); j++) {
+ Element p = (Element)pnl.item(j);
+ newItem.props.add(new Property(p.getAttribute("name"), ((Text)p.getFirstChild()).getData()));
+ }
+ NodeList ocnl = imp.getElementsByTagName("Outcome");
+ for (int j=0; j<ocnl.getLength(); j++) {
+ Element oc = (Element)ocnl.item(j);
+ newItem.outcomes.put(oc.getAttribute("schema")+":"+oc.getAttribute("version")+":"+oc.getAttribute("viewname"), ((Text)oc.getFirstChild()).getData());
+ }
+ NodeList depnl = imp.getElementsByTagName("Dependency");
+ for (int j=0; j<depnl.getLength(); j++) {
+ Element dep = (Element)depnl.item(j);
+ Dependency newDep = new Dependency();
+ newDep.name = dep.getAttribute("name");
+ NodeList depmemnl = dep.getElementsByTagName("DependencyMember");
+ for (int k=0; k<depmemnl.getLength(); k++) {
+ newDep.dependencyMemberList.add(new DependencyMember(((Text)depmemnl.item(k).getFirstChild()).getData()));
+ }
+ newItem.deps.add(newDep);
+ }
+ newImp = newItem;
+ }
+ else if (type.equals("Agent")) {
+ ModuleAgent newAgent = new ModuleAgent();
+ newAgent.password = imp.getAttribute("password");
+ NodeList rolenl = imp.getElementsByTagName("Role");
+ for (int j=0; j<rolenl.getLength(); j++) {
+ newAgent.roles.add(((Text)rolenl.item(j).getFirstChild()).getData());
+ }
+ newImp = newAgent;
+ }
+ else {
+ Logger.warning("Unknown import type "+type);
+ continue;
+ }
+
+ newImp.importName = imp.getAttribute("name");
+ imports.add(newImp);
+ }
+ }
+
+ }
+
+ public ErrorInfo runScript(String event, boolean isServer) {
+ HashMap<String, Script> scripts = isServer?serverScripts:clientScripts;
+ Script thisScript = scripts.get(event);
+ if (thisScript == null) return null;
+ try {
+ Object result = thisScript.execute();
+ if (result instanceof ErrorInfo)
+ return (ErrorInfo)result;
+ else
+ return new ErrorInfo(result.toString());
+ } catch (ScriptingEngineException ex) {
+ Logger.error(ex);
+ return new ErrorInfo("Error running "+event+" script in module "+ns);
+ }
+ }
+
+ public void importAll(ItemProxy serverEntity) {
+ for (ModuleImport thisImp : imports) {
+ if (thisImp instanceof ModuleResource) {
+ ModuleResource thisRes = (ModuleResource)thisImp;
+ try {
+ Bootstrap.verifyResource(ns, thisRes.importName, thisRes.resourceType, Resource.getTextResource(ns, thisRes.resourceLocation));
+ } catch (Exception ex) {
+ Logger.error(ex);
+ }
+ }
+ else if (thisImp instanceof ModuleItem) {
+ ModuleItem thisItem = (ModuleItem)thisImp;
+ try {
+ NewItem item = new NewItem(thisItem.importName, "/desc/"+ns, thisItem.workflow);
+ item.propertyList = thisItem.props;
+ DomainPath itemPath = new DomainPath(new DomainPath(item.initialPath), item.name);
+ if (itemPath.exists()) continue;
+ serverEntity.requestAction(
+ Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey(),
+ "workflow/predefined/CreateNewItem",
+ Transitions.DONE,
+ CastorXMLUtility.marshall(item));
+ Logger.msg("Module.importAll() - Created item: "+thisItem.importName);
+ ItemProxy newProxy = (ItemProxy)Gateway.getProxyManager().getProxy(itemPath);
+ History hist = (History)newProxy.getObject(ClusterStorage.HISTORY);
+ for (String thisView : thisItem.outcomes.keySet()) {
+ String[] info = thisView.split(":");
+ int version = Integer.parseInt(info[1]);
+ String data = Resource.getTextResource(ns, thisItem.outcomes.get(thisView));
+ Event newEvent = hist.addEvent("system", "Admin", Transitions.DONE, "Import", "Import", "Import", States.FINISHED);
+ Outcome newOutcome = new Outcome(newEvent.getID(), data, info[0], version);
+ Viewpoint newLastView = new Viewpoint(newProxy.getSystemKey(), info[0], info[2], version, newEvent.getID());
+ Gateway.getStorage().put(newProxy.getSystemKey(), newOutcome, newProxy);
+ Gateway.getStorage().put(newProxy.getSystemKey(), newLastView, newProxy);
+ }
+ for (Dependency thisDep : thisItem.deps) {
+ Gateway.getStorage().put(newProxy.getSystemKey(), thisDep.create(), newProxy);
+ }
+ Gateway.getStorage().commit(newProxy);
+ } catch (Exception ex) {
+ Logger.error("Error importing item "+thisItem.importName+" from module "+name);
+ Logger.error(ex);
+ }
+ }
+ else if (thisImp instanceof ModuleAgent) {
+ ModuleAgent thisAgent = (ModuleAgent)thisImp;
+ try {
+ Gateway.getLDAPLookup().getRoleManager().getAgentPath(thisAgent.importName);
+ Logger.msg(3, "Module.importAll() - User '"+thisAgent.importName+"' found.");
+ return;
+ } catch (ObjectNotFoundException ex) { }
+ Logger.msg("Module.importAll() - User '"+thisAgent.importName+"' not found. Creating.");
+
+ NewAgent agent = new NewAgent(thisAgent.importName, thisAgent.password);
+ agent.roles = thisAgent.roles;
+ try {
+ serverEntity.requestAction(
+ Gateway.getLDAPLookup().getRoleManager().getAgentPath("system").getSysKey(),
+ "workflow/predefined/CreateNewAgent",
+ Transitions.DONE,
+ CastorXMLUtility.marshall(agent));
+ } catch (Exception ex) {
+ Logger.error("Error importing agent "+thisAgent.importName+" from module "+name);
+ Logger.error(ex);
+ }
+ }
+ }
+ }
+
+ public Properties getClientProperties() {
+ return clientProps;
+ }
+
+ public Properties getServerProperties() {
+ return serverProps;
+ }
+
+ public String getNs() {
+ return ns;
+ }
+ public String getName() {
+ return name;
+ }
+ public String getDesc() {
+ return desc;
+ }
+ public String getVersion() {
+ return version;
+ }
+ public String getResURL() {
+ return resURL;
+ }
+ public ArrayList<String> getDependencies() {
+ return dependency;
+ }
+ public boolean hasDependency(String dep) {
+ return dependency.contains(dep);
+ }
+
+ public abstract class ModuleImport {
+ String importName;
+ }
+
+ public class ModuleResource extends ModuleImport {
+ String resourceType;
+ String resourceLocation;
+ }
+
+ public class ModuleItem extends ModuleImport {
+ ArrayList<Property> props = new ArrayList<Property>();
+ HashMap<String, String> outcomes = new HashMap<String, String>();
+ ArrayList<Dependency> deps = new ArrayList<Dependency>();
+ String workflow;
+ }
+
+ public class ModuleAgent extends ModuleImport {
+ String password;
+ ArrayList<String> roles = new ArrayList<String>();
+ }
+} \ No newline at end of file
diff --git a/source/com/c2kernel/process/ModuleManager.java b/source/com/c2kernel/process/ModuleManager.java
new file mode 100644
index 0000000..e067a88
--- /dev/null
+++ b/source/com/c2kernel/process/ModuleManager.java
@@ -0,0 +1,81 @@
+package com.c2kernel.process;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Properties;
+
+import com.c2kernel.common.ObjectNotFoundException;
+import com.c2kernel.entity.proxy.ItemProxy;
+import com.c2kernel.lookup.DomainPath;
+import com.c2kernel.utils.FileStringUtility;
+import com.c2kernel.utils.Logger;
+
+public class ModuleManager {
+ ArrayList<Module> modules = new ArrayList<Module>();
+ Properties props = new Properties();
+ boolean isServer;
+
+ public ModuleManager(Enumeration<URL> moduleEnum, boolean isServer) {
+ this.isServer = isServer;
+ ArrayList<String> loadedModules = new ArrayList<String>();
+ while(moduleEnum.hasMoreElements()) {
+ URL newModuleURL = moduleEnum.nextElement();
+ try {
+ Module newModule = new Module(FileStringUtility.url2String(newModuleURL));
+ modules.add(newModule);
+ loadedModules.add(newModule.getName());
+ Properties modProp = isServer?newModule.getServerProperties():newModule.getClientProperties();
+ for (Enumeration<?> e = modProp.propertyNames(); e.hasMoreElements();) {
+ String propName = (String)e.nextElement();
+ props.put(propName, modProp.get(propName));
+ }
+ } catch (Exception e) {
+ Logger.error("Could not load module description from "+newModuleURL);
+ Logger.error(e);
+ }
+ }
+
+ Logger.debug(5, "Checking dependencies");
+ boolean depFailed = false;
+ for (Module thisMod : modules) {
+ ArrayList<String> deps = thisMod.getDependencies();
+ for (String dep : deps) {
+ if (!loadedModules.contains(dep)) {
+ Logger.error("UNMET MODULE DEPENDENCY: "+thisMod.getName()+" requires "+dep);
+ depFailed = true;
+ }
+ }
+ }
+ if (depFailed) Logger.die("Unmet module dependencies. Cannot continue");
+ }
+
+ public String getModuleVersions() {
+ StringBuffer ver = new StringBuffer();
+ for (Module thisMod : modules) {
+ if (ver.length()>0) ver.append(";");
+ ver.append(thisMod.getName()+"("+thisMod.getVersion()+")");
+ }
+ return ver.toString();
+ }
+
+
+ public Properties getAllModuleProperties() {
+ return props;
+ }
+
+ public void runScripts(String event) {
+ for (Module thisMod : modules) {
+ thisMod.runScript(event, isServer);
+ }
+ }
+
+ public void registerModules() throws ObjectNotFoundException {
+ ItemProxy serverEntity = (ItemProxy)Gateway.getProxyManager().getProxy(new DomainPath("/servers/"+Gateway.getProperty("ItemServer.name")));
+ Logger.debug(3, "Registering modules");
+ for (Module thisMod : modules) {
+ Logger.debug(4, "Registering module "+thisMod.getName());
+ thisMod.importAll(serverEntity);
+ }
+ }
+}
diff --git a/source/com/c2kernel/process/StandardServer.java b/source/com/c2kernel/process/StandardServer.java
index 72b761e..6804da5 100644
--- a/source/com/c2kernel/process/StandardServer.java
+++ b/source/com/c2kernel/process/StandardServer.java
@@ -43,7 +43,7 @@ public class StandardServer extends AbstractMain implements WrapperListener
throws Exception
{
// read args and init Gateway
- standardSetUp(args);
+ Gateway.init(readC2KArgs(args), true);
// connect to LDAP as root
Gateway.connect();
@@ -112,8 +112,7 @@ public class StandardServer extends AbstractMain implements WrapperListener
public int stop(int arg0) {
try
{
- // close gateway
- standardTearDown();
+ Gateway.close();
}
catch( Exception ex )
{
diff --git a/source/com/c2kernel/process/UserCodeProcess.java b/source/com/c2kernel/process/UserCodeProcess.java
index 9c2deab..7779802 100644
--- a/source/com/c2kernel/process/UserCodeProcess.java
+++ b/source/com/c2kernel/process/UserCodeProcess.java
@@ -125,7 +125,7 @@ public class UserCodeProcess extends StandardClient implements EntityProxyObserv
// shut down
try
{
- standardTearDown();
+ Gateway.close();
}
catch( Exception ex )
{
@@ -196,7 +196,7 @@ public class UserCodeProcess extends StandardClient implements EntityProxyObserv
try
{
- standardSetUp(args);
+ Gateway.init(readC2KArgs(args), false);
UserCodeProcess proc = getInstance();
new Thread(proc).start();
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
@@ -212,7 +212,7 @@ public class UserCodeProcess extends StandardClient implements EntityProxyObserv
try
{
- standardTearDown();
+ Gateway.close();
}
catch(Exception ex1)
{
diff --git a/source/com/c2kernel/scripting/ErrorInfo.java b/source/com/c2kernel/scripting/ErrorInfo.java
index f14038f..26c0384 100644
--- a/source/com/c2kernel/scripting/ErrorInfo.java
+++ b/source/com/c2kernel/scripting/ErrorInfo.java
@@ -18,6 +18,11 @@ public class ErrorInfo {
super();
msg = new ArrayList<String>();
}
+
+ public ErrorInfo(String error) {
+ this();
+ msg.add(error);
+ }
public void addError(String error) {
msg.add(error);
diff --git a/source/com/c2kernel/scripting/Script.java b/source/com/c2kernel/scripting/Script.java
index 0820c26..c056e95 100644
--- a/source/com/c2kernel/scripting/Script.java
+++ b/source/com/c2kernel/scripting/Script.java
@@ -72,19 +72,24 @@ public class Script
* Creates a script executor for the supplied expression, bypassing the xml parsing bit
* Output class is forced to an object.
*/
- public Script(String lang, String expr, BSFManager scriptManager) throws ScriptingEngineException
+ public Script(String lang, String expr, BSFManager scriptManager, Class<?> returnType) throws ScriptingEngineException
{
setScriptEnv(scriptManager);
mName = "<expr>";
mLang = lang;
mVersion = "";
- mOutputClass = Object.class;
+ mOutputClass = returnType;
mScript = expr;
}
public Script(String lang, String expr) throws ScriptingEngineException
{
- this(lang, expr, new BSFManager());
+ this(lang, expr, new BSFManager(), Object.class);
+ }
+
+ public Script(String lang, String expr, Class<?> returnType) throws ScriptingEngineException
+ {
+ this(lang, expr, new BSFManager(), returnType);
}
public Script(ItemProxy object, AgentProxy subject, Job job) throws ScriptingEngineException
diff --git a/source/com/c2kernel/scripting/ScriptConsole.java b/source/com/c2kernel/scripting/ScriptConsole.java
index 33d4b7f..99ad90f 100644
--- a/source/com/c2kernel/scripting/ScriptConsole.java
+++ b/source/com/c2kernel/scripting/ScriptConsole.java
@@ -194,13 +194,13 @@ public class ScriptConsole implements SocketHandler {
} catch (NumberFormatException ex) { }
}
else if(command.equals("help")) {
- output.println(Resource.getTextResource("textFiles/consoleHelp.txt"));
+ output.println(Resource.findTextResource("textFiles/consoleHelp.txt"));
continue;
}
else if(command.equals("version")) {
- output.println("Domain version: "+Resource.getDomainVersion());
output.println("Kernel version: "+Resource.getKernelVersion());
- continue;
+ output.println("Modules loaded: "+Gateway.getModuleManager().getModuleVersions());
+ continue;
}
try {
if (command.endsWith("\\")) {
diff --git a/source/com/c2kernel/utils/CastorArrayList.java b/source/com/c2kernel/utils/CastorArrayList.java
index ed15c0f..ea9a090 100644
--- a/source/com/c2kernel/utils/CastorArrayList.java
+++ b/source/com/c2kernel/utils/CastorArrayList.java
@@ -15,7 +15,7 @@ import java.util.ArrayList;
* All rights reserved.
**************************************************************************/
//
-abstract public class CastorArrayList<T> implements Serializable{
+abstract public class CastorArrayList<T> implements Serializable {
public ArrayList<T> list;
public CastorArrayList() {
diff --git a/source/com/c2kernel/utils/Resource.java b/source/com/c2kernel/utils/Resource.java
index 361549d..10228da 100644
--- a/source/com/c2kernel/utils/Resource.java
+++ b/source/com/c2kernel/utils/Resource.java
@@ -3,6 +3,7 @@ package com.c2kernel.utils;
//Java
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.HashMap;
import java.util.Hashtable;
import javax.swing.ImageIcon;
@@ -17,50 +18,37 @@ import com.c2kernel.common.ObjectNotFoundException;
public class Resource {
static private Hashtable<String, String> txtCache = new Hashtable<String, String>();
static private Hashtable<String, ImageIcon> imgCache = new Hashtable<String, ImageIcon>();
- static private URL baseURL = null;
- static private URL domainBaseURL = null;
- static private URL importURL = null;
- static public ImageIcon nullImg = new ImageIcon(new byte[] { 0 });
- static {
- setKernelBaseURL("com/c2kernel/utils/resources/");
- }
-
- /*
- * Kernel Resource URL section
- */
- public static void setKernelBaseURL(String newBaseURL) {
- baseURL = getURLorResURL(newBaseURL);
- }
-
- public static void setKernelBaseURL(URL newBaseURL) {
- baseURL = newBaseURL;
- }
+ static private URL baseURL = getURLorResURL("com/c2kernel/utils/resources/");
+ static private HashMap<String, URL> moduleBaseURLs = new HashMap<String, URL>();
+ static public final ImageIcon nullImg = new ImageIcon(new byte[] { 0 });
public static URL getKernelBaseURL() {
return baseURL;
}
- static public URL getKernelResourceURL(String resName) throws MalformedURLException {
+ public static URL getKernelResourceURL(String resName) throws MalformedURLException {
return new URL(baseURL, resName);
}
- /*
- * Domain Resource URL section
- */
- public static void setDomainBaseURL(URL newBaseURL) {
- domainBaseURL = newBaseURL;
+ public static void addModuleBaseURL(String ns, URL newBaseURL) {
+ moduleBaseURLs.put(ns, newBaseURL);
+ Logger.msg("Adding resource URL for "+ns+": "+newBaseURL.toString());
}
- public static void setDomainBaseURL(String newBaseURL) {
- domainBaseURL = getURLorResURL(newBaseURL);
+ public static void addModuleBaseURL(String ns, String newBaseURL) {
+ addModuleBaseURL(ns, getURLorResURL(newBaseURL));
}
- public static URL getDomainBaseURL() {
- return domainBaseURL;
+ public static URL getModuleBaseURL(String ns) {
+ return moduleBaseURLs.get(ns);
+ }
+
+ public static HashMap<String, URL> getModuleBaseURLs() {
+ return moduleBaseURLs;
}
- static public URL getDomainResourceURL(String resName) throws MalformedURLException {
- return new URL(domainBaseURL, resName);
+ static public URL getModuleResourceURL(String ns, String resName) throws MalformedURLException {
+ return new URL(moduleBaseURLs.get(ns), resName);
}
private static URL getURLorResURL(String newURL) {
@@ -77,29 +65,44 @@ public class Resource {
/**************************************************************************
* Gets any text resource files
**************************************************************************/
- static public String getTextResource(String resName)
+
+ static public String findTextResource(String resName) {
+ try {
+ for (String ns : getModuleBaseURLs().keySet()) {
+ try {
+ return getTextResource(ns, resName);
+ } catch (ObjectNotFoundException ex) { }
+ }
+ return getTextResource(null, resName);
+ } catch (ObjectNotFoundException ex) {
+ Logger.warning("Text resource '"+resName+"' not found.");
+ return null;
+ }
+ }
+
+ static public String getTextResource(String ns, String resName) throws ObjectNotFoundException
// throws IOException
{
Logger.msg(8, "Resource::getTextResource() - Getting resource: " + resName);
- if (txtCache.containsKey(resName)) {
- return txtCache.get(resName);
+ if (txtCache.containsKey(ns+'/'+resName)) {
+ return txtCache.get(ns+'/'+resName);
}
try {
String newRes = null;
- try {
- newRes = FileStringUtility.url2String(getDomainResourceURL(resName));
- } catch (Exception ex) { } // no domain base
-
- if (newRes == null || newRes.length() == 0) { // not found in domain
- newRes = FileStringUtility.url2String(getKernelResourceURL(resName));
- }
- txtCache.put(resName, newRes);
+ URL loc;
+
+ if (ns == null) // kernel
+ loc = getKernelResourceURL(resName);
+ else
+ loc = getModuleResourceURL(ns, resName);
+ newRes = FileStringUtility.url2String(loc);
+ txtCache.put(ns+'/'+resName, newRes);
return newRes;
} catch (Exception e) {
- return null;
+ throw new ObjectNotFoundException(e.getMessage(),null);
}
}
/**
@@ -108,72 +111,48 @@ public class Resource {
* @param resName - filename after resources/images
* @return
*/
- static public ImageIcon getImageResource(String resName) {
+ static public ImageIcon findImage(String resName) {
try {
- return getImage(resName);
+ for (String ns : getModuleBaseURLs().keySet()) {
+ try {
+ return getImage(ns, resName);
+ } catch (ObjectNotFoundException ex) { }
+ }
+ return getImage(null, resName);
} catch (ObjectNotFoundException ex) {
- Logger.error("Image "+resName+" not found. Using null icon");
+ Logger.warning("Image '"+resName+"' not found. Using null icon");
return nullImg;
}
}
- static public ImageIcon getImage(String resName) throws ObjectNotFoundException {
+ static public ImageIcon getImage(String ns, String resName) throws ObjectNotFoundException {
if (resName == null)
return nullImg;
- if (imgCache.containsKey(resName)) {
- return imgCache.get(resName);
+ if (imgCache.containsKey(ns+'/'+resName)) {
+ return imgCache.get(ns+'/'+resName);
}
URL imgLocation = null;
- ImageIcon newImg = null;
- // try domain resources first
- if (domainBaseURL != null) {
- try {
- imgLocation = new URL(domainBaseURL + "images/" + resName.toLowerCase());
- newImg = new ImageIcon(imgLocation);
- } catch (MalformedURLException e) { }
- }
-
- // try kernel resources next
- if (newImg == null || newImg.getIconHeight() == -1) {
- try {
- imgLocation = new URL(baseURL + "images/" + resName.toLowerCase());
- newImg = new ImageIcon(imgLocation);
- } catch (MalformedURLException e) { }
- }
-
- // else return null image
- if (newImg == null || newImg.getIconHeight() == -1) {
- throw new ObjectNotFoundException();
- }
-
- else imgCache.put(resName, newImg);
- Logger.msg(7, "Loaded "+resName+" "+newImg.getIconWidth()+"x"+newImg.getIconHeight());
- return newImg;
- }
-
-
- /**
- * Retrieves the stored import URL
- * @return
- */
- public static URL getImportURL() {
- return importURL;
- }
-
- /**
- * @param url
- */
- public static void setImportURL(URL url) {
- importURL = url;
- }
- static public String getDomainVersion() {
- try {
- return FileStringUtility.url2String(getDomainResourceURL("version.txt"));
- } catch (Exception ex) {
- return "Domain application version not found";
- }
+ if (ns == null)
+ try {
+ imgLocation = getKernelResourceURL("images/"+resName);
+ } catch (MalformedURLException ex) { }
+ else
+ try {
+ imgLocation = getModuleResourceURL(ns, "images/"+resName);
+ } catch (MalformedURLException ex) { }
+
+ if (imgLocation!= null) {
+ ImageIcon newImg = new ImageIcon(imgLocation);
+
+ if (newImg.getIconHeight() > -1) {
+ imgCache.put(ns+'/'+resName, newImg);
+ Logger.msg(0, "Loaded "+resName+" "+newImg.getIconWidth()+"x"+newImg.getIconHeight());
+ return newImg;
+ }
+ }
+ throw new ObjectNotFoundException();
}
static public String getKernelVersion() {