--- /dev/null
+package org.argeo.slc.ant.detached;
+
+import java.util.UUID;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.ant.structure.SAwareTask;
+import org.argeo.slc.core.SlcException;
+import org.argeo.slc.detached.DetachedAnswer;
+import org.argeo.slc.detached.DetachedClient;
+import org.argeo.slc.detached.DetachedRequest;
+
+public class SlcDetachedTask extends SAwareTask {
+ private final static Log log = LogFactory.getLog(SlcDetachedTask.class);
+
+ private String client;
+ private String action;
+
+ @Override
+ protected void executeActions(String mode) {
+ DetachedClient detachedClient = getBean(client);
+ DetachedRequest request = new DetachedRequest(UUID.randomUUID()
+ .toString());
+ request.setRef(action);
+ try {
+ detachedClient.sendRequest(request);
+ DetachedAnswer answer = detachedClient.receiveAnswer();
+ if (answer.getStatus() == DetachedAnswer.ERROR)
+ throw new SlcException("Error when executing request "
+ + answer.getUuid() + ": " + answer.getLog());
+ else
+ log.info("Admin answer: " + answer.getLog());
+ } catch (Exception e) {
+ throw new SlcException("Could not send request.", e);
+ }
+ }
+
+ public void setClient(String driverBean) {
+ this.client = driverBean;
+ }
+
+ public void setAction(String action) {
+ this.action = action;
+ }
+
+}
try {
client.sendRequest(request);
- log.debug("Sent detached request #" + request.getUuid()
- + " for step " + stepBeanName);
} catch (Exception e) {
throw new SlcException("Could not send request for step "
+ stepBeanName, e);
try {
DetachedAnswer answer = client.receiveAnswer();
+ if (answer.getStatus() == DetachedAnswer.ERROR)
+ throw new SlcException("Error when executing step "
+ + answer.getUuid() + ": " + answer.getLog());
+ else
+ log.info("Step answer: " + answer.getLog());
Properties outputParameters = answer.getProperties();
for (Object key : outputParameters.keySet())
testData.getValues().put(key.toString(),
outputParameters.get(key));
- log.debug("Received detached answer #" + answer.getUuid()
- + " for step " + stepBeanName);
} catch (Exception e) {
throw new SlcException("Could not receive answer #"
+ request.getUuid() + " for step " + stepBeanName, e);
PropertyValue propValue = thisBeanDef.getPropertyValues()
.getPropertyValue("step");
Object stepBeanRef = propValue.getValue();
- log.info("stepBeanRef.class=" + stepBeanRef.getClass());
BeanReference ref = (BeanReference) stepBeanRef;
stepBeanName = ref.getBeanName();
}