commit 49a56a1e25d4a558f062db8ff49dd894322b39e9 Author: dimitrispie Date: Wed Dec 30 16:02:21 2020 +0200 Init repo diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b83d222 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target/ diff --git a/README.md b/README.md new file mode 100755 index 0000000..e69de29 diff --git a/pom.xml b/pom.xml new file mode 100755 index 0000000..0403078 --- /dev/null +++ b/pom.xml @@ -0,0 +1,46 @@ + + + 4.0.0 + + eu.dnetlib + openaire-usage-stats-sushilite-r5 + 1.0.0-SNAPSHOT + + + + + + com.fasterxml.jackson.core + jackson-annotations + 2.9.6 + + + + + 1.8 + 1.8 + 1.8 + + openaire-usage-stats-sushilite-r5 + diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Contact.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Contact.java new file mode 100755 index 0000000..28cdeeb --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Contact.java @@ -0,0 +1,22 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 26/10/2016. + */ +public class Contact { + + @JsonProperty("Contact") + public String getContact() { + return "OpenAIRE Helpdesk"; + } + + @JsonProperty("E-mail") + public String getEmail() { + return "helpdesk@openaire.eu"; + } + + public Contact() { + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Customer.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Customer.java new file mode 100755 index 0000000..c26f88f --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Customer.java @@ -0,0 +1,37 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by tsampikos on 31/10/2016. + */ +public class Customer { + private String id = null; + + public void setReportItems(List reportItems) { + this.reportItems = reportItems; + } + + private List reportItems = new ArrayList<>(); + + public Customer() { + } + + public Customer(String id, List reportItems) { + this.id = id; + this.reportItems = reportItems; + } + + @JsonProperty("ID") + public String getId() { + return id; + } + + @JsonProperty("ReportItems") + public List getReportItems() { + return reportItems; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Filter.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Filter.java new file mode 100755 index 0000000..ac0096b --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Filter.java @@ -0,0 +1,29 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 26/10/2016. + */ +public class Filter { + private String name = null; + private String value = null; + + public Filter() { + } + + public Filter(String name, String value) { + this.name = name; + this.value = value; + } + + @JsonProperty("Name") + public String getName() { + return name; + } + + @JsonProperty("Value") + public String getValue() { + return value; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Filters.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Filters.java new file mode 100755 index 0000000..498eaed --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Filters.java @@ -0,0 +1,53 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by tsampikos on 26/10/2016. + */ +public class Filters { + private UsageDateRange usageDateRange = null; + private List filter = new ArrayList<>(); + private List reportAttribute = new ArrayList<>(); + + public Filters() { + } + + public Filters(String beginDate, String endDate, String repositoryIdentifier, + String itemIdentifier, String itemDataType, String granularity, String reportItemCount) { + usageDateRange = new UsageDateRange(beginDate, endDate); + + if (repositoryIdentifier != null && !repositoryIdentifier.equals("")) { + filter.add(new Filter("RepositoryIdentifier", repositoryIdentifier)); + } + if (itemIdentifier != null && !itemIdentifier.equals("")) { + filter.add(new Filter("ItemIdentifier", itemIdentifier)); + } + if (itemDataType != null && !itemDataType.equals("")) { + filter.add(new Filter("ItemDataType", itemDataType)); + } + + reportAttribute.add(new Filter("Granularity", granularity)); + if (reportItemCount != null && !reportItemCount.equals("")) { + reportAttribute.add(new Filter("ReportItemCount", reportItemCount)); + } + } + + @JsonProperty("UsageDateRange") + public UsageDateRange getUsageDateRange() { + return usageDateRange; + } + + @JsonProperty("Filter") + public List getFilter() { + return filter; + } + + @JsonProperty("ReportAttribute") + public List getReportAttribute() { + return reportAttribute; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Instance.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Instance.java new file mode 100755 index 0000000..06c575d --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Instance.java @@ -0,0 +1,29 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 31/10/2016. + */ +public class Instance { + private String metricType; + private String count; + + public Instance() { + } + + public Instance(String type, String count) { + this.metricType = type; + this.count = count; + } + + @JsonProperty("MetricType") + public String getMetricType() { + return metricType; + } + + @JsonProperty("Count") + public String getCount() { + return count; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ItemIdentifier.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ItemIdentifier.java new file mode 100755 index 0000000..09bbe70 --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ItemIdentifier.java @@ -0,0 +1,29 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 31/10/2016. + */ +public class ItemIdentifier { + private String type; + private String value; + + public ItemIdentifier() { + } + + public ItemIdentifier(String type, String value) { + this.type = type; + this.value = value; + } + + @JsonProperty("Type") + public String getType() { + return type; + } + + @JsonProperty("Value") + public String getValue() { + return value; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ItemPerformance.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ItemPerformance.java new file mode 100755 index 0000000..e48ca9e --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ItemPerformance.java @@ -0,0 +1,38 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by tsampikos on 31/10/2016. + */ +public class ItemPerformance { + private Period period; + private List instances = new ArrayList<>(); + + public ItemPerformance() { + } + + public ItemPerformance(String start, String end, String ft_count, String abstr) { + period = new Period(start, end); + instances.add(new Instance("ft_total", ft_count)); + instances.add(new Instance("abstract", abstr)); + } + + @JsonProperty("Period") + public Period getPeriod() { + return period; + } + + @JsonProperty("Category") + public String getCategory() { + return "Requests"; + } + + @JsonProperty("Instance") + public List getInstance() { + return instances; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Period.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Period.java new file mode 100755 index 0000000..f9a6b0b --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Period.java @@ -0,0 +1,29 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 31/10/2016. + */ +public class Period { + private String begin; + private String end; + + public Period() { + } + + public Period(String begin, String end) { + this.begin = begin; + this.end = end; + } + + @JsonProperty("Begin") + public String getBegin() { + return begin; + } + + @JsonProperty("End") + public String getEnd() { + return end; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Report.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Report.java new file mode 100755 index 0000000..8ac2c28 --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Report.java @@ -0,0 +1,50 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +public class Report { + private String created; + private String version; + private String name; + + private Vendor vendor = new Vendor(); + + private Customer customer; + + public Report() { + } + + public Report(String created, String name, String version, String requestor, List reportItems) { + this.created = created; + this.version = version; + this.name = name + ":" + version; + this.customer = new Customer(requestor, reportItems); + } + + @JsonProperty("@Created") + public String getCreated() { + return created; + } + + @JsonProperty("@Version") + public String getVersion() { + return version; + } + + @JsonProperty("@Name") + public String getName() { + return name; + } + + @JsonProperty("Vendor") + public Vendor getVendor() { + return vendor; + } + + @JsonProperty("Customer") + public Customer getCustomer() { + return customer; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportDefinition.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportDefinition.java new file mode 100755 index 0000000..43ec61c --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportDefinition.java @@ -0,0 +1,39 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 25/10/2016. + */ +public class ReportDefinition { + private String name; + private String release; + private Filters filters; + + public ReportDefinition() { + } + + public ReportDefinition(String name, String release, String beginDate, String endDate, + String repositoryIdentifier, String itemIdentifier, String itemDataType, String granularity, String reportItemCount) { + this.name = name; + this.release = release; + + filters = new Filters(beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, granularity, reportItemCount); + } + + @JsonProperty("@Name") + public String getName() { + return name; + } + + @JsonProperty("@Release") + public String getRelease() { + return release; + } + + @JsonProperty("Filters") + public Filters getFilters() { + return filters; + } + +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportException.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportException.java new file mode 100755 index 0000000..6f42275 --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportException.java @@ -0,0 +1,58 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * Created by tsampikos on 23/11/2016. + */ +public class ReportException { + private String created; + private String number; + private String severity; + private String message; + private String data; + + public ReportException() { + } + + public ReportException(String number, String severity, String message, String data) { + + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); + Date date = new Date(); + created = dateFormat.format(date); + + this.number = number; + this.severity = severity; + this.message = message; + this.data = data; + } + + @JsonProperty("@Created") + public String getCreated() { + return created; + } + + @JsonProperty("Number") + public String getNumber() { + return number; + } + + @JsonProperty("Severity") + public String getSeverity() { + return severity; + } + + @JsonProperty("Message") + public String getMessage() { + return message; + } + + @JsonProperty("Data") + public String getData() { + return data; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportItem.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportItem.java new file mode 100755 index 0000000..761ec9c --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportItem.java @@ -0,0 +1,75 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by tsampikos on 31/10/2016. + */ +public class ReportItem { + private List itemIdentifiers = new ArrayList<>(); + + private String itemPublisher; + private String itemPlatform; + private String itemDataType; + private String itemName; + + private List itemPerformances = new ArrayList<>(); + + public ReportItem() { + } + + public ReportItem(String itemPublisher, String itemPlatform, String itemDataType, String itemName) { + this.itemPublisher = itemPublisher; + this.itemPlatform = itemPlatform; + this.itemDataType = itemDataType; + this.itemName = itemName; + } + + @JsonProperty("ItemIdentifier") + public List getItemIdentifiers() { + return itemIdentifiers; + } + + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @JsonProperty("ItemPublisher") + public String getItemPublisher() { + return itemPublisher; + } + + @JsonProperty("ItemPlatform") + public String getItemPlatform() { + return itemPlatform; + } + + @JsonProperty("ItemDataType") + public String getItemDataType() { + return itemDataType; + } + + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @JsonProperty("ItemName") + public String getItemName() { + return itemName; + } + + @JsonProperty("ItemPerformance") + public List getItemPerformances() { + return itemPerformances; + } + + public void addIdentifier(ItemIdentifier itemIdentifier) { + itemIdentifiers.add(itemIdentifier); + } + + public void addPerformance(ItemPerformance itemPerformance) { + itemPerformances.add(itemPerformance); + } + + public void setItemPlatform(String itemPlatform) { + this.itemPlatform = itemPlatform; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportResponse.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportResponse.java new file mode 100755 index 0000000..de31fbb --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportResponse.java @@ -0,0 +1,72 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * Created by tsampikos on 25/10/2016. + */ +public class ReportResponse { + + private String created; + private List reportExceptions = new ArrayList<>(); + private Requestor requestor; + private ReportDefinition reportDefinition; + private ReportWrapper reportWrapper; + + public ReportResponse() { + } + + public ReportResponse(String reportName, String release, String requestorId, String beginDate, + String endDate, String repositoryIdentifier, String itemIdentifier, + String itemDataType, String hasDoi, String granularity, String callback, List reportItems, List reportExceptions) { + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ"); + Date date = new Date(); + created = dateFormat.format(date); + + if (!reportExceptions.isEmpty()) { + this.reportExceptions = reportExceptions; + } + + requestor = new Requestor(requestorId); + + reportDefinition = new ReportDefinition(reportName, release, beginDate, endDate, repositoryIdentifier, itemIdentifier, itemDataType, granularity, Integer.toString(reportItems.size())); + + Report report = new Report(created, reportName, release, requestorId, reportItems); + reportWrapper = new ReportWrapper(report); + } + + @JsonProperty("@Created") + public String getCreated() { + return created; + } + + + @JsonInclude(JsonInclude.Include.NON_NULL) + @JsonProperty("Exception") + public List getReportExceptions() { + return reportExceptions; + } + + @JsonProperty("Requestor") + public Requestor getRequestor() { + return requestor; + } + + @JsonProperty("ReportDefinition") + public ReportDefinition getReportDefinition() { + return reportDefinition; + } + + @JsonProperty("Report") + public ReportWrapper getReportWrapper() { + return reportWrapper; + } + +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportResponseWrapper.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportResponseWrapper.java new file mode 100755 index 0000000..dd68026 --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportResponseWrapper.java @@ -0,0 +1,25 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 26/10/2016. + */ +public class ReportResponseWrapper { + private ReportResponse reportResponse; + + public ReportResponseWrapper() {} + + public ReportResponseWrapper(ReportResponse reportResponse) { + this.reportResponse = reportResponse; + } + + @JsonProperty("ReportResponse") + public ReportResponse getReportResponse() { + return reportResponse; + } + + public void setReportResponse(ReportResponse reportResponse) { + this.reportResponse = reportResponse; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportWrapper.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportWrapper.java new file mode 100755 index 0000000..d67d0cb --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/ReportWrapper.java @@ -0,0 +1,26 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 26/10/2016. + */ +public class ReportWrapper { + private Report report; + + public ReportWrapper() { + } + + public ReportWrapper(Report report) { + this.report = report; + } + + @JsonProperty("Report") + public Report getReport() { + return report; + } + + public void setReport(Report report) { + this.report = report; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Requestor.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Requestor.java new file mode 100755 index 0000000..9a128f8 --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Requestor.java @@ -0,0 +1,23 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 25/10/2016. + */ +public class Requestor { + private String id; + + public Requestor() { + } + + public Requestor(String id) { + this.id = id; + } + + @JsonProperty("ID") + public String getID() { + return id; + } + +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/UsageDateRange.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/UsageDateRange.java new file mode 100755 index 0000000..0b853c4 --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/UsageDateRange.java @@ -0,0 +1,29 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 26/10/2016. + */ +public class UsageDateRange { + private String begin; + private String end; + + public UsageDateRange() { + } + + public UsageDateRange(String begin, String end) { + this.begin = begin; + this.end = end; + } + + @JsonProperty("Begin") + public String getBegin() { + return begin; + } + + @JsonProperty("End") + public String getEnd() { + return end; + } +} diff --git a/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Vendor.java b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Vendor.java new file mode 100755 index 0000000..6e66818 --- /dev/null +++ b/src/main/java/eu/dnetlib/usagestats/sushilite/domain/Vendor.java @@ -0,0 +1,24 @@ +package eu.dnetlib.usagestats.sushilite.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * Created by tsampikos on 26/10/2016. + */ +public class Vendor { + + private Contact contact = new Contact(); + + public Vendor() { + } + + @JsonProperty("Name") + public String getName() { + return "OpenAIRE"; + } + + @JsonProperty("Contact") + public Contact getContact() { + return contact; + } +}