From e73468fd08cc27aa31f76a27c916e45d5987c628 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 5 Jun 2014 16:47:41 +0200 Subject: Moved old entitycreation package from the predefined step package to a new 'imports' package under entity. Renamed most classed with an 'Import' prefix to avoid clashes with other API classes. Fixes #194 --- .../java/com/c2kernel/entity/imports/Geometry.java | 29 ++++ .../com/c2kernel/entity/imports/ImportAgent.java | 60 +++++++ .../c2kernel/entity/imports/ImportAggregation.java | 51 ++++++ .../entity/imports/ImportAggregationMember.java | 33 ++++ .../c2kernel/entity/imports/ImportDependency.java | 66 ++++++++ .../entity/imports/ImportDependencyMember.java | 29 ++++ .../com/c2kernel/entity/imports/ImportItem.java | 187 +++++++++++++++++++++ .../com/c2kernel/entity/imports/ImportOutcome.java | 27 +++ .../com/c2kernel/entity/imports/ImportRole.java | 19 +++ .../predefined/ServerPredefinedStepContainer.java | 4 +- .../predefined/entitycreation/Aggregation.java | 51 ------ .../entitycreation/AggregationMember.java | 33 ---- .../predefined/entitycreation/CreateNewAgent.java | 42 ----- .../predefined/entitycreation/CreateNewItem.java | 41 ----- .../predefined/entitycreation/Dependency.java | 66 -------- .../entitycreation/DependencyMember.java | 29 ---- .../predefined/entitycreation/Geometry.java | 29 ---- .../predefined/entitycreation/NewAgent.java | 60 ------- .../predefined/entitycreation/NewItem.java | 187 --------------------- .../predefined/entitycreation/NewRole.java | 19 --- .../predefined/entitycreation/Outcome.java | 27 --- .../instance/predefined/server/CreateNewAgent.java | 43 +++++ .../instance/predefined/server/CreateNewItem.java | 42 +++++ .../java/com/c2kernel/process/module/Module.java | 28 +-- .../com/c2kernel/process/module/ModuleImports.java | 30 ++-- 25 files changed, 617 insertions(+), 615 deletions(-) create mode 100644 src/main/java/com/c2kernel/entity/imports/Geometry.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportAgent.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportAggregation.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportDependency.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportDependencyMember.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportItem.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportOutcome.java create mode 100644 src/main/java/com/c2kernel/entity/imports/ImportRole.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Aggregation.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/AggregationMember.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Dependency.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/DependencyMember.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Geometry.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java delete mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java create mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewAgent.java create mode 100644 src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewItem.java (limited to 'src/main/java/com/c2kernel') diff --git a/src/main/java/com/c2kernel/entity/imports/Geometry.java b/src/main/java/com/c2kernel/entity/imports/Geometry.java new file mode 100644 index 0000000..cb973d3 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/Geometry.java @@ -0,0 +1,29 @@ + + +package com.c2kernel.entity.imports; + + + +public class Geometry implements java.io.Serializable { + + + public int x; + + public int y; + + public int width; + + public int height; + + public Geometry() { + super(); + } + + public Geometry(int x, int y, int width, int height) { + this.x = x; + this.y = y; + this.width = width; + this.height = height; + } + +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAgent.java b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java new file mode 100644 index 0000000..26e3325 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java @@ -0,0 +1,60 @@ +package com.c2kernel.entity.imports; + +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; + +import com.c2kernel.common.CannotManageException; +import com.c2kernel.common.ObjectAlreadyExistsException; +import com.c2kernel.common.ObjectCannotBeUpdated; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.entity.agent.ActiveEntity; +import com.c2kernel.lookup.AgentPath; +import com.c2kernel.lookup.RolePath; +import com.c2kernel.process.Gateway; +import com.c2kernel.process.module.ModuleImport; +import com.c2kernel.property.Property; +import com.c2kernel.property.PropertyArrayList; +import com.c2kernel.utils.Logger; + +public class ImportAgent extends ModuleImport implements java.io.Serializable { + + public String password; + + public ArrayList roles = new ArrayList(); + public ArrayList properties = new ArrayList(); + + public ImportAgent() { + } + + public ImportAgent(String name, String password) { + this.name = name; + this.password = password; + } + + public void create(int agentId) throws ObjectNotFoundException, ObjectCannotBeUpdated, NoSuchAlgorithmException, CannotManageException, ObjectAlreadyExistsException { + AgentPath newAgent = Gateway.getNextKeyManager().generateNextAgentKey(); + newAgent.setAgentName(name); + newAgent.setPassword(password); + ActiveEntity newAgentEnt = (ActiveEntity)Gateway.getCorbaServer().createEntity(newAgent); + Gateway.getLookup().add(newAgent); + // assemble properties + properties.add(new com.c2kernel.property.Property("Name", name, true)); + properties.add(new com.c2kernel.property.Property("Type", "Agent", false)); + try { + newAgentEnt.initialise(agentId, Gateway.getMarshaller().marshall(new PropertyArrayList(properties)), null, null); + } catch (Exception ex) { + Logger.error(ex); + throw new CannotManageException("Error initialising new agent"); + } + for (String role : roles) { + RolePath thisRole; + try { + thisRole = Gateway.getLookup().getRolePath(role); + } catch (ObjectNotFoundException ex) { + throw new ObjectNotFoundException("Role "+role+" does not exist."); + } + thisRole.addAgent(newAgent); + } + + } +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java b/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java new file mode 100644 index 0000000..1c75990 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportAggregation.java @@ -0,0 +1,51 @@ +package com.c2kernel.entity.imports; + +import java.util.ArrayList; + +import com.c2kernel.collection.MembershipException; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.graph.model.GraphPoint; +import com.c2kernel.lookup.DomainPath; +import com.c2kernel.property.PropertyDescription; +import com.c2kernel.property.PropertyDescriptionList; +import com.c2kernel.property.PropertyUtility; + +public class ImportAggregation implements java.io.Serializable { + + public boolean isDescription; + public ArrayList aggregationMemberList = new ArrayList(); + public String name; + + public ImportAggregation() { + super(); + } + + public ImportAggregation(String name, boolean isDescription) { + this(); + this.name = name; + this.isDescription = isDescription; + } + + public com.c2kernel.collection.Aggregation create() throws MembershipException, ObjectNotFoundException { + com.c2kernel.collection.Aggregation newAgg = isDescription?new com.c2kernel.collection.AggregationDescription(name):new com.c2kernel.collection.AggregationInstance(name); + newAgg.setName(name); + for (ImportAggregationMember thisMem : aggregationMemberList) { + StringBuffer classProps = new StringBuffer(); + if (thisMem.itemDescriptionPath != null && thisMem.itemDescriptionPath.length()>0) { + PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(new DomainPath(thisMem.itemDescriptionPath).getSysKey()); + for (PropertyDescription pd : propList.list) { + thisMem.props.put(pd.getName(), pd.getDefaultValue()); + if (pd.getIsClassIdentifier()) + classProps.append((classProps.length()>0?",":"")).append(pd.getName()); + } + } + if (thisMem.itemPath != null && thisMem.itemPath.length()>0) { + int syskey = new DomainPath(thisMem.itemPath).getSysKey(); + if (syskey == -1) + throw new MembershipException("Cannot find "+thisMem.itemPath+" specified for collection."); + newAgg.addMember(syskey, thisMem.props, classProps.toString(), new GraphPoint(thisMem.geometry.x, thisMem.geometry.y), thisMem.geometry.width, thisMem.geometry.height); + } + } + return newAgg; + } +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java b/src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java new file mode 100644 index 0000000..7a1cf21 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportAggregationMember.java @@ -0,0 +1,33 @@ +package com.c2kernel.entity.imports; + +import com.c2kernel.utils.CastorHashMap; +import com.c2kernel.utils.KeyValuePair; + +public class ImportAggregationMember implements java.io.Serializable { + + public int slotNo; + public String itemDescriptionPath; + public String itemPath; + public Geometry geometry; + public CastorHashMap props = new CastorHashMap(); + + + public ImportAggregationMember() { + super(); + } + + public ImportAggregationMember(int slotNo, String itemDescPath, String itemPath, Geometry geometry) { + this.slotNo = slotNo; + this.itemDescriptionPath = itemDescPath; + this.itemPath = itemPath; + this.geometry = geometry; + } + + public KeyValuePair[] getKeyValuePairs() { + return props.getKeyValuePairs(); + } + + public void setKeyValuePairs(KeyValuePair[] pairs) { + props.setKeyValuePairs(pairs); + } +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportDependency.java b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java new file mode 100644 index 0000000..e6ce909 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportDependency.java @@ -0,0 +1,66 @@ +package com.c2kernel.entity.imports; + +import java.util.ArrayList; + +import com.c2kernel.collection.MembershipException; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.lookup.DomainPath; +import com.c2kernel.property.PropertyDescription; +import com.c2kernel.property.PropertyDescriptionList; +import com.c2kernel.property.PropertyUtility; +import com.c2kernel.utils.CastorHashMap; +import com.c2kernel.utils.KeyValuePair; + +public class ImportDependency implements java.io.Serializable { + + public String name; + public boolean isDescription; + public String itemDescriptionPath; + public ArrayList dependencyMemberList = new ArrayList(); + public CastorHashMap props = new CastorHashMap(); + + public ImportDependency() { + super(); + } + + public ImportDependency(String name) { + this(); + this.name = name; + } + + public KeyValuePair[] getKeyValuePairs() { + return props.getKeyValuePairs(); + } + + public void setKeyValuePairs(KeyValuePair[] pairs) { + props.setKeyValuePairs(pairs); + } + + /** + * @return + */ + public com.c2kernel.collection.Dependency create() throws MembershipException, ObjectNotFoundException { + com.c2kernel.collection.Dependency newDep = isDescription?new com.c2kernel.collection.DependencyDescription(name):new com.c2kernel.collection.Dependency(name); + if (itemDescriptionPath != null && itemDescriptionPath.length()>0) { + PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(new DomainPath(itemDescriptionPath).getSysKey()); + StringBuffer classProps = new StringBuffer(); + for (PropertyDescription pd : propList.list) { + props.put(pd.getName(), pd.getDefaultValue()); + if (pd.getIsClassIdentifier()) + classProps.append((classProps.length()>0?",":"")).append(pd.getName()); + } + newDep.setProperties(props); + newDep.setClassProps(classProps.toString()); + } + + for (ImportDependencyMember thisMem : dependencyMemberList) { + int syskey = new DomainPath(thisMem.itemPath).getSysKey(); + if (syskey == -1) + throw new MembershipException("Cannot find "+thisMem.itemPath+" specified for collection."); + com.c2kernel.collection.DependencyMember newDepMem = newDep.addMember(syskey); + newDepMem.getProperties().putAll(thisMem.props); + } + return newDep; + } + +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportDependencyMember.java b/src/main/java/com/c2kernel/entity/imports/ImportDependencyMember.java new file mode 100644 index 0000000..6fc6b5a --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportDependencyMember.java @@ -0,0 +1,29 @@ + +package com.c2kernel.entity.imports; + +import com.c2kernel.utils.CastorHashMap; +import com.c2kernel.utils.KeyValuePair; + +public class ImportDependencyMember implements java.io.Serializable { + + + public String itemPath; + public CastorHashMap props = new CastorHashMap(); + + public ImportDependencyMember() { + super(); + } + + public ImportDependencyMember(String itemPath) { + this.itemPath = itemPath; + + } + + public KeyValuePair[] getKeyValuePairs() { + return props.getKeyValuePairs(); + } + + public void setKeyValuePairs(KeyValuePair[] pairs) { + props.setKeyValuePairs(pairs); + } +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportItem.java b/src/main/java/com/c2kernel/entity/imports/ImportItem.java new file mode 100644 index 0000000..a27d88d --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportItem.java @@ -0,0 +1,187 @@ +package com.c2kernel.entity.imports; + + +import java.util.ArrayList; + +import org.custommonkey.xmlunit.Diff; +import org.custommonkey.xmlunit.XMLUnit; + +import com.c2kernel.collection.CollectionArrayList; +import com.c2kernel.collection.MembershipException; +import com.c2kernel.common.CannotManageException; +import com.c2kernel.common.InvalidDataException; +import com.c2kernel.common.ObjectAlreadyExistsException; +import com.c2kernel.common.ObjectCannotBeUpdated; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.entity.TraceableEntity; +import com.c2kernel.events.Event; +import com.c2kernel.events.History; +import com.c2kernel.lifecycle.CompositeActivityDef; +import com.c2kernel.lifecycle.instance.stateMachine.Transition; +import com.c2kernel.lookup.DomainPath; +import com.c2kernel.lookup.ItemPath; +import com.c2kernel.persistency.ClusterStorage; +import com.c2kernel.persistency.ClusterStorageException; +import com.c2kernel.persistency.outcome.Viewpoint; +import com.c2kernel.process.Gateway; +import com.c2kernel.process.module.ModuleImport; +import com.c2kernel.property.Property; +import com.c2kernel.property.PropertyArrayList; +import com.c2kernel.utils.LocalObjectLoader; +import com.c2kernel.utils.Logger; + +/** + * Complete Structure for new item + * + * @version $Revision: 1.8 $ $Date: 2006/03/03 13:52:21 $ + */ + +public class ImportItem extends ModuleImport { + + public String initialPath; + public String workflow; + public Integer workflowVer; + public ArrayList properties = new ArrayList(); + public ArrayList aggregationList = new ArrayList(); + public ArrayList dependencyList = new ArrayList(); + public ArrayList outcomes = new ArrayList(); + private String ns; + + public ImportItem() { + } + + public ImportItem(String name, String initialPath, String wf, int wfVer) { + this(); + this.name = name; + this.initialPath = initialPath; + this.workflow = wf; + this.workflowVer = wfVer; + } + + public void setNamespace(String ns) { + this.ns = ns; + if (initialPath == null) initialPath = "/desc/"+ns; + } + + public String getNamespace() { + return ns; + } + + public void create(int agentId, boolean reset) throws ObjectCannotBeUpdated, ObjectNotFoundException, CannotManageException, ObjectAlreadyExistsException { + DomainPath domPath = new DomainPath(new DomainPath(initialPath), name); + + ItemPath entPath; TraceableEntity newItem; + if (domPath.exists()) { + entPath = domPath.getEntity(); + newItem = Gateway.getCorbaServer().getItem(entPath.getSysKey()); + } + else { + // create item + entPath = Gateway.getNextKeyManager().generateNextEntityKey(); + newItem = (TraceableEntity)Gateway.getCorbaServer().createEntity(entPath); + Gateway.getLookup().add(entPath); + } + + // set the name property + properties.add(new Property("Name", name, true)); + + // find workflow def + CompositeActivityDef compact; + // default workflow version is 0 if not given + int usedWfVer; + if (workflowVer == null) usedWfVer = 0; + else usedWfVer = workflowVer.intValue(); + try { + compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, usedWfVer); + } catch (ObjectNotFoundException ex) { + throw new CannotManageException("Could not find workflow "+workflow+"v"+usedWfVer+" for item "+domPath, ""); + } catch (InvalidDataException e) { + throw new CannotManageException("Workflow def "+workflow+" v"+usedWfVer+" for item "+domPath+" was not valid", ""); + } + + // create collections + CollectionArrayList colls = new CollectionArrayList(); + for (ImportDependency element: dependencyList) { + try { + com.c2kernel.collection.Dependency newDep = element.create(); + colls.put(newDep); + } catch (MembershipException ex) { + Logger.error(ex); + throw new CannotManageException("A specified member is not of the correct type in "+element.name, ""); + } + } + + for (ImportAggregation element : aggregationList) { + try { + com.c2kernel.collection.Aggregation newAgg = element.create(); + colls.put(newAgg); + } catch (MembershipException ex) { + Logger.error(ex); + throw new CannotManageException("A specified member is not of the correct type in "+element.name, ""); + } + } + + // (re)initialise the new item with properties, workflow and collections + try { + newItem.initialise( + agentId, + Gateway.getMarshaller().marshall(new PropertyArrayList(properties)), + Gateway.getMarshaller().marshall(compact.instantiate()), + Gateway.getMarshaller().marshall(colls)); + } catch (Exception ex) { + Logger.error("Error initialising new item "+name ); + Logger.error(ex); + throw new CannotManageException("Problem initialising new item. See server log.", ""); + } + + // import outcomes + XMLUnit.setIgnoreWhitespace(true); + XMLUnit.setIgnoreComments(true); + History hist = new History(entPath.getSysKey(), null); + for (ImportOutcome thisOutcome : outcomes) { + com.c2kernel.persistency.outcome.Outcome newOutcome = new com.c2kernel.persistency.outcome.Outcome(-1, thisOutcome.getData(ns), thisOutcome.schema, thisOutcome.version); + Viewpoint impView; + try { + impView = (Viewpoint)Gateway.getStorage().get(entPath.getSysKey(), ClusterStorage.VIEWPOINT+"/"+thisOutcome.schema+"/"+thisOutcome.viewname, null); + + Diff xmlDiff = new Diff(newOutcome.getDOM(), impView.getOutcome().getDOM()); + if (xmlDiff.identical()) { + Logger.msg(5, "NewItem.create() - View "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name+" identical, no update required"); + continue; + } + else { + Logger.msg("NewItem.create() - Difference found in view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name+": "+xmlDiff.toString()); + if (!reset && !impView.getEvent().getStepPath().equals("Import")) { + Logger.msg("Last edit was not done by import, and reset not requested. Not overwriting."); + continue; + } + } + } catch (ObjectNotFoundException ex) { + Logger.msg(3, "View "+thisOutcome.schema+"/"+thisOutcome.viewname+" not found in "+name+". Creating."); + impView = new Viewpoint(entPath.getSysKey(), thisOutcome.schema, thisOutcome.viewname, thisOutcome.version, -1); + } catch (ClusterStorageException e) { + throw new ObjectCannotBeUpdated("Could not check data for view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name); + } catch (InvalidDataException e) { + throw new ObjectCannotBeUpdated("Could not check previous event for view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name); + } + + // write new view/outcome/event + Transition predefDone = new Transition(0, "Done", 0, 0); + Event newEvent = hist.addEvent("system", "Admin", "Import", "Import", "Import", thisOutcome.schema, thisOutcome.version, "PredefinedStep", 0, predefDone, thisOutcome.viewname); + newOutcome.setID(newEvent.getID()); + impView.setEventId(newEvent.getID()); + try { + Gateway.getStorage().put(entPath.getSysKey(), newOutcome, null); + Gateway.getStorage().put(entPath.getSysKey(), impView, null); + } catch (ClusterStorageException e) { + throw new ObjectCannotBeUpdated("Could not store data for view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name); + } + } + + // register domain path (before collections in case of recursive collections) + if (!domPath.exists()) { + domPath.setEntity(entPath); + Gateway.getLookup().add(domPath); + } + } +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportOutcome.java b/src/main/java/com/c2kernel/entity/imports/ImportOutcome.java new file mode 100644 index 0000000..1428483 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportOutcome.java @@ -0,0 +1,27 @@ +package com.c2kernel.entity.imports; + +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.process.Gateway; + +public class ImportOutcome { + public String schema, viewname, path, data; + public int version; + + public ImportOutcome() { + } + + public ImportOutcome(String schema, int version, String viewname, String path) { + super(); + this.schema = schema; + this.version = version; + this.viewname = viewname; + this.path = path; + } + + public String getData(String ns) throws ObjectNotFoundException { + if (data == null) + data = Gateway.getResource().getTextResource(ns, path); + return data; + } + +} diff --git a/src/main/java/com/c2kernel/entity/imports/ImportRole.java b/src/main/java/com/c2kernel/entity/imports/ImportRole.java new file mode 100644 index 0000000..8313c24 --- /dev/null +++ b/src/main/java/com/c2kernel/entity/imports/ImportRole.java @@ -0,0 +1,19 @@ +package com.c2kernel.entity.imports; + +import com.c2kernel.common.ObjectAlreadyExistsException; +import com.c2kernel.common.ObjectCannotBeUpdated; +import com.c2kernel.process.Gateway; +import com.c2kernel.process.module.ModuleImport; + +public class ImportRole extends ModuleImport { + + public boolean jobList; + + public ImportRole() { + } + + public void create(int agentId) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated { + Gateway.getLookup().createRole(name, jobList); + } + +} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/ServerPredefinedStepContainer.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/ServerPredefinedStepContainer.java index 667ae5d..32cf7b2 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/ServerPredefinedStepContainer.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/ServerPredefinedStepContainer.java @@ -1,9 +1,9 @@ package com.c2kernel.lifecycle.instance.predefined; import com.c2kernel.graph.model.GraphPoint; -import com.c2kernel.lifecycle.instance.predefined.entitycreation.CreateNewAgent; -import com.c2kernel.lifecycle.instance.predefined.entitycreation.CreateNewItem; import com.c2kernel.lifecycle.instance.predefined.server.AddDomainContext; +import com.c2kernel.lifecycle.instance.predefined.server.CreateNewAgent; +import com.c2kernel.lifecycle.instance.predefined.server.CreateNewItem; import com.c2kernel.lifecycle.instance.predefined.server.RemoveAgent; import com.c2kernel.lifecycle.instance.predefined.server.RemoveDomainContext; import com.c2kernel.lifecycle.instance.predefined.server.SetAgentPassword; diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Aggregation.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Aggregation.java deleted file mode 100644 index 40e0604..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Aggregation.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import java.util.ArrayList; - -import com.c2kernel.collection.MembershipException; -import com.c2kernel.common.ObjectNotFoundException; -import com.c2kernel.graph.model.GraphPoint; -import com.c2kernel.lookup.DomainPath; -import com.c2kernel.property.PropertyDescription; -import com.c2kernel.property.PropertyDescriptionList; -import com.c2kernel.property.PropertyUtility; - -public class Aggregation implements java.io.Serializable { - - public boolean isDescription; - public ArrayList aggregationMemberList = new ArrayList(); - public String name; - - public Aggregation() { - super(); - } - - public Aggregation(String name, boolean isDescription) { - this(); - this.name = name; - this.isDescription = isDescription; - } - - public com.c2kernel.collection.Aggregation create() throws MembershipException, ObjectNotFoundException { - com.c2kernel.collection.Aggregation newAgg = isDescription?new com.c2kernel.collection.AggregationDescription(name):new com.c2kernel.collection.AggregationInstance(name); - newAgg.setName(name); - for (AggregationMember thisMem : aggregationMemberList) { - StringBuffer classProps = new StringBuffer(); - if (thisMem.itemDescriptionPath != null && thisMem.itemDescriptionPath.length()>0) { - PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(new DomainPath(thisMem.itemDescriptionPath).getSysKey()); - for (PropertyDescription pd : propList.list) { - thisMem.props.put(pd.getName(), pd.getDefaultValue()); - if (pd.getIsClassIdentifier()) - classProps.append((classProps.length()>0?",":"")).append(pd.getName()); - } - } - if (thisMem.itemPath != null && thisMem.itemPath.length()>0) { - int syskey = new DomainPath(thisMem.itemPath).getSysKey(); - if (syskey == -1) - throw new MembershipException("Cannot find "+thisMem.itemPath+" specified for collection."); - newAgg.addMember(syskey, thisMem.props, classProps.toString(), new GraphPoint(thisMem.geometry.x, thisMem.geometry.y), thisMem.geometry.width, thisMem.geometry.height); - } - } - return newAgg; - } -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/AggregationMember.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/AggregationMember.java deleted file mode 100644 index 82c0437..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/AggregationMember.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import com.c2kernel.utils.CastorHashMap; -import com.c2kernel.utils.KeyValuePair; - -public class AggregationMember implements java.io.Serializable { - - public int slotNo; - public String itemDescriptionPath; - public String itemPath; - public Geometry geometry; - public CastorHashMap props = new CastorHashMap(); - - - public AggregationMember() { - super(); - } - - public AggregationMember(int slotNo, String itemDescPath, String itemPath, Geometry geometry) { - this.slotNo = slotNo; - this.itemDescriptionPath = itemDescPath; - this.itemPath = itemPath; - this.geometry = geometry; - } - - public KeyValuePair[] getKeyValuePairs() { - return props.getKeyValuePairs(); - } - - public void setKeyValuePairs(KeyValuePair[] pairs) { - props.setKeyValuePairs(pairs); - } -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java deleted file mode 100644 index 7715e2a..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewAgent.java +++ /dev/null @@ -1,42 +0,0 @@ -/************************************************************************** - * CreateNewAgent.java - * - * Copyright (C) 2001 CERN - European Organization for Nuclear Research - * All rights reserved. - **************************************************************************/ - -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import com.c2kernel.common.InvalidDataException; -import com.c2kernel.lifecycle.instance.predefined.PredefinedStep; -import com.c2kernel.lookup.AgentPath; -import com.c2kernel.process.Gateway; -import com.c2kernel.utils.Logger; - -public class CreateNewAgent extends PredefinedStep -{ - public CreateNewAgent() - { - super(); - getProperties().put("SchemaType", "Agent"); - } - - //requestdata is xmlstring - @Override - protected String runActivityLogic(AgentPath agent, int itemSysKey, - int transitionID, String requestData) throws InvalidDataException { - - String redactedRequestData; - try { - NewAgent newAgent = (NewAgent)Gateway.getMarshaller().unmarshall(requestData); - newAgent.create(agent.getSysKey()); - newAgent.password = "REDACTED"; - redactedRequestData = Gateway.getMarshaller().marshall(newAgent); - return redactedRequestData; - } catch (Exception ex) { - Logger.error(ex); - throw new InvalidDataException("Error creating agent", ""); - } - - } -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java deleted file mode 100644 index bddb39f..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/CreateNewItem.java +++ /dev/null @@ -1,41 +0,0 @@ -/************************************************************************** - * CreateNewItem - * - * Copyright (C) 2005 CERN - European Organization for Nuclear Research - * All rights reserved. - **************************************************************************/ - -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - - - - -import com.c2kernel.common.InvalidDataException; -import com.c2kernel.lifecycle.instance.predefined.PredefinedStep; -import com.c2kernel.lookup.AgentPath; -import com.c2kernel.process.Gateway; -import com.c2kernel.utils.Logger; - -public class CreateNewItem extends PredefinedStep -{ - public CreateNewItem() - { - super(); - getProperties().put("SchemaType", "Item"); - } - - //requestdata is xmlstring - @Override - protected String runActivityLogic(AgentPath agent, int itemSysKey, - int transitionID, String requestData) throws InvalidDataException { - - try { - NewItem item = (NewItem)Gateway.getMarshaller().unmarshall(requestData); - item.create(agent.getSysKey(), false); - return requestData; - } catch (Exception ex) { - Logger.error(ex); - throw new InvalidDataException("Error creating item", ""); - } - } -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Dependency.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Dependency.java deleted file mode 100644 index b3be9d1..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Dependency.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import java.util.ArrayList; - -import com.c2kernel.collection.MembershipException; -import com.c2kernel.common.ObjectNotFoundException; -import com.c2kernel.lookup.DomainPath; -import com.c2kernel.property.PropertyDescription; -import com.c2kernel.property.PropertyDescriptionList; -import com.c2kernel.property.PropertyUtility; -import com.c2kernel.utils.CastorHashMap; -import com.c2kernel.utils.KeyValuePair; - -public class Dependency implements java.io.Serializable { - - public String name; - public boolean isDescription; - public String itemDescriptionPath; - public ArrayList dependencyMemberList = new ArrayList(); - public CastorHashMap props = new CastorHashMap(); - - public Dependency() { - super(); - } - - public Dependency(String name) { - this(); - this.name = name; - } - - public KeyValuePair[] getKeyValuePairs() { - return props.getKeyValuePairs(); - } - - public void setKeyValuePairs(KeyValuePair[] pairs) { - props.setKeyValuePairs(pairs); - } - - /** - * @return - */ - public com.c2kernel.collection.Dependency create() throws MembershipException, ObjectNotFoundException { - com.c2kernel.collection.Dependency newDep = isDescription?new com.c2kernel.collection.DependencyDescription(name):new com.c2kernel.collection.Dependency(name); - if (itemDescriptionPath != null && itemDescriptionPath.length()>0) { - PropertyDescriptionList propList = PropertyUtility.getPropertyDescriptionOutcome(new DomainPath(itemDescriptionPath).getSysKey()); - StringBuffer classProps = new StringBuffer(); - for (PropertyDescription pd : propList.list) { - props.put(pd.getName(), pd.getDefaultValue()); - if (pd.getIsClassIdentifier()) - classProps.append((classProps.length()>0?",":"")).append(pd.getName()); - } - newDep.setProperties(props); - newDep.setClassProps(classProps.toString()); - } - - for (DependencyMember thisMem : dependencyMemberList) { - int syskey = new DomainPath(thisMem.itemPath).getSysKey(); - if (syskey == -1) - throw new MembershipException("Cannot find "+thisMem.itemPath+" specified for collection."); - com.c2kernel.collection.DependencyMember newDepMem = newDep.addMember(syskey); - newDepMem.getProperties().putAll(thisMem.props); - } - return newDep; - } - -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/DependencyMember.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/DependencyMember.java deleted file mode 100644 index 573cdc8..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/DependencyMember.java +++ /dev/null @@ -1,29 +0,0 @@ - -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import com.c2kernel.utils.CastorHashMap; -import com.c2kernel.utils.KeyValuePair; - -public class DependencyMember implements java.io.Serializable { - - - public String itemPath; - public CastorHashMap props = new CastorHashMap(); - - public DependencyMember() { - super(); - } - - public DependencyMember(String itemPath) { - this.itemPath = itemPath; - - } - - public KeyValuePair[] getKeyValuePairs() { - return props.getKeyValuePairs(); - } - - public void setKeyValuePairs(KeyValuePair[] pairs) { - props.setKeyValuePairs(pairs); - } -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Geometry.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Geometry.java deleted file mode 100644 index f18b6d4..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Geometry.java +++ /dev/null @@ -1,29 +0,0 @@ - - -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - - - -public class Geometry implements java.io.Serializable { - - - public int x; - - public int y; - - public int width; - - public int height; - - public Geometry() { - super(); - } - - public Geometry(int x, int y, int width, int height) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java deleted file mode 100644 index 10e5e6f..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewAgent.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; - -import com.c2kernel.common.CannotManageException; -import com.c2kernel.common.ObjectAlreadyExistsException; -import com.c2kernel.common.ObjectCannotBeUpdated; -import com.c2kernel.common.ObjectNotFoundException; -import com.c2kernel.entity.agent.ActiveEntity; -import com.c2kernel.lookup.AgentPath; -import com.c2kernel.lookup.RolePath; -import com.c2kernel.process.Gateway; -import com.c2kernel.process.module.ModuleImport; -import com.c2kernel.property.Property; -import com.c2kernel.property.PropertyArrayList; -import com.c2kernel.utils.Logger; - -public class NewAgent extends ModuleImport implements java.io.Serializable { - - public String password; - - public ArrayList roles = new ArrayList(); - public ArrayList properties = new ArrayList(); - - public NewAgent() { - } - - public NewAgent(String name, String password) { - this.name = name; - this.password = password; - } - - public void create(int agentId) throws ObjectNotFoundException, ObjectCannotBeUpdated, NoSuchAlgorithmException, CannotManageException, ObjectAlreadyExistsException { - AgentPath newAgent = Gateway.getNextKeyManager().generateNextAgentKey(); - newAgent.setAgentName(name); - newAgent.setPassword(password); - ActiveEntity newAgentEnt = (ActiveEntity)Gateway.getCorbaServer().createEntity(newAgent); - Gateway.getLookup().add(newAgent); - // assemble properties - properties.add(new com.c2kernel.property.Property("Name", name, true)); - properties.add(new com.c2kernel.property.Property("Type", "Agent", false)); - try { - newAgentEnt.initialise(agentId, Gateway.getMarshaller().marshall(new PropertyArrayList(properties)), null, null); - } catch (Exception ex) { - Logger.error(ex); - throw new CannotManageException("Error initialising new agent"); - } - for (String role : roles) { - RolePath thisRole; - try { - thisRole = Gateway.getLookup().getRolePath(role); - } catch (ObjectNotFoundException ex) { - throw new ObjectNotFoundException("Role "+role+" does not exist."); - } - thisRole.addAgent(newAgent); - } - - } -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java deleted file mode 100644 index b1ef0e4..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewItem.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - - -import java.util.ArrayList; - -import org.custommonkey.xmlunit.Diff; -import org.custommonkey.xmlunit.XMLUnit; - -import com.c2kernel.collection.CollectionArrayList; -import com.c2kernel.collection.MembershipException; -import com.c2kernel.common.CannotManageException; -import com.c2kernel.common.InvalidDataException; -import com.c2kernel.common.ObjectAlreadyExistsException; -import com.c2kernel.common.ObjectCannotBeUpdated; -import com.c2kernel.common.ObjectNotFoundException; -import com.c2kernel.entity.TraceableEntity; -import com.c2kernel.events.Event; -import com.c2kernel.events.History; -import com.c2kernel.lifecycle.CompositeActivityDef; -import com.c2kernel.lifecycle.instance.stateMachine.Transition; -import com.c2kernel.lookup.DomainPath; -import com.c2kernel.lookup.ItemPath; -import com.c2kernel.persistency.ClusterStorage; -import com.c2kernel.persistency.ClusterStorageException; -import com.c2kernel.persistency.outcome.Viewpoint; -import com.c2kernel.process.Gateway; -import com.c2kernel.process.module.ModuleImport; -import com.c2kernel.property.Property; -import com.c2kernel.property.PropertyArrayList; -import com.c2kernel.utils.LocalObjectLoader; -import com.c2kernel.utils.Logger; - -/** - * Complete Structure for new item - * - * @version $Revision: 1.8 $ $Date: 2006/03/03 13:52:21 $ - */ - -public class NewItem extends ModuleImport { - - public String initialPath; - public String workflow; - public Integer workflowVer; - public ArrayList properties = new ArrayList(); - public ArrayList aggregationList = new ArrayList(); - public ArrayList dependencyList = new ArrayList(); - public ArrayList outcomes = new ArrayList(); - private String ns; - - public NewItem() { - } - - public NewItem(String name, String initialPath, String wf, int wfVer) { - this(); - this.name = name; - this.initialPath = initialPath; - this.workflow = wf; - this.workflowVer = wfVer; - } - - public void setNamespace(String ns) { - this.ns = ns; - if (initialPath == null) initialPath = "/desc/"+ns; - } - - public String getNamespace() { - return ns; - } - - public void create(int agentId, boolean reset) throws ObjectCannotBeUpdated, ObjectNotFoundException, CannotManageException, ObjectAlreadyExistsException { - DomainPath domPath = new DomainPath(new DomainPath(initialPath), name); - - ItemPath entPath; TraceableEntity newItem; - if (domPath.exists()) { - entPath = domPath.getEntity(); - newItem = Gateway.getCorbaServer().getItem(entPath.getSysKey()); - } - else { - // create item - entPath = Gateway.getNextKeyManager().generateNextEntityKey(); - newItem = (TraceableEntity)Gateway.getCorbaServer().createEntity(entPath); - Gateway.getLookup().add(entPath); - } - - // set the name property - properties.add(new Property("Name", name, true)); - - // find workflow def - CompositeActivityDef compact; - // default workflow version is 0 if not given - int usedWfVer; - if (workflowVer == null) usedWfVer = 0; - else usedWfVer = workflowVer.intValue(); - try { - compact = (CompositeActivityDef)LocalObjectLoader.getActDef(workflow, usedWfVer); - } catch (ObjectNotFoundException ex) { - throw new CannotManageException("Could not find workflow "+workflow+"v"+usedWfVer+" for item "+domPath, ""); - } catch (InvalidDataException e) { - throw new CannotManageException("Workflow def "+workflow+" v"+usedWfVer+" for item "+domPath+" was not valid", ""); - } - - // create collections - CollectionArrayList colls = new CollectionArrayList(); - for (Dependency element: dependencyList) { - try { - com.c2kernel.collection.Dependency newDep = element.create(); - colls.put(newDep); - } catch (MembershipException ex) { - Logger.error(ex); - throw new CannotManageException("A specified member is not of the correct type in "+element.name, ""); - } - } - - for (Aggregation element : aggregationList) { - try { - com.c2kernel.collection.Aggregation newAgg = element.create(); - colls.put(newAgg); - } catch (MembershipException ex) { - Logger.error(ex); - throw new CannotManageException("A specified member is not of the correct type in "+element.name, ""); - } - } - - // (re)initialise the new item with properties, workflow and collections - try { - newItem.initialise( - agentId, - Gateway.getMarshaller().marshall(new PropertyArrayList(properties)), - Gateway.getMarshaller().marshall(compact.instantiate()), - Gateway.getMarshaller().marshall(colls)); - } catch (Exception ex) { - Logger.error("Error initialising new item "+name ); - Logger.error(ex); - throw new CannotManageException("Problem initialising new item. See server log.", ""); - } - - // import outcomes - XMLUnit.setIgnoreWhitespace(true); - XMLUnit.setIgnoreComments(true); - History hist = new History(entPath.getSysKey(), null); - for (Outcome thisOutcome : outcomes) { - com.c2kernel.persistency.outcome.Outcome newOutcome = new com.c2kernel.persistency.outcome.Outcome(-1, thisOutcome.getData(ns), thisOutcome.schema, thisOutcome.version); - Viewpoint impView; - try { - impView = (Viewpoint)Gateway.getStorage().get(entPath.getSysKey(), ClusterStorage.VIEWPOINT+"/"+thisOutcome.schema+"/"+thisOutcome.viewname, null); - - Diff xmlDiff = new Diff(newOutcome.getDOM(), impView.getOutcome().getDOM()); - if (xmlDiff.identical()) { - Logger.msg(5, "NewItem.create() - View "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name+" identical, no update required"); - continue; - } - else { - Logger.msg("NewItem.create() - Difference found in view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name+": "+xmlDiff.toString()); - if (!reset && !impView.getEvent().getStepPath().equals("Import")) { - Logger.msg("Last edit was not done by import, and reset not requested. Not overwriting."); - continue; - } - } - } catch (ObjectNotFoundException ex) { - Logger.msg(3, "View "+thisOutcome.schema+"/"+thisOutcome.viewname+" not found in "+name+". Creating."); - impView = new Viewpoint(entPath.getSysKey(), thisOutcome.schema, thisOutcome.viewname, thisOutcome.version, -1); - } catch (ClusterStorageException e) { - throw new ObjectCannotBeUpdated("Could not check data for view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name); - } catch (InvalidDataException e) { - throw new ObjectCannotBeUpdated("Could not check previous event for view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name); - } - - // write new view/outcome/event - Transition predefDone = new Transition(0, "Done", 0, 0); - Event newEvent = hist.addEvent("system", "Admin", "Import", "Import", "Import", thisOutcome.schema, thisOutcome.version, "PredefinedStep", 0, predefDone, thisOutcome.viewname); - newOutcome.setID(newEvent.getID()); - impView.setEventId(newEvent.getID()); - try { - Gateway.getStorage().put(entPath.getSysKey(), newOutcome, null); - Gateway.getStorage().put(entPath.getSysKey(), impView, null); - } catch (ClusterStorageException e) { - throw new ObjectCannotBeUpdated("Could not store data for view "+thisOutcome.schema+"/"+thisOutcome.viewname+" in "+name); - } - } - - // register domain path (before collections in case of recursive collections) - if (!domPath.exists()) { - domPath.setEntity(entPath); - Gateway.getLookup().add(domPath); - } - } -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java deleted file mode 100644 index 74415a5..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/NewRole.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import com.c2kernel.common.ObjectAlreadyExistsException; -import com.c2kernel.common.ObjectCannotBeUpdated; -import com.c2kernel.process.Gateway; -import com.c2kernel.process.module.ModuleImport; - -public class NewRole extends ModuleImport { - - public boolean jobList; - - public NewRole() { - } - - public void create(int agentId) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated { - Gateway.getLookup().createRole(name, jobList); - } - -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java deleted file mode 100644 index 1a966b5..0000000 --- a/src/main/java/com/c2kernel/lifecycle/instance/predefined/entitycreation/Outcome.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.c2kernel.lifecycle.instance.predefined.entitycreation; - -import com.c2kernel.common.ObjectNotFoundException; -import com.c2kernel.process.Gateway; - -public class Outcome { - public String schema, viewname, path, data; - public int version; - - public Outcome() { - } - - public Outcome(String schema, int version, String viewname, String path) { - super(); - this.schema = schema; - this.version = version; - this.viewname = viewname; - this.path = path; - } - - public String getData(String ns) throws ObjectNotFoundException { - if (data == null) - data = Gateway.getResource().getTextResource(ns, path); - return data; - } - -} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewAgent.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewAgent.java new file mode 100644 index 0000000..f2396da --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewAgent.java @@ -0,0 +1,43 @@ +/************************************************************************** + * CreateNewAgent.java + * + * Copyright (C) 2001 CERN - European Organization for Nuclear Research + * All rights reserved. + **************************************************************************/ + +package com.c2kernel.lifecycle.instance.predefined.server; + +import com.c2kernel.common.InvalidDataException; +import com.c2kernel.entity.imports.ImportAgent; +import com.c2kernel.lifecycle.instance.predefined.PredefinedStep; +import com.c2kernel.lookup.AgentPath; +import com.c2kernel.process.Gateway; +import com.c2kernel.utils.Logger; + +public class CreateNewAgent extends PredefinedStep +{ + public CreateNewAgent() + { + super(); + getProperties().put("SchemaType", "Agent"); + } + + //requestdata is xmlstring + @Override + protected String runActivityLogic(AgentPath agent, int itemSysKey, + int transitionID, String requestData) throws InvalidDataException { + + String redactedRequestData; + try { + ImportAgent newAgent = (ImportAgent)Gateway.getMarshaller().unmarshall(requestData); + newAgent.create(agent.getSysKey()); + newAgent.password = "REDACTED"; + redactedRequestData = Gateway.getMarshaller().marshall(newAgent); + return redactedRequestData; + } catch (Exception ex) { + Logger.error(ex); + throw new InvalidDataException("Error creating agent", ""); + } + + } +} diff --git a/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewItem.java b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewItem.java new file mode 100644 index 0000000..19fd80a --- /dev/null +++ b/src/main/java/com/c2kernel/lifecycle/instance/predefined/server/CreateNewItem.java @@ -0,0 +1,42 @@ +/************************************************************************** + * CreateNewItem + * + * Copyright (C) 2005 CERN - European Organization for Nuclear Research + * All rights reserved. + **************************************************************************/ + +package com.c2kernel.lifecycle.instance.predefined.server; + + + + +import com.c2kernel.common.InvalidDataException; +import com.c2kernel.entity.imports.ImportItem; +import com.c2kernel.lifecycle.instance.predefined.PredefinedStep; +import com.c2kernel.lookup.AgentPath; +import com.c2kernel.process.Gateway; +import com.c2kernel.utils.Logger; + +public class CreateNewItem extends PredefinedStep +{ + public CreateNewItem() + { + super(); + getProperties().put("SchemaType", "Item"); + } + + //requestdata is xmlstring + @Override + protected String runActivityLogic(AgentPath agent, int itemSysKey, + int transitionID, String requestData) throws InvalidDataException { + + try { + ImportItem item = (ImportItem)Gateway.getMarshaller().unmarshall(requestData); + item.create(agent.getSysKey(), false); + return requestData; + } catch (Exception ex) { + Logger.error(ex); + throw new InvalidDataException("Error creating item", ""); + } + } +} diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index dae5711..873754f 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -4,14 +4,14 @@ import java.util.ArrayList; import java.util.Properties; import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.entity.imports.ImportDependency; +import com.c2kernel.entity.imports.ImportDependencyMember; +import com.c2kernel.entity.imports.ImportAgent; +import com.c2kernel.entity.imports.ImportItem; +import com.c2kernel.entity.imports.ImportRole; +import com.c2kernel.entity.imports.ImportOutcome; import com.c2kernel.entity.proxy.AgentProxy; import com.c2kernel.entity.proxy.ItemProxy; -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.NewRole; -import com.c2kernel.lifecycle.instance.predefined.entitycreation.Outcome; import com.c2kernel.lookup.DomainPath; import com.c2kernel.lookup.RolePath; import com.c2kernel.process.Bootstrap; @@ -28,7 +28,7 @@ public class Module { public ModuleImports imports = new ModuleImports(); public ArrayList config = new ArrayList(); public ArrayList scripts = new ArrayList(); - public NewItem moduleItem; + public ImportItem moduleItem; public Module() { super(); @@ -52,7 +52,7 @@ public class Module { } public void addModuleItem(String moduleXML) { - NewItem moduleItem = new NewItem(name, "/desc/modules/", "NoWorkflow", 0); + ImportItem moduleItem = new ImportItem(name, "/desc/modules/", "NoWorkflow", 0); // Module properties moduleItem.properties.add(new com.c2kernel.property.Property("Namespace", ns, false)); moduleItem.properties.add(new com.c2kernel.property.Property("Name", name, false)); @@ -60,15 +60,15 @@ public class Module { moduleItem.properties.add(new com.c2kernel.property.Property("Layer", String.valueOf(info.layer), true)); moduleItem.properties.add(new com.c2kernel.property.Property("Version", info.version, true)); // Add dependency for all children - Dependency children = new Dependency("Contents"); + ImportDependency children = new ImportDependency("Contents"); for (ModuleImport thisImport : imports.list) { DomainPath path = thisImport.path; if (path != null) - children.dependencyMemberList.add(new DependencyMember(path.toString())); + children.dependencyMemberList.add(new ImportDependencyMember(path.toString())); } moduleItem.dependencyList.add(children); // Add moduleXML - Outcome moduleOutcome = new Outcome("Module", 0, "last", null); + ImportOutcome moduleOutcome = new ImportOutcome("Module", 0, "last", null); moduleOutcome.data = moduleXML; moduleItem.outcomes.add(moduleOutcome); imports.list.add(moduleItem); @@ -87,7 +87,7 @@ public class Module { } } - for (NewRole thisRole : imports.getRoles()) { + for (ImportRole thisRole : imports.getRoles()) { RolePath rolePath; try { rolePath = Gateway.getLookup().getRolePath(thisRole.name); @@ -101,7 +101,7 @@ public class Module { } } - for (NewAgent thisAgent : imports.getAgents()) { + for (ImportAgent thisAgent : imports.getAgents()) { try { Gateway.getLookup().getAgentPath(thisAgent.name); Logger.msg(3, "Module.importAll() - User '"+thisAgent.name+"' found."); @@ -111,7 +111,7 @@ public class Module { thisAgent.create(systemAgentId); } - for (NewItem thisItem : imports.getItems()) { + for (ImportItem thisItem : imports.getItems()) { thisItem.setNamespace(ns); thisItem.create(systemAgentId, reset); } diff --git a/src/main/java/com/c2kernel/process/module/ModuleImports.java b/src/main/java/com/c2kernel/process/module/ModuleImports.java index 5dfde42..e0ddd90 100644 --- a/src/main/java/com/c2kernel/process/module/ModuleImports.java +++ b/src/main/java/com/c2kernel/process/module/ModuleImports.java @@ -2,9 +2,9 @@ package com.c2kernel.process.module; import java.util.ArrayList; -import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewAgent; -import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewItem; -import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewRole; +import com.c2kernel.entity.imports.ImportAgent; +import com.c2kernel.entity.imports.ImportItem; +import com.c2kernel.entity.imports.ImportRole; import com.c2kernel.utils.CastorArrayList; public class ModuleImports extends CastorArrayList { @@ -28,29 +28,29 @@ public class ModuleImports extends CastorArrayList { return subset; } - public ArrayList getItems() { - ArrayList subset = new ArrayList(); + public ArrayList getItems() { + ArrayList subset = new ArrayList(); for (ModuleImport imp : list) { - if (imp instanceof NewItem) - subset.add((NewItem)imp); + if (imp instanceof ImportItem) + subset.add((ImportItem)imp); } return subset; } - public ArrayList getAgents() { - ArrayList subset = new ArrayList(); + public ArrayList getAgents() { + ArrayList subset = new ArrayList(); for (ModuleImport imp : list) { - if (imp instanceof NewAgent) - subset.add((NewAgent)imp); + if (imp instanceof ImportAgent) + subset.add((ImportAgent)imp); } return subset; } - public ArrayList getRoles() { - ArrayList subset = new ArrayList(); + public ArrayList getRoles() { + ArrayList subset = new ArrayList(); for (ModuleImport imp : list) { - if (imp instanceof NewRole) - subset.add((NewRole)imp); + if (imp instanceof ImportRole) + subset.add((ImportRole)imp); } return subset; } -- cgit v1.2.3