Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/pom.xml
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/pom.xml	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/pom.xml	(revision 47923)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+	<parent>
+		<groupId>eu.dnetlib</groupId>
+		<artifactId>dnet45-parent</artifactId>
+		<version>1.0.0</version>
+		<relativePath />
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>eu.dnetlib</groupId>
+	<artifactId>dnet-datasource-manager-rmi</artifactId>
+	<packaging>jar</packaging>
+	<version>4.0.1</version>
+	<scm>
+	  <developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1</developerConnection>
+	</scm>
+	<dependencies>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>cnr-rmi-api</artifactId>
+			<version>[2.0.0,3.0.0)</version>
+		</dependency>
+	</dependencies>
+</project>
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/deploy.info
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/deploy.info	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/deploy.info	(revision 47923)
@@ -0,0 +1 @@
+{"type_source": "SVN", "goal": "package -U -T 4C source:jar", "url": "http://svn-public.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-datasource-manager-rmi/trunk/", "deploy_repository": "dnet45-snapshots", "version": "4", "mail": "sandro.labruzzo@isti.cnr.it,michele.artini@isti.cnr.it, claudio.atzori@isti.cnr.it, alessia.bardi@isti.cnr.it", "deploy_repository_url": "http://maven.research-infrastructures.eu/nexus/content/repositories/dnet45-snapshots", "name": "dnet-datasource-manager-rmi"}
\ No newline at end of file
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/RepositoryMapEntry.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/RepositoryMapEntry.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/RepositoryMapEntry.java	(revision 47923)
@@ -0,0 +1,54 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class RepositoryMapEntry {
+
+	private String id;
+	private String name;
+	private float lat;
+	private float lng;
+
+	public RepositoryMapEntry() {}
+
+	public RepositoryMapEntry(final String id, final String name, final float lat, final float lng) {
+		this.id = id;
+		this.name = name;
+		this.lat = lat;
+		this.lng = lng;
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(final String id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(final String name) {
+		this.name = name;
+	}
+
+	public float getLat() {
+		return lat;
+	}
+
+	public void setLat(final float lat) {
+		this.lat = lat;
+	}
+
+	public float getLng() {
+		return lng;
+	}
+
+	public void setLng(final float lng) {
+		this.lng = lng;
+	}
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/SimpleDatasourceDesc.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/SimpleDatasourceDesc.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/SimpleDatasourceDesc.java	(revision 47923)
@@ -0,0 +1,71 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class SimpleDatasourceDesc implements Comparable<SimpleDatasourceDesc> {
+
+	private String id;
+	private String name;
+	private String typology;
+	private String origId;
+	private Set<String> apis = new HashSet<String>();
+	private boolean valid;
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(final String id) {
+		this.id = id;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(final String name) {
+		this.name = name;
+	}
+
+	public boolean isValid() {
+		return valid;
+	}
+
+	public void setValid(final boolean valid) {
+		this.valid = valid;
+	}
+
+	public String getTypology() {
+		return typology;
+	}
+
+	public void setTypology(final String typology) {
+		this.typology = typology;
+	}
+
+	public String getOrigId() {
+		return origId;
+	}
+
+	public void setOrigId(final String origId) {
+		this.origId = origId;
+	}
+
+	public Set<String> getApis() {
+		return apis;
+	}
+
+	public void setApis(final Set<String> apis) {
+		this.apis = apis;
+	}
+
+	@Override
+	public int compareTo(final SimpleDatasourceDesc e) {
+		return getName().compareTo(e.getName());
+	}
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/BrowsableField.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/BrowsableField.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/BrowsableField.java	(revision 47923)
@@ -0,0 +1,33 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class BrowsableField {
+
+	private String id;
+	private String label;
+
+	public BrowsableField() {}
+
+	public BrowsableField(final String id, final String label) {
+		this.id = id;
+		this.label = label;
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(final String id) {
+		this.id = id;
+	}
+
+	public String getLabel() {
+		return label;
+	}
+
+	public void setLabel(final String label) {
+		this.label = label;
+	}
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceManagerService.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceManagerService.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceManagerService.java	(revision 47923)
@@ -0,0 +1,296 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.jws.WebParam;
+import javax.jws.WebService;
+
+import eu.dnetlib.common.rmi.BaseService;
+
+@WebService(targetNamespace = "http://services.dnetlib.eu/")
+public interface DatasourceManagerService extends BaseService {
+
+	/**
+	 * Register a datasource.
+	 * 
+	 * @param ds
+	 *            the new datasource
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean addDatasource(@WebParam(name = "ds") DatasourceDesc ds) throws DatasourceManagerServiceException;
+
+	/**
+	 * Delete a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean deleteDatasource(@WebParam(name = "dsId") String dsId) throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public DatasourceDesc getDatasource(@WebParam(name = "dsId") String dsId) throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns all the datasources.
+	 * 
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<DatasourceDesc> listAllDatasources() throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns the datasources with some properties.
+	 * 
+	 * @param compliance
+	 *            the level of compliance (or NULL to skip the test)
+	 * @param fileManagementMode
+	 *            the fileManagementMode property (or NULL to skip the test)
+	 * @param contentDescription
+	 *            the contentDescription property (or NULL to skip the test)
+	 * @param iisProcessingWorkflow
+	 *            the iisProcessingWorkflow property (or NULL to skip the test)
+	 * @param collectedFrom
+	 *            the collectedFrom property (or NULL to skip the test)
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<DatasourceDesc> listDatasourcesUsingFilter(@WebParam(name = "compliance") String compliance,
+			@WebParam(name = "contentDescription") String contentDescription,
+			@WebParam(name = "iisProcessingWorkflow") String iisProcessingWorkflow,
+			@WebParam(name = "collectedFrom") String collectedFrom) throws DatasourceManagerServiceException;
+
+	/**
+	 * updates the level of compliance of a api.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param level
+	 *            the new level of compliance
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean updateLevelOfCompliance(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "level") String level) throws DatasourceManagerServiceException;
+
+	/**
+	 * Override the level of compliance of a api.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param level
+	 *            the new level of compliance
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean overrideCompliance(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "level") String level) throws DatasourceManagerServiceException;
+
+	/**
+	 * update the baseUrl of an interface.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param baseUrl
+	 *            the new value
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean updateBaseUrl(@WebParam(name = "dsId") String dsId, @WebParam(name = "ifaceId") String ifaceId, @WebParam(name = "baseUrl") String baseUrl)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * update the activation status of an interface (true = there is a related wf).
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param active
+	 *            true if there is a related wf
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean updateActivationStatus(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "active") boolean active) throws DatasourceManagerServiceException;
+
+	/**
+	 * update the "contentDescription" property of an interface.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param desc
+	 *            the new value
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean updateContentDescription(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "desc") String desc) throws DatasourceManagerServiceException;
+
+	/**
+	 * update the "iis_processing_workflow" property of an interface.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param wf
+	 *            the new value
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean setIisProcessingWorkflow(@WebParam(name = "dsId") String dsId, @WebParam(name = "ifaceId") String ifaceId, @WebParam(name = "wf") String wf)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Set a generic extra field of an interface.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param field
+	 *            the field name
+	 * @param value
+	 *            the new value (or null for removing it)
+	 * @param preserveOriginal
+	 *            preserve the original value in the DB (the value is stored in the "edited" column)
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean updateExtraField(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "field") String field,
+			@WebParam(name = "value") String value,
+			@WebParam(name = "preserveOriginal") boolean preserveOriginal) throws DatasourceManagerServiceException;
+
+	/**
+	 * Update an access param of an interface.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param field
+	 *            the field name
+	 * @param value
+	 *            the new value (or null for removing it)
+	 * @param preserveOriginal
+	 *            preserve the original value in the DB (the value is stored in the "edited" column)
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean updateAccessParam(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "field") String field,
+			@WebParam(name = "value") String value,
+			@WebParam(name = "preserveOriginal") boolean preserveOriginal) throws DatasourceManagerServiceException;
+
+	/**
+	 * delete a generic extra field or an access param of an interface.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifaceId
+	 *            the interface id
+	 * @param field
+	 *            the field name
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean deleteAccessParamOrExtraField(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "field") String field) throws DatasourceManagerServiceException;
+
+	/**
+	 * Add an interface to a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param iface
+	 *            the interface description
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean addInterface(@WebParam(name = "dsId") String dsId, @WebParam(name = "interface") IfaceDesc iface) throws DatasourceManagerServiceException;
+
+	/**
+	 * Delete the interface of a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifcId
+	 *            the id of the interface
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean deleteInterface(@WebParam(name = "dsId") String dsId, @WebParam(name = "ifaceId") String ifaceId) throws DatasourceManagerServiceException;
+
+	/**
+	 * Perform a generic SQL update on a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param sql
+	 *            the sql query to insert/update/delete the datasource
+	 * @param delete
+	 *            true if the profile must be deleted
+	 * @return true if the operation ends successfully
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean updateSQL(@WebParam(name = "dsId") String dsId, @WebParam(name = "sql") String sql, @WebParam(name = "delete") boolean delete)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Calculate the next execution date of a related metaworkflow
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @param ifcId
+	 *            the id of the interface
+	 * @return the date of the next scheduled execution (or null)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public Date findNextScheduledExecution(@WebParam(name = "dsId") String dsId, @WebParam(name = "ifaceId") String ifaceId)
+			throws DatasourceManagerServiceException;
+
+	public boolean bulkUpdateApiExtraFields(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "fields") Map<String, String> fields) throws DatasourceManagerServiceException;
+
+	public boolean bulkUpdateApiAccessParams(@WebParam(name = "dsId") String dsId,
+			@WebParam(name = "ifaceId") String ifaceId,
+			@WebParam(name = "params") Map<String, String> params) throws DatasourceManagerServiceException;
+
+	public List<BrowsableField> listBrowsableFields() throws DatasourceManagerServiceException;
+
+	public List<BrowseTerm> browseField(@WebParam(name = "field") final String field) throws DatasourceManagerServiceException;
+
+	public List<SearchInterfacesEntry> searchInterface(@WebParam(name = "field") final String field, @WebParam(name = "value") final String value)
+			throws DatasourceManagerServiceException;
+
+	public List<RepositoryMapEntry> getRepositoryMap() throws DatasourceManagerServiceException;
+
+	public List<SimpleDatasourceDesc> simpleListDatasourcesByType(@WebParam(name = "type") String type) throws DatasourceManagerServiceException;
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceConstants.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceConstants.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceConstants.java	(revision 47923)
@@ -0,0 +1,7 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+public class DatasourceConstants {
+
+	public static final String OVERRIDING_COMPLIANCE_FIELD = "overriding_compliance";
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/BrowseTerm.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/BrowseTerm.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/BrowseTerm.java	(revision 47923)
@@ -0,0 +1,48 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class BrowseTerm implements Comparable<BrowseTerm> {
+
+	private String id;
+	private String name;
+	private int value;
+
+	public BrowseTerm() {}
+
+	public BrowseTerm(final String id, final String name, final int value) {
+		this.id = id;
+		this.name = name;
+		this.value = value;
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(final String id) {
+		this.id = id;
+	}
+
+	public int getValue() {
+		return value;
+	}
+
+	public void setValue(final int value) {
+		this.value = value;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(final String name) {
+		this.name = name;
+	}
+
+	@Override
+	public int compareTo(final BrowseTerm o) {
+		return Integer.compare(value, o.getValue());
+	}
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/SearchInterfacesEntry.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/SearchInterfacesEntry.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/SearchInterfacesEntry.java	(revision 47923)
@@ -0,0 +1,121 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class SearchInterfacesEntry implements Comparable<SearchInterfacesEntry> {
+
+	private String id;
+	private String compliance;
+	private String protocol;
+	private boolean active;
+	private String repoId = "unknown";
+	private String repoName = "unknown";
+	private String repoCountry = "-";
+	private String repoPrefix = "";
+	private String aggrDate = "";
+	private int aggrTotal = 0;
+
+	public SearchInterfacesEntry() {}
+
+	public SearchInterfacesEntry(final String id, final String compliance, final String protocol, final boolean active, final String repoId,
+			final String repoName, final String repoCountry,
+			final String repoPrefix, final String aggrDate, final int aggrTotal) {
+		this.id = id;
+		this.compliance = compliance;
+		this.protocol = protocol;
+		this.active = active;
+		this.repoId = repoId;
+		this.repoName = repoName;
+		this.repoCountry = repoCountry;
+		this.repoPrefix = repoPrefix;
+		this.aggrDate = aggrDate;
+		this.aggrTotal = aggrTotal;
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(final String id) {
+		this.id = id;
+	}
+
+	public String getCompliance() {
+		return compliance;
+	}
+
+	public void setCompliance(final String compliance) {
+		this.compliance = compliance;
+	}
+
+	public boolean isActive() {
+		return active;
+	}
+
+	public void setActive(final boolean active) {
+		this.active = active;
+	}
+
+	public String getRepoId() {
+		return repoId;
+	}
+
+	public void setRepoId(final String repoId) {
+		this.repoId = repoId;
+	}
+
+	public String getRepoName() {
+		return repoName;
+	}
+
+	public void setRepoName(final String repoName) {
+		this.repoName = repoName;
+	}
+
+	public String getRepoCountry() {
+		return repoCountry;
+	}
+
+	public void setRepoCountry(final String repoCountry) {
+		this.repoCountry = repoCountry;
+	}
+
+	public String getRepoPrefix() {
+		return repoPrefix;
+	}
+
+	public void setRepoPrefix(final String repoPrefix) {
+		this.repoPrefix = repoPrefix;
+	}
+
+	@Override
+	public int compareTo(final SearchInterfacesEntry e) {
+		return compliance.compareTo(e.getCompliance());
+	}
+
+	public String getAggrDate() {
+		return aggrDate;
+	}
+
+	public void setAggrDate(final String aggrDate) {
+		this.aggrDate = aggrDate;
+	}
+
+	public int getAggrTotal() {
+		return aggrTotal;
+	}
+
+	public void setAggrTotal(final int aggrTotal) {
+		this.aggrTotal = aggrTotal;
+	}
+
+	public String getProtocol() {
+		return protocol;
+	}
+
+	public void setProtocol(final String protocol) {
+		this.protocol = protocol;
+	}
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceDesc.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceDesc.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceDesc.java	(revision 47923)
@@ -0,0 +1,472 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class DatasourceDesc {
+
+	private String id;
+	private String officialName;
+	private String englishName;
+	private String websiteUrl;
+	private String logoUrl;
+	private String contactEmail;
+	private String countryCode;
+	private String countryName;
+	private String organization;
+	private Double latitude = 0.0;
+	private Double longitude = 0.0;
+	private Double timezone = 0.0;
+	private String namespacePrefix;
+	private String odNumberOfItems;
+	private String odNumberOfItemsDate;
+	private String odPolicies;
+	private String odLanguages;
+	private String odContentTypes;
+	private String collectedFrom;
+	private Boolean inferred = false;
+	private Boolean deletedByInference = false;
+	private Double trust = 0.9;
+	private String inferenceProvenance;
+	private Date dateOfValidation;
+	private String registeredBy;
+	private String datasourceClass;
+	private String provenanceActionClass;
+	private Date dateOfCollection;
+	private String typology;
+	private String activationId;
+	private Boolean mergehomonyms = true;
+	private String description;
+	private Date releaseStartDate;
+	private Date releaseEndDate;
+	private String missionStatementUrl;
+	private Boolean dataProvider = false;
+	private Boolean serviceProvider = false;
+	private String databaseAccessType;
+	private String dataUploadType;
+	private String databaseAccessRestriction;
+	private String dataUploadRestriction;
+	private Boolean versioning = false;
+	private String citationGuidelineUrl;
+	private String qualityManagementKind;
+	private String pidSystems;
+	private String certificates;
+	private String aggregator;
+	private String issn;
+	private String eissn;
+	private String lissn;
+	private List<IfaceDesc> interfaces = new ArrayList<IfaceDesc>();
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(final String id) {
+		this.id = id;
+	}
+
+	public String getOfficialName() {
+		return officialName;
+	}
+
+	public void setOfficialName(final String officialName) {
+		this.officialName = officialName;
+	}
+
+	public String getEnglishName() {
+		return englishName;
+	}
+
+	public void setEnglishName(final String englishName) {
+		this.englishName = englishName;
+	}
+
+	public String getWebsiteUrl() {
+		return websiteUrl;
+	}
+
+	public void setWebsiteUrl(final String websiteUrl) {
+		this.websiteUrl = websiteUrl;
+	}
+
+	public String getLogoUrl() {
+		return logoUrl;
+	}
+
+	public void setLogoUrl(final String logoUrl) {
+		this.logoUrl = logoUrl;
+	}
+
+	public String getContactEmail() {
+		return contactEmail;
+	}
+
+	public void setContactEmail(final String contactEmail) {
+		this.contactEmail = contactEmail;
+	}
+
+	public String getCountryCode() {
+		return countryCode;
+	}
+
+	public void setCountryCode(final String countryCode) {
+		this.countryCode = countryCode;
+	}
+
+	public String getCountryName() {
+		return countryName;
+	}
+
+	public void setCountryName(final String countryName) {
+		this.countryName = countryName;
+	}
+
+	public String getOrganization() {
+		return organization;
+	}
+
+	public void setOrganization(final String organization) {
+		this.organization = organization;
+	}
+
+	public Double getLatitude() {
+		return latitude;
+	}
+
+	public void setLatitude(final Double latitude) {
+		this.latitude = latitude;
+	}
+
+	public Double getLongitude() {
+		return longitude;
+	}
+
+	public void setLongitude(final Double longitude) {
+		this.longitude = longitude;
+	}
+
+	public Double getTimezone() {
+		return timezone;
+	}
+
+	public void setTimezone(final Double timezone) {
+		this.timezone = timezone;
+	}
+
+	public String getNamespacePrefix() {
+		return namespacePrefix;
+	}
+
+	public void setNamespacePrefix(final String namespacePrefix) {
+		this.namespacePrefix = namespacePrefix;
+	}
+
+	public String getOdNumberOfItems() {
+		return odNumberOfItems;
+	}
+
+	public void setOdNumberOfItems(final String odNumberOfItems) {
+		this.odNumberOfItems = odNumberOfItems;
+	}
+
+	public String getOdNumberOfItemsDate() {
+		return odNumberOfItemsDate;
+	}
+
+	public void setOdNumberOfItemsDate(final String odNumberOfItemsDate) {
+		this.odNumberOfItemsDate = odNumberOfItemsDate;
+	}
+
+	public String getOdPolicies() {
+		return odPolicies;
+	}
+
+	public void setOdPolicies(final String odPolicies) {
+		this.odPolicies = odPolicies;
+	}
+
+	public String getOdLanguages() {
+		return odLanguages;
+	}
+
+	public void setOdLanguages(final String odLanguages) {
+		this.odLanguages = odLanguages;
+	}
+
+	public String getOdContentTypes() {
+		return odContentTypes;
+	}
+
+	public void setOdContentTypes(final String odContentTypes) {
+		this.odContentTypes = odContentTypes;
+	}
+
+	public String getCollectedFrom() {
+		return collectedFrom;
+	}
+
+	public void setCollectedFrom(final String collectedFrom) {
+		this.collectedFrom = collectedFrom;
+	}
+
+	public Boolean isInferred() {
+		return inferred;
+	}
+
+	public void setInferred(final Boolean inferred) {
+		this.inferred = inferred;
+	}
+
+	public Boolean isDeletedByInference() {
+		return deletedByInference;
+	}
+
+	public void setDeletedByInference(final Boolean deletedByInference) {
+		this.deletedByInference = deletedByInference;
+	}
+
+	public Double getTrust() {
+		return trust;
+	}
+
+	public void setTrust(final Double trust) {
+		this.trust = trust;
+	}
+
+	public String getInferenceProvenance() {
+		return inferenceProvenance;
+	}
+
+	public void setInferenceProvenance(final String inferenceProvenance) {
+		this.inferenceProvenance = inferenceProvenance;
+	}
+
+	public Date getDateOfValidation() {
+		return dateOfValidation;
+	}
+
+	public void setDateOfValidation(final Date dateOfValidation) {
+		this.dateOfValidation = dateOfValidation;
+	}
+
+	public String getDatasourceClass() {
+		return datasourceClass;
+	}
+
+	public void setDatasourceClass(final String datasourceClass) {
+		this.datasourceClass = datasourceClass;
+	}
+
+	public String getProvenanceActionClass() {
+		return provenanceActionClass;
+	}
+
+	public void setProvenanceActionClass(final String provenanceActionClass) {
+		this.provenanceActionClass = provenanceActionClass;
+	}
+
+	public Date getDateOfCollection() {
+		return dateOfCollection;
+	}
+
+	public void setDateOfCollection(final Date dateOfCollection) {
+		this.dateOfCollection = dateOfCollection;
+	}
+
+	public String getTypology() {
+		return typology;
+	}
+
+	public void setTypology(final String typology) {
+		this.typology = typology;
+	}
+
+	public String getActivationId() {
+		return activationId;
+	}
+
+	public void setActivationId(final String activationId) {
+		this.activationId = activationId;
+	}
+
+	public Boolean isMergehomonyms() {
+		return mergehomonyms;
+	}
+
+	public void setMergehomonyms(final Boolean mergehomonyms) {
+		this.mergehomonyms = mergehomonyms;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(final String description) {
+		this.description = description;
+	}
+
+	public Date getReleaseStartDate() {
+		return releaseStartDate;
+	}
+
+	public void setReleaseStartDate(final Date releaseStartDate) {
+		this.releaseStartDate = releaseStartDate;
+	}
+
+	public Date getReleaseEndDate() {
+		return releaseEndDate;
+	}
+
+	public void setReleaseEndDate(final Date releaseEndDate) {
+		this.releaseEndDate = releaseEndDate;
+	}
+
+	public String getMissionStatementUrl() {
+		return missionStatementUrl;
+	}
+
+	public void setMissionStatementUrl(final String missionStatementUrl) {
+		this.missionStatementUrl = missionStatementUrl;
+	}
+
+	public Boolean isDataProvider() {
+		return dataProvider;
+	}
+
+	public void setDataProvider(final Boolean dataProvider) {
+		this.dataProvider = dataProvider;
+	}
+
+	public Boolean isServiceProvider() {
+		return serviceProvider;
+	}
+
+	public void setServiceProvider(final Boolean serviceProvider) {
+		this.serviceProvider = serviceProvider;
+	}
+
+	public String getDatabaseAccessType() {
+		return databaseAccessType;
+	}
+
+	public void setDatabaseAccessType(final String databaseAccessType) {
+		this.databaseAccessType = databaseAccessType;
+	}
+
+	public String getDataUploadType() {
+		return dataUploadType;
+	}
+
+	public void setDataUploadType(final String dataUploadType) {
+		this.dataUploadType = dataUploadType;
+	}
+
+	public String getDatabaseAccessRestriction() {
+		return databaseAccessRestriction;
+	}
+
+	public void setDatabaseAccessRestriction(final String databaseAccessRestriction) {
+		this.databaseAccessRestriction = databaseAccessRestriction;
+	}
+
+	public String getDataUploadRestriction() {
+		return dataUploadRestriction;
+	}
+
+	public void setDataUploadRestriction(final String dataUploadRestriction) {
+		this.dataUploadRestriction = dataUploadRestriction;
+	}
+
+	public Boolean isVersioning() {
+		return versioning;
+	}
+
+	public void setVersioning(final Boolean versioning) {
+		this.versioning = versioning;
+	}
+
+	public String getCitationGuidelineUrl() {
+		return citationGuidelineUrl;
+	}
+
+	public void setCitationGuidelineUrl(final String citationGuidelineUrl) {
+		this.citationGuidelineUrl = citationGuidelineUrl;
+	}
+
+	public String getQualityManagementKind() {
+		return qualityManagementKind;
+	}
+
+	public void setQualityManagementKind(final String qualityManagementKind) {
+		this.qualityManagementKind = qualityManagementKind;
+	}
+
+	public String getPidSystems() {
+		return pidSystems;
+	}
+
+	public void setPidSystems(final String pidSystems) {
+		this.pidSystems = pidSystems;
+	}
+
+	public String getCertificates() {
+		return certificates;
+	}
+
+	public void setCertificates(final String certificates) {
+		this.certificates = certificates;
+	}
+
+	public String getAggregator() {
+		return aggregator;
+	}
+
+	public void setAggregator(final String aggregator) {
+		this.aggregator = aggregator;
+	}
+
+	public String getIssn() {
+		return issn;
+	}
+
+	public void setIssn(final String issn) {
+		this.issn = issn;
+	}
+
+	public String getEissn() {
+		return eissn;
+	}
+
+	public void setEissn(final String eissn) {
+		this.eissn = eissn;
+	}
+
+	public String getLissn() {
+		return lissn;
+	}
+
+	public void setLissn(final String lissn) {
+		this.lissn = lissn;
+	}
+
+	public List<IfaceDesc> getInterfaces() {
+		return interfaces;
+	}
+
+	public void setInterfaces(final List<IfaceDesc> interfaces) {
+		this.interfaces = interfaces;
+	}
+
+	public String getRegisteredBy() {
+		return registeredBy;
+	}
+
+	public void setRegisteredBy(String registeredBy) {
+		this.registeredBy = registeredBy;
+	}
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/IfaceDesc.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/IfaceDesc.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/IfaceDesc.java	(revision 47923)
@@ -0,0 +1,104 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class IfaceDesc {
+
+	private String id;
+	private String typology;
+	private String compliance;
+	private String contentDescription;
+	private String accessProtocol;
+	private String baseUrl;
+	private boolean active = false;
+	private boolean removable = false;
+	private Map<String, String> accessParams = new HashMap<String, String>();
+	private Map<String, String> extraFields = new HashMap<String, String>();
+
+	public IfaceDesc() {}
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(final String id) {
+		this.id = id;
+	}
+
+	public String getTypology() {
+		return typology;
+	}
+
+	public void setTypology(final String typology) {
+		this.typology = typology;
+	}
+
+	public String getCompliance() {
+		return compliance;
+	}
+
+	public void setCompliance(final String compliance) {
+		this.compliance = compliance;
+	}
+
+	public String getContentDescription() {
+		return contentDescription;
+	}
+
+	public void setContentDescription(final String contentDescription) {
+		this.contentDescription = contentDescription;
+	}
+
+	public String getAccessProtocol() {
+		return accessProtocol;
+	}
+
+	public void setAccessProtocol(final String accessProtocol) {
+		this.accessProtocol = accessProtocol;
+	}
+
+	public String getBaseUrl() {
+		return baseUrl;
+	}
+
+	public void setBaseUrl(final String baseUrl) {
+		this.baseUrl = baseUrl;
+	}
+
+	public Map<String, String> getAccessParams() {
+		return accessParams;
+	}
+
+	public void setAccessParams(final Map<String, String> accessParams) {
+		this.accessParams = accessParams;
+	}
+
+	public Map<String, String> getExtraFields() {
+		return extraFields;
+	}
+
+	public void setExtraFields(final Map<String, String> extraFields) {
+		this.extraFields = extraFields;
+	}
+
+	public boolean getActive() {
+		return active;
+	}
+
+	public void setActive(final boolean active) {
+		this.active = active;
+	}
+
+	public boolean getRemovable() {
+		return removable;
+	}
+
+	public void setRemovable(final boolean removable) {
+		this.removable = removable;
+	}
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceManagerServiceException.java
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceManagerServiceException.java	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1/src/main/java/eu/dnetlib/enabling/datasources/rmi/DatasourceManagerServiceException.java	(revision 47923)
@@ -0,0 +1,24 @@
+package eu.dnetlib.enabling.datasources.rmi;
+
+import eu.dnetlib.common.rmi.RMIException;
+
+public class DatasourceManagerServiceException extends RMIException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -5987839351772223236L;
+
+	public DatasourceManagerServiceException(final String string) {
+		super(string);
+	}
+
+	public DatasourceManagerServiceException(final String string, final Throwable exception) {
+		super(string, exception);
+	}
+
+	public DatasourceManagerServiceException(final Throwable exception) {
+		super(exception);
+	}
+
+}
Index: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1
===================================================================
--- modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1	(nonexistent)
+++ modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1	(revision 47923)

Property changes on: modules/dnet-datasource-manager-rmi/tags/dnet-datasource-manager-rmi-4.0.1
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,5 ##
+target
+.classpath
+.settings
+.project
+
