{
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/data/mdstore/repository/MDStoreWithInfoRepository.java b/libs/dnet-data-services/src/main/java/eu/dnetlib/data/mdstore/repository/MDStoreWithInfoRepository.java
similarity index 82%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/data/mdstore/repository/MDStoreWithInfoRepository.java
rename to libs/dnet-data-services/src/main/java/eu/dnetlib/data/mdstore/repository/MDStoreWithInfoRepository.java
index c7626a74..889db6c0 100644
--- a/apps/dnet-is-application/src/main/java/eu/dnetlib/data/mdstore/repository/MDStoreWithInfoRepository.java
+++ b/libs/dnet-data-services/src/main/java/eu/dnetlib/data/mdstore/repository/MDStoreWithInfoRepository.java
@@ -2,7 +2,7 @@ package eu.dnetlib.data.mdstore.repository;
import org.springframework.stereotype.Repository;
-import eu.dnetlib.dhp.schema.mdstore.MDStoreWithInfo;
+import eu.dnetlib.data.mdstore.model.MDStoreWithInfo;
import eu.dnetlib.utils.ReadOnlyRepository;
@Repository
diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStore.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStore.java
new file mode 100644
index 00000000..30698844
--- /dev/null
+++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStore.java
@@ -0,0 +1,175 @@
+package eu.dnetlib.data.mdstore.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+import java.util.UUID;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "mdstores")
+public class MDStore implements Serializable {
+
+ /** */
+ private static final long serialVersionUID = 3160530489149700055L;
+
+ @Id
+ @Column(name = "id")
+ private String id;
+
+ @Column(name = "format")
+ private String format;
+
+ @Column(name = "layout")
+ private String layout;
+
+ @Column(name = "interpretation")
+ private String interpretation;
+
+ @Column(name = "datasource_name")
+ private String datasourceName;
+
+ @Column(name = "datasource_id")
+ private String datasourceId;
+
+ @Column(name = "api_id")
+ private String apiId;
+
+ @Column(name = "hdfs_path")
+ private String hdfsPath;
+
+ @Column(name = "creation_date")
+ @Temporal(TemporalType.TIMESTAMP)
+ private Date creationDate;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ public void setFormat(final String format) {
+ this.format = format;
+ }
+
+ public String getLayout() {
+ return layout;
+ }
+
+ public void setLayout(final String layout) {
+ this.layout = layout;
+ }
+
+ public String getInterpretation() {
+ return interpretation;
+ }
+
+ public void setInterpretation(final String interpretation) {
+ this.interpretation = interpretation;
+ }
+
+ public String getDatasourceName() {
+ return datasourceName;
+ }
+
+ public void setDatasourceName(final String datasourceName) {
+ this.datasourceName = datasourceName;
+ }
+
+ public String getDatasourceId() {
+ return datasourceId;
+ }
+
+ public void setDatasourceId(final String datasourceId) {
+ this.datasourceId = datasourceId;
+ }
+
+ public String getApiId() {
+ return apiId;
+ }
+
+ public void setApiId(final String apiId) {
+ this.apiId = apiId;
+ }
+
+ public String getHdfsPath() {
+ return hdfsPath;
+ }
+
+ public void setHdfsPath(final String hdfsPath) {
+ this.hdfsPath = hdfsPath;
+ }
+
+ public Date getCreationDate() {
+ return creationDate;
+ }
+
+ public void setCreationDate(final Date creationDate) {
+ this.creationDate = creationDate;
+ }
+
+ public static MDStore newInstance(
+ final String format,
+ final String layout,
+ final String interpretation,
+ final String hdfsBasePath) {
+ return newInstance(format, layout, interpretation, null, null, null, hdfsBasePath);
+ }
+
+ public static MDStore newInstance(
+ final String format,
+ final String layout,
+ final String interpretation,
+ final String dsName,
+ final String dsId,
+ final String apiId,
+ final String hdfsBasePath) {
+
+ final String mdId = "md-" + UUID.randomUUID();
+
+ final MDStore md = new MDStore();
+ md.setId(mdId);
+ md.setFormat(format);
+ md.setLayout(layout);
+ md.setInterpretation(interpretation);
+ md.setCreationDate(new Date());
+ md.setDatasourceName(dsName);
+ md.setDatasourceId(dsId);
+ md.setApiId(apiId);
+ md.setHdfsPath(String.format("%s/%s", hdfsBasePath, mdId));
+
+ return md;
+ }
+
+ @Override
+ public String toString() {
+ return String
+ .format("MDStore [id=%s, format=%s, layout=%s, interpretation=%s, datasourceName=%s, datasourceId=%s, apiId=%s, hdfsPath=%s, creationDate=%s]", id, format, layout, interpretation, datasourceName, datasourceId, apiId, hdfsPath, creationDate);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) { return true; }
+ if (!(obj instanceof MDStore)) { return false; }
+ final MDStore other = (MDStore) obj;
+ return Objects.equals(id, other.id);
+ }
+
+}
diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreCurrentVersion.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreCurrentVersion.java
new file mode 100644
index 00000000..e0d712fd
--- /dev/null
+++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreCurrentVersion.java
@@ -0,0 +1,69 @@
+package eu.dnetlib.data.mdstore.model;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "mdstore_current_versions")
+public class MDStoreCurrentVersion implements Serializable {
+
+ /** */
+ private static final long serialVersionUID = -4757725888593745773L;
+
+ @Id
+ @Column(name = "mdstore")
+ private String mdstore;
+
+ @Column(name = "current_version")
+ private String currentVersion;
+
+ public String getMdstore() {
+ return mdstore;
+ }
+
+ public void setMdstore(final String mdstore) {
+ this.mdstore = mdstore;
+ }
+
+ public String getCurrentVersion() {
+ return currentVersion;
+ }
+
+ public void setCurrentVersion(final String currentVersion) {
+ this.currentVersion = currentVersion;
+ }
+
+ public static MDStoreCurrentVersion newInstance(final String mdId, final String versionId) {
+ final MDStoreCurrentVersion cv = new MDStoreCurrentVersion();
+ cv.setMdstore(mdId);
+ cv.setCurrentVersion(versionId);
+ return cv;
+ }
+
+ public static MDStoreCurrentVersion newInstance(final MDStoreVersion v) {
+ return newInstance(v.getMdstore(), v.getId());
+ }
+
+ @Override
+ public String toString() {
+ return String.format("MDStoreCurrentVersion [mdstore=%s, currentVersion=%s]", mdstore, currentVersion);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(currentVersion, mdstore);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) { return true; }
+ if (!(obj instanceof MDStoreCurrentVersion)) { return false; }
+ final MDStoreCurrentVersion other = (MDStoreCurrentVersion) obj;
+ return Objects.equals(currentVersion, other.currentVersion) && Objects.equals(mdstore, other.mdstore);
+ }
+}
diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreVersion.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreVersion.java
new file mode 100644
index 00000000..2749b991
--- /dev/null
+++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreVersion.java
@@ -0,0 +1,133 @@
+package eu.dnetlib.data.mdstore.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "mdstore_versions")
+public class MDStoreVersion implements Serializable {
+
+ /** */
+ private static final long serialVersionUID = -4763494442274298339L;
+
+ @Id
+ @Column(name = "id")
+ private String id;
+
+ @Column(name = "mdstore")
+ private String mdstore;
+
+ @Column(name = "writing")
+ private boolean writing;
+
+ @Column(name = "readcount")
+ private int readCount = 0;
+
+ @Column(name = "lastupdate")
+ @Temporal(TemporalType.TIMESTAMP)
+ private Date lastUpdate;
+
+ @Column(name = "size")
+ private long size = 0;
+
+ @Column(name = "hdfs_path")
+ private String hdfsPath;
+
+ public static MDStoreVersion newInstance(final String mdId, final boolean writing, final String hdfsBasePath) {
+ final MDStoreVersion v = new MDStoreVersion();
+
+ final String versionId = mdId + "-" + new Date().getTime();
+ v.setId(versionId);
+ v.setMdstore(mdId);
+ v.setLastUpdate(null);
+ v.setWriting(writing);
+ v.setReadCount(0);
+ v.setSize(0);
+ v.setHdfsPath(String.format("%s/%s/%s", hdfsBasePath, mdId, versionId));
+
+ return v;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+ public String getMdstore() {
+ return mdstore;
+ }
+
+ public void setMdstore(final String mdstore) {
+ this.mdstore = mdstore;
+ }
+
+ public boolean isWriting() {
+ return writing;
+ }
+
+ public void setWriting(final boolean writing) {
+ this.writing = writing;
+ }
+
+ public int getReadCount() {
+ return readCount;
+ }
+
+ public void setReadCount(final int readCount) {
+ this.readCount = readCount;
+ }
+
+ public Date getLastUpdate() {
+ return lastUpdate;
+ }
+
+ public void setLastUpdate(final Date lastUpdate) {
+ this.lastUpdate = lastUpdate;
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ public void setSize(final long size) {
+ this.size = size;
+ }
+
+ public String getHdfsPath() {
+ return hdfsPath;
+ }
+
+ public void setHdfsPath(final String hdfsPath) {
+ this.hdfsPath = hdfsPath;
+ }
+
+ @Override
+ public String toString() {
+ return String
+ .format("MDStoreVersion [id=%s, mdstore=%s, writing=%s, readCount=%s, lastUpdate=%s, size=%s, hdfsPath=%s]", id, mdstore, writing, readCount, lastUpdate, size, hdfsPath);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) { return true; }
+ if (!(obj instanceof MDStoreVersion)) { return false; }
+ final MDStoreVersion other = (MDStoreVersion) obj;
+ return Objects.equals(id, other.id);
+ }
+}
diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreWithInfo.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreWithInfo.java
new file mode 100644
index 00000000..33b20993
--- /dev/null
+++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MDStoreWithInfo.java
@@ -0,0 +1,186 @@
+package eu.dnetlib.data.mdstore.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "mdstores_with_info")
+public class MDStoreWithInfo implements Serializable {
+
+ /** */
+ private static final long serialVersionUID = -8445784770687571492L;
+
+ @Id
+ @Column(name = "id")
+ private String id;
+
+ @Column(name = "format")
+ private String format;
+
+ @Column(name = "layout")
+ private String layout;
+
+ @Column(name = "interpretation")
+ private String interpretation;
+
+ @Column(name = "datasource_name")
+ private String datasourceName;
+
+ @Column(name = "datasource_id")
+ private String datasourceId;
+
+ @Column(name = "api_id")
+ private String apiId;
+
+ @Column(name = "current_version")
+ private String currentVersion;
+
+ @Column(name = "creation_date")
+ @Temporal(TemporalType.TIMESTAMP)
+ private Date creationDate;
+
+ @Column(name = "lastupdate")
+ @Temporal(TemporalType.TIMESTAMP)
+ private Date lastUpdate;
+
+ @Column(name = "size")
+ private long size = 0;
+
+ @Column(name = "n_versions")
+ private long numberOfVersions = 0;
+
+ @Column(name = "hdfs_path")
+ private String hdfsPath;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ public void setFormat(final String format) {
+ this.format = format;
+ }
+
+ public String getLayout() {
+ return layout;
+ }
+
+ public void setLayout(final String layout) {
+ this.layout = layout;
+ }
+
+ public String getInterpretation() {
+ return interpretation;
+ }
+
+ public void setInterpretation(final String interpretation) {
+ this.interpretation = interpretation;
+ }
+
+ public String getDatasourceName() {
+ return datasourceName;
+ }
+
+ public void setDatasourceName(final String datasourceName) {
+ this.datasourceName = datasourceName;
+ }
+
+ public String getDatasourceId() {
+ return datasourceId;
+ }
+
+ public void setDatasourceId(final String datasourceId) {
+ this.datasourceId = datasourceId;
+ }
+
+ public String getApiId() {
+ return apiId;
+ }
+
+ public void setApiId(final String apiId) {
+ this.apiId = apiId;
+ }
+
+ public String getCurrentVersion() {
+ return currentVersion;
+ }
+
+ public void setCurrentVersion(final String currentVersion) {
+ this.currentVersion = currentVersion;
+ }
+
+ public Date getCreationDate() {
+ return creationDate;
+ }
+
+ public void setCreationDate(final Date creationDate) {
+ this.creationDate = creationDate;
+ }
+
+ public Date getLastUpdate() {
+ return lastUpdate;
+ }
+
+ public void setLastUpdate(final Date lastUpdate) {
+ this.lastUpdate = lastUpdate;
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ public void setSize(final long size) {
+ this.size = size;
+ }
+
+ public long getNumberOfVersions() {
+ return numberOfVersions;
+ }
+
+ public void setNumberOfVersions(final long numberOfVersions) {
+ this.numberOfVersions = numberOfVersions;
+ }
+
+ public String getHdfsPath() {
+ return hdfsPath;
+ }
+
+ public void setHdfsPath(final String hdfsPath) {
+ this.hdfsPath = hdfsPath;
+ }
+
+ @Override
+ public String toString() {
+ return String
+ .format("MDStoreWithInfo [id=%s, format=%s, layout=%s, interpretation=%s, datasourceName=%s, datasourceId=%s, apiId=%s, currentVersion=%s, creationDate=%s, lastUpdate=%s, size=%s, numberOfVersions=%s, hdfsPath=%s]", id, format, layout, interpretation, datasourceName, datasourceId, apiId, currentVersion, creationDate, lastUpdate, size, numberOfVersions, hdfsPath);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id);
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+ if (this == obj) { return true; }
+ if (!(obj instanceof MDStoreWithInfo)) { return false; }
+ final MDStoreWithInfo other = (MDStoreWithInfo) obj;
+ return Objects.equals(id, other.id);
+ }
+
+}
diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MetadataRecord.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MetadataRecord.java
new file mode 100644
index 00000000..3576a813
--- /dev/null
+++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/MetadataRecord.java
@@ -0,0 +1,126 @@
+package eu.dnetlib.data.mdstore.model;
+
+import java.io.Serializable;
+
+import org.apache.commons.codec.digest.DigestUtils;
+
+/**
+ * This class models a record in a Metadata store collection
+ */
+public class MetadataRecord implements Serializable {
+
+ private static final long serialVersionUID = -226995288313973437L;
+
+ /** The D-Net Identifier associated to the record */
+ private String id;
+
+ /** The original Identifier of the record */
+ private String originalId;
+
+ /** The encoding of the record, should be JSON or XML */
+ private String encoding;
+
+ /**
+ * The information about the provenance of the record see @{@link Provenance} for the model of this information
+ */
+ private Provenance provenance;
+
+ /** The content of the metadata */
+ private String body;
+
+ /** the date when the record has been stored */
+ private Long dateOfCollection;
+
+ /** the date when the record has been stored */
+ private Long dateOfTransformation;
+
+ public MetadataRecord() {
+
+ }
+
+ public MetadataRecord(
+ final String originalId,
+ final String encoding,
+ final Provenance provenance,
+ final String body,
+ final Long dateOfCollection) {
+
+ this.originalId = originalId;
+ this.encoding = encoding;
+ this.provenance = provenance;
+ this.body = body;
+ this.dateOfCollection = dateOfCollection;
+ this.id = generateIdentifier(originalId, this.provenance.getNsPrefix());
+ }
+
+ public static String generateIdentifier(final String originalId, final String nsPrefix) {
+ return String.format("%s::%s", nsPrefix, DigestUtils.md5Hex(originalId));
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(final String id) {
+ this.id = id;
+ }
+
+ public String getOriginalId() {
+ return originalId;
+ }
+
+ public void setOriginalId(final String originalId) {
+ this.originalId = originalId;
+ }
+
+ public String getEncoding() {
+ return encoding;
+ }
+
+ public void setEncoding(final String encoding) {
+ this.encoding = encoding;
+ }
+
+ public Provenance getProvenance() {
+ return provenance;
+ }
+
+ public void setProvenance(final Provenance provenance) {
+ this.provenance = provenance;
+ }
+
+ public String getBody() {
+ return body;
+ }
+
+ public void setBody(final String body) {
+ this.body = body;
+ }
+
+ public Long getDateOfCollection() {
+ return dateOfCollection;
+ }
+
+ public void setDateOfCollection(final Long dateOfCollection) {
+ this.dateOfCollection = dateOfCollection;
+ }
+
+ public Long getDateOfTransformation() {
+ return dateOfTransformation;
+ }
+
+ public void setDateOfTransformation(final Long dateOfTransformation) {
+ this.dateOfTransformation = dateOfTransformation;
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ if (!(o instanceof MetadataRecord)) { return false; }
+ return ((MetadataRecord) o).getId().equalsIgnoreCase(id);
+ }
+
+ @Override
+ public int hashCode() {
+ return id.hashCode();
+ }
+}
diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/Provenance.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/Provenance.java
new file mode 100644
index 00000000..61d46b01
--- /dev/null
+++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/data/mdstore/model/Provenance.java
@@ -0,0 +1,50 @@
+package eu.dnetlib.data.mdstore.model;
+
+import java.io.Serializable;
+
+/**
+ * @author Sandro La Bruzzo
+ *
+ * Provenace class models the provenance of the record in the metadataStore It contains the identifier and the name of the
+ * datasource that gives the record
+ */
+public class Provenance implements Serializable {
+
+ private String datasourceId;
+
+ private String datasourceName;
+
+ private String nsPrefix;
+
+ public Provenance() {}
+
+ public Provenance(final String datasourceId, final String datasourceName, final String nsPrefix) {
+ this.datasourceId = datasourceId;
+ this.datasourceName = datasourceName;
+ this.nsPrefix = nsPrefix;
+ }
+
+ public String getDatasourceId() {
+ return datasourceId;
+ }
+
+ public void setDatasourceId(final String datasourceId) {
+ this.datasourceId = datasourceId;
+ }
+
+ public String getDatasourceName() {
+ return datasourceName;
+ }
+
+ public void setDatasourceName(final String datasourceName) {
+ this.datasourceName = datasourceName;
+ }
+
+ public String getNsPrefix() {
+ return nsPrefix;
+ }
+
+ public void setNsPrefix(final String nsPrefix) {
+ this.nsPrefix = nsPrefix;
+ }
+}
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/errors/DsmException.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/errors/DsmException.java
similarity index 100%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/errors/DsmException.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/errors/DsmException.java
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/errors/DsmForbiddenException.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/errors/DsmForbiddenException.java
similarity index 100%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/errors/DsmForbiddenException.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/errors/DsmForbiddenException.java
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/errors/DsmNotFoundException.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/errors/DsmNotFoundException.java
similarity index 100%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/errors/DsmNotFoundException.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/errors/DsmNotFoundException.java
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/errors/InformationServiceException.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/errors/InformationServiceException.java
similarity index 100%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/errors/InformationServiceException.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/errors/InformationServiceException.java
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/errors/MDStoreManagerException.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/errors/MDStoreManagerException.java
similarity index 100%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/errors/MDStoreManagerException.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/errors/MDStoreManagerException.java
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/utils/DateUtils.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/utils/DateUtils.java
similarity index 100%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/utils/DateUtils.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/utils/DateUtils.java
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/utils/ReadOnlyRepository.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/utils/ReadOnlyRepository.java
similarity index 100%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/utils/ReadOnlyRepository.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/utils/ReadOnlyRepository.java
diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/utils/XmlIndenter.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/utils/XmlIndenter.java
similarity index 87%
rename from apps/dnet-is-application/src/main/java/eu/dnetlib/utils/XmlIndenter.java
rename to libs/dnet-is-common/src/main/java/eu/dnetlib/utils/XmlIndenter.java
index b546bb88..68f92b46 100644
--- a/apps/dnet-is-application/src/main/java/eu/dnetlib/utils/XmlIndenter.java
+++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/utils/XmlIndenter.java
@@ -10,11 +10,9 @@ import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
-import eu.dnetlib.is.resource.SimpleResourceService;
-
public class XmlIndenter {
- private static final Log log = LogFactory.getLog(SimpleResourceService.class);
+ private static final Log log = LogFactory.getLog(XmlIndenter.class);
public static String indent(final String xml) {
try {
diff --git a/libs/pom.xml b/libs/pom.xml
index 55c4486b..8f051e95 100644
--- a/libs/pom.xml
+++ b/libs/pom.xml
@@ -17,6 +17,7 @@
dnet-openaire-broker-common
dnet-broker-apps-common
dnet-is-common
+ dnet-data-services