Revision 35862
Added by Michele Artini about 9 years ago
NodeManagerServiceImpl.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.enabling.node; |
2 | 2 |
|
3 |
import java.util.Map; |
|
4 |
|
|
5 |
import javax.annotation.Resource; |
|
6 |
|
|
3 | 7 |
import org.apache.commons.logging.Log; |
4 | 8 |
import org.apache.commons.logging.LogFactory; |
5 | 9 |
|
6 | 10 |
import com.google.common.base.Joiner; |
11 |
import com.google.gson.Gson; |
|
12 |
import com.google.gson.reflect.TypeToken; |
|
7 | 13 |
|
8 | 14 |
import eu.dnetlib.common.services.AbstractBaseService; |
15 |
import eu.dnetlib.enabling.blackboard.BlackboardRegistry; |
|
16 |
import eu.dnetlib.rmi.objects.is.BlackboardActionStatus; |
|
17 |
import eu.dnetlib.rmi.objects.is.BlackboardMessage; |
|
9 | 18 |
import eu.dnetlib.rmi.objects.is.Operation; |
10 | 19 |
import eu.dnetlib.rmi.soap.NodeManagerService; |
11 | 20 |
|
... | ... | |
13 | 22 |
|
14 | 23 |
private static final Log log = LogFactory.getLog(NodeManagerServiceImpl.class); |
15 | 24 |
|
25 |
@Resource |
|
26 |
private BlackboardRegistry blackboardRegistry; |
|
27 |
|
|
16 | 28 |
@Override |
17 | 29 |
public String echo(final String message) { |
18 | 30 |
return Joiner.on(", ").join(message, message, message); |
... | ... | |
20 | 32 |
|
21 | 33 |
@Override |
22 | 34 |
public void notify(final String subscriptionId, final Operation operation, final String message) { |
23 |
log.debug("got notification: subscrId: " + subscriptionId + ", operation: " + operation + ", message: " + message); |
|
35 |
|
|
36 |
if (blackboardRegistry.requiresBlackboardAction(subscriptionId)) { |
|
37 |
final Map<String, String> map = new Gson().fromJson(message, new TypeToken<Map<String, String>>() {}.getType()); |
|
38 |
|
|
39 |
log.info("got blackboard message - subscrId: " + subscriptionId + ", operation: " + operation + ", message: " + map.get("message")); |
|
40 |
|
|
41 |
final BlackboardMessage bbMessage = new BlackboardMessage(); |
|
42 |
bbMessage.setAction(map.get("action")); |
|
43 |
bbMessage.setId(map.get("id")); |
|
44 |
bbMessage.setJsonMessage(map.get("message")); |
|
45 |
bbMessage.setStatus(BlackboardActionStatus.valueOf(map.get("status"))); |
|
46 |
|
|
47 |
blackboardRegistry.activateAction(subscriptionId, bbMessage); |
|
48 |
} else { |
|
49 |
log.info("got notification - subscrId: " + subscriptionId + ", operation: " + operation + ", message: " + message); |
|
50 |
|
|
51 |
} |
|
24 | 52 |
} |
25 |
|
|
26 | 53 |
} |
Also available in: Unified diff
blackboard status update