Revision 37638
Added by Claudio Atzori over 9 years ago
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/test/profiles/meta/workflows/apply.actions.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<RESOURCE_PROFILE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
|
3 |
<HEADER> |
|
4 |
<RESOURCE_IDENTIFIER value="3e225d27-696a-4d55-96d4-3498a61960d9_V29ya2Zsb3dEU1Jlc291cmNlcy9Xb3JrZmxvd0RTUmVzb3VyY2VUeXBl"/> |
|
5 |
<RESOURCE_TYPE value="WorkflowDSResourceType"/> |
|
6 |
<RESOURCE_KIND value="WorkflowDSResources"/> |
|
7 |
<RESOURCE_URI value=""/> |
|
8 |
<DATE_OF_CREATION value="2006-05-04T18:13:51.0Z"/> |
|
9 |
</HEADER> |
|
10 |
<BODY> |
|
11 |
<WORKFLOW_NAME>Apply Actions</WORKFLOW_NAME> |
|
12 |
<WORKFLOW_TYPE>Deduplication</WORKFLOW_TYPE> |
|
13 |
<WORKFLOW_PRIORITY>30</WORKFLOW_PRIORITY> |
|
14 |
<CONFIGURATION start="manual"> |
|
15 |
|
|
16 |
<NODE name="promoteActions" type="PromoteActions" isStart="true"> |
|
17 |
<DESCRIPTION>Promote actions</DESCRIPTION> |
|
18 |
<PARAMETERS> |
|
19 |
<PARAM function="obtainValues('dedupOrchestrations', {})" required="false" type="string" name="set" managedBy="user"></PARAM> |
|
20 |
</PARAMETERS> |
|
21 |
<ARCS> |
|
22 |
<ARC to="querySimilarities" /> |
|
23 |
<ARC to="queryDissimilarities" /> |
|
24 |
</ARCS> |
|
25 |
</NODE> |
|
26 |
|
|
27 |
<NODE name="querySimilarities" type="QueryDb"> |
|
28 |
<DESCRIPTION>query similarity</DESCRIPTION> |
|
29 |
<PARAMETERS> |
|
30 |
<PARAM name="dbProperty" type="string" managedBy="system" required="true">dnet.dedup.db.name</PARAM> |
|
31 |
<PARAM name="sql" type="string" managedBy="system" required="true">/eu/dnetlib/msro/workflows/dedup/querySimilarities.sql</PARAM> |
|
32 |
<PARAM name="outputEprParam" type="string" managedBy="system" required="true">simEpr</PARAM> |
|
33 |
</PARAMETERS> |
|
34 |
<ARCS> |
|
35 |
<ARC to="buildSimilarityMesh"/> |
|
36 |
</ARCS> |
|
37 |
</NODE> |
|
38 |
<NODE name="buildSimilarityMesh" type="BuildSimilarityMeshJob"> |
|
39 |
<DESCRIPTION>build mesh</DESCRIPTION> |
|
40 |
<PARAMETERS> |
|
41 |
<PARAM name="inputEprParam" type="string" managedBy="system" required="true">simEpr</PARAM> |
|
42 |
<PARAM name="outputEprParam" type="string" managedBy="system" required="true">simMeshEpr</PARAM> |
|
43 |
</PARAMETERS> |
|
44 |
<ARCS> |
|
45 |
<ARC to="storeSimilarities"/> |
|
46 |
</ARCS> |
|
47 |
</NODE> |
|
48 |
<NODE name="storeSimilarities" type="StoreHBase"> |
|
49 |
<DESCRIPTION>store similarity</DESCRIPTION> |
|
50 |
<PARAMETERS> |
|
51 |
<PARAM name="inputEprParam" type="string" managedBy="system" required="true">simMeshEpr</PARAM> |
|
52 |
<PARAM name="hbaseTableProperty" type="string" managedBy="system" required="true">hbase.mapred.datatable</PARAM> |
|
53 |
<PARAM name="cluster" type="string" managedBy="system" required="true">DM</PARAM> |
|
54 |
<PARAM name="xslt" type="string" managedBy="system" required="true">/eu/dnetlib/msro/workflows/dedup/similarity_2_hbase.xsl</PARAM> |
|
55 |
<PARAM name="simulation" type="boolean" managedBy="user" required="false">false</PARAM> |
|
56 |
</PARAMETERS> |
|
57 |
<ARCS> |
|
58 |
<ARC to="success"/> |
|
59 |
</ARCS> |
|
60 |
</NODE> |
|
61 |
|
|
62 |
<NODE name="queryDissimilarities" type="QueryDb"> |
|
63 |
<DESCRIPTION>query dissimilarity</DESCRIPTION> |
|
64 |
<PARAMETERS> |
|
65 |
<PARAM name="dbProperty" type="string" managedBy="system" required="true">dnet.dedup.db.name</PARAM> |
|
66 |
<PARAM name="sql" type="string" managedBy="system" required="true">/eu/dnetlib/msro/workflows/dedup/queryDissimilarities.sql</PARAM> |
|
67 |
<PARAM name="outputEprParam" type="string" managedBy="system" required="true">dissimEpr</PARAM> |
|
68 |
</PARAMETERS> |
|
69 |
<ARCS> |
|
70 |
<ARC to="storeDissimilarities"/> |
|
71 |
</ARCS> |
|
72 |
</NODE> |
|
73 |
<NODE name="storeDissimilarities" type="DeleteFromHBase"> |
|
74 |
<DESCRIPTION>store dissimilarity</DESCRIPTION> |
|
75 |
<PARAMETERS> |
|
76 |
<PARAM name="inputEprParam" type="string" managedBy="system" required="true">dissimEpr</PARAM> |
|
77 |
<PARAM name="hbaseTableProperty" type="string" managedBy="system" required="true">hbase.mapred.datatable</PARAM> |
|
78 |
<PARAM name="cluster" type="string" managedBy="system" required="true">DM</PARAM> |
|
79 |
<PARAM name="xslt" type="string" managedBy="system" required="true">/eu/dnetlib/msro/workflows/dedup/dissimilarity_2_hbase.xsl</PARAM> |
|
80 |
<PARAM name="simulation" type="boolean" managedBy="user" required="false">false</PARAM> |
|
81 |
</PARAMETERS> |
|
82 |
<ARCS> |
|
83 |
<ARC to="success"/> |
|
84 |
</ARCS> |
|
85 |
</NODE> |
|
86 |
|
|
87 |
</CONFIGURATION> |
|
88 |
<STATUS /> |
|
89 |
</BODY> |
|
90 |
</RESOURCE_PROFILE> |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/test/profiles/meta/workflows/dedup.roots.csv.export.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<RESOURCE_PROFILE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
|
3 |
<HEADER> |
|
4 |
<RESOURCE_IDENTIFIER value="374d07a1-2a76-470a-ab54-a7d6c35eab9b_V29ya2Zsb3dEU1Jlc291cmNlcy9Xb3JrZmxvd0RTUmVzb3VyY2VUeXBl" /> |
|
5 |
<RESOURCE_TYPE value="WorkflowDSResourceType" /> |
|
6 |
<RESOURCE_KIND value="WorkflowDSResources" /> |
|
7 |
<RESOURCE_URI value="" /> |
|
8 |
<DATE_OF_CREATION value="2006-05-04T18:13:51.0Z" /> |
|
9 |
</HEADER> |
|
10 |
<BODY> |
|
11 |
<WORKFLOW_NAME>Deduplication export</WORKFLOW_NAME> |
|
12 |
<WORKFLOW_TYPE>Deduplication</WORKFLOW_TYPE> |
|
13 |
<WORKFLOW_PRIORITY>30</WORKFLOW_PRIORITY> |
|
14 |
<CONFIGURATION start="manual"> |
|
15 |
<NODE name="setCsvPath" type="SetEnvParameter" isStart="true"> |
|
16 |
<DESCRIPTION>Set the CSV file path on HDFS</DESCRIPTION> |
|
17 |
<PARAMETERS> |
|
18 |
<PARAM managedBy="system" name="parameterName" required="true" type="string">csvPath</PARAM> |
|
19 |
<PARAM managedBy="user" name="parameterValue" required="true" type="string"></PARAM> |
|
20 |
</PARAMETERS> |
|
21 |
<ARCS> |
|
22 |
<ARC to="cleanupCsv" /> |
|
23 |
</ARCS> |
|
24 |
</NODE> |
|
25 |
|
|
26 |
<NODE name="setDedupConfigs" type="SetDedupConfiguration" isStart="true"> |
|
27 |
<DESCRIPTION>Set Dedup conf</DESCRIPTION> |
|
28 |
<PARAMETERS> |
|
29 |
<PARAM function="validValues(['result', 'organization', 'person'])" required="true" type="string" name="entityType" managedBy="user"></PARAM> |
|
30 |
<PARAM required="true" type="string" name="dedupConfigSequence" managedBy="user"></PARAM> |
|
31 |
<PARAM required="true" type="string" name="dedupConfigSequenceParam" managedBy="system">dedup.conf.queue</PARAM> |
|
32 |
</PARAMETERS> |
|
33 |
<ARCS> |
|
34 |
<ARC to="cleanupCsv" /> |
|
35 |
</ARCS> |
|
36 |
</NODE> |
|
37 |
|
|
38 |
<NODE name="hadoopConfig" type="SetClusterAndTable" isStart="true"> |
|
39 |
<DESCRIPTION>Set table name</DESCRIPTION> |
|
40 |
<PARAMETERS> |
|
41 |
<PARAM required="true" type="string" name="cluster" managedBy="system">DM</PARAM> |
|
42 |
<PARAM required="true" type="string" name="table" managedBy="user">db_stdl</PARAM> |
|
43 |
<PARAM required="true" type="string" name="tableParam" managedBy="system">tableName</PARAM> |
|
44 |
</PARAMETERS> |
|
45 |
<ARCS> |
|
46 |
<ARC to="cleanupCsv" /> |
|
47 |
</ARCS> |
|
48 |
</NODE> |
|
49 |
|
|
50 |
<NODE name="cleanupCsv" type="DeleteHdfsPathJob"> |
|
51 |
<DESCRIPTION>CSV files cleanup</DESCRIPTION> |
|
52 |
<PARAMETERS> |
|
53 |
<PARAM required="true" type="string" name="envParams" managedBy="system"> |
|
54 |
{ |
|
55 |
'path' : 'csvPath', |
|
56 |
'cluster' : 'cluster' |
|
57 |
} |
|
58 |
</PARAM> |
|
59 |
</PARAMETERS> |
|
60 |
<ARCS> |
|
61 |
<ARC to="roots2CSV" /> |
|
62 |
</ARCS> |
|
63 |
</NODE> |
|
64 |
|
|
65 |
<NODE name="roots2CSV" type="SubmitHadoopJob"> |
|
66 |
<DESCRIPTION>export the representative entities as CSV files</DESCRIPTION> |
|
67 |
<PARAMETERS> |
|
68 |
<PARAM required="true" type="string" name="hadoopJob" managedBy="system">dedupRootsToCSVJob</PARAM> |
|
69 |
<PARAM required="true" type="string" name="sysParams" managedBy="system"> |
|
70 |
{ |
|
71 |
'hbase.mapred.inputtable' : 'hbase.mapred.datatable', |
|
72 |
'hbase.mapreduce.inputtable' : 'hbase.mapred.datatable' |
|
73 |
} |
|
74 |
</PARAM> |
|
75 |
<PARAM required="true" type="string" name="envParams" managedBy="system"> |
|
76 |
{ |
|
77 |
'cluster' : 'cluster', |
|
78 |
'dedup.wf.conf' : 'dedup.wf.conf', |
|
79 |
'relClasses' : 'relClasses', |
|
80 |
'entityTypeId' : 'entityTypeId', |
|
81 |
'entityType' : 'entityType', |
|
82 |
'hbase.mapred.inputtable' : 'tableName', |
|
83 |
'hbase.mapreduce.inputtable' : 'tableName', |
|
84 |
'mapred.output.dir' : 'csvPath' |
|
85 |
} |
|
86 |
</PARAM> |
|
87 |
<PARAM required="true" type="string" name="params" managedBy="system"> |
|
88 |
{ |
|
89 |
'entityTypeId' : '50', |
|
90 |
'entityType' : 'result' |
|
91 |
} |
|
92 |
</PARAM> |
|
93 |
</PARAMETERS> |
|
94 |
<ARCS> |
|
95 |
<ARC to="success" /> |
|
96 |
</ARCS> |
|
97 |
</NODE> |
|
98 |
</CONFIGURATION> |
|
99 |
<STATUS /> |
|
100 |
</BODY> |
|
101 |
</RESOURCE_PROFILE> |
|
102 |
|
|
103 |
|
|
104 |
|
|
105 |
|
|
106 |
|
|
107 |
|
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/test/profiles/meta/offline.dedup.meta.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<RESOURCE_PROFILE> |
|
3 |
<HEADER> |
|
4 |
<RESOURCE_IDENTIFIER value="80f76a00-0eb3-4df0-a256-99f1df7b5fd8_TWV0YVdvcmtmbG93RFNSZXNvdXJjZXMvTWV0YVdvcmtmbG93RFNSZXNvdXJjZVR5cGU=" /> |
|
5 |
<RESOURCE_TYPE value="MetaWorkflowDSResourceType" /> |
|
6 |
<RESOURCE_KIND value="MetaWorkflowDSResources" /> |
|
7 |
<RESOURCE_URI value="" /> |
|
8 |
<DATE_OF_CREATION value="2006-05-04T18:13:51.0Z" /> |
|
9 |
</HEADER> |
|
10 |
<BODY> |
|
11 |
<METAWORKFLOW_NAME family="Deduplication">Deduplication</METAWORKFLOW_NAME> |
|
12 |
<METAWORKFLOW_DESCRIPTION></METAWORKFLOW_DESCRIPTION> |
|
13 |
<METAWORKFLOW_SECTION>InfoSpace Deduplication</METAWORKFLOW_SECTION> |
|
14 |
<ADMIN_EMAIL /> |
|
15 |
<CONFIGURATION status="EXECUTABLE"> |
|
16 |
<WORKFLOW id="ce304c65-5836-4cf0-9a48-53472b9f6f36_V29ya2Zsb3dEU1Jlc291cmNlcy9Xb3JrZmxvd0RTUmVzb3VyY2VUeXBl" name="reset"> |
|
17 |
<WORKFLOW id="ba9a285a-f71a-4c53-b543-35ec06876f4e_V29ya2Zsb3dEU1Jlc291cmNlcy9Xb3JrZmxvd0RTUmVzb3VyY2VUeXBl" name="selective db2hbase"/> |
|
18 |
<WORKFLOW id="c7d7d775-2db3-474d-85ab-5173a582d516_V29ya2Zsb3dEU1Jlc291cmNlcy9Xb3JrZmxvd0RTUmVzb3VyY2VUeXBl" name="oaf2hbase"> |
|
19 |
<WORKFLOW id="ab5d7de1-b23e-495a-9928-be62a6bbd8b6_V29ya2Zsb3dEU1Jlc291cmNlcy9Xb3JrZmxvd0RTUmVzb3VyY2VUeXBl" name="offline deduplication"/> |
|
20 |
</WORKFLOW> |
|
21 |
</WORKFLOW> |
|
22 |
</CONFIGURATION> |
|
23 |
<SCHEDULING enabled="false"> |
|
24 |
<CRON>29 5 22 ? * *</CRON> |
|
25 |
<MININTERVAL>10080</MININTERVAL> |
|
26 |
</SCHEDULING> |
|
27 |
</BODY> |
|
28 |
</RESOURCE_PROFILE> |
|
29 |
|
|
30 |
<!-- <WORKFLOW id="374d07a1-2a76-470a-ab54-a7d6c35eab9b_V29ya2Zsb3dEU1Jlc291cmNlcy9Xb3JrZmxvd0RTUmVzb3VyY2VUeXBl" name="export"/> --> |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/patch.dedup.sql | ||
---|---|---|
1 |
-- createdb dnet_dedup |
|
2 |
-- manage db with dbService |
|
3 |
|
|
4 |
CREATE TABLE entities ( |
|
5 |
id character varying(255) NOT NULL, |
|
6 |
entitytype character varying(255) NOT NULL, |
|
7 |
_dnet_resource_identifier_ character varying(2048) DEFAULT ((('temp_'::text || md5((clock_timestamp())::text)) || '_'::text) || md5((random())::text)), |
|
8 |
PRIMARY KEY(id) |
|
9 |
); |
|
10 |
|
|
11 |
CREATE TABLE groups ( |
|
12 |
id character varying(255) NOT NULL, |
|
13 |
entitytype character varying(255) NOT NULL, |
|
14 |
actionsetid character varying(255) NOT NULL, |
|
15 |
date timestamp without time zone default now(), |
|
16 |
_dnet_resource_identifier_ character varying(2048) DEFAULT ((('temp_'::text || md5((clock_timestamp())::text)) || '_'::text) || md5((random())::text)), |
|
17 |
PRIMARY KEY(id) |
|
18 |
); |
|
19 |
|
|
20 |
CREATE TABLE similarity_groups ( |
|
21 |
groupid character varying(255) NOT NULL REFERENCES groups(id) ON DELETE CASCADE, |
|
22 |
objidentifier character varying(255) NOT NULL REFERENCES entities(id) ON DELETE CASCADE, |
|
23 |
_dnet_resource_identifier_ character varying(2048) DEFAULT ((('temp_'::text || md5((clock_timestamp())::text)) || '_'::text) || md5((random())::text)), |
|
24 |
PRIMARY KEY(groupid, objidentifier) |
|
25 |
); |
|
26 |
|
|
27 |
CREATE TABLE dissimilarities ( |
|
28 |
id1 character varying(255) NOT NULL REFERENCES entities(id) ON DELETE CASCADE, |
|
29 |
id2 character varying(255) NOT NULL REFERENCES entities(id) ON DELETE CASCADE, |
|
30 |
actionsetid character varying(255) NOT NULL, |
|
31 |
_dnet_resource_identifier_ character varying(2048) DEFAULT ((('temp_'::text || md5((clock_timestamp())::text)) || '_'::text) || md5((random())::text)), |
|
32 |
PRIMARY KEY(id1, id2, actionsetid) |
|
33 |
); |
|
34 |
|
|
35 |
|
|
36 |
|
|
37 |
|
|
38 |
|
|
39 |
|
|
40 |
|
|
41 |
|
|
42 |
|
|
43 |
|
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/functionality/modular/ui/dedup/SimilarityGroup.java | ||
---|---|---|
1 |
package eu.dnetlib.functionality.modular.ui.dedup; |
|
2 |
|
|
3 |
import java.util.Map; |
|
4 |
import java.util.Set; |
|
5 |
|
|
6 |
public class SimilarityGroup { |
|
7 |
|
|
8 |
private String id; |
|
9 |
private String date; |
|
10 |
private EntityType entityType; |
|
11 |
|
|
12 |
private String actionSet; |
|
13 |
|
|
14 |
private Set<String> group; |
|
15 |
|
|
16 |
private Set<String> rootIds; |
|
17 |
|
|
18 |
private Map<String, Set<String>> dissimilar; |
|
19 |
|
|
20 |
public SimilarityGroup() {} |
|
21 |
|
|
22 |
public String getId() { |
|
23 |
return id; |
|
24 |
} |
|
25 |
|
|
26 |
public void setId(final String id) { |
|
27 |
this.id = id; |
|
28 |
} |
|
29 |
|
|
30 |
public String getDate() { |
|
31 |
return date; |
|
32 |
} |
|
33 |
|
|
34 |
public void setDate(final String date) { |
|
35 |
this.date = date; |
|
36 |
} |
|
37 |
|
|
38 |
public Set<String> getGroup() { |
|
39 |
return group; |
|
40 |
} |
|
41 |
|
|
42 |
public void setGroup(final Set<String> group) { |
|
43 |
this.group = group; |
|
44 |
} |
|
45 |
|
|
46 |
public EntityType getEntityType() { |
|
47 |
return entityType; |
|
48 |
} |
|
49 |
|
|
50 |
public void setEntityType(final EntityType entityType) { |
|
51 |
this.entityType = entityType; |
|
52 |
} |
|
53 |
|
|
54 |
public Set<String> getRootIds() { |
|
55 |
return rootIds; |
|
56 |
} |
|
57 |
|
|
58 |
public void setRootIds(final Set<String> rootIds) { |
|
59 |
this.rootIds = rootIds; |
|
60 |
} |
|
61 |
|
|
62 |
public Map<String, Set<String>> getDissimilar() { |
|
63 |
return dissimilar; |
|
64 |
} |
|
65 |
|
|
66 |
public void setDissimilar(final Map<String, Set<String>> dissimilar) { |
|
67 |
this.dissimilar = dissimilar; |
|
68 |
} |
|
69 |
|
|
70 |
public String getActionSet() { |
|
71 |
return actionSet; |
|
72 |
} |
|
73 |
|
|
74 |
public void setActionSet(final String actionSet) { |
|
75 |
this.actionSet = actionSet; |
|
76 |
} |
|
77 |
|
|
78 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/functionality/modular/ui/views/ui/dedupInspector.st | ||
---|---|---|
1 |
$common/master( header={ |
|
2 |
<script type="text/javascript" src="../resources/js/angular.min.js" ></script> |
|
3 |
<script type="text/javascript" src="../resources/js/angular-route.min.js"></script> |
|
4 |
|
|
5 |
<script type="text/javascript" src="../resources/js/ui-bootstrap.min.js"></script> |
|
6 |
<script type="text/javascript" src="../resources/js/jquery-ui-1.10.4.min.js"></script> |
|
7 |
|
|
8 |
<script type="text/javascript" src="../resources/js/dedup_inspector_controllers.js"></script> |
|
9 |
<script type="text/javascript" src="../resources/js/dedup_inspector.js"></script> |
|
10 |
|
|
11 |
<link rel="stylesheet" type="text/css" href="../resources/css/jquery-ui-1.10.4.min.css" /> |
|
12 |
|
|
13 |
<style> |
|
14 |
#wfJournalTable { |
|
15 |
width: 100%; |
|
16 |
height: 500px; |
|
17 |
margin-bottom: 20px; |
|
18 |
font-size: 11px; |
|
19 |
} |
|
20 |
|
|
21 |
#wfLogDetails { |
|
22 |
width: 100%; |
|
23 |
height: 300px; |
|
24 |
margin-bottom: 20px; |
|
25 |
font-size: 11px; |
|
26 |
} |
|
27 |
</style> |
|
28 |
|
|
29 |
}, body={ |
|
30 |
<div ng-app="dedupInspector" class="row"> |
|
31 |
|
|
32 |
<div ng-controller="moduleMenuCtrl"> |
|
33 |
|
|
34 |
<div class="col-sm-3 col-lg-2"> |
|
35 |
|
|
36 |
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true" style="cursor: pointer;"> |
|
37 |
|
|
38 |
<div class="panel panel-default" ng-repeat="(entity, confList) in configurations"> |
|
39 |
<div class="panel-heading" role="tab" id="{{entity}}Heading" data-toggle="collapse" data-target="#{{entity}}ActionSets" data-parent="#accordion"> |
|
40 |
<h4 class="panel-title">{{entity}}</h4> |
|
41 |
</div> |
|
42 |
<div id="{{entity}}ActionSets" class="panel-collapse collapse" ng-class="{'in' : contains(confList, app.activeConf)}" role="tabpanel" aria-labelledby="{{entity}}Heading"> |
|
43 |
<ul class="list-group"> |
|
44 |
<li ng-repeat="conf in confList" class="list-group-item"><a href="#/add/{{entity}}/{{conf}}">{{conf}}</a></li> |
|
45 |
</ul> |
|
46 |
</div> |
|
47 |
</div> |
|
48 |
|
|
49 |
</div> |
|
50 |
|
|
51 |
</div> |
|
52 |
<div ng-view class="col-sm-9 col-lg-10"></div> |
|
53 |
</div> |
|
54 |
</div> |
|
55 |
} )$ |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/functionality/modular/ui/webContext-modular-ui-dedup.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<beans xmlns="http://www.springframework.org/schema/beans" |
|
3 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" |
|
4 |
xmlns:sec="http://cxf.apache.org/configuration/security" xmlns:wsa="http://cxf.apache.org/ws/addressing" |
|
5 |
xmlns:p="http://www.springframework.org/schema/p" xmlns:http="http://cxf.apache.org/transports/http/configuration" |
|
6 |
xmlns:t="http://dnetlib.eu/springbeans/t" xmlns:template="http://dnetlib.eu/springbeans/template" |
|
7 |
xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context" |
|
8 |
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
|
9 |
http://cxf.apache.org/ws/addressing http://cxf.apache.org/schemas/ws-addr-conf.xsd |
|
10 |
http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd |
|
11 |
http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd |
|
12 |
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd |
|
13 |
http://dnetlib.eu/springbeans/template http://dnetlib.eu/springbeans/template.xsd |
|
14 |
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd |
|
15 |
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> |
|
16 |
|
|
17 |
|
|
18 |
<bean name="/ui/dedupInspector.do" |
|
19 |
class="eu.dnetlib.functionality.modular.ui.dedup.DedupServiceEntryPointController" |
|
20 |
p:menu="Dedup Service Inspector" |
|
21 |
p:title="Dedup Service Inspector" |
|
22 |
p:description="Dedup Service Inspector" |
|
23 |
p:order="5" |
|
24 |
p:group="Tools"> |
|
25 |
<property name="permissionLevels"> |
|
26 |
<set> |
|
27 |
<value>IS_ADMIN</value> |
|
28 |
</set> |
|
29 |
</property> |
|
30 |
</bean> |
|
31 |
|
|
32 |
</beans> |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/functionality/modular/ui/dedup/DedupServiceEntryPointController.java | ||
---|---|---|
1 |
package eu.dnetlib.functionality.modular.ui.dedup; |
|
2 |
|
|
3 |
import javax.servlet.http.HttpServletRequest; |
|
4 |
import javax.servlet.http.HttpServletResponse; |
|
5 |
|
|
6 |
import org.springframework.beans.factory.annotation.Autowired; |
|
7 |
import org.springframework.ui.ModelMap; |
|
8 |
|
|
9 |
import eu.dnetlib.enabling.locators.UniqueServiceLocator; |
|
10 |
import eu.dnetlib.functionality.modular.ui.ModuleEntryPoint; |
|
11 |
|
|
12 |
public class DedupServiceEntryPointController extends ModuleEntryPoint { |
|
13 |
|
|
14 |
@Autowired |
|
15 |
private UniqueServiceLocator serviceLocator; |
|
16 |
|
|
17 |
@Override |
|
18 |
protected void initialize(final ModelMap map, final HttpServletRequest request, final HttpServletResponse response) throws Exception {} |
|
19 |
|
|
20 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/functionality/modular/ui/workflows/values/ListHBaseMappingTitleValues.java | ||
---|---|---|
1 |
package eu.dnetlib.functionality.modular.ui.workflows.values; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
import java.util.Map; |
|
5 |
|
|
6 |
import javax.annotation.Resource; |
|
7 |
|
|
8 |
import com.google.common.collect.Lists; |
|
9 |
|
|
10 |
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; |
|
11 |
import eu.dnetlib.enabling.locators.UniqueServiceLocator; |
|
12 |
import eu.dnetlib.msro.workflows.util.ValidNodeValuesFetcher; |
|
13 |
|
|
14 |
public class ListHBaseMappingTitleValues extends ValidNodeValuesFetcher { |
|
15 |
|
|
16 |
@Resource |
|
17 |
private UniqueServiceLocator serviceLocator; |
|
18 |
|
|
19 |
@Override |
|
20 |
protected List<DnetParamValue> obtainValues(final Map<String, String> params) throws Exception { |
|
21 |
|
|
22 |
final String xquery = |
|
23 |
"for $x in /RESOURCE_PROFILE[" |
|
24 |
+ ".//RESOURCE_TYPE/@value='TransformationRuleDSResourceType' and " |
|
25 |
+ ".//SOURCE_METADATA_FORMAT/@name = 'oaf' and " |
|
26 |
+ ".//SOURCE_METADATA_FORMAT/@layout = 'store' and " |
|
27 |
+ ".//SOURCE_METADATA_FORMAT/@interpretation = 'cleaned'] " |
|
28 |
+ "return concat($x//RESOURCE_IDENTIFIER/@value, ' @@@ ', $x//SCRIPT/TITLE/text())"; |
|
29 |
|
|
30 |
final List<String> result = serviceLocator.getService(ISLookUpService.class).quickSearchProfile(xquery); |
|
31 |
final List<DnetParamValue> values = Lists.newArrayList(); |
|
32 |
|
|
33 |
for (final String s : result) { |
|
34 |
final String[] arr = s.split("@@@"); |
|
35 |
values.add(new DnetParamValue(arr[0].trim(), arr[1].trim())); |
|
36 |
} |
|
37 |
|
|
38 |
return values; |
|
39 |
} |
|
40 |
|
|
41 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/functionality/modular/ui/workflows/values/ListDedupConfigValues.java | ||
---|---|---|
1 |
package eu.dnetlib.functionality.modular.ui.workflows.values; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
import java.util.Map; |
|
5 |
|
|
6 |
import javax.annotation.Resource; |
|
7 |
|
|
8 |
import com.google.common.collect.Lists; |
|
9 |
|
|
10 |
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; |
|
11 |
import eu.dnetlib.enabling.locators.UniqueServiceLocator; |
|
12 |
import eu.dnetlib.msro.workflows.util.ValidNodeValuesFetcher; |
|
13 |
|
|
14 |
public class ListDedupConfigValues extends ValidNodeValuesFetcher { |
|
15 |
|
|
16 |
@Resource |
|
17 |
private UniqueServiceLocator serviceLocator; |
|
18 |
|
|
19 |
@Override |
|
20 |
protected List<DnetParamValue> obtainValues(final Map<String, String> params) throws Exception { |
|
21 |
|
|
22 |
final String xquery = |
|
23 |
"for $x in /RESOURCE_PROFILE[.//RESOURCE_TYPE/@value='DedupConfigurationDSResourceType'] return concat($x//CONFIGURATION/@id, ' @@@ ', $x//DESCRIPTION) "; |
|
24 |
|
|
25 |
final List<String> result = serviceLocator.getService(ISLookUpService.class).quickSearchProfile(xquery); |
|
26 |
final List<DnetParamValue> values = Lists.newArrayList(); |
|
27 |
|
|
28 |
for (final String s : result) { |
|
29 |
final String[] arr = s.split("@@@"); |
|
30 |
values.add(new DnetParamValue(arr[0].trim(), arr[1].trim())); |
|
31 |
} |
|
32 |
|
|
33 |
return values; |
|
34 |
} |
|
35 |
|
|
36 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/functionality/modular/ui/workflows/values/ListDedupOrchestrationValues.java | ||
---|---|---|
1 |
package eu.dnetlib.functionality.modular.ui.workflows.values; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
import java.util.Map; |
|
5 |
|
|
6 |
import javax.annotation.Resource; |
|
7 |
|
|
8 |
import com.google.common.collect.Lists; |
|
9 |
|
|
10 |
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService; |
|
11 |
import eu.dnetlib.enabling.locators.UniqueServiceLocator; |
|
12 |
import eu.dnetlib.msro.workflows.util.ValidNodeValuesFetcher; |
|
13 |
|
|
14 |
public class ListDedupOrchestrationValues extends ValidNodeValuesFetcher { |
|
15 |
|
|
16 |
@Resource |
|
17 |
private UniqueServiceLocator serviceLocator; |
|
18 |
|
|
19 |
@Override |
|
20 |
protected List<DnetParamValue> obtainValues(final Map<String, String> params) throws Exception { |
|
21 |
|
|
22 |
final String xquery = |
|
23 |
"for $x in /RESOURCE_PROFILE[.//RESOURCE_TYPE/@value='DedupOrchestrationDSResourceType'] return $x//ACTION_SET/@id/string()"; |
|
24 |
|
|
25 |
final List<String> result = serviceLocator.getService(ISLookUpService.class).quickSearchProfile(xquery); |
|
26 |
final List<DnetParamValue> values = Lists.newArrayList(); |
|
27 |
|
|
28 |
for (final String s : result) { |
|
29 |
values.add(new DnetParamValue(s, s)); |
|
30 |
} |
|
31 |
|
|
32 |
return values; |
|
33 |
} |
|
34 |
|
|
35 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/functionality/modular/ui/workflows/values/ListHBaseTables.java | ||
---|---|---|
1 |
package eu.dnetlib.functionality.modular.ui.workflows.values; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
import java.util.Map; |
|
5 |
|
|
6 |
import javax.annotation.Resource; |
|
7 |
|
|
8 |
import org.apache.commons.logging.Log; |
|
9 |
import org.apache.commons.logging.LogFactory; |
|
10 |
|
|
11 |
import com.google.common.base.Function; |
|
12 |
import com.google.common.collect.Iterables; |
|
13 |
import com.google.common.collect.Lists; |
|
14 |
|
|
15 |
import eu.dnetlib.data.hadoop.rmi.HadoopService; |
|
16 |
import eu.dnetlib.enabling.locators.UniqueServiceLocator; |
|
17 |
import eu.dnetlib.msro.workflows.util.ValidNodeValuesFetcher; |
|
18 |
|
|
19 |
public class ListHBaseTables extends ValidNodeValuesFetcher { |
|
20 |
|
|
21 |
/** |
|
22 |
* logger. |
|
23 |
*/ |
|
24 |
private static final Log log = LogFactory.getLog(ListHBaseTables.class); |
|
25 |
|
|
26 |
@Resource |
|
27 |
private UniqueServiceLocator serviceLocator; |
|
28 |
|
|
29 |
private Function<String, DnetParamValue> f = new Function<String, DnetParamValue>() { |
|
30 |
|
|
31 |
@Override |
|
32 |
public DnetParamValue apply(final String s) { |
|
33 |
|
|
34 |
return new DnetParamValue(s, s); |
|
35 |
} |
|
36 |
}; |
|
37 |
|
|
38 |
@Override |
|
39 |
protected List<DnetParamValue> obtainValues(final Map<String, String> params) throws Exception { |
|
40 |
List<DnetParamValue> res = Lists.newArrayList(Iterables.transform(listTables(params.get("cluster")), f)); |
|
41 |
return res; |
|
42 |
} |
|
43 |
|
|
44 |
private List<String> listTables(final String cluster) { |
|
45 |
try { |
|
46 |
log.info("list tables for cluster: " + cluster); |
|
47 |
return serviceLocator.getService(HadoopService.class).listHbaseTables(cluster); |
|
48 |
} catch (Throwable e) { |
|
49 |
log.error(e); |
|
50 |
return Lists.newArrayList(); |
|
51 |
} |
|
52 |
} |
|
53 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/pom.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="UTF-8"?> |
|
2 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> |
|
3 |
<parent> |
|
4 |
<groupId>eu.dnetlib</groupId> |
|
5 |
<artifactId>dnet-parent</artifactId> |
|
6 |
<version>1.0.0</version> |
|
7 |
<relativePath /> |
|
8 |
</parent> |
|
9 |
<modelVersion>4.0.0</modelVersion> |
|
10 |
<groupId>eu.dnetlib</groupId> |
|
11 |
<artifactId>dnet-deduplication</artifactId> |
|
12 |
<packaging>jar</packaging> |
|
13 |
<version>1.1.10</version> |
|
14 |
<scm> |
|
15 |
<developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/dnet-deduplication/tags/dnet-deduplication-1.1.10</developerConnection> |
|
16 |
</scm> |
|
17 |
<dependencies> |
|
18 |
<dependency> |
|
19 |
<groupId>eu.dnetlib</groupId> |
|
20 |
<artifactId>dnet-msro-service</artifactId> |
|
21 |
<version>[3.0.0,4.0.0)</version> |
|
22 |
</dependency> |
|
23 |
<dependency> |
|
24 |
<groupId>eu.dnetlib</groupId> |
|
25 |
<artifactId>dnet-hadoop-service-rmi</artifactId> |
|
26 |
<version>[1.0.0,2.0.0)</version> |
|
27 |
</dependency> |
|
28 |
<dependency> |
|
29 |
<groupId>eu.dnetlib</groupId> |
|
30 |
<artifactId>dnet-actionmanager-api</artifactId> |
|
31 |
<version>[3.0.0,4.0.0)</version> |
|
32 |
</dependency> |
|
33 |
<dependency> |
|
34 |
<groupId>eu.dnetlib</groupId> |
|
35 |
<artifactId>dnet-modular-ui</artifactId> |
|
36 |
<version>[3.0.0,4.0.0)</version> |
|
37 |
</dependency> |
|
38 |
|
|
39 |
<dependency> |
|
40 |
<groupId>eu.dnetlib</groupId> |
|
41 |
<artifactId>dnet-index-solr-client</artifactId> |
|
42 |
<version>[2.0.0,3.0.0)</version> |
|
43 |
</dependency> |
|
44 |
|
|
45 |
<dependency> |
|
46 |
<groupId>eu.dnetlib</groupId> |
|
47 |
<artifactId>dnet-openaireplus-mapping-utils</artifactId> |
|
48 |
<version>[3.0.0,4.0.0)</version> |
|
49 |
</dependency> |
|
50 |
|
|
51 |
|
|
52 |
<dependency> |
|
53 |
<groupId>javax.servlet</groupId> |
|
54 |
<artifactId>javax.servlet-api</artifactId> |
|
55 |
<version>${javax.servlet.version}</version> |
|
56 |
<scope>provided</scope> |
|
57 |
</dependency> |
|
58 |
<dependency> |
|
59 |
<groupId>com.fasterxml.jackson.core</groupId> |
|
60 |
<artifactId>jackson-databind</artifactId> |
|
61 |
<version>2.4.3</version> |
|
62 |
</dependency> |
|
63 |
<dependency> |
|
64 |
<groupId>com.google.guava</groupId> |
|
65 |
<artifactId>guava</artifactId> |
|
66 |
<version>${google.guava.version}</version> |
|
67 |
</dependency> |
|
68 |
|
|
69 |
<dependency> |
|
70 |
<groupId>junit</groupId> |
|
71 |
<artifactId>junit</artifactId> |
|
72 |
<version>${junit.version}</version> |
|
73 |
<scope>test</scope> |
|
74 |
</dependency> |
|
75 |
|
|
76 |
</dependencies> |
|
77 |
</project> |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/web/resources/html/dedup/add.html | ||
---|---|---|
1 |
<nav class="navbar navbar-default" role="navigation"> |
|
2 |
<div class="collapse navbar-collapse"> |
|
3 |
|
|
4 |
<div class="col-sm-3"> |
|
5 |
<a class="navbar-brand">{{group.entityType.label}}</a><a class="navbar-brand" ng-show="results.total > 0">{{results.total}}</a> |
|
6 |
</div> |
|
7 |
<ul class="nav navbar-nav col-sm-2"> |
|
8 |
<li role="presentation" class="active dropdown"><a |
|
9 |
class="dropdown-toggle" data-toggle="dropdown" role="button" |
|
10 |
aria-expanded="false"> Group <span class="badge">{{group.group.length}}</span> |
|
11 |
<span class="caret"></span> |
|
12 |
</a> |
|
13 |
<ul class="dropdown-menu" role="menu"> |
|
14 |
<li><a data-toggle="modal" data-target="#showGroupModal">Show</a></li> |
|
15 |
<li><a ng-click="resetForm()">Reset</a></li> |
|
16 |
<li class="divider"></li> |
|
17 |
<li><a ng-click="commit()">Commit</a></li> |
|
18 |
</ul></li> |
|
19 |
</ul> |
|
20 |
|
|
21 |
<div class="col-sm-2 col-md-2"> |
|
22 |
<form class="navbar-form"> |
|
23 |
<button class="btn btn-info" ng-class="{disabled:start < 20}" |
|
24 |
ng-click="go('/add/' + group.entityType.type + '/' + group.actionSet + '/' + (start-rows) + '/' + query)"> |
|
25 |
« Pevious</button> |
|
26 |
<button class="btn btn-info" |
|
27 |
ng-class="{disabled:groups.length < rows}" |
|
28 |
ng-click="go('/add/' + group.entityType.type + '/' + group.actionSet + '/' + (start+rows) + '/' + query)"> |
|
29 |
Next »</button> |
|
30 |
</form> |
|
31 |
</div> |
|
32 |
|
|
33 |
<div class="col-sm-5 col-md-5 pull-right"> |
|
34 |
<form class="navbar-form" role="search"> |
|
35 |
<div class="input-group"> |
|
36 |
<input type="text" class="form-control" placeholder="Search" |
|
37 |
id="inputFreeSearch" ng-model="query"> |
|
38 |
<div class="input-group-btn"> |
|
39 |
<button class="btn btn-default" |
|
40 |
ng-click="go('/add/' + group.entityType.type + '/' + group.actionSet + '/0/' + query)"> |
|
41 |
<i class="glyphicon glyphicon-search"></i> |
|
42 |
</button> |
|
43 |
</div> |
|
44 |
</div> |
|
45 |
</form> |
|
46 |
</div> |
|
47 |
</div> |
|
48 |
</nav> |
|
49 |
|
|
50 |
<div class="row"> |
|
51 |
|
|
52 |
<div class="col-xs-12" ng-show="results && results.results.length > 0"> |
|
53 |
|
|
54 |
<ng-dedup-records-table ng-show="group.entityType.type == 'result'" |
|
55 |
theads="Group size,Title,Publication date,Abstract" |
|
56 |
fields="groupSize,title,dateofacceptance,description" |
|
57 |
results="results.results" group="group" |
|
58 |
show-merged-fn="showRootModal" add-to-group-fn="add" |
|
59 |
remove-from-group-fn="remove"></ng-dedup-records-table> |
|
60 |
<ng-dedup-records-table |
|
61 |
ng-show="group.entityType.type == 'organization'" |
|
62 |
theads="Group size,Legal name,Legal short name,Website URL" |
|
63 |
fields="groupSize,legalname,legalshortname,websiteurl" |
|
64 |
results="results.results" group="group" |
|
65 |
show-merged-fn="showRootModal" add-to-group-fn="add" |
|
66 |
remove-from-group-fn="remove"></ng-dedup-records-table> |
|
67 |
<ng-dedup-records-table |
|
68 |
ng-show="group.entityType.type == 'person'" |
|
69 |
theads="Group size,Fullname" |
|
70 |
fields="groupSize,fullname" |
|
71 |
results="results.results" group="group" |
|
72 |
show-merged-fn="showRootModal" add-to-group-fn="add" |
|
73 |
remove-from-group-fn="remove"></ng-dedup-records-table> |
|
74 |
|
|
75 |
</div> |
|
76 |
</div> |
|
77 |
|
|
78 |
<div class="modal fade" id="showGroupModal"> |
|
79 |
<div class="modal-dialog modal-lg"> |
|
80 |
<div class="modal-content"> |
|
81 |
<div class="modal-header"> |
|
82 |
<button type="button" class="close" data-dismiss="modal" |
|
83 |
aria-label="Close"> |
|
84 |
<span aria-hidden="true">×</span> |
|
85 |
</button> |
|
86 |
<h4 class="modal-title">Group {{group.entityType.label}}</h4> |
|
87 |
</div> |
|
88 |
<div class="modal-body" style="height: 500px; overflow-y: auto"> |
|
89 |
|
|
90 |
<div class="col-xs-12" ng-show="groupIdDetails"> |
|
91 |
|
|
92 |
<ng-dedup-records-table ng-show="group.entityType.type == 'result'" |
|
93 |
theads="Group size,Title,Publication date,Abstract" |
|
94 |
fields="groupSize,title,dateofacceptance,description" |
|
95 |
results="group.detailList" group="group" removal="removalGroup" |
|
96 |
add-to-removal-group-fn="addToRemovalGroup" remove-from-removal-group-fn="removeFromRemovalGroup"></ng-dedup-records-table> |
|
97 |
<ng-dedup-records-table |
|
98 |
ng-show="group.entityType.type == 'organization'" |
|
99 |
theads="Group size,Legal name,Legal short name,Website URL" |
|
100 |
fields="groupSize,legalname,legalshortname,websiteurl" |
|
101 |
results="group.detailList" group="group" removal="removalGroup" |
|
102 |
add-to-removal-group-fn="addToRemovalGroup" remove-from-removal-group-fn="removeFromRemovalGroup"></ng-dedup-records-table> |
|
103 |
<ng-dedup-records-table |
|
104 |
ng-show="group.entityType.type == 'person'" |
|
105 |
theads="Group size,Fullname" |
|
106 |
fields="groupSize,fullname" |
|
107 |
results="group.detailList" group="group" removal="removalGroup" |
|
108 |
add-to-removal-group-fn="addToRemovalGroup" remove-from-removal-group-fn="removeFromRemovalGroup"></ng-dedup-records-table> |
|
109 |
</div> |
|
110 |
</div> |
|
111 |
<div class="modal-footer"> |
|
112 |
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="removeAndDeassociate(group.group)">Apply</button> |
|
113 |
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="dropRemovalGroup()">Undo</button> |
|
114 |
</div> |
|
115 |
</div> |
|
116 |
</div> |
|
117 |
</div> |
|
118 |
|
|
119 |
<div class="modal fade" id="showRootModal"> |
|
120 |
<div class="modal-dialog modal-lg"> |
|
121 |
<div class="modal-content"> |
|
122 |
<div class="modal-header"> |
|
123 |
<button type="button" class="close" data-dismiss="modal" |
|
124 |
aria-label="Close"> |
|
125 |
<span aria-hidden="true">×</span> |
|
126 |
</button> |
|
127 |
<h4 class="modal-title">Group {{group.entityType.label}}</h4> |
|
128 |
</div> |
|
129 |
<div class="modal-body" style="height: 500px; overflow-y: auto"> |
|
130 |
|
|
131 |
<div class="col-xs-12" ng-show="groupIdDetails"> |
|
132 |
|
|
133 |
<ng-dedup-records-table ng-show="group.entityType.type == 'result'" |
|
134 |
theads="Group size,Title,Publication date,Authors,Abstract" |
|
135 |
fields="groupSize,title,dateofacceptance,author,description" |
|
136 |
results="groupIdDetails.list" group="group"></ng-dedup-records-table> |
|
137 |
<ng-dedup-records-table |
|
138 |
ng-show="group.entityType.type == 'organization'" |
|
139 |
theads="Group size,Legal name,Legal short name,Website URL" |
|
140 |
fields="groupSize,legalname,legalshortname,websiteurl" |
|
141 |
results="groupIdDetails.list" group="group"></ng-dedup-records-table> |
|
142 |
<ng-dedup-records-table |
|
143 |
ng-show="group.entityType.type == 'person'" |
|
144 |
theads="Group size,Fullname" |
|
145 |
fields="groupSize,fullname" |
|
146 |
results="groupIdDetails.list" group="group"></ng-dedup-records-table> |
|
147 |
|
|
148 |
</div> |
|
149 |
</div> |
|
150 |
<div class="modal-footer"> |
|
151 |
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button> |
|
152 |
</div> |
|
153 |
</div> |
|
154 |
</div> |
|
155 |
</div> |
|
156 |
|
|
157 |
|
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/msro/workflows/hadoop/hbase/GetHBaseTableDescriptionJobNode.java | ||
---|---|---|
1 |
package eu.dnetlib.msro.workflows.hadoop.hbase; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
|
|
5 |
import org.apache.commons.logging.Log; |
|
6 |
import org.apache.commons.logging.LogFactory; |
|
7 |
|
|
8 |
import com.googlecode.sarasvati.Arc; |
|
9 |
import com.googlecode.sarasvati.NodeToken; |
|
10 |
|
|
11 |
import eu.dnetlib.data.hadoop.rmi.HadoopService; |
|
12 |
|
|
13 |
public class GetHBaseTableDescriptionJobNode extends AbstractHBaseAdminJobNode { |
|
14 |
|
|
15 |
private static final Log log = LogFactory.getLog(GetHBaseTableDescriptionJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM |
|
16 |
|
|
17 |
@Override |
|
18 |
protected String execute(final NodeToken token) throws Exception { |
|
19 |
final String tableName = tableName(token); |
|
20 |
final String cluster = cluster(token); |
|
21 |
|
|
22 |
log.info("getting table description: '" + tableName + "' on cluster: '" + cluster + "'"); |
|
23 |
|
|
24 |
final List<String> columns = getServiceLocator().getService(HadoopService.class).describeHbaseTable(cluster, tableName); |
|
25 |
log.debug(String.format("table '%s': " + columns, tableName)); |
|
26 |
token.getEnv().setAttribute(getTableColumnsParamName(), asCSV(columns)); |
|
27 |
|
|
28 |
return Arc.DEFAULT_ARC; |
|
29 |
} |
|
30 |
|
|
31 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/msro/workflows/hadoop/hbase/DropHBaseTableJobNode.java | ||
---|---|---|
1 |
package eu.dnetlib.msro.workflows.hadoop.hbase; |
|
2 |
|
|
3 |
import org.apache.commons.logging.Log; |
|
4 |
import org.apache.commons.logging.LogFactory; |
|
5 |
|
|
6 |
import com.googlecode.sarasvati.Arc; |
|
7 |
import com.googlecode.sarasvati.NodeToken; |
|
8 |
|
|
9 |
import eu.dnetlib.data.hadoop.rmi.HadoopService; |
|
10 |
|
|
11 |
/** |
|
12 |
* The Class DropHBaseTableJobNode. |
|
13 |
*/ |
|
14 |
public class DropHBaseTableJobNode extends AbstractHBaseAdminJobNode { |
|
15 |
|
|
16 |
/** The Constant log. */ |
|
17 |
private static final Log log = LogFactory.getLog(DropHBaseTableJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM |
|
18 |
|
|
19 |
/* |
|
20 |
* (non-Javadoc) |
|
21 |
* |
|
22 |
* @see eu.dnetlib.msro.workflows.nodes.SimpleJobNode#execute(com.googlecode.sarasvati.NodeToken) |
|
23 |
*/ |
|
24 |
@Override |
|
25 |
protected String execute(final NodeToken token) throws Exception { |
|
26 |
|
|
27 |
final String tableName = tableName(token); |
|
28 |
final String cluster = cluster(token); |
|
29 |
|
|
30 |
log.info("Dropping hbase table '" + tableName + "' on cluster: '" + cluster + "'"); |
|
31 |
|
|
32 |
getServiceLocator().getService(HadoopService.class).dropHbaseTable(cluster, tableName); |
|
33 |
|
|
34 |
return Arc.DEFAULT_ARC; |
|
35 |
} |
|
36 |
|
|
37 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/web/resources/html/dedup/recordTable.html | ||
---|---|---|
1 |
<style> |
|
2 |
// Mixin |
|
3 |
.text-overflow() { |
|
4 |
overflow: hidden; |
|
5 |
text-overflow: ellipsis; |
|
6 |
white-space: nowrap; |
|
7 |
} |
|
8 |
</style> |
|
9 |
<table class="table table-condensed"> |
|
10 |
<thead> |
|
11 |
<tr> |
|
12 |
<th ng-show="showMergedFn">Show</th> |
|
13 |
<th ng-repeat="th in headers">{{th}}</th> |
|
14 |
</tr> |
|
15 |
</thead> |
|
16 |
<tbody> |
|
17 |
<!-- ng-class="{ success:contains(r.id) }" --> |
|
18 |
<tr ng-repeat="r in results"> |
|
19 |
|
|
20 |
<td class="text-left" ng-show="showMergedFn"> |
|
21 |
<button class="btn btn-info btn-sm" ng-show="r.groupSize > 1" ng-click="showMergedFn(r.idList)"> |
|
22 |
<span class="glyphicon glyphicon-search" aria-hidden="true"></span> |
|
23 |
</button> |
|
24 |
</td> |
|
25 |
|
|
26 |
<td ng-repeat="f in fnames">{{r[f]}}</td> |
|
27 |
|
|
28 |
<td class="text-right"> |
|
29 |
<button class="btn btn-primary btn-sm" |
|
30 |
ng-click="addToGroupFn(r.id, r.idList)" |
|
31 |
ng-hide="containsList(r.idList, group.group) || (!addToGroupFn)"> |
|
32 |
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> |
|
33 |
</button> |
|
34 |
<button class="btn btn-primary btn-sm btn-danger" |
|
35 |
ng-click="removeFromGroupFn(r.id, r.idList)" |
|
36 |
ng-show="containsList(r.idList, group.group) && addToGroupFn"> |
|
37 |
<span class="glyphicon glyphicon-minus" aria-hidden="true"></span> |
|
38 |
</button> |
|
39 |
<button class="btn btn-primary btn-sm btn-warning" |
|
40 |
ng-click="addToRemovalGroupFn(r.id)" |
|
41 |
ng-show="!containsList(r.id, removal) && addToRemovalGroupFn"> |
|
42 |
<span class="glyphicon glyphicon-minus" aria-hidden="true"></span> |
|
43 |
</button> |
|
44 |
<button class="btn btn-primary btn-sm" |
|
45 |
ng-click="removeFromRemovalGroupFn(r.id)" |
|
46 |
ng-show="containsList(r.id, removal) && addToRemovalGroupFn"> |
|
47 |
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> |
|
48 |
</button> |
|
49 |
</td> |
|
50 |
|
|
51 |
</tr> |
|
52 |
</tbody> |
|
53 |
</table> |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/resources/eu/dnetlib/web/resources/js/dedup_inspector.js | ||
---|---|---|
1 |
var module = angular.module('dedupInspector', ['ngRoute', 'dedupInspectorControllers']); |
|
2 |
|
|
3 |
module.run(function($rootScope) { |
|
4 |
$rootScope.Utils = { |
|
5 |
keys : Object.keys, |
|
6 |
values : Object.values |
|
7 |
} |
|
8 |
}); |
|
9 |
|
|
10 |
module.config([ |
|
11 |
'$routeProvider', |
|
12 |
function($routeProvider) { |
|
13 |
$routeProvider |
|
14 |
.when('/add/:entityType', { templateUrl: '../resources/html/dedup/add.html', controller: 'addSimRelsCtrl' }) |
|
15 |
.when('/add/:entityType/:actionSet', { templateUrl: '../resources/html/dedup/add.html', controller: 'addSimRelsCtrl' }) |
|
16 |
.when('/add/:entityType/:actionSet/:start/:query*', { templateUrl: '../resources/html/dedup/add.html', controller: 'addSimRelsCtrl' }); |
|
17 |
//.otherwise({ redirectTo: '/manage/all/0/10' }); |
|
18 |
} |
|
19 |
]); |
|
20 |
|
|
21 |
module.controller('moduleMenuCtrl', [ '$scope', '$location', '$http', '$routeParams', |
|
22 |
function ($scope, $location, $http, $routeParams) { |
|
23 |
$scope.app = {}; |
|
24 |
|
|
25 |
$scope.configurations = {}; |
|
26 |
|
|
27 |
//alert($scope.app.activeConf); |
|
28 |
|
|
29 |
$scope.lookupConfigurations = function() { |
|
30 |
$http.get('dedup/lookupConfigurations.do').success(function(res) { |
|
31 |
if(res) { |
|
32 |
$scope.configurations = res; |
|
33 |
} else { |
|
34 |
$scope.showError('Unable to lookup Dedup confs'); |
|
35 |
} |
|
36 |
}).error(function(err) { |
|
37 |
$scope.showError('Unable to lookup Dedup confs: ' + err.message); |
|
38 |
}); |
|
39 |
} |
|
40 |
if (jQuery.isEmptyObject($scope.configurations)) { |
|
41 |
$scope.lookupConfigurations(); |
|
42 |
} |
|
43 |
|
|
44 |
$scope.contains = function(array, s) { |
|
45 |
for (var i = 0; i < array.length; i++) { |
|
46 |
if (array[i] === s) { |
|
47 |
return true; |
|
48 |
} |
|
49 |
} |
|
50 |
return false; |
|
51 |
} |
|
52 |
} |
|
53 |
]); |
|
54 |
|
|
55 |
module.directive('bsHasError', function() { |
|
56 |
return { |
|
57 |
restrict: "A", |
|
58 |
link: function(scope, element, attrs, ctrl) { |
|
59 |
element.toggleClass('has-feedback', true); |
|
60 |
var input = element.find('input[ng-model], select[ng-model]'); |
|
61 |
if (input) { |
|
62 |
scope.$watch(function() { |
|
63 |
if (input.hasClass('ng-invalid')) { |
|
64 |
return 0; |
|
65 |
} else if (input.hasClass('empty')) { |
|
66 |
return 1; |
|
67 |
} else { |
|
68 |
return 2; |
|
69 |
} |
|
70 |
}, function(code) { |
|
71 |
if (code < 0) return; |
|
72 |
|
|
73 |
element.toggleClass('has-error', (code == 0)); |
|
74 |
element.toggleClass('has-warning', (code == 1)); |
|
75 |
element.toggleClass('has-success', (code == 2)); |
|
76 |
|
|
77 |
var feedback = element.find('.form-control-feedback'); |
|
78 |
if (feedback) { |
|
79 |
feedback.toggleClass('glyphicon-remove', (code == 0)); |
|
80 |
feedback.toggleClass('glyphicon-warning-sign', (code == 1)); |
|
81 |
feedback.toggleClass('glyphicon-ok', (code == 2)); |
|
82 |
} |
|
83 |
}); |
|
84 |
} |
|
85 |
} |
|
86 |
}; |
|
87 |
}); |
|
88 |
|
|
89 |
module.directive('compileTemplate', function($compile, $parse){ |
|
90 |
return { |
|
91 |
link: function(scope, element, attr) { |
|
92 |
var parsed = $parse(attr.ngBindHtml); |
|
93 |
|
|
94 |
function getStringValue() { return (parsed(scope) || '').toString(); } |
|
95 |
|
|
96 |
//Recompile if the template changes |
|
97 |
scope.$watch(getStringValue, function() { |
|
98 |
$compile(element, null, -9999)(scope); //The -9999 makes it skip directives so that we do not recompile ourselves |
|
99 |
}); |
|
100 |
} |
|
101 |
} |
|
102 |
}); |
|
103 |
|
|
104 |
module.directive('ngDedupRecordsTable', function() { |
|
105 |
return { |
|
106 |
restrict: 'E', |
|
107 |
scope: { |
|
108 |
'theads' : '@', |
|
109 |
'fields' : '@', |
|
110 |
'results' : '=', |
|
111 |
'group' : '=', |
|
112 |
'removal' : '=', |
|
113 |
|
|
114 |
'showMergedFn' : '=', |
|
115 |
'addToGroupFn' : '=', |
|
116 |
'removeFromGroupFn' : '=', |
|
117 |
'addToRemovalGroupFn' : '=', |
|
118 |
'removeFromRemovalGroupFn' : '=' |
|
119 |
}, |
|
120 |
templateUrl: '../resources/html/dedup/recordTable.html', |
|
121 |
link: function(scope, element, attrs, ctrl) { |
|
122 |
scope.headers = scope.theads.split(","); |
|
123 |
scope.fnames = scope.fields.split(","); |
|
124 |
|
|
125 |
scope.containsList = function(idList, set) { |
|
126 |
var res = true; |
|
127 |
if (idList && set && set.length > 0) { |
|
128 |
var ids = idList.split(","); |
|
129 |
angular.forEach(ids, function(id) { |
|
130 |
if(jQuery.grep(set, function(val, i) { |
|
131 |
return val == id; |
|
132 |
}).length == 0) { |
|
133 |
res = false; |
|
134 |
return; |
|
135 |
}; |
|
136 |
}); |
|
137 |
} else { |
|
138 |
return false; |
|
139 |
} |
|
140 |
return res; |
|
141 |
} |
|
142 |
} |
|
143 |
} |
|
144 |
}); |
|
145 |
|
|
146 |
module.service('groupService', function () { |
|
147 |
var group = null; |
|
148 |
var dissimilar = null; |
|
149 |
return { |
|
150 |
getGroup: function () { return group; }, |
|
151 |
setGroup: function (g) { group = g; }, |
|
152 |
|
|
153 |
getDissimilar: function () { return dissimilar; }, |
|
154 |
setDissimilar: function (d) { dissimilar = d; } |
|
155 |
}; |
|
156 |
}); |
|
157 |
|
|
158 |
|
|
159 |
|
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/msro/workflows/hadoop/utils/Similarity.java | ||
---|---|---|
1 |
package eu.dnetlib.msro.workflows.hadoop.utils; |
|
2 |
|
|
3 |
import com.google.gson.Gson; |
|
4 |
|
|
5 |
import eu.dnetlib.data.proto.TypeProtos.Type; |
|
6 |
import eu.dnetlib.miscutils.collections.Pair; |
|
7 |
|
|
8 |
public class Similarity { |
|
9 |
|
|
10 |
private Pair<String, String> pair; |
|
11 |
private Type type; |
|
12 |
|
|
13 |
public Similarity(final Pair<String, String> pair, final Type type) { |
|
14 |
super(); |
|
15 |
this.setPair(pair); |
|
16 |
this.setType(type); |
|
17 |
} |
|
18 |
|
|
19 |
public Pair<String, String> getPair() { |
|
20 |
return pair; |
|
21 |
} |
|
22 |
|
|
23 |
public void setPair(final Pair<String, String> pair) { |
|
24 |
this.pair = pair; |
|
25 |
} |
|
26 |
|
|
27 |
public Type getType() { |
|
28 |
return type; |
|
29 |
} |
|
30 |
|
|
31 |
public void setType(final Type type) { |
|
32 |
this.type = type; |
|
33 |
} |
|
34 |
|
|
35 |
@Override |
|
36 |
public String toString() { |
|
37 |
return new Gson().toJson(this, Similarity.class); |
|
38 |
} |
|
39 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/msro/workflows/hadoop/hbase/CreateHBaseTableJobNode.java | ||
---|---|---|
1 |
package eu.dnetlib.msro.workflows.hadoop.hbase; |
|
2 |
|
|
3 |
import java.util.Set; |
|
4 |
|
|
5 |
import org.apache.commons.logging.Log; |
|
6 |
import org.apache.commons.logging.LogFactory; |
|
7 |
|
|
8 |
import com.googlecode.sarasvati.Arc; |
|
9 |
import com.googlecode.sarasvati.NodeToken; |
|
10 |
|
|
11 |
import eu.dnetlib.data.hadoop.rmi.HadoopService; |
|
12 |
|
|
13 |
public class CreateHBaseTableJobNode extends AbstractHBaseAdminJobNode { |
|
14 |
|
|
15 |
private static final Log log = LogFactory.getLog(CreateHBaseTableJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM |
|
16 |
|
|
17 |
@Override |
|
18 |
protected String execute(final NodeToken token) throws Exception { |
|
19 |
final Set<String> columns = getColumns(token); |
|
20 |
final String tableName = tableName(token); |
|
21 |
final String cluster = cluster(token); |
|
22 |
|
|
23 |
log.info("Ensuring table " + tableName + " on cluster: '" + cluster + "' - columns: " + columns); |
|
24 |
|
|
25 |
getServiceLocator().getService(HadoopService.class).createHbaseTable(cluster, tableName, columns); |
|
26 |
|
|
27 |
return Arc.DEFAULT_ARC; |
|
28 |
} |
|
29 |
|
|
30 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/msro/workflows/hadoop/hbase/StoreHBaseRecordsJobNode.java | ||
---|---|---|
1 |
package eu.dnetlib.msro.workflows.hadoop.hbase; |
|
2 |
|
|
3 |
import java.io.IOException; |
|
4 |
import java.util.Map; |
|
5 |
|
|
6 |
import org.apache.commons.io.IOUtils; |
|
7 |
import org.apache.commons.logging.Log; |
|
8 |
import org.apache.commons.logging.LogFactory; |
|
9 |
import org.springframework.beans.factory.annotation.Required; |
|
10 |
|
|
11 |
import com.googlecode.sarasvati.Engine; |
|
12 |
import com.googlecode.sarasvati.NodeToken; |
|
13 |
import com.googlecode.sarasvati.env.Env; |
|
14 |
|
|
15 |
import eu.dnetlib.data.hadoop.rmi.HadoopBlackboardActions; |
|
16 |
import eu.dnetlib.data.hadoop.rmi.HadoopService; |
|
17 |
import eu.dnetlib.enabling.resultset.rmi.ResultSetException; |
|
18 |
import eu.dnetlib.enabling.tools.blackboard.BlackboardJob; |
|
19 |
import eu.dnetlib.miscutils.functional.xml.DnetXsltFunctions; |
|
20 |
import eu.dnetlib.msro.workflows.nodes.BlackboardJobNode; |
|
21 |
import eu.dnetlib.msro.workflows.nodes.ProgressJobNode; |
|
22 |
import eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardWorkflowJobListener; |
|
23 |
import eu.dnetlib.msro.workflows.resultset.ProcessCountingResultSetFactory; |
|
24 |
import eu.dnetlib.msro.workflows.util.ProgressProvider; |
|
25 |
import eu.dnetlib.msro.workflows.util.ResultsetProgressProvider; |
|
26 |
import eu.dnetlib.msro.workflows.util.WorkflowsConstants; |
|
27 |
|
|
28 |
public class StoreHBaseRecordsJobNode extends BlackboardJobNode implements ProgressJobNode { |
|
29 |
|
|
30 |
private static final Log log = LogFactory.getLog(StoreHBaseRecordsJobNode.class); // NOPMD by marko on 11/24/08 5:02 PM |
|
31 |
|
|
32 |
private String inputEprParam; |
|
33 |
private String hbaseTableProperty; |
|
34 |
private String cluster; |
|
35 |
private String xslt; |
|
36 |
|
|
37 |
private boolean simulation = false; |
|
38 |
|
|
39 |
private ProgressProvider progressProvider; |
|
40 |
|
|
41 |
private ProcessCountingResultSetFactory processCountingResultSetFactory; |
|
42 |
|
|
43 |
@Override |
|
44 |
protected String obtainServiceId(final NodeToken token) { |
|
45 |
return getServiceLocator().getServiceId(HadoopService.class); |
|
46 |
} |
|
47 |
|
|
48 |
@Override |
|
49 |
protected void prepareJob(final BlackboardJob job, final NodeToken token) throws Exception { |
|
50 |
log.info("Invoking blackboard method"); |
|
51 |
|
|
52 |
job.setAction(HadoopBlackboardActions.IMPORT_EPR_HBASE.toString()); |
|
53 |
job.getParameters().put("input_epr", DnetXsltFunctions.encodeBase64(prepareEpr(token))); |
|
54 |
job.getParameters().put("xslt", DnetXsltFunctions.encodeBase64(prepareXslt())); |
|
55 |
job.getParameters().put("table", getPropertyFetcher().getProperty(getHbaseTableProperty())); |
|
56 |
job.getParameters().put("cluster", cluster); |
|
57 |
job.getParameters().put("simulation", String.valueOf(isSimulation())); |
|
58 |
} |
|
59 |
|
|
60 |
@Override |
|
61 |
protected BlackboardWorkflowJobListener generateBlackboardListener(final Engine engine, final NodeToken token) { |
|
62 |
return new BlackboardWorkflowJobListener(engine, token) { |
|
63 |
|
|
64 |
@Override |
|
65 |
protected void populateEnv(final Env env, final Map<String, String> responseParams) { |
|
66 |
final String count = responseParams.get("count"); |
|
67 |
log.info(String.format("Imported %s objects to HBase table %s, cluster %s", count, getPropertyFetcher().getProperty(getHbaseTableProperty()), |
|
68 |
getCluster())); |
|
69 |
env.setAttribute(WorkflowsConstants.MAIN_LOG_PREFIX + getName() + ":count", count); |
|
70 |
} |
|
71 |
}; |
|
72 |
} |
|
73 |
|
|
74 |
private String prepareEpr(final NodeToken token) throws ResultSetException { |
|
75 |
final String epr = token.getEnv().getAttribute(inputEprParam); |
|
76 |
final ResultsetProgressProvider resultsetProgressProvider = processCountingResultSetFactory.createProgressProvider(token.getProcess(), epr); |
|
77 |
|
|
78 |
setProgressProvider(resultsetProgressProvider); |
|
79 |
|
|
80 |
return resultsetProgressProvider.getEpr().toString(); |
|
81 |
} |
|
82 |
|
|
83 |
private String prepareXslt() throws IOException { |
|
84 |
return (xslt == null) || xslt.isEmpty() ? "" : IOUtils.toString(getClass().getResourceAsStream(xslt)); |
|
85 |
} |
|
86 |
|
|
87 |
public String getInputEprParam() { |
|
88 |
return inputEprParam; |
|
89 |
} |
|
90 |
|
|
91 |
public void setInputEprParam(final String inputEprParam) { |
|
92 |
this.inputEprParam = inputEprParam; |
|
93 |
} |
|
94 |
|
|
95 |
public String getHbaseTableProperty() { |
|
96 |
return hbaseTableProperty; |
|
97 |
} |
|
98 |
|
|
99 |
public void setHbaseTableProperty(final String hbaseTableProperty) { |
|
100 |
this.hbaseTableProperty = hbaseTableProperty; |
|
101 |
} |
|
102 |
|
|
103 |
@Required |
|
104 |
public void setProcessCountingResultSetFactory(final ProcessCountingResultSetFactory processCountingResultSetFactory) { |
|
105 |
this.processCountingResultSetFactory = processCountingResultSetFactory; |
|
106 |
} |
|
107 |
|
|
108 |
@Override |
|
109 |
public ProgressProvider getProgressProvider() { |
|
110 |
return progressProvider; |
|
111 |
} |
|
112 |
|
|
113 |
public void setProgressProvider(final ProgressProvider progressProvider) { |
|
114 |
this.progressProvider = progressProvider; |
|
115 |
} |
|
116 |
|
|
117 |
public ProcessCountingResultSetFactory getProcessCountingResultSetFactory() { |
|
118 |
return processCountingResultSetFactory; |
|
119 |
} |
|
120 |
|
|
121 |
public String getXslt() { |
|
122 |
return xslt; |
|
123 |
} |
|
124 |
|
|
125 |
public void setXslt(final String xslt) { |
|
126 |
this.xslt = xslt; |
|
127 |
} |
|
128 |
|
|
129 |
public String getCluster() { |
|
130 |
return cluster; |
|
131 |
} |
|
132 |
|
|
133 |
public void setCluster(final String cluster) { |
|
134 |
this.cluster = cluster; |
|
135 |
} |
|
136 |
|
|
137 |
public boolean isSimulation() { |
|
138 |
return simulation; |
|
139 |
} |
|
140 |
|
|
141 |
public void setSimulation(final boolean simulation) { |
|
142 |
this.simulation = simulation; |
|
143 |
} |
|
144 |
|
|
145 |
} |
modules/dnet-deduplication/tags/dnet-deduplication-1.1.10/src/main/java/eu/dnetlib/msro/workflows/hadoop/utils/HBaseTableUtils.java | ||
---|---|---|
1 |
package eu.dnetlib.msro.workflows.hadoop.utils; |
|
2 |
|
|
3 |
import java.util.Collection; |
|
4 |
import java.util.Set; |
|
5 |
|
|
6 |
import com.google.common.base.Function; |
|
7 |
import com.google.common.base.Predicate; |
|
8 |
import com.google.common.collect.Iterables; |
|
9 |
import com.google.common.collect.Lists; |
|
10 |
import com.google.common.collect.Sets; |
|
11 |
|
|
12 |
import eu.dnetlib.data.proto.DatasourceOrganizationProtos.DatasourceOrganization.Provision; |
|
13 |
import eu.dnetlib.data.proto.DedupProtos.Dedup; |
|
14 |
import eu.dnetlib.data.proto.DedupSimilarityProtos.DedupSimilarity; |
|
15 |
import eu.dnetlib.data.proto.PersonPersonProtos.PersonPerson.CoAuthorship; |
|
16 |
import eu.dnetlib.data.proto.PersonResultProtos.PersonResult.Authorship; |
|
17 |
import eu.dnetlib.data.proto.ProjectOrganizationProtos.ProjectOrganization.Participation; |
|
18 |
import eu.dnetlib.data.proto.ProjectPersonProtos.ProjectPerson.ContactPerson; |
|
19 |
import eu.dnetlib.data.proto.RelTypeProtos.RelType; |
|
20 |
import eu.dnetlib.data.proto.RelTypeProtos.SubRelType; |
|
21 |
import eu.dnetlib.data.proto.ResultProjectProtos.ResultProject.Outcome; |
|
22 |
import eu.dnetlib.data.proto.ResultResultProtos.ResultResult.PublicationDataset; |
|
23 |
import eu.dnetlib.data.proto.ResultResultProtos.ResultResult.Similarity; |
|
24 |
import eu.dnetlib.data.proto.TypeProtos.Type; |
|
25 |
|
|
26 |
/** |
|
27 |
* Common static utility methods to manage the hbase tables |
|
28 |
* |
|
29 |
* @author claudio |
|
30 |
* |
|
31 |
*/ |
|
32 |
public class HBaseTableUtils { |
|
33 |
|
|
34 |
private static final String _ = "_"; |
|
35 |
private static Function<Type, String> typeName = new Function<Type, String>() { |
|
36 |
|
|
37 |
@Override |
|
38 |
public String apply(final Type type) { |
|
39 |
return type.toString(); |
|
40 |
} |
Also available in: Unified diff
[maven-release-plugin] copy for tag dnet-deduplication-1.1.10