summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/entity
diff options
context:
space:
mode:
authorogattaz <olivier@gattaz.com>2014-07-07 10:59:14 +0200
committerogattaz <olivier@gattaz.com>2014-07-07 10:59:14 +0200
commit6772bfb46b72d859c316a9f6573d0c6be477ad5c (patch)
treedafa343584216685e68b6edae37570eb97cf9d0c /src/main/java/com/c2kernel/entity
parent2fd193d7936084de91eae46e8c2763914d87ab71 (diff)
parent0b689a787288f5a4ba568157905c3a0577f83821 (diff)
Merge branch 'master' of ssh://dev.cccs.uwe.ac.uk:22/var/git/cristal-kernel
Diffstat (limited to 'src/main/java/com/c2kernel/entity')
-rw-r--r--src/main/java/com/c2kernel/entity/AgentImplementation.java6
-rw-r--r--src/main/java/com/c2kernel/entity/CorbaServer.java33
-rw-r--r--src/main/java/com/c2kernel/entity/ItemImplementation.java11
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportAgent.java2
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportItem.java4
-rw-r--r--src/main/java/com/c2kernel/entity/imports/ImportRole.java5
-rw-r--r--src/main/java/com/c2kernel/entity/proxy/ProxyManager.java3
-rw-r--r--src/main/java/com/c2kernel/entity/transfer/TransferItem.java4
8 files changed, 41 insertions, 27 deletions
diff --git a/src/main/java/com/c2kernel/entity/AgentImplementation.java b/src/main/java/com/c2kernel/entity/AgentImplementation.java
index 8010114..7f38f13 100644
--- a/src/main/java/com/c2kernel/entity/AgentImplementation.java
+++ b/src/main/java/com/c2kernel/entity/AgentImplementation.java
@@ -6,6 +6,8 @@ import com.c2kernel.common.ObjectNotFoundException;
import com.c2kernel.entity.agent.Job;
import com.c2kernel.entity.agent.JobArrayList;
import com.c2kernel.entity.agent.JobList;
+import com.c2kernel.lifecycle.instance.predefined.PredefinedStepContainer;
+import com.c2kernel.lifecycle.instance.predefined.agent.AgentPredefinedStepContainer;
import com.c2kernel.lookup.AgentPath;
import com.c2kernel.lookup.InvalidItemPathException;
import com.c2kernel.lookup.RolePath;
@@ -75,4 +77,8 @@ public class AgentImplementation extends ItemImplementation implements
}
}
+ @Override
+ protected PredefinedStepContainer getNewPredefStepContainer() {
+ return new AgentPredefinedStepContainer();
+ }
}
diff --git a/src/main/java/com/c2kernel/entity/CorbaServer.java b/src/main/java/com/c2kernel/entity/CorbaServer.java
index 3a01ed7..60c10a8 100644
--- a/src/main/java/com/c2kernel/entity/CorbaServer.java
+++ b/src/main/java/com/c2kernel/entity/CorbaServer.java
@@ -117,29 +117,28 @@ public class CorbaServer {
/**************************************************************************
* Returns a CORBA servant for a pre-existing entity
**************************************************************************/
- private Servant getEntity(int sysKey, org.omg.PortableServer.POA poa) throws ObjectNotFoundException {
+ private Servant getItem(int sysKey, org.omg.PortableServer.POA poa) throws ObjectNotFoundException {
try {
- ItemPath entityPath = new ItemPath(sysKey);
- Servant entity = null;
+ ItemPath itemPath = Gateway.getLookup().getItemPath(sysKey);
+ Servant item = null;
synchronized (mEntityCache) {
- entity = mEntityCache.get(entityPath);
- if (entity == null) {
+ item = mEntityCache.get(itemPath);
+ if (item == null) {
Logger.msg(7, "Creating new servant for "+sysKey);
- Class<?> entityClass = Gateway.getLookup().getItemClass(entityPath);
-
- if (entityClass == TraceableEntity.class) {
- if (poa == null) poa = mItemPOA;
- entity = new TraceableEntity(sysKey, poa);
- }
- else if (entityClass == ActiveEntity.class) {
+ if (itemPath instanceof AgentPath) {
if (poa == null) poa = mAgentPOA;
- entity = new ActiveEntity(sysKey, poa);
+ item = new ActiveEntity(sysKey, poa);
+ }
+ else if (itemPath instanceof ItemPath) {
+ if (poa == null) poa = mItemPOA;
+ item = new TraceableEntity(sysKey, poa);
}
- mEntityCache.put(entityPath, entity);
+
+ mEntityCache.put(itemPath, item);
}
}
- return entity;
+ return item;
} catch (InvalidItemPathException ex) {
throw new ObjectNotFoundException("Invalid Entity Key", "");
@@ -150,14 +149,14 @@ public class CorbaServer {
* Wrapper for fetching Items
**************************************************************************/
public TraceableEntity getItem(int sysKey) throws ObjectNotFoundException {
- return (TraceableEntity)getEntity(sysKey, mItemPOA);
+ return (TraceableEntity)getItem(sysKey, mItemPOA);
}
/**************************************************************************
* Wrapper for fetching Agents
**************************************************************************/
public ActiveEntity getAgent(int sysKey) throws ObjectNotFoundException {
- return (ActiveEntity)getEntity(sysKey, mAgentPOA);
+ return (ActiveEntity)getItem(sysKey, mAgentPOA);
}
/**
diff --git a/src/main/java/com/c2kernel/entity/ItemImplementation.java b/src/main/java/com/c2kernel/entity/ItemImplementation.java
index b12e105..9aa4f9b 100644
--- a/src/main/java/com/c2kernel/entity/ItemImplementation.java
+++ b/src/main/java/com/c2kernel/entity/ItemImplementation.java
@@ -11,6 +11,8 @@ import com.c2kernel.common.PersistencyException;
import com.c2kernel.entity.agent.JobArrayList;
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.item.ItemPredefinedStepContainer;
import com.c2kernel.lookup.AgentPath;
import com.c2kernel.lookup.InvalidItemPathException;
import com.c2kernel.persistency.ClusterStorage;
@@ -75,10 +77,10 @@ public class ItemImplementation implements ItemOperations {
try {
Workflow lc = null;
if (initWfString == null || initWfString.length() == 0)
- lc = new Workflow(new CompositeActivity());
+ lc = new Workflow(new CompositeActivity(), getNewPredefStepContainer());
else
lc = new Workflow((CompositeActivity) Gateway
- .getMarshaller().unmarshall(initWfString));
+ .getMarshaller().unmarshall(initWfString), getNewPredefStepContainer());
lc.initialise(mSystemKey, agentPath);
mStorage.put(mSystemKey, lc, locker);
} catch (Throwable ex) {
@@ -112,6 +114,11 @@ public class ItemImplementation implements ItemOperations {
}
+ protected PredefinedStepContainer getNewPredefStepContainer() {
+
+ return new ItemPredefinedStepContainer();
+ }
+
@Override
public String requestAction(int agentId, String stepPath, int transitionID,
String requestData) throws AccessRightsException,
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportAgent.java b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java
index 26e3325..2aa6533 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportAgent.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportAgent.java
@@ -36,7 +36,7 @@ public class ImportAgent extends ModuleImport implements java.io.Serializable {
newAgent.setAgentName(name);
newAgent.setPassword(password);
ActiveEntity newAgentEnt = (ActiveEntity)Gateway.getCorbaServer().createEntity(newAgent);
- Gateway.getLookup().add(newAgent);
+ Gateway.getLookupManager().add(newAgent);
// assemble properties
properties.add(new com.c2kernel.property.Property("Name", name, true));
properties.add(new com.c2kernel.property.Property("Type", "Agent", false));
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportItem.java b/src/main/java/com/c2kernel/entity/imports/ImportItem.java
index a27d88d..3847fbf 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportItem.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportItem.java
@@ -79,7 +79,7 @@ public class ImportItem extends ModuleImport {
// create item
entPath = Gateway.getNextKeyManager().generateNextEntityKey();
newItem = (TraceableEntity)Gateway.getCorbaServer().createEntity(entPath);
- Gateway.getLookup().add(entPath);
+ Gateway.getLookupManager().add(entPath);
}
// set the name property
@@ -181,7 +181,7 @@ public class ImportItem extends ModuleImport {
// register domain path (before collections in case of recursive collections)
if (!domPath.exists()) {
domPath.setEntity(entPath);
- Gateway.getLookup().add(domPath);
+ Gateway.getLookupManager().add(domPath);
}
}
}
diff --git a/src/main/java/com/c2kernel/entity/imports/ImportRole.java b/src/main/java/com/c2kernel/entity/imports/ImportRole.java
index 8313c24..5749b06 100644
--- a/src/main/java/com/c2kernel/entity/imports/ImportRole.java
+++ b/src/main/java/com/c2kernel/entity/imports/ImportRole.java
@@ -1,5 +1,6 @@
package com.c2kernel.entity.imports;
+import com.c2kernel.common.CannotManageException;
import com.c2kernel.common.ObjectAlreadyExistsException;
import com.c2kernel.common.ObjectCannotBeUpdated;
import com.c2kernel.process.Gateway;
@@ -12,8 +13,8 @@ public class ImportRole extends ModuleImport {
public ImportRole() {
}
- public void create(int agentId) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated {
- Gateway.getLookup().createRole(name, jobList);
+ public void create(int agentId) throws ObjectAlreadyExistsException, ObjectCannotBeUpdated, CannotManageException {
+ Gateway.getLookupManager().createRole(name, jobList);
}
}
diff --git a/src/main/java/com/c2kernel/entity/proxy/ProxyManager.java b/src/main/java/com/c2kernel/entity/proxy/ProxyManager.java
index 2b2e0e9..f65d26e 100644
--- a/src/main/java/com/c2kernel/entity/proxy/ProxyManager.java
+++ b/src/main/java/com/c2kernel/entity/proxy/ProxyManager.java
@@ -40,10 +40,11 @@ public class ProxyManager
{
Logger.msg(5, "ProxyManager - Starting.....");
- Iterator<Path> servers = Gateway.getLookup().searchEntities(new DomainPath("/servers"));
+ Iterator<Path> servers = Gateway.getLookup().search(new DomainPath("/servers"), new Property("Type", "Server"));
while(servers.hasNext()) {
Path thisServerPath = servers.next();
try {
+ Logger.msg(thisServerPath.dump());
int syskey = thisServerPath.getSysKey();
String remoteServer = ((Property)Gateway.getStorage().get(syskey, ClusterStorage.PROPERTY+"/Name", null)).getValue();
String portStr = ((Property)Gateway.getStorage().get(syskey, ClusterStorage.PROPERTY+"/ProxyPort", null)).getValue();
diff --git a/src/main/java/com/c2kernel/entity/transfer/TransferItem.java b/src/main/java/com/c2kernel/entity/transfer/TransferItem.java
index 9a4cfc5..9852555 100644
--- a/src/main/java/com/c2kernel/entity/transfer/TransferItem.java
+++ b/src/main/java/com/c2kernel/entity/transfer/TransferItem.java
@@ -91,7 +91,7 @@ public class TransferItem {
// create item
ItemPath entityPath = new ItemPath(sysKey);
TraceableEntity newItem = (TraceableEntity)Gateway.getCorbaServer().createEntity(entityPath);
- Gateway.getLookup().add(entityPath);
+ Gateway.getLookupManager().add(entityPath);
PropertyArrayList props = new PropertyArrayList();
Workflow wf = null;
@@ -121,7 +121,7 @@ public class TransferItem {
// add domPaths
for (String element : domainPaths) {
DomainPath newPath = new DomainPath(element, entityPath);
- Gateway.getLookup().add(newPath);
+ Gateway.getLookupManager().add(newPath);
}
}