diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2014-05-16 10:38:32 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2014-05-16 10:38:32 +0200 |
| commit | 62c7a46967e949304e6b242854526463aae7ee17 (patch) | |
| tree | 50548ae1c30d8355091f77365214c4378870ddac /src/main/java/com/c2kernel/entity/proxy | |
| parent | 8e8185210f5bd87cb5dcda3a458fe059f811aafc (diff) | |
item.request returns the final outcome, which may be modified during the
execution (e.g. in the case of Predefined Steps). Fixes #136
Diffstat (limited to 'src/main/java/com/c2kernel/entity/proxy')
| -rw-r--r-- | src/main/java/com/c2kernel/entity/proxy/AgentProxy.java | 18 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/entity/proxy/ItemProxy.java | 4 |
2 files changed, 12 insertions, 10 deletions
diff --git a/src/main/java/com/c2kernel/entity/proxy/AgentProxy.java b/src/main/java/com/c2kernel/entity/proxy/AgentProxy.java index 29550d4..b6566a8 100644 --- a/src/main/java/com/c2kernel/entity/proxy/AgentProxy.java +++ b/src/main/java/com/c2kernel/entity/proxy/AgentProxy.java @@ -82,7 +82,7 @@ public class AgentProxy extends ItemProxy * @param job - the job to execute
* @throws ScriptErrorException
*/
- public void execute(ItemProxy item, Job job)
+ public String execute(ItemProxy item, Job job)
throws AccessRightsException,
InvalidTransitionException,
ObjectNotFoundException,
@@ -152,12 +152,14 @@ public class AgentProxy extends ItemProxy job.setAgentId(getSystemKey());
Logger.msg(3, "AgentProxy - submitting job to item proxy");
- item.requestAction(job);
+ String result = item.requestAction(job);
if (Logger.doLog(3)) {
Date timeNow = new Date();
long secsNow = (timeNow.getTime()-startTime.getTime())/1000;
Logger.msg(3, "Execution took "+secsNow+" seconds");
}
+
+ return result;
}
private Object callScript(ItemProxy item, Job job) throws ScriptingEngineException {
@@ -178,7 +180,7 @@ public class AgentProxy extends ItemProxy * @throws ObjectAlreadyExistsException
* @throws ScriptErrorException
*/
- public void execute(Job job)
+ public String execute(Job job)
throws AccessRightsException,
InvalidDataException,
InvalidTransitionException,
@@ -189,13 +191,13 @@ public class AgentProxy extends ItemProxy {
try {
ItemProxy targetItem = Gateway.getProxyManager().getProxy(new ItemPath(job.getItemSysKey()));
- execute(targetItem, job);
+ return execute(targetItem, job);
} catch (InvalidItemPathException e) {
throw new ObjectNotFoundException("Job contained invalid item sysKey: "+job.getItemSysKey(), "");
}
}
- public void execute(ItemProxy item, String predefStep, C2KLocalObject obj)
+ public String execute(ItemProxy item, String predefStep, C2KLocalObject obj)
throws AccessRightsException,
InvalidDataException,
InvalidTransitionException,
@@ -210,10 +212,10 @@ public class AgentProxy extends ItemProxy Logger.error(ex);
throw new InvalidDataException("Error on marshall", "");
}
- execute(item, predefStep, param);
+ return execute(item, predefStep, param);
}
- public void execute(ItemProxy item, String predefStep, String... params)
+ public String execute(ItemProxy item, String predefStep, String... params)
throws AccessRightsException,
InvalidDataException,
InvalidTransitionException,
@@ -221,7 +223,7 @@ public class AgentProxy extends ItemProxy PersistencyException,
ObjectAlreadyExistsException
{
- item.getItem().requestAction(getSystemKey(), "workflow/predefined/"+predefStep, PredefinedStep.DONE, PredefinedStep.bundleData(params));
+ return item.getItem().requestAction(getSystemKey(), "workflow/predefined/"+predefStep, PredefinedStep.DONE, PredefinedStep.bundleData(params));
}
/** Wrappers for scripts */
diff --git a/src/main/java/com/c2kernel/entity/proxy/ItemProxy.java b/src/main/java/com/c2kernel/entity/proxy/ItemProxy.java index f3a2f44..454da6d 100644 --- a/src/main/java/com/c2kernel/entity/proxy/ItemProxy.java +++ b/src/main/java/com/c2kernel/entity/proxy/ItemProxy.java @@ -158,7 +158,7 @@ public class ItemProxy /**************************************************************************
*
**************************************************************************/
- public void requestAction( Job thisJob )
+ public String requestAction( Job thisJob )
throws AccessRightsException,
InvalidTransitionException,
ObjectNotFoundException,
@@ -178,7 +178,7 @@ public class ItemProxy throw new InvalidDataException("No Agent specified.", "");
Logger.msg(7, "ItemProxy - executing "+thisJob.getStepPath()+" for "+thisJob.getAgentName());
- getItem().requestAction (thisJob.getAgentId(), thisJob.getStepPath(),
+ return getItem().requestAction (thisJob.getAgentId(), thisJob.getStepPath(),
thisJob.getTransition().getId(), outcome);
}
|
