1 package org
.argeo
.slc
.lib
.detached
;
3 import java
.util
.Properties
;
6 import org
.apache
.commons
.logging
.Log
;
7 import org
.apache
.commons
.logging
.LogFactory
;
8 import org
.argeo
.slc
.SlcException
;
9 import org
.argeo
.slc
.detached
.DetachedAnswer
;
10 import org
.argeo
.slc
.detached
.DetachedClient
;
11 import org
.argeo
.slc
.detached
.DetachedRequest
;
13 public class DetachedAdminTask
implements Runnable
{
14 private final static Log log
= LogFactory
.getLog(DetachedAdminTask
.class);
16 private String action
;
17 private DetachedClient client
;
18 private Properties properties
;
21 // Prepare and send request
22 DetachedRequest request
= new DetachedRequest(UUID
.randomUUID()
24 request
.setRef(action
);
26 if (properties
!= null) {
27 request
.setProperties(properties
);
31 client
.sendRequest(request
);
32 DetachedAnswer answer
= client
.receiveAnswer();
33 if (answer
.getStatus() == DetachedAnswer
.ERROR
)
34 throw new SlcException("Error when executing request "
35 + answer
.getUuid() + ": " + answer
.getLog());
37 log
.info("Admin answer: " + answer
.getLog());
38 } catch (Exception e
) {
39 throw new SlcException("Could not send request.", e
);
43 public void setAction(String action
) {
47 public void setClient(DetachedClient detachedClient
) {
48 this.client
= detachedClient
;
51 public void setProperties(Properties properties
) {
52 this.properties
= properties
;