1 package org
.argeo
.slc
.lib
.detached
;
4 import java
.util
.Properties
;
7 import org
.apache
.commons
.logging
.Log
;
8 import org
.apache
.commons
.logging
.LogFactory
;
9 import org
.argeo
.slc
.SlcException
;
10 import org
.argeo
.slc
.detached
.DetachedAnswer
;
11 import org
.argeo
.slc
.detached
.DetachedClient
;
12 import org
.argeo
.slc
.detached
.DetachedRequest
;
13 import org
.argeo
.slc
.execution
.Executable
;
15 public class DetachedAdminTask
implements Executable
{
16 private final static Log log
= LogFactory
.getLog(DetachedAdminTask
.class);
18 private String action
;
19 private DetachedClient client
;
20 private Properties properties
;
22 public void execute() {
23 // Prepare and send request
24 DetachedRequest request
= new DetachedRequest(UUID
.randomUUID()
26 request
.setRef(action
);
28 if (properties
!= null) {
29 request
.setProperties(properties
);
33 client
.sendRequest(request
);
34 DetachedAnswer answer
= client
.receiveAnswer();
35 if (answer
.getStatus() == DetachedAnswer
.ERROR
)
36 throw new SlcException("Error when executing request "
37 + answer
.getUuid() + ": " + answer
.getLog());
39 log
.info("Admin answer: " + answer
.getLog());
40 } catch (Exception e
) {
41 throw new SlcException("Could not send request.", e
);
45 public void setAction(String action
) {
49 public void setClient(DetachedClient detachedClient
) {
50 this.client
= detachedClient
;
53 public void setProperties(Properties properties
) {
54 this.properties
= properties
;