Project

General

Profile

1 26600 sandro.lab
package eu.dnetlib.actionmanager;
2
3
import java.util.List;
4
5 42200 claudio.at
import javax.annotation.Resource;
6 26600 sandro.lab
import javax.jws.WebParam;
7
8 42200 claudio.at
import eu.dnetlib.data.hadoop.HadoopServiceCore;
9
import eu.dnetlib.data.hadoop.config.ClusterName;
10
import eu.dnetlib.data.hadoop.rmi.HadoopServiceException;
11
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
12
import org.apache.hadoop.fs.Path;
13 26600 sandro.lab
import org.springframework.beans.factory.annotation.Required;
14
15
import eu.dnetlib.actionmanager.actions.XsltInfoPackageAction;
16
import eu.dnetlib.actionmanager.common.Agent;
17
import eu.dnetlib.actionmanager.common.Operation;
18
import eu.dnetlib.actionmanager.common.Provenance;
19
import eu.dnetlib.actionmanager.hbase.HBaseActionManagerCore;
20
import eu.dnetlib.actionmanager.rmi.ActionManagerException;
21
import eu.dnetlib.actionmanager.rmi.ActionManagerService;
22
import eu.dnetlib.actionmanager.set.ActionManagerSet;
23
import eu.dnetlib.enabling.tools.AbstractBaseService;
24
import eu.dnetlib.enabling.tools.blackboard.NotificationHandler;
25
26
public class ActionManagerServiceImpl extends AbstractBaseService implements ActionManagerService {
27
28
	private HBaseActionManagerCore core;
29
30
	private NotificationHandler notificationHandler;
31
32 42200 claudio.at
	@Resource
33
	private HadoopServiceCore hadoopServiceCore;
34
35 26600 sandro.lab
	@Override
36
	public String createSet(@WebParam(name = "set") final ActionManagerSet set) throws ActionManagerException {
37 42200 claudio.at
		try {
38 42201 claudio.at
			final String basePath = core.getBasePathHDFS();
39 42200 claudio.at
			final Path actionSetPath = new Path(basePath + "/" + set.getId());
40
			hadoopServiceCore.createHdfsDir(ClusterName.DM, actionSetPath.toString(), true);
41
			return core.getInformationServiceClient().registerSetProfile(set);
42
		} catch (HadoopServiceException e) {
43
			throw new ActionManagerException(e);
44
		} catch (ISLookUpException e) {
45
			throw new ActionManagerException(e);
46
		}
47 26600 sandro.lab
	}
48
49
	@Override
50
	public boolean deleteSet(@WebParam(name = "set") final String setId) throws ActionManagerException {
51 42200 claudio.at
		try {
52 42201 claudio.at
			final String basePath = core.getBasePathHDFS();
53 42200 claudio.at
			final Path actionSetPath = new Path(basePath + "/" + setId);
54
			hadoopServiceCore.deleteFromHdfs(ClusterName.DM, actionSetPath.toString());
55
			return core.getInformationServiceClient().deleteSetProfile(setId);
56
		} catch (HadoopServiceException e) {
57
			throw new ActionManagerException(e);
58
		} catch (ISLookUpException e) {
59
			throw new ActionManagerException(e);
60
		}
61 26600 sandro.lab
	}
62
63
	@Override
64
	public List<ActionManagerSet> ListSets() throws ActionManagerException {
65
		return core.listAvailableSets();
66
	}
67
68
	@Override
69
	public String createAction(final String splitRuleId,
70
			final String set,
71
			final Agent agent,
72
			final Operation operation,
73
			final String infoPackage,
74
			final Provenance provenance,
75
			final String trust,
76
			final String nsprefix) throws ActionManagerException {
77
78
		final XsltInfoPackageAction action = core.applyInfoPackageAction(splitRuleId, set, agent, operation, infoPackage, provenance, trust, nsprefix);
79
		return action.getRowKey();
80
	}
81
82
	@Override
83
	public String updateAction(final String actionId,
84
			final String splitRuleId,
85
			final String set,
86
			final Agent agent,
87
			final Operation operation,
88
			final String infoPackage,
89
			final Provenance provenance,
90
			final String trust,
91
			final String nsprefix) throws ActionManagerException {
92
93
		core.deleteInfoPackageAction(actionId);
94
95
		final XsltInfoPackageAction action = core.applyInfoPackageAction(splitRuleId, set, agent, operation, infoPackage, provenance, trust, nsprefix);
96
97
		return action.getRowKey();
98
	}
99
100
	@Override
101
	public boolean deleteAction(final String actionId) throws ActionManagerException {
102
		core.deleteInfoPackageAction(actionId);
103
		return true;
104
	}
105
106
	@Override
107
	public List<String> getActionsByAgent(final String agentId, final int limit) throws ActionManagerException {
108
		return core.getHbaseClient().retrieveActionsByAgent(agentId, limit);
109
	}
110
111
	@Override
112
	public void notify(final String subscriptionId, final String topic, final String isId, final String message) {
113
		notificationHandler.notified(subscriptionId, topic, isId, message);
114
	}
115
116
	public HBaseActionManagerCore getCore() {
117
		return core;
118
	}
119
120
	public void setCore(final HBaseActionManagerCore core) {
121
		this.core = core;
122
	}
123
124
	public NotificationHandler getNotificationHandler() {
125
		return notificationHandler;
126
	}
127
128
	@Required
129
	public void setNotificationHandler(final NotificationHandler notificationHandler) {
130
		this.notificationHandler = notificationHandler;
131
	}
132
133
}