Project

General

Profile

« Previous | Next » 

Revision 35862

blackboard status update

View differences:

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