Index: modules/uoa-api/trunk/pom.xml
===================================================================
--- modules/uoa-api/trunk/pom.xml	(nonexistent)
+++ modules/uoa-api/trunk/pom.xml	(revision 46897)
@@ -0,0 +1,34 @@
+<?xml version="1.0" ?>
+<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>dnet-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>eu.dnetlib</groupId>
+	<artifactId>uoa-api</artifactId>
+	<packaging>jar</packaging>
+	<version>1.2.1-SNAPSHOT</version>
+	<scm>
+		<developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/trunk</developerConnection>
+	</scm>
+	<dependencies>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>dnet-actionmanager-api</artifactId>
+			<version>[3.0.0, 4.0.0)</version>
+		</dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>uoa-domain</artifactId>
+			<version>[1.0.0, 2.0.0)</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>[0.0.0,)</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+</project>
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/MDStoreService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public interface MDStoreService extends DriverService {
+
+	public EPR deliverMDRecords(String mdStoreId, String from, String until, String recordsFilter) throws MDStoreServiceException;
+
+	public String deliverRecord(String mdStoreId, String recordId) throws MDStoreServiceException;
+
+	public List<String> getListOfMDStores() throws MDStoreServiceException;
+
+	public List<String> listMDStores(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public EPR bulkDeliverMDRecords(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public boolean storeMDRecordsFromRS(String mdStoreId, String resultSetId, String storingType) throws MDStoreServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(revision 46897)
@@ -0,0 +1,257 @@
+package eu.dnetlib.api.data;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.jws.WebParam;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.Repository;
+import eu.dnetlib.domain.data.RepositoryInterface;
+
+public interface DatasourceManagerService extends DriverService {
+
+	/**
+	 * Register a datasource.
+	 * 
+	 * @param ds
+	 *            the new datasource
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean addDatasource(Repository repository)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Delete a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean deleteDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public Repository getDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns all the datasources.
+	 * 
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> 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)
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> listDatasourcesUsingFilter(String compliance,
+			String contentDescription, String iisProcessingWorkflow, String collectedFrom)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * updates the level of compliance of a datasource.
+	 * 
+	 * @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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, 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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId,
+			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(String dsId, RepositoryInterface 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(String dsId, 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(String dsId, String sql, 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;
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface ISRegistryService extends DriverService {
+
+	public boolean deleteProfile(String profId)
+			throws ISRegistryServiceException;
+
+	public boolean updateProfile(String profId, String resourceProfile,
+			String resourceType) throws ISRegistryServiceException;
+
+	public String registerProfile(String resourceProfile)
+			throws ISRegistryServiceException;
+
+	public String registerSecureProfile(String resourceProfID,
+			String secureProfID) throws ISRegistryServiceException;
+
+	public String insertProfileForValidation(String resourceType,
+			String resourceProfile) throws ISRegistryServiceException;
+
+	public boolean addResourceType(String resourceType, String resourceSchema)
+			throws ISRegistryServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.validator.JobForValidation;
+import eu.dnetlib.domain.functionality.validator.RuleSet;
+import eu.dnetlib.domain.functionality.validator.StoredJob;
+
+public interface ValidatorService extends DriverService {
+	
+	StoredJob getStoredJob(int jobId, String groupBy) throws ValidatorServiceException;
+
+	List<StoredJob> getStoredJobs(String userMail, String jobType, Integer offset, Integer limit, String dateFrom, String dateTo) throws ValidatorServiceException;
+
+	int getStoredJobsTotalNumber(String userMail, String jobType) throws ValidatorServiceException;
+
+	List<StoredJob> getStoredJobsNew(String userMail, String jobType, Integer offset, Integer limit, String dateFrom, String dateTo, String jobStatus) throws ValidatorServiceException;
+
+	int getStoredJobsTotalNumberNew(String userMail, String jobType, String jobStatus) throws ValidatorServiceException;
+
+	List<RuleSet> getRuleSets() throws ValidatorServiceException;
+
+	void submitValidationJob(JobForValidation job) throws ValidatorServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface LocalDownloadManagerService extends DriverService {
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/AlertService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(revision 46897)
@@ -0,0 +1,150 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.AlertSubscription;
+import eu.dnetlib.domain.functionality.AlertTemplate;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of alert service. Alert service is used to manage templates and subscriptions. 
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.AlertTemplate
+ * @see eu.dnetlib.domain.functionality.AlertSubscription
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see AlertServiceException
+ * 
+ */
+public interface AlertService extends DriverService {
+	/**
+	 * Retrieve all the supported modes in which alerts can be sent.
+	 * @return a sorted set containing all the supported modes in which alerts can be sent
+	 */
+	public SortedSet<String> getSupportedAlertModes();
+	
+	/**
+	 * Retrieve a page of templates.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing templates
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertTemplate> getTemplates(final int pageNumber, final int pageSize) throws AlertServiceException;
+	
+	/**
+	 * Add a template.
+	 * @param template the template to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addTemplate(final AlertTemplate template) throws AlertServiceException;
+	
+	/**
+	 * Remove a template.
+	 * @param templateId the unique identifier of the template to remove
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeTemplate(final String templateId) throws AlertServiceException;	
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws AlertServiceException;
+
+	/**
+	 * Retrieve some subscriptions by alert mode and subscriber.
+	 * @param alertMode the alert mode of the subscriptions to retrieve
+	 * @param subscriber the subscriber URI of the subscriptions to retrieve (prefix match)
+	 * @param limit the maximum number of subscriptions to retrieve
+	 * @param offset the offset to start at 
+	 * @return a list of subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */ 
+	public SortedSet<AlertSubscription> getSubscriptions(final String alerMode, final String subscriber, final int limit, final int offset) throws AlertServiceException;
+	
+	/**
+	 * Add a new subscription.
+	 * @param subscription the subscription to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addSubscription(final AlertSubscription subscription) throws AlertServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to enable
+	 * @param notificationService the URL of the notification service of the subscription to enable
+	 * @param queryId the unique identifier of the notification query  of the subscription to enable
+	 * @param resultId the unique identifier of the result of the subscription to enable
+	 * @param alertMode the alert mode of the subscription to enable
+	 * @param subscriber the URI of the subscriber of the subscription to enable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void enableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param templateId the unique identifier of the template the subscription to disable
+	 * @param notificationService the URL of the notification service of the subscription to disable
+	 * @param queryId the unique identifier of the notification query of the subscription to disable
+	 * @param resultId the unique identifier of the result of the subscription to disable
+	 * @param alertMode the alert mode of the subscription to disable
+	 * @param subscriber the URI of the subscriber of the subscription to disable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void disableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to remove
+	 * @param notificationService the URL of the notification service of the subscription to remove
+	 * @param queryId the unique identifier of the notification query of the subscription to remove
+	 * @param resultId the unique identifier of the result of the subscription to remove
+	 * @param alertMode the alert mode of the subscription to remove
+	 * @param subscriber the URI of the subscriber of the subscription to remove 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Count the results of an alert.
+	 * @param templateId the unique identifier of the template of the alert results to count
+	 * @param notificationService the URL of the notification service of the alert results to count
+	 * @param queryId the unique identifier of the notification query of the alert results to count
+	 * @param date the date that corresponds to the notification event of the alert results to count
+	 * @param resultId the unique identifier of the notification result of the alert results to count
+	 * @return the total number of the specified alert results
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public int countAlertResults(final URL notificationService, final String queryId, final Date date, final String resultId) throws AlertServiceException;
+
+	/**
+	 * Retrieve the results of an alert.
+	 * @param notificationService the URL of the notification service of the alert results to retrieve
+	 * @param queryId the unique identfier of the notification query of the alert results to retrieve
+	 * @param resultId the unique identifier of the notification result of the alert results to retrieve
+	 * @param fromDate the date from which to retrieve alert results
+	 * @param toDate the date up to which to retrieve alert results 
+	 * @param limit the maximum number of alert results to retrieve
+	 * @param offset the offset to start at
+	 * @return a result page
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ResultPage getAlertResults(final URL notificationService, final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws AlertServiceException;
+			
+	/**
+	 * Alert this service about an event generated by a notification service.
+	 * @param notificationService the URL of the notification service
+	 * @param event the notification event
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void alert(final URL notificationService, final NotificationEvent event) throws AlertServiceException; 
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SearchService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SearchService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SearchService.java	(revision 46897)
@@ -0,0 +1,112 @@
+package eu.dnetlib.api.data;
+
+import java.util.Collection;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.FormattedSearchResult;
+import eu.dnetlib.domain.data.SearchResult;
+import eu.dnetlib.domain.data.SuggestiveResult;
+
+public interface SearchService extends DriverService {
+
+	/**
+	 * Returns search results for given query containing the request parameters and 
+	 * the list of search result XML records as it is derived after the application of 
+	 * the xslt tranfrormer.
+	 * 
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for search results 
+	 * @param locale the locale
+	 * @param page the search result page 
+	 * @param size the search result page size
+	 * @return {@link SearchResult} containing the request parameters and the list of 
+	 * search result xml records
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult search(String queryText, String transformer,
+			String locale, int page, int size) throws SearchServiceException;
+
+	/**
+	 * Returns refine results of given query containing the request parameters and 
+	 * the list of refine XML records as it is derived after the application of 
+	 * the xslt transfrormer.
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link SearchResult} containing the request parameters and the list of refine xml records
+	 * 
+	 * @throws SearchServiceException 
+	 */
+	public SearchResult refine(String queryText, String transformer,
+			String locale, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns search and refine results  containing the request parameters, the list 
+	 * of XML search records and the list of XML refine records as it is derived after 
+	 * the application of the xslt tranfrormers.
+	 * @param queryText the query 
+	 * @param searchTransformer the xslt transformer of search results
+	 * @param refineTransformer the xslt transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return {@link SearchResult} containing the request parameters, the list 
+	 * of search records and the list of refine records 
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns a {@link FormattedSearchResult} containing the formatted results of search 
+	 * @param queryText the query
+	 * @param transformer the name of the transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link FormattedSearchResult} containing the formatted results of refine 
+	 * 
+	 * @throws SearchServiceException	 */
+	public FormattedSearchResult search(String queryText, String transformer, String format,
+			String locale, int page, int size) throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  
+	 * @throws SearchServiceException
+	 */
+	public FormattedSearchResult refine(String queryText, String refineTransformer, 
+			String format, String locale, Collection<String> fields)
+				throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine and search 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  */
+	public FormattedSearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String format, String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+	
+	public SuggestiveResult suggestiveSearch(String query) throws SearchServiceException;
+
+}
\ No newline at end of file
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/IndexService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/IndexService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/IndexService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+import eu.dnetlib.domain.data.Hint;
+
+public interface IndexService extends DriverService {
+
+	public EPR indexLookup(String id, String query, String mdformat,
+			String layout) throws IndexServiceException;
+	
+	public Hint suggestiveSearch(String id, String query, 
+			String mdformat, String layout, String heuristicProfileName)
+				throws IndexServiceException;
+
+	public EPR getBrowsingStatistics(String query, String index,
+			String mdFormatId, String layoutId) throws IndexServiceException;
+
+	public List<String> getListOfIndices() throws IndexServiceException;
+
+	public String getIndexStatistics(String index) throws IndexServiceException;
+
+	public String getListOfIndicesCSV() throws IndexServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISRegistryServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 4179398986751223317L;
+
+	public ISRegistryServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public ISRegistryServiceException() {
+		super();
+	}
+
+	public ISRegistryServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISRegistryServiceException(String message) {
+		super(message);
+	}
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISSNService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(revision 46897)
@@ -0,0 +1,39 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISSNService extends DriverService {
+	String getCurrentMessage(String topic) throws ISSNServiceException;
+
+	boolean pauseSubscription(String subscrId) throws ISSNServiceException;
+
+	boolean renew(String subscrId, int terminationTime) throws ISSNServiceException;
+
+	boolean resumeSubscription(String subscrId) throws ISSNServiceException;
+
+	String subscribe(
+			EPR consumerReference,
+			String topicExpression,
+			int initialTerminationTime) throws ISSNServiceException;
+
+	boolean unsubscribe(String subscrId) throws ISSNServiceException;
+
+	boolean actionCreatePerformed(
+			String resourceType,
+			String profileId,
+			String profile) throws ISSNServiceException;
+
+	boolean actionUpdatePerformed(
+			String resourceType,
+			String profileId,
+			String profileBefore,
+			String profileAfter) throws ISSNServiceException;
+
+	boolean actionDeletePerformed(String resourceType, String profileId)
+			throws ISSNServiceException;
+
+	List<String> listSubscriptions();
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SimilarityService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.SimilarDocument;
+
+public interface SimilarityService extends DriverService {
+
+	/**
+	 * Returns a list of similar documents which are similar to document with
+	 * specified id. No additional values are returned (only ids and score)
+	 * 
+	 * @param id The specified id
+	 * @return a list of {@link SimilarDocument}
+	 */
+	public List<SimilarDocument> getSimilarDocuments(String id)
+			throws SimilarityServiceException;
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/NotificationService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(revision 46897)
@@ -0,0 +1,184 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.NotificationQuery;
+import eu.dnetlib.domain.functionality.NotificationResult;
+import eu.dnetlib.domain.functionality.NotificationSchedule;
+import eu.dnetlib.domain.functionality.NotificationSubscription;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of notification service. Alert service is used to manage queries, schedules, events, results and subscriptions.
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.NotificationQuery
+ * @see eu.dentlib.domain.functionality.NotificationSchedule
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see eu.dnetlib.domain.functionality.NotificationResult
+ * @see eu.dnetlib.domain.functionality.NotificationSubscription
+ * @see NotificationServiceException
+ * 
+ */
+public interface NotificationService extends DriverService {
+	/**
+	 * Retrieve all the supported languages in which queries can be expressed.
+	 * @return a set containing all the supported languages in which queries can be expressed
+	 */
+	public SortedSet<String> getSupportedQueryLanguages();
+
+	/**
+	 * Retrieve a page of queries.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing queries
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationQuery> getQueries(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a query.
+	 * @param query the query to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addQuery(final NotificationQuery query) throws NotificationServiceException;
+	
+	/**
+	 * Remove a query.
+	 * @param queryId the unique identifier of the query to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeQuery(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Execute a query and return the generated result.
+	 * @param queryId the unique identifier of the query to execute
+	 * @param resultId the unique result identifier to use
+	 * @param fromDate the from date to use
+	 * @param toDate the to date to use
+	 * @param limit the limit to use
+	 * @param offset the offset to use
+	 * @return a result page containing the generated result
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ResultPage executeQuery(final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of schedules.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing schedules
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSchedule> getSchedules(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a schedule.
+	 * @param schedule the schedule to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSchedule(final NotificationSchedule schedule) throws NotificationServiceException;
+	
+	/**
+	 * Enable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Disable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Remove a schedule.
+	 * @param queryId the unique identifier of the query of the schedule to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of events.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing events
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationEvent> getEvents(final int pageNumber, final int pageSize) throws NotificationServiceException;
+
+	/**
+	 * Retrieve a page of results.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing results
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationResult> getResults(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the event of the result to retrieve
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of the previous event of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the next event of the event whose result to retrieve 
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the previous event of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getPreviousResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containign subscriptions
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a subscription.
+	 * @param subscription the subscription to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSubscription(final NotificationSubscription subscription) throws NotificationServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to enable
+	 * @param alertService the URL of the alert service of the subscription to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to disable
+	 * @param alertService the URL of the alert service of the subscription to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to remove
+	 * @param alertService the URL of the alert service of the subscription to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ConversionService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.ConversionStatus;
+
+public interface ConversionService extends DriverService { 
+	
+	/**
+	 * Adds a conversion job
+	 * @param fileUrl the url of the file to be converted
+	 * @param format the desired format 
+	 * @return the {@link ConversionStatus} of the conversion job
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus addJob(String fileUrl, String format)  
+				throws ConversionServiceException;
+	/**
+	 * The {@link ConversionStatus} of a conversion job 
+	 * @param conversionId the id of the conversion job
+	 * @return the {@link ConversionStatus}  
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus getStatus(String conversionId) 
+				throws ConversionServiceException;
+	
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.data;
+
+public class SimilarityServiceException extends Exception {
+
+	private static final long serialVersionUID = -4552557846773396398L;
+
+	public SimilarityServiceException() {
+		super();
+
+	}
+
+	public SimilarityServiceException(String message, Throwable cause) {
+		super(message, cause);
+
+	}
+
+	public SimilarityServiceException(String message) {
+		super(message);
+
+	}
+
+	public SimilarityServiceException(Throwable cause) {
+		super(cause);
+
+	}
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/IndexServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class IndexServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 3390962667213486580L;
+
+	public IndexServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/A2Service.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateResp;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeResp;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateRequest;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateResp;
+
+
+//TODO: remove???
+
+public interface A2Service extends DriverService {
+
+//	public AuthenticateResp authenticate(
+//			AuthenticateRequest authenticationRequest);
+//
+//	public AuthorizeResp authorize(AuthorizeRequest authorizationRequest);
+//
+//	public InvalidateResp invalidate(InvalidateRequest invalidationRequest);
+
+	public boolean validate(String profId, String secProfId);
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(revision 46897)
@@ -0,0 +1,12 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class PublisherServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 6956403917254162285L;
+
+	public PublisherServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.functionality;
+
+@SuppressWarnings("serial")
+public class ConversionServiceException extends Exception {
+	public ConversionServiceException() {
+		super();
+	}
+	
+	public ConversionServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ConversionServiceException(String message) {
+		super(message);
+	}
+	
+	public ConversionServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.actionmanager.common.Operation;
+import eu.dnetlib.actionmanager.common.Provenance;
+import eu.dnetlib.actionmanager.rmi.ActionManagerException;
+import eu.dnetlib.actionmanager.set.ActionManagerSet;
+import eu.dnetlib.api.DriverService;
+
+public interface ActionManagerService extends DriverService {
+	public String createSet(ActionManagerSet set) throws ActionManagerException;
+
+	public List<ActionManagerSet> ListSets() throws ActionManagerException;
+
+	public String createAction(
+			String splitRuleId, 
+			String set, 
+			Agent agent,
+			Operation operation, 
+			String infoPackage, 
+			Provenance provenance,
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public String updateAction(
+			String actionId, 
+			String splitRuleId, 
+			String set,
+			Agent agent, 
+			Operation operation, 
+			String infoPackage,
+			Provenance provenance, 
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public boolean deleteAction(String actionId) throws ActionManagerException;
+
+	public List<String> getActionsByAgent(String agentId, int limit)
+			throws ActionManagerException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by alert service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see AlertService
+ *
+ */
+public class AlertServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Construct a new alert service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public AlertServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new alert service exception with the specified message.
+	 * @param message the message
+	 */
+	public AlertServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by notification service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see NotificationService
+ * 
+ */
+public class NotificationServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * Construct a new notification service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public NotificationServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new notification service exception with the specified message.
+	 * @param message the message
+	 */
+	public NotificationServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface MadgikValidator extends DriverService {
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(revision 46897)
@@ -0,0 +1,348 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Recommendation;
+
+/**
+ * The class that manages Recommendation objects
+ */
+public interface RecommendationService extends DriverService {
+
+	/**
+	 * creates a new recommendation of type announcement
+	 * 
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the date the announcement expires
+	 * @return the id of the new recommendation
+	 * @throws RecommendationWebServiceException
+	 *             if the announcement cannot be created
+	 */
+	public String generateAnnouncement(int index, boolean active,
+			String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 announcements
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapAnnouncements(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 user recommendaitons
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapUserRecommendations(String announcementId1, String announcementId2) 
+			throws RecommendationServiceException;;
+		
+	/**
+	 * Swap the index of 2 community recommendations
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapCommunityRecommendations(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+		
+	/**
+	 * creates a new recommendation
+	 * 
+	 * @param index
+	 *            the recommendation index
+	 * @param active
+	 *            the state of the recommendaiton, is it active or not #param
+	 *            title the title of the recommendation
+	 * @param rText
+	 *            the recommendation text
+	 * @param creationDate
+	 *            the date the recommendation was created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation cannot be created
+	 */
+	public Recommendation generateRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate) throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type community
+	 * 
+	 * @param recommendationText
+	 *            the recommendation text
+	 * @param creationDate
+	 * @param expirationDate
+	 * @param communityId
+	 *            the ids of the associated communities
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the community recommendation cannot be created
+	 */
+	public String generateCommunityRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type user
+	 * 
+	 * @param recommendationText
+	 * @param creationDate
+	 * @param expirationDate
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the user recommendation cannot be created
+	 */
+	public String generateUserRecommendation(int index, boolean active,
+			String title, String userId, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements that haven't
+	 * expired
+	 * 
+	 * @return the announcements' recommendation text
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves ths ids of all announcements
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllAnnouncementIds()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements
+	 * 
+	 * @return the recommendation text of all announcements
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, only the content
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, the objects
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj()
+			throws RecommendationServiceException;
+
+	public List<String> getCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	public List<Recommendation> getCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation content that are associated with a
+	 * community
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation objects that are associated with a
+	 * community.
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	public List<String> getAllUserRecommendations(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the recommendation id
+	 * @return the recommendation or null if the recommendation does not exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+
+	public Recommendation getRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the text of a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @return the recommendation text or null if the recommendation does not
+	 *         exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public String getRecommendationText(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of a Set of recommendations
+	 * 
+	 * @param recommendationIds
+	 *            the ids of the recommendations
+	 * @return a Set of the recommendations' text
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public List<String> getRecommendations(List<String> recommendationIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void removeRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type announcement
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement does not exist or cannot be updated
+	 */
+	public void removeAnnouncement(String announcementId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type community
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param communityId
+	 *            the id of the community
+	 * @throws RecommendationServiceException
+	 */
+	public void removeCommunityRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	public void removeUserRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the date the recommendation is created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void updateRecommendation(String recommendationId, int index,
+			boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates an announcement and the corresponding recommendation
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @param recommendationText
+	 *            the text of the corresponding recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the expiration date of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement recommendation does not exist or cannot
+	 *             be updated
+	 */
+	public void updateAnnouncement(String announcementId, int index,
+			boolean active, String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	public void updateCommunityRecommendation(String recommendationId,
+			int index, boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/*
+	 * /** sends an e-mail to all users with the recommendation text of an
+	 * announcement
+	 * 
+	 * @param announcementId the id of the announcement @throws
+	 * RecommendationServiceException if the announcement or recommendation does
+	 * not exist
+	 * 
+	 * public void sendAnnouncement( String announcementId ) throws
+	 * RecommendationServiceException;
+	 */
+
+	public void addRecommendationToUser(String recommendationId, String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getCommunityRecommendationsForUser(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation objects for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getCommunityRecommendationsForUserObj(
+			String userId) throws RecommendationServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ForumService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(revision 46897)
@@ -0,0 +1,56 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Post;
+import eu.dnetlib.domain.functionality.Thread;
+
+/**
+ * This interface describes the available methods  of a forum service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface ForumService extends DriverService {
+	/**
+	 * Open a new thread.
+	 * @param communityId the id of the community that the thread belongs to
+	 * @param userId the id of the user that opens the thread
+	 * @param topic the topic of the thread
+	 * @return the id of the thread just opened
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public long openThread(String communityId, String userId, String topic) throws ForumServiceException;
+	
+	/**
+	 * Edit an existing thread.
+	 * @param threadId the id of the thread to edit
+	 * @param topic the new topic of the thread
+	 * @param posts the new posts of the thread
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void editThread(long threadId, String topic, List<Post> posts) throws ForumServiceException;
+	
+	/**
+	 * Delete an existing thread.
+	 * @param threadId the id of the thread to delete
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void deleteThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for an existing thread by id.
+	 * @param threadId the id of the thread to search for
+	 * @return the thread with the specified id or null if no such thread exists
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public Thread searchThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for existing threads by community.
+	 * @param communityId the id of the community the threads belong to
+	 * @return a list containing all the threads that belong to the specified community
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public List<Thread> searchThread(String communityId) throws ForumServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Collection;
+import eu.dnetlib.domain.functionality.CollectionSearchCriteria;
+
+public interface CollectionService extends DriverService {
+
+	public Collection getCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public List<Collection> getCollections(List<String> collectionIds)
+			throws CollectionServiceException;
+
+	public void updateCollection(Collection collection)
+			throws CollectionServiceException;
+			
+	public void deleteCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public String createCollection(Collection collection)
+			throws CollectionServiceException;
+	
+	public List<Collection> searchCollections(CollectionSearchCriteria criteria) 
+			throws CollectionServiceException;
+}
\ No newline at end of file

Property changes on: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
___________________________________________________________________
Added: svn:mergeinfo
## -0,0 +0,0 ##
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingContextManagerService extends DriverService {
+
+}
Index: modules/uoa-api/trunk/deploy.info
===================================================================
--- modules/uoa-api/trunk/deploy.info	(nonexistent)
+++ modules/uoa-api/trunk/deploy.info	(revision 46897)
@@ -0,0 +1,11 @@
+
+{
+  "type_source": "SVN", 
+  "goal": "package -U -T 4C source:jar", 
+  "url": "http://svn-public.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/trunk", 
+  "deploy_repository": "dnet4-snapshots", 
+  "version": "4", 
+  "mail": "antleb@di.uoa.gr, kiatrop@di.uoa.gr", 
+  "deploy_repository_url": "http://maven.research-infrastructures.eu/nexus/content/repositories/dnet4-snapshots", 
+  "name": "uoa-api"
+}
\ No newline at end of file
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISLookUpService extends DriverService {
+
+	public EPR searchProfile(String XQuery) throws ISLookUpServiceException;
+
+	public List<String> quickSearchProfile(String XQuery)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfile(String profId)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfileByQuery(String XQuery)
+			throws ISLookUpServiceException;
+
+	public List<String> listResourceTypes() throws ISLookUpServiceException;
+
+	public String getResourceTypeSchema(String resourceType)
+			throws ISLookUpServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(revision 46897)
@@ -0,0 +1,150 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.AlertSubscription;
+import eu.dnetlib.domain.functionality.AlertTemplate;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of alert service. Alert service is used to manage templates and subscriptions. 
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.AlertTemplate
+ * @see eu.dnetlib.domain.functionality.AlertSubscription
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see AlertServiceException
+ * 
+ */
+public interface AlertService extends DriverService {
+	/**
+	 * Retrieve all the supported modes in which alerts can be sent.
+	 * @return a sorted set containing all the supported modes in which alerts can be sent
+	 */
+	public SortedSet<String> getSupportedAlertModes();
+	
+	/**
+	 * Retrieve a page of templates.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing templates
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertTemplate> getTemplates(final int pageNumber, final int pageSize) throws AlertServiceException;
+	
+	/**
+	 * Add a template.
+	 * @param template the template to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addTemplate(final AlertTemplate template) throws AlertServiceException;
+	
+	/**
+	 * Remove a template.
+	 * @param templateId the unique identifier of the template to remove
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeTemplate(final String templateId) throws AlertServiceException;	
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws AlertServiceException;
+
+	/**
+	 * Retrieve some subscriptions by alert mode and subscriber.
+	 * @param alertMode the alert mode of the subscriptions to retrieve
+	 * @param subscriber the subscriber URI of the subscriptions to retrieve (prefix match)
+	 * @param limit the maximum number of subscriptions to retrieve
+	 * @param offset the offset to start at 
+	 * @return a list of subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */ 
+	public SortedSet<AlertSubscription> getSubscriptions(final String alerMode, final String subscriber, final int limit, final int offset) throws AlertServiceException;
+	
+	/**
+	 * Add a new subscription.
+	 * @param subscription the subscription to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addSubscription(final AlertSubscription subscription) throws AlertServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to enable
+	 * @param notificationService the URL of the notification service of the subscription to enable
+	 * @param queryId the unique identifier of the notification query  of the subscription to enable
+	 * @param resultId the unique identifier of the result of the subscription to enable
+	 * @param alertMode the alert mode of the subscription to enable
+	 * @param subscriber the URI of the subscriber of the subscription to enable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void enableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param templateId the unique identifier of the template the subscription to disable
+	 * @param notificationService the URL of the notification service of the subscription to disable
+	 * @param queryId the unique identifier of the notification query of the subscription to disable
+	 * @param resultId the unique identifier of the result of the subscription to disable
+	 * @param alertMode the alert mode of the subscription to disable
+	 * @param subscriber the URI of the subscriber of the subscription to disable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void disableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to remove
+	 * @param notificationService the URL of the notification service of the subscription to remove
+	 * @param queryId the unique identifier of the notification query of the subscription to remove
+	 * @param resultId the unique identifier of the result of the subscription to remove
+	 * @param alertMode the alert mode of the subscription to remove
+	 * @param subscriber the URI of the subscriber of the subscription to remove 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Count the results of an alert.
+	 * @param templateId the unique identifier of the template of the alert results to count
+	 * @param notificationService the URL of the notification service of the alert results to count
+	 * @param queryId the unique identifier of the notification query of the alert results to count
+	 * @param date the date that corresponds to the notification event of the alert results to count
+	 * @param resultId the unique identifier of the notification result of the alert results to count
+	 * @return the total number of the specified alert results
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public int countAlertResults(final URL notificationService, final String queryId, final Date date, final String resultId) throws AlertServiceException;
+
+	/**
+	 * Retrieve the results of an alert.
+	 * @param notificationService the URL of the notification service of the alert results to retrieve
+	 * @param queryId the unique identfier of the notification query of the alert results to retrieve
+	 * @param resultId the unique identifier of the notification result of the alert results to retrieve
+	 * @param fromDate the date from which to retrieve alert results
+	 * @param toDate the date up to which to retrieve alert results 
+	 * @param limit the maximum number of alert results to retrieve
+	 * @param offset the offset to start at
+	 * @return a result page
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ResultPage getAlertResults(final URL notificationService, final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws AlertServiceException;
+			
+	/**
+	 * Alert this service about an event generated by a notification service.
+	 * @param notificationService the URL of the notification service
+	 * @param event the notification event
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void alert(final URL notificationService, final NotificationEvent event) throws AlertServiceException; 
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ResultSetServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 3213415320259238226L;
+
+	public ResultSetServiceException() {
+		super();
+	}
+
+	public ResultSetServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ResultSetServiceException(String message) {
+		super(message);
+	}
+
+	public ResultSetServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api;
+
+public class DriverServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	public DriverServiceException() {
+		super();
+	}
+
+	public DriverServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DriverServiceException(String message) {
+		super(message);
+	}
+
+	public DriverServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by alert service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see AlertService
+ *
+ */
+public class AlertServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Construct a new alert service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public AlertServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new alert service exception with the specified message.
+	 * @param message the message
+	 */
+	public AlertServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(revision 46897)
@@ -0,0 +1,56 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Post;
+import eu.dnetlib.domain.functionality.Thread;
+
+/**
+ * This interface describes the available methods  of a forum service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface ForumService extends DriverService {
+	/**
+	 * Open a new thread.
+	 * @param communityId the id of the community that the thread belongs to
+	 * @param userId the id of the user that opens the thread
+	 * @param topic the topic of the thread
+	 * @return the id of the thread just opened
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public long openThread(String communityId, String userId, String topic) throws ForumServiceException;
+	
+	/**
+	 * Edit an existing thread.
+	 * @param threadId the id of the thread to edit
+	 * @param topic the new topic of the thread
+	 * @param posts the new posts of the thread
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void editThread(long threadId, String topic, List<Post> posts) throws ForumServiceException;
+	
+	/**
+	 * Delete an existing thread.
+	 * @param threadId the id of the thread to delete
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void deleteThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for an existing thread by id.
+	 * @param threadId the id of the thread to search for
+	 * @return the thread with the specified id or null if no such thread exists
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public Thread searchThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for existing threads by community.
+	 * @param communityId the id of the community the threads belong to
+	 * @return a list containing all the threads that belong to the specified community
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public List<Thread> searchThread(String communityId) throws ForumServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingNodeManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.validator.JobForValidation;
+import eu.dnetlib.domain.functionality.validator.RuleSet;
+import eu.dnetlib.domain.functionality.validator.StoredJob;
+
+public interface ValidatorService extends DriverService {
+	
+	StoredJob getStoredJob(int jobId, String groupBy) throws ValidatorServiceException;
+
+	List<StoredJob> getStoredJobs(String userMail, String jobType, Integer offset, Integer limit, String dateFrom, String dateTo) throws ValidatorServiceException;
+
+	int getStoredJobsTotalNumber(String userMail, String jobType) throws ValidatorServiceException;
+
+	List<StoredJob> getStoredJobs(String userMail, String jobType, Integer offset, Integer limit, String dateFrom, String dateTo, String jobStatus) throws ValidatorServiceException;
+
+	int getStoredJobsTotalNumber(String userMail, String jobType, String jobStatus) throws ValidatorServiceException;
+
+	List<RuleSet> getRuleSets() throws ValidatorServiceException;
+
+	void submitValidationJob(JobForValidation job) throws ValidatorServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class A2ServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = -4143447663291476467L;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.ConversionStatus;
+
+public interface ConversionService extends DriverService { 
+	
+	/**
+	 * Adds a conversion job
+	 * @param fileUrl the url of the file to be converted
+	 * @param format the desired format 
+	 * @return the {@link ConversionStatus} of the conversion job
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus addJob(String fileUrl, String format)  
+				throws ConversionServiceException;
+	/**
+	 * The {@link ConversionStatus} of a conversion job 
+	 * @param conversionId the id of the conversion job
+	 * @return the {@link ConversionStatus}  
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus getStatus(String conversionId) 
+				throws ConversionServiceException;
+	
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(revision 46897)
@@ -0,0 +1,19 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISSNServiceException extends DriverServiceException {
+	private static final long serialVersionUID = -5921523712725388939L;
+
+	public ISSNServiceException(String mesg) {
+		super(mesg);
+	}
+
+	public ISSNServiceException(String mesg, Throwable cause) {
+		super(mesg, cause);
+	}
+
+	public ISSNServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface MadgikValidator extends DriverService {
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverService.java	(revision 46897)
@@ -0,0 +1,18 @@
+package eu.dnetlib.api;
+
+import eu.dnetlib.domain.ServiceIdentity;
+import eu.dnetlib.domain.enabling.Notification;
+
+/**
+ * The basic interface that all DRIVER services must implement.
+ */
+public interface DriverService {
+	/**
+	 * Identifies the service's version.
+	 * 
+	 * @return the service's identification
+	 */
+	public ServiceIdentity identify();
+	
+	public void notify(Notification notification) throws DriverServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface LocalDownloadManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.functionality;
+
+@SuppressWarnings("serial")
+public class ConversionServiceException extends Exception {
+	public ConversionServiceException() {
+		super();
+	}
+	
+	public ConversionServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ConversionServiceException(String message) {
+		super(message);
+	}
+	
+	public ConversionServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(revision 46897)
@@ -0,0 +1,348 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Recommendation;
+
+/**
+ * The class that manages Recommendation objects
+ */
+public interface RecommendationService extends DriverService {
+
+	/**
+	 * creates a new recommendation of type announcement
+	 * 
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the date the announcement expires
+	 * @return the id of the new recommendation
+	 * @throws RecommendationWebServiceException
+	 *             if the announcement cannot be created
+	 */
+	public String generateAnnouncement(int index, boolean active,
+			String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 announcements
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapAnnouncements(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 user recommendaitons
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapUserRecommendations(String announcementId1, String announcementId2) 
+			throws RecommendationServiceException;;
+		
+	/**
+	 * Swap the index of 2 community recommendations
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapCommunityRecommendations(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+		
+	/**
+	 * creates a new recommendation
+	 * 
+	 * @param index
+	 *            the recommendation index
+	 * @param active
+	 *            the state of the recommendaiton, is it active or not #param
+	 *            title the title of the recommendation
+	 * @param rText
+	 *            the recommendation text
+	 * @param creationDate
+	 *            the date the recommendation was created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation cannot be created
+	 */
+	public Recommendation generateRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate) throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type community
+	 * 
+	 * @param recommendationText
+	 *            the recommendation text
+	 * @param creationDate
+	 * @param expirationDate
+	 * @param communityId
+	 *            the ids of the associated communities
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the community recommendation cannot be created
+	 */
+	public String generateCommunityRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type user
+	 * 
+	 * @param recommendationText
+	 * @param creationDate
+	 * @param expirationDate
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the user recommendation cannot be created
+	 */
+	public String generateUserRecommendation(int index, boolean active,
+			String title, String userId, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements that haven't
+	 * expired
+	 * 
+	 * @return the announcements' recommendation text
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves ths ids of all announcements
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllAnnouncementIds()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements
+	 * 
+	 * @return the recommendation text of all announcements
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, only the content
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, the objects
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj()
+			throws RecommendationServiceException;
+
+	public List<String> getCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	public List<Recommendation> getCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation content that are associated with a
+	 * community
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation objects that are associated with a
+	 * community.
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	public List<String> getAllUserRecommendations(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the recommendation id
+	 * @return the recommendation or null if the recommendation does not exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+
+	public Recommendation getRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the text of a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @return the recommendation text or null if the recommendation does not
+	 *         exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public String getRecommendationText(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of a Set of recommendations
+	 * 
+	 * @param recommendationIds
+	 *            the ids of the recommendations
+	 * @return a Set of the recommendations' text
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public List<String> getRecommendations(List<String> recommendationIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void removeRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type announcement
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement does not exist or cannot be updated
+	 */
+	public void removeAnnouncement(String announcementId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type community
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param communityId
+	 *            the id of the community
+	 * @throws RecommendationServiceException
+	 */
+	public void removeCommunityRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	public void removeUserRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the date the recommendation is created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void updateRecommendation(String recommendationId, int index,
+			boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates an announcement and the corresponding recommendation
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @param recommendationText
+	 *            the text of the corresponding recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the expiration date of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement recommendation does not exist or cannot
+	 *             be updated
+	 */
+	public void updateAnnouncement(String announcementId, int index,
+			boolean active, String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	public void updateCommunityRecommendation(String recommendationId,
+			int index, boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/*
+	 * /** sends an e-mail to all users with the recommendation text of an
+	 * announcement
+	 * 
+	 * @param announcementId the id of the announcement @throws
+	 * RecommendationServiceException if the announcement or recommendation does
+	 * not exist
+	 * 
+	 * public void sendAnnouncement( String announcementId ) throws
+	 * RecommendationServiceException;
+	 */
+
+	public void addRecommendationToUser(String recommendationId, String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getCommunityRecommendationsForUser(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation objects for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getCommunityRecommendationsForUserObj(
+			String userId) throws RecommendationServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RatingService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(revision 46897)
@@ -0,0 +1,54 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Rating;
+
+/**
+ * This interface describes the methods available for a rating service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface RatingService extends DriverService {
+	/**
+	 * Rate a document by a specifed user.
+	 * @param userId the id of the user
+	 * @param documentId the id of the document
+	 * @param score the rating score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public void rate(String userId, String documentId, float score) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by user.
+	 * @param userId the id of the user
+	 * @return a list containing all the ratings of the specified user ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByUser(String userId) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by document.
+	 * @param documentId the id of the document
+	 * @return a list containing all the ratings of the soecified document ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByDocument(String documentId) throws RatingServiceException;
+	
+	/**
+	 * Get the top ratings.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopRatings(int limit) throws RatingServiceException;
+	
+	/**
+	 * Get the top documents.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top document average ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopDocuments(int limit) throws RatingServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class RecommendationServiceException extends DriverServiceException {
+	
+	private static final long serialVersionUID = 1L;
+
+	public RecommendationServiceException() {
+		super();
+	}
+
+	public RecommendationServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public RecommendationServiceException(String message) {
+		super(message);
+	}
+
+	public RecommendationServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class RecommendationServiceException extends DriverServiceException {
+	
+	private static final long serialVersionUID = 1L;
+
+	public RecommendationServiceException() {
+		super();
+	}
+
+	public RecommendationServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public RecommendationServiceException(String message) {
+		super(message);
+	}
+
+	public RecommendationServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(revision 46897)
@@ -0,0 +1,79 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Community;
+import eu.dnetlib.domain.functionality.CommunitySearchCriteria;
+
+/**
+ * The class that manages Community objects
+ * 
+ */
+public interface CommunityService extends DriverService {
+	/**
+	 * Create or edit a community.
+	 * @param community the community to save 
+	 * @return the community just saved
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public Community saveCommunity(Community community) throws CommunityServiceException;
+
+	/**
+	 * Delete a community.
+	 * @param community the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunity(Community community) throws CommunityServiceException;
+	
+	/**
+	 * Delete a community.
+	 * @param id the id of the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunityById(String id) throws CommunityServiceException;
+	
+	/**
+	 * Search for a community by id
+	 * @param id the id of the community to search for
+	 * @return the community with the specified id or null if no such community exists
+	 * @throws CommunityServiceException
+	 */
+	public Community getCommunityById(String id) throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<Community> searchCommunities(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing the ids of all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<String> searchCommunityIds(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is owner of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is owner of the community; false otherwise
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public boolean isOwner(String communityId, String userId) throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is manager of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is manager of the community; false otherwise
+	 * @throws CommunityServiceException
+	 */
+	public boolean isManager(String communityId, String userId) throws CommunityServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(revision 46897)
@@ -0,0 +1,54 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Rating;
+
+/**
+ * This interface describes the methods available for a rating service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface RatingService extends DriverService {
+	/**
+	 * Rate a document by a specifed user.
+	 * @param userId the id of the user
+	 * @param documentId the id of the document
+	 * @param score the rating score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public void rate(String userId, String documentId, float score) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by user.
+	 * @param userId the id of the user
+	 * @return a list containing all the ratings of the specified user ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByUser(String userId) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by document.
+	 * @param documentId the id of the document
+	 * @return a list containing all the ratings of the soecified document ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByDocument(String documentId) throws RatingServiceException;
+	
+	/**
+	 * Get the top ratings.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopRatings(int limit) throws RatingServiceException;
+	
+	/**
+	 * Get the top documents.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top document average ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopDocuments(int limit) throws RatingServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(revision 46897)
@@ -0,0 +1,47 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+/**
+ * This exception is thrown by forum service on any error.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public class ForumServiceException extends DriverServiceException {
+	/**
+	 * Used for serialization / deserialization
+	 */
+	private static final long serialVersionUID = -8624823395470214377L;
+
+	/**
+	 * Create a new forum service exception.
+	 */
+	public ForumServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public ForumServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public ForumServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public ForumServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ValidatorServiceException extends DriverServiceException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public ValidatorServiceException() {
+		super();
+	}
+
+	public ValidatorServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ValidatorServiceException(String message) {
+		super(message);
+	}
+
+	public ValidatorServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * Created by antleb on 10/24/14.
+ */
+public interface StatsManagerService extends DriverService {
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+
+public class CommunityServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 8752304807357459107L;
+
+	public CommunityServiceException() {
+        super();
+    }
+
+    public CommunityServiceException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public CommunityServiceException(String message) {
+        super(message);
+    }
+
+    public CommunityServiceException(Throwable cause) {
+        super(cause);
+    }
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public interface MDStoreService extends DriverService {
+
+	public EPR deliverMDRecords(String mdStoreId, String from, String until, String recordsFilter) throws MDStoreServiceException;
+
+	public String deliverRecord(String mdStoreId, String recordId) throws MDStoreServiceException;
+
+	public List<String> getListOfMDStores() throws MDStoreServiceException;
+
+	public List<String> listMDStores(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public EPR bulkDeliverMDRecords(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public boolean storeMDRecordsFromRS(String mdStoreId, String resultSetId, String storingType) throws MDStoreServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SearchService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SearchService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SearchService.java	(revision 46897)
@@ -0,0 +1,112 @@
+package eu.dnetlib.api.data;
+
+import java.util.Collection;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.FormattedSearchResult;
+import eu.dnetlib.domain.data.SearchResult;
+import eu.dnetlib.domain.data.SuggestiveResult;
+
+public interface SearchService extends DriverService {
+
+	/**
+	 * Returns search results for given query containing the request parameters and 
+	 * the list of search result XML records as it is derived after the application of 
+	 * the xslt tranfrormer.
+	 * 
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for search results 
+	 * @param locale the locale
+	 * @param page the search result page 
+	 * @param size the search result page size
+	 * @return {@link SearchResult} containing the request parameters and the list of 
+	 * search result xml records
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult search(String queryText, String transformer,
+			String locale, int page, int size) throws SearchServiceException;
+
+	/**
+	 * Returns refine results of given query containing the request parameters and 
+	 * the list of refine XML records as it is derived after the application of 
+	 * the xslt transfrormer.
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link SearchResult} containing the request parameters and the list of refine xml records
+	 * 
+	 * @throws SearchServiceException 
+	 */
+	public SearchResult refine(String queryText, String transformer,
+			String locale, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns search and refine results  containing the request parameters, the list 
+	 * of XML search records and the list of XML refine records as it is derived after 
+	 * the application of the xslt tranfrormers.
+	 * @param queryText the query 
+	 * @param searchTransformer the xslt transformer of search results
+	 * @param refineTransformer the xslt transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return {@link SearchResult} containing the request parameters, the list 
+	 * of search records and the list of refine records 
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns a {@link FormattedSearchResult} containing the formatted results of search 
+	 * @param queryText the query
+	 * @param transformer the name of the transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link FormattedSearchResult} containing the formatted results of refine 
+	 * 
+	 * @throws SearchServiceException	 */
+	public FormattedSearchResult search(String queryText, String transformer, String format,
+			String locale, int page, int size) throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  
+	 * @throws SearchServiceException
+	 */
+	public FormattedSearchResult refine(String queryText, String refineTransformer, 
+			String format, String locale, Collection<String> fields)
+				throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine and search 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  */
+	public FormattedSearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String format, String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+	
+	public SuggestiveResult suggestiveSearch(String query) throws SearchServiceException;
+
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.data;
+
+public class SimilarityServiceException extends Exception {
+
+	private static final long serialVersionUID = -4552557846773396398L;
+
+	public SimilarityServiceException() {
+		super();
+
+	}
+
+	public SimilarityServiceException(String message, Throwable cause) {
+		super(message, cause);
+
+	}
+
+	public SimilarityServiceException(String message) {
+		super(message);
+
+	}
+
+	public SimilarityServiceException(Throwable cause) {
+		super(cause);
+
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(revision 46897)
@@ -0,0 +1,12 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class PublisherServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 6956403917254162285L;
+
+	public PublisherServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(revision 46897)
@@ -0,0 +1,23 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class CollectionServiceException extends DriverServiceException{
+	private static final long serialVersionUID = 1L;
+
+	public CollectionServiceException(){
+		super();
+	}
+	
+	public CollectionServiceException(String message, Throwable cause){
+		super(message, cause);
+	}
+	
+	public CollectionServiceException(String message){
+		super(message);
+	}
+	
+	public CollectionServiceException(Throwable cause){
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(revision 46897)
@@ -0,0 +1,23 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class CollectionServiceException extends DriverServiceException{
+	private static final long serialVersionUID = 1L;
+
+	public CollectionServiceException(){
+		super();
+	}
+	
+	public CollectionServiceException(String message, Throwable cause){
+		super(message, cause);
+	}
+	
+	public CollectionServiceException(String message){
+		super(message);
+	}
+	
+	public CollectionServiceException(Throwable cause){
+		super(cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.functionality;
+
+public class RatingServiceException extends Exception {
+
+	/**
+	 * Used for serialization / deserialization.
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Create a new rating service exception.
+	 *
+	 */
+	public RatingServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public RatingServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public RatingServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public RatingServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(revision 46897)
@@ -0,0 +1,30 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.UserProfile;
+import eu.dnetlib.domain.functionality.UserProfileSearchCriteria;
+
+/**
+ * Class that manages UserProfile objects.
+ */
+public interface UserProfileService extends DriverService {
+
+	public UserProfile saveUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUserById(String id) throws UserProfileServiceException;
+
+	public UserProfile getUserById(String id)
+			throws UserProfileServiceException;
+
+	public List<UserProfile> searchUsers(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+
+	public List<String> searchUserIds(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ValidatorServiceException extends DriverServiceException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public ValidatorServiceException() {
+		super();
+	}
+
+	public ValidatorServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ValidatorServiceException(String message) {
+		super(message);
+	}
+
+	public ValidatorServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * The webInterface service interface
+ * 
+ */
+public interface WebInterfaceService extends DriverService {
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CommunityService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(revision 46897)
@@ -0,0 +1,79 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Community;
+import eu.dnetlib.domain.functionality.CommunitySearchCriteria;
+
+/**
+ * The class that manages Community objects
+ * 
+ */
+public interface CommunityService extends DriverService {
+	/**
+	 * Create or edit a community.
+	 * @param community the community to save 
+	 * @return the community just saved
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public Community saveCommunity(Community community) throws CommunityServiceException;
+
+	/**
+	 * Delete a community.
+	 * @param community the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunity(Community community) throws CommunityServiceException;
+	
+	/**
+	 * Delete a community.
+	 * @param id the id of the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunityById(String id) throws CommunityServiceException;
+	
+	/**
+	 * Search for a community by id
+	 * @param id the id of the community to search for
+	 * @return the community with the specified id or null if no such community exists
+	 * @throws CommunityServiceException
+	 */
+	public Community getCommunityById(String id) throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<Community> searchCommunities(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing the ids of all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<String> searchCommunityIds(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is owner of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is owner of the community; false otherwise
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public boolean isOwner(String communityId, String userId) throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is manager of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is manager of the community; false otherwise
+	 * @throws CommunityServiceException
+	 */
+	public boolean isManager(String communityId, String userId) throws CommunityServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(revision 46897)
@@ -0,0 +1,30 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.UserProfile;
+import eu.dnetlib.domain.functionality.UserProfileSearchCriteria;
+
+/**
+ * Class that manages UserProfile objects.
+ */
+public interface UserProfileService extends DriverService {
+
+	public UserProfile saveUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUserById(String id) throws UserProfileServiceException;
+
+	public UserProfile getUserById(String id)
+			throws UserProfileServiceException;
+
+	public List<UserProfile> searchUsers(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+
+	public List<String> searchUserIds(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class UserProfileServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 8051839588351350465L;
+
+	public UserProfileServiceException() {
+		super();
+	}
+
+	public UserProfileServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public UserProfileServiceException(String message) {
+		super(message);
+	}
+
+	public UserProfileServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(revision 46897)
@@ -0,0 +1,257 @@
+package eu.dnetlib.api.data;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.jws.WebParam;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.Repository;
+import eu.dnetlib.domain.data.RepositoryInterface;
+
+public interface DatasourceManagerService extends DriverService {
+
+	/**
+	 * Register a datasource.
+	 * 
+	 * @param ds
+	 *            the new datasource
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean addDatasource(Repository repository)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Delete a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean deleteDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public Repository getDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns all the datasources.
+	 * 
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> 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)
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> listDatasourcesUsingFilter(String compliance,
+			String contentDescription, String iisProcessingWorkflow, String collectedFrom)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * updates the level of compliance of a datasource.
+	 * 
+	 * @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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, 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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId,
+			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(String dsId, RepositoryInterface 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(String dsId, 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(String dsId, String sql, 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;
+
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+
+public class CommunityServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 8752304807357459107L;
+
+	public CommunityServiceException() {
+        super();
+    }
+
+    public CommunityServiceException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public CommunityServiceException(String message) {
+        super(message);
+    }
+
+    public CommunityServiceException(Throwable cause) {
+        super(cause);
+    }
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(revision 46897)
@@ -0,0 +1,47 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+/**
+ * This exception is thrown by forum service on any error.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public class ForumServiceException extends DriverServiceException {
+	/**
+	 * Used for serialization / deserialization
+	 */
+	private static final long serialVersionUID = -8624823395470214377L;
+
+	/**
+	 * Create a new forum service exception.
+	 */
+	public ForumServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public ForumServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public ForumServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public ForumServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * The webInterface service interface
+ * 
+ */
+public interface WebInterfaceService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/IndexService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/IndexService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/IndexService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+import eu.dnetlib.domain.data.Hint;
+
+public interface IndexService extends DriverService {
+
+	public EPR indexLookup(String id, String query, String mdformat,
+			String layout) throws IndexServiceException;
+	
+	public Hint suggestiveSearch(String id, String query, 
+			String mdformat, String layout, String heuristicProfileName)
+				throws IndexServiceException;
+
+	public EPR getBrowsingStatistics(String query, String index,
+			String mdFormatId, String layoutId) throws IndexServiceException;
+
+	public List<String> getListOfIndices() throws IndexServiceException;
+
+	public String getIndexStatistics(String index) throws IndexServiceException;
+
+	public String getListOfIndicesCSV() throws IndexServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface DatabaseService extends DriverService {
+
+	public boolean importFromEPR(String db, EPR epr, String xslt);
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(revision 46897)
@@ -0,0 +1,35 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ResultSetService extends DriverService {
+
+	EPR createPullRSEPR(EPR dataProviderEPR, String bdId, int initialPageSize,
+			int expiryTime, String styleSheet, Integer keepAliveTime,
+			Integer total);
+
+	EPR createPullRS(String dataProviderServiceAddress, String bdId,
+			int initialPageSize, int expiryTime, String styleSheet,
+			Integer keepAliveTime, Integer total);
+
+	void closeRS(String rsId);
+
+	List<String> getResult(String rsId, int fromPosition, int toPosition,
+			String requestMode) throws ResultSetServiceException;
+
+	int getNumberOfElements(String rsId) throws ResultSetServiceException;
+
+	EPR createPushRS(int expiryTime, int keepAliveTime)
+			throws ResultSetServiceException;
+
+	String populateRS(String rsId, List<String> elements)
+			throws ResultSetServiceException;
+
+	String getRSStatus(String rsId) throws ResultSetServiceException;
+
+	String getProperty(String rsId, String name)
+			throws ResultSetServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISLookUpServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 2971319868850757633L;
+
+	public ISLookUpServiceException() {
+		super();
+	}
+
+	public ISLookUpServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISLookUpServiceException(String message) {
+		super(message);
+	}
+
+	public ISLookUpServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(revision 46897)
@@ -0,0 +1,5 @@
+package eu.dnetlib.api;
+
+public interface DriverServiceEndpoint<S extends DriverService> {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/pom.xml
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/pom.xml	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/pom.xml	(revision 46897)
@@ -0,0 +1,34 @@
+<?xml version="1.0" ?>
+<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>dnet-parent</artifactId>
+		<version>1.0.0</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>eu.dnetlib</groupId>
+	<artifactId>uoa-api</artifactId>
+	<packaging>jar</packaging>
+	<version>1.1.0</version>
+	<scm>
+		<developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/tags/uoa-api-1.1.0</developerConnection>
+	</scm>
+	<dependencies>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>dnet-actionmanager-api</artifactId>
+			<version>[3.0.0]</version>
+		</dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>uoa-domain</artifactId>
+			<version>[1.1.0, 1.2.0)</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>[0.0.0,)</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+</project>
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+public interface CSHarvesterService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.SimilarDocument;
+
+public interface SimilarityService extends DriverService {
+
+	/**
+	 * Returns a list of similar documents which are similar to document with
+	 * specified id. No additional values are returned (only ids and score)
+	 * 
+	 * @param id The specified id
+	 * @return a list of {@link SimilarDocument}
+	 */
+	public List<SimilarDocument> getSimilarDocuments(String id)
+			throws SimilarityServiceException;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(revision 46897)
@@ -0,0 +1,184 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.NotificationQuery;
+import eu.dnetlib.domain.functionality.NotificationResult;
+import eu.dnetlib.domain.functionality.NotificationSchedule;
+import eu.dnetlib.domain.functionality.NotificationSubscription;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of notification service. Alert service is used to manage queries, schedules, events, results and subscriptions.
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.NotificationQuery
+ * @see eu.dentlib.domain.functionality.NotificationSchedule
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see eu.dnetlib.domain.functionality.NotificationResult
+ * @see eu.dnetlib.domain.functionality.NotificationSubscription
+ * @see NotificationServiceException
+ * 
+ */
+public interface NotificationService extends DriverService {
+	/**
+	 * Retrieve all the supported languages in which queries can be expressed.
+	 * @return a set containing all the supported languages in which queries can be expressed
+	 */
+	public SortedSet<String> getSupportedQueryLanguages();
+
+	/**
+	 * Retrieve a page of queries.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing queries
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationQuery> getQueries(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a query.
+	 * @param query the query to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addQuery(final NotificationQuery query) throws NotificationServiceException;
+	
+	/**
+	 * Remove a query.
+	 * @param queryId the unique identifier of the query to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeQuery(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Execute a query and return the generated result.
+	 * @param queryId the unique identifier of the query to execute
+	 * @param resultId the unique result identifier to use
+	 * @param fromDate the from date to use
+	 * @param toDate the to date to use
+	 * @param limit the limit to use
+	 * @param offset the offset to use
+	 * @return a result page containing the generated result
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ResultPage executeQuery(final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of schedules.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing schedules
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSchedule> getSchedules(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a schedule.
+	 * @param schedule the schedule to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSchedule(final NotificationSchedule schedule) throws NotificationServiceException;
+	
+	/**
+	 * Enable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Disable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Remove a schedule.
+	 * @param queryId the unique identifier of the query of the schedule to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of events.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing events
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationEvent> getEvents(final int pageNumber, final int pageSize) throws NotificationServiceException;
+
+	/**
+	 * Retrieve a page of results.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing results
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationResult> getResults(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the event of the result to retrieve
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of the previous event of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the next event of the event whose result to retrieve 
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the previous event of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getPreviousResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containign subscriptions
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a subscription.
+	 * @param subscription the subscription to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSubscription(final NotificationSubscription subscription) throws NotificationServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to enable
+	 * @param alertService the URL of the alert service of the subscription to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to disable
+	 * @param alertService the URL of the alert service of the subscription to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to remove
+	 * @param alertService the URL of the alert service of the subscription to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(revision 46897)
@@ -0,0 +1,16 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class SearchServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 4233470724221380778L;
+
+	public SearchServiceException(String message) {
+		super(message);
+	}
+
+	public SearchServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingContextManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISLookUpService extends DriverService {
+
+	public EPR searchProfile(String XQuery) throws ISLookUpServiceException;
+
+	public List<String> quickSearchProfile(String XQuery)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfile(String profId)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfileByQuery(String XQuery)
+			throws ISLookUpServiceException;
+
+	public List<String> listResourceTypes() throws ISLookUpServiceException;
+
+	public String getResourceTypeSchema(String resourceType)
+			throws ISLookUpServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ResultSetServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 3213415320259238226L;
+
+	public ResultSetServiceException() {
+		super();
+	}
+
+	public ResultSetServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ResultSetServiceException(String message) {
+		super(message);
+	}
+
+	public ResultSetServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api;
+
+public class DriverServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	public DriverServiceException() {
+		super();
+	}
+
+	public DriverServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DriverServiceException(String message) {
+		super(message);
+	}
+
+	public DriverServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.validator.JobForValidation;
+import eu.dnetlib.domain.functionality.validator.RuleSet;
+import eu.dnetlib.domain.functionality.validator.StoredJob;
+
+public interface ValidatorService extends DriverService {
+	
+	public StoredJob getStoredJob(int jobId, String groupBy) throws ValidatorServiceException;
+
+	public List<StoredJob> getStoredJobs(String userMail, String jobType, Integer offset, Integer limit, String dateFrom, String dateTo) throws ValidatorServiceException;
+
+	public int getStoredJobsTotalNumber(String userMail, String jobType) throws ValidatorServiceException;
+	
+	public List<RuleSet> getRuleSets() throws ValidatorServiceException;
+
+	public void submitValidationJob(JobForValidation job) throws ValidatorServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by notification service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see NotificationService
+ * 
+ */
+public class NotificationServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * Construct a new notification service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public NotificationServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new notification service exception with the specified message.
+	 * @param message the message
+	 */
+	public NotificationServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.ConversionStatus;
+
+public interface ConversionService extends DriverService { 
+	
+	/**
+	 * Adds a conversion job
+	 * @param fileUrl the url of the file to be converted
+	 * @param format the desired format 
+	 * @return the {@link ConversionStatus} of the conversion job
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus addJob(String fileUrl, String format)  
+				throws ConversionServiceException;
+	/**
+	 * The {@link ConversionStatus} of a conversion job 
+	 * @param conversionId the id of the conversion job
+	 * @return the {@link ConversionStatus}  
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus getStatus(String conversionId) 
+				throws ConversionServiceException;
+	
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Collection;
+import eu.dnetlib.domain.functionality.CollectionSearchCriteria;
+
+public interface CollectionService extends DriverService {
+
+	public Collection getCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public List<Collection> getCollections(List<String> collectionIds)
+			throws CollectionServiceException;
+
+	public void updateCollection(Collection collection)
+			throws CollectionServiceException;
+			
+	public void deleteCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public String createCollection(Collection collection)
+			throws CollectionServiceException;
+	
+	public List<Collection> searchCollections(CollectionSearchCriteria criteria) 
+			throws CollectionServiceException;
+}
\ No newline at end of file

Property changes on: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
___________________________________________________________________
Added: svn:mergeinfo
## -0,0 +0,0 ##
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface MadgikValidator extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(revision 46897)
@@ -0,0 +1,54 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Rating;
+
+/**
+ * This interface describes the methods available for a rating service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface RatingService extends DriverService {
+	/**
+	 * Rate a document by a specifed user.
+	 * @param userId the id of the user
+	 * @param documentId the id of the document
+	 * @param score the rating score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public void rate(String userId, String documentId, float score) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by user.
+	 * @param userId the id of the user
+	 * @return a list containing all the ratings of the specified user ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByUser(String userId) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by document.
+	 * @param documentId the id of the document
+	 * @return a list containing all the ratings of the soecified document ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByDocument(String documentId) throws RatingServiceException;
+	
+	/**
+	 * Get the top ratings.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopRatings(int limit) throws RatingServiceException;
+	
+	/**
+	 * Get the top documents.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top document average ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopDocuments(int limit) throws RatingServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ValidatorServiceException extends DriverServiceException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public ValidatorServiceException() {
+		super();
+	}
+
+	public ValidatorServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ValidatorServiceException(String message) {
+		super(message);
+	}
+
+	public ValidatorServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.functionality;
+
+public class RatingServiceException extends Exception {
+
+	/**
+	 * Used for serialization / deserialization.
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Create a new rating service exception.
+	 *
+	 */
+	public RatingServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public RatingServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public RatingServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public RatingServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(revision 46897)
@@ -0,0 +1,21 @@
+/**
+ * 
+ */
+package eu.dnetlib.api.data;
+
+/**
+ * @author stoumpos
+ *
+ */
+public class BrowseDataNotAvailableException extends SearchServiceException {
+
+	private static final long serialVersionUID = 8370117296836628026L;
+
+	public BrowseDataNotAvailableException(String message) {
+		super(message);
+	}
+
+	public BrowseDataNotAvailableException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateResp;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeResp;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateRequest;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateResp;
+
+
+//TODO: remove???
+
+public interface A2Service extends DriverService {
+
+//	public AuthenticateResp authenticate(
+//			AuthenticateRequest authenticationRequest);
+//
+//	public AuthorizeResp authorize(AuthorizeRequest authorizationRequest);
+//
+//	public InvalidateResp invalidate(InvalidateRequest invalidationRequest);
+
+	public boolean validate(String profId, String secProfId);
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingNodeManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class A2ServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = -4143447663291476467L;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(revision 46897)
@@ -0,0 +1,19 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISSNServiceException extends DriverServiceException {
+	private static final long serialVersionUID = -5921523712725388939L;
+
+	public ISSNServiceException(String mesg) {
+		super(mesg);
+	}
+
+	public ISSNServiceException(String mesg, Throwable cause) {
+		super(mesg, cause);
+	}
+
+	public ISSNServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/DriverService.java	(revision 46897)
@@ -0,0 +1,18 @@
+package eu.dnetlib.api;
+
+import eu.dnetlib.domain.ServiceIdentity;
+import eu.dnetlib.domain.enabling.Notification;
+
+/**
+ * The basic interface that all DRIVER services must implement.
+ */
+public interface DriverService {
+	/**
+	 * Identifies the service's version.
+	 * 
+	 * @return the service's identification
+	 */
+	public ServiceIdentity identify();
+	
+	public void notify(Notification notification) throws DriverServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+
+public class CommunityServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 8752304807357459107L;
+
+	public CommunityServiceException() {
+        super();
+    }
+
+    public CommunityServiceException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public CommunityServiceException(String message) {
+        super(message);
+    }
+
+    public CommunityServiceException(Throwable cause) {
+        super(cause);
+    }
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface LocalDownloadManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public interface MDStoreService extends DriverService {
+
+	public EPR deliverMDRecords(String mdStoreId, String from, String until, String recordsFilter) throws MDStoreServiceException;
+
+	public String deliverRecord(String mdStoreId, String recordId) throws MDStoreServiceException;
+
+	public List<String> getListOfMDStores() throws MDStoreServiceException;
+
+	public List<String> listMDStores(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public EPR bulkDeliverMDRecords(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public boolean storeMDRecordsFromRS(String mdStoreId, String resultSetId, String storingType) throws MDStoreServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.functionality;
+
+@SuppressWarnings("serial")
+public class ConversionServiceException extends Exception {
+	public ConversionServiceException() {
+		super();
+	}
+	
+	public ConversionServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ConversionServiceException(String message) {
+		super(message);
+	}
+	
+	public ConversionServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class UserProfileServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 8051839588351350465L;
+
+	public UserProfileServiceException() {
+		super();
+	}
+
+	public UserProfileServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public UserProfileServiceException(String message) {
+		super(message);
+	}
+
+	public UserProfileServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(revision 46897)
@@ -0,0 +1,348 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Recommendation;
+
+/**
+ * The class that manages Recommendation objects
+ */
+public interface RecommendationService extends DriverService {
+
+	/**
+	 * creates a new recommendation of type announcement
+	 * 
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the date the announcement expires
+	 * @return the id of the new recommendation
+	 * @throws RecommendationWebServiceException
+	 *             if the announcement cannot be created
+	 */
+	public String generateAnnouncement(int index, boolean active,
+			String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 announcements
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapAnnouncements(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 user recommendaitons
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapUserRecommendations(String announcementId1, String announcementId2) 
+			throws RecommendationServiceException;;
+		
+	/**
+	 * Swap the index of 2 community recommendations
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapCommunityRecommendations(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+		
+	/**
+	 * creates a new recommendation
+	 * 
+	 * @param index
+	 *            the recommendation index
+	 * @param active
+	 *            the state of the recommendaiton, is it active or not #param
+	 *            title the title of the recommendation
+	 * @param rText
+	 *            the recommendation text
+	 * @param creationDate
+	 *            the date the recommendation was created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation cannot be created
+	 */
+	public Recommendation generateRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate) throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type community
+	 * 
+	 * @param recommendationText
+	 *            the recommendation text
+	 * @param creationDate
+	 * @param expirationDate
+	 * @param communityId
+	 *            the ids of the associated communities
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the community recommendation cannot be created
+	 */
+	public String generateCommunityRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type user
+	 * 
+	 * @param recommendationText
+	 * @param creationDate
+	 * @param expirationDate
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the user recommendation cannot be created
+	 */
+	public String generateUserRecommendation(int index, boolean active,
+			String title, String userId, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements that haven't
+	 * expired
+	 * 
+	 * @return the announcements' recommendation text
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves ths ids of all announcements
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllAnnouncementIds()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements
+	 * 
+	 * @return the recommendation text of all announcements
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, only the content
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, the objects
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj()
+			throws RecommendationServiceException;
+
+	public List<String> getCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	public List<Recommendation> getCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation content that are associated with a
+	 * community
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation objects that are associated with a
+	 * community.
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	public List<String> getAllUserRecommendations(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the recommendation id
+	 * @return the recommendation or null if the recommendation does not exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+
+	public Recommendation getRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the text of a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @return the recommendation text or null if the recommendation does not
+	 *         exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public String getRecommendationText(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of a Set of recommendations
+	 * 
+	 * @param recommendationIds
+	 *            the ids of the recommendations
+	 * @return a Set of the recommendations' text
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public List<String> getRecommendations(List<String> recommendationIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void removeRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type announcement
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement does not exist or cannot be updated
+	 */
+	public void removeAnnouncement(String announcementId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type community
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param communityId
+	 *            the id of the community
+	 * @throws RecommendationServiceException
+	 */
+	public void removeCommunityRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	public void removeUserRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the date the recommendation is created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void updateRecommendation(String recommendationId, int index,
+			boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates an announcement and the corresponding recommendation
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @param recommendationText
+	 *            the text of the corresponding recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the expiration date of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement recommendation does not exist or cannot
+	 *             be updated
+	 */
+	public void updateAnnouncement(String announcementId, int index,
+			boolean active, String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	public void updateCommunityRecommendation(String recommendationId,
+			int index, boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/*
+	 * /** sends an e-mail to all users with the recommendation text of an
+	 * announcement
+	 * 
+	 * @param announcementId the id of the announcement @throws
+	 * RecommendationServiceException if the announcement or recommendation does
+	 * not exist
+	 * 
+	 * public void sendAnnouncement( String announcementId ) throws
+	 * RecommendationServiceException;
+	 */
+
+	public void addRecommendationToUser(String recommendationId, String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getCommunityRecommendationsForUser(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation objects for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getCommunityRecommendationsForUserObj(
+			String userId) throws RecommendationServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SearchService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SearchService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SearchService.java	(revision 46897)
@@ -0,0 +1,112 @@
+package eu.dnetlib.api.data;
+
+import java.util.Collection;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.FormattedSearchResult;
+import eu.dnetlib.domain.data.SearchResult;
+import eu.dnetlib.domain.data.SuggestiveResult;
+
+public interface SearchService extends DriverService {
+
+	/**
+	 * Returns search results for given query containing the request parameters and 
+	 * the list of search result XML records as it is derived after the application of 
+	 * the xslt tranfrormer.
+	 * 
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for search results 
+	 * @param locale the locale
+	 * @param page the search result page 
+	 * @param size the search result page size
+	 * @return {@link SearchResult} containing the request parameters and the list of 
+	 * search result xml records
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult search(String queryText, String transformer,
+			String locale, int page, int size) throws SearchServiceException;
+
+	/**
+	 * Returns refine results of given query containing the request parameters and 
+	 * the list of refine XML records as it is derived after the application of 
+	 * the xslt transfrormer.
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link SearchResult} containing the request parameters and the list of refine xml records
+	 * 
+	 * @throws SearchServiceException 
+	 */
+	public SearchResult refine(String queryText, String transformer,
+			String locale, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns search and refine results  containing the request parameters, the list 
+	 * of XML search records and the list of XML refine records as it is derived after 
+	 * the application of the xslt tranfrormers.
+	 * @param queryText the query 
+	 * @param searchTransformer the xslt transformer of search results
+	 * @param refineTransformer the xslt transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return {@link SearchResult} containing the request parameters, the list 
+	 * of search records and the list of refine records 
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns a {@link FormattedSearchResult} containing the formatted results of search 
+	 * @param queryText the query
+	 * @param transformer the name of the transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link FormattedSearchResult} containing the formatted results of refine 
+	 * 
+	 * @throws SearchServiceException	 */
+	public FormattedSearchResult search(String queryText, String transformer, String format,
+			String locale, int page, int size) throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  
+	 * @throws SearchServiceException
+	 */
+	public FormattedSearchResult refine(String queryText, String refineTransformer, 
+			String format, String locale, Collection<String> fields)
+				throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine and search 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  */
+	public FormattedSearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String format, String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+	
+	public SuggestiveResult suggestiveSearch(String query) throws SearchServiceException;
+
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class RecommendationServiceException extends DriverServiceException {
+	
+	private static final long serialVersionUID = 1L;
+
+	public RecommendationServiceException() {
+		super();
+	}
+
+	public RecommendationServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public RecommendationServiceException(String message) {
+		super(message);
+	}
+
+	public RecommendationServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(revision 46897)
@@ -0,0 +1,79 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Community;
+import eu.dnetlib.domain.functionality.CommunitySearchCriteria;
+
+/**
+ * The class that manages Community objects
+ * 
+ */
+public interface CommunityService extends DriverService {
+	/**
+	 * Create or edit a community.
+	 * @param community the community to save 
+	 * @return the community just saved
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public Community saveCommunity(Community community) throws CommunityServiceException;
+
+	/**
+	 * Delete a community.
+	 * @param community the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunity(Community community) throws CommunityServiceException;
+	
+	/**
+	 * Delete a community.
+	 * @param id the id of the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunityById(String id) throws CommunityServiceException;
+	
+	/**
+	 * Search for a community by id
+	 * @param id the id of the community to search for
+	 * @return the community with the specified id or null if no such community exists
+	 * @throws CommunityServiceException
+	 */
+	public Community getCommunityById(String id) throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<Community> searchCommunities(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing the ids of all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<String> searchCommunityIds(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is owner of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is owner of the community; false otherwise
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public boolean isOwner(String communityId, String userId) throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is manager of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is manager of the community; false otherwise
+	 * @throws CommunityServiceException
+	 */
+	public boolean isManager(String communityId, String userId) throws CommunityServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(revision 46897)
@@ -0,0 +1,47 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+/**
+ * This exception is thrown by forum service on any error.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public class ForumServiceException extends DriverServiceException {
+	/**
+	 * Used for serialization / deserialization
+	 */
+	private static final long serialVersionUID = -8624823395470214377L;
+
+	/**
+	 * Create a new forum service exception.
+	 */
+	public ForumServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public ForumServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public ForumServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public ForumServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * Created by antleb on 10/24/14.
+ */
+public interface StatsManagerService extends DriverService {
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+public interface CSHarvesterService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.data;
+
+public class SimilarityServiceException extends Exception {
+
+	private static final long serialVersionUID = -4552557846773396398L;
+
+	public SimilarityServiceException() {
+		super();
+
+	}
+
+	public SimilarityServiceException(String message, Throwable cause) {
+		super(message, cause);
+
+	}
+
+	public SimilarityServiceException(String message) {
+		super(message);
+
+	}
+
+	public SimilarityServiceException(Throwable cause) {
+		super(cause);
+
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.SimilarDocument;
+
+public interface SimilarityService extends DriverService {
+
+	/**
+	 * Returns a list of similar documents which are similar to document with
+	 * specified id. No additional values are returned (only ids and score)
+	 * 
+	 * @param id The specified id
+	 * @return a list of {@link SimilarDocument}
+	 */
+	public List<SimilarDocument> getSimilarDocuments(String id)
+			throws SimilarityServiceException;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(revision 46897)
@@ -0,0 +1,12 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class PublisherServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 6956403917254162285L;
+
+	public PublisherServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(revision 46897)
@@ -0,0 +1,16 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class SearchServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 4233470724221380778L;
+
+	public SearchServiceException(String message) {
+		super(message);
+	}
+
+	public SearchServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(revision 46897)
@@ -0,0 +1,31 @@
+package eu.dnetlib.api.data;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public class MDStoreServiceException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 4599049733249165737L;
+
+	public MDStoreServiceException() {
+	}
+
+	public MDStoreServiceException(String message) {
+		super(message);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public MDStoreServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(revision 46897)
@@ -0,0 +1,31 @@
+package eu.dnetlib.api.data;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public class MDStoreServiceException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 4599049733249165737L;
+
+	public MDStoreServiceException() {
+	}
+
+	public MDStoreServiceException(String message) {
+		super(message);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public MDStoreServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/StatsManagerService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * Created by antleb on 10/24/14.
+ */
+public interface StatsManagerService extends DriverService {
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api.data;
+
+@SuppressWarnings("serial")
+public class DatasourceManagerServiceException extends Exception {
+
+	public DatasourceManagerServiceException() {
+		super();
+	}
+
+	public DatasourceManagerServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DatasourceManagerServiceException(String message) {
+		super(message);
+	}
+
+	public DatasourceManagerServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api.data;
+
+@SuppressWarnings("serial")
+public class DatasourceManagerServiceException extends Exception {
+
+	public DatasourceManagerServiceException() {
+		super();
+	}
+
+	public DatasourceManagerServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DatasourceManagerServiceException(String message) {
+		super(message);
+	}
+
+	public DatasourceManagerServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+public interface CSHarvesterService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingContextManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface DatabaseService extends DriverService {
+
+	public boolean importFromEPR(String db, EPR epr, String xslt);
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISLookUpService extends DriverService {
+
+	public EPR searchProfile(String XQuery) throws ISLookUpServiceException;
+
+	public List<String> quickSearchProfile(String XQuery)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfile(String profId)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfileByQuery(String XQuery)
+			throws ISLookUpServiceException;
+
+	public List<String> listResourceTypes() throws ISLookUpServiceException;
+
+	public String getResourceTypeSchema(String resourceType)
+			throws ISLookUpServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(revision 46897)
@@ -0,0 +1,35 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ResultSetService extends DriverService {
+
+	EPR createPullRSEPR(EPR dataProviderEPR, String bdId, int initialPageSize,
+			int expiryTime, String styleSheet, Integer keepAliveTime,
+			Integer total);
+
+	EPR createPullRS(String dataProviderServiceAddress, String bdId,
+			int initialPageSize, int expiryTime, String styleSheet,
+			Integer keepAliveTime, Integer total);
+
+	void closeRS(String rsId);
+
+	List<String> getResult(String rsId, int fromPosition, int toPosition,
+			String requestMode) throws ResultSetServiceException;
+
+	int getNumberOfElements(String rsId) throws ResultSetServiceException;
+
+	EPR createPushRS(int expiryTime, int keepAliveTime)
+			throws ResultSetServiceException;
+
+	String populateRS(String rsId, List<String> elements)
+			throws ResultSetServiceException;
+
+	String getRSStatus(String rsId) throws ResultSetServiceException;
+
+	String getProperty(String rsId, String name)
+			throws ResultSetServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ResultSetServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 3213415320259238226L;
+
+	public ResultSetServiceException() {
+		super();
+	}
+
+	public ResultSetServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ResultSetServiceException(String message) {
+		super(message);
+	}
+
+	public ResultSetServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISLookUpServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 2971319868850757633L;
+
+	public ISLookUpServiceException() {
+		super();
+	}
+
+	public ISLookUpServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISLookUpServiceException(String message) {
+		super(message);
+	}
+
+	public ISLookUpServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/PublisherService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/PublisherService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/PublisherService.java	(revision 46897)
@@ -0,0 +1,15 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface PublisherService extends DriverService {
+
+	public String getResourceById(String id, String format)
+			throws PublisherServiceException;
+	
+	public EPR getResourcesByIds(List<String> ids, String format)
+			throws PublisherServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/PublisherService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/PublisherService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/PublisherService.java	(revision 46897)
@@ -0,0 +1,15 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface PublisherService extends DriverService {
+
+	public String getResourceById(String id, String format)
+			throws PublisherServiceException;
+	
+	public EPR getResourcesByIds(List<String> ids, String format)
+			throws PublisherServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(revision 46897)
@@ -0,0 +1,21 @@
+/**
+ * 
+ */
+package eu.dnetlib.api.data;
+
+/**
+ * @author stoumpos
+ *
+ */
+public class BrowseDataNotAvailableException extends SearchServiceException {
+
+	private static final long serialVersionUID = 8370117296836628026L;
+
+	public BrowseDataNotAvailableException(String message) {
+		super(message);
+	}
+
+	public BrowseDataNotAvailableException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class IndexServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 3390962667213486580L;
+
+	public IndexServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.actionmanager.common.Operation;
+import eu.dnetlib.actionmanager.common.Provenance;
+import eu.dnetlib.actionmanager.rmi.ActionManagerException;
+import eu.dnetlib.actionmanager.set.ActionManagerSet;
+import eu.dnetlib.api.DriverService;
+
+public interface ActionManagerService extends DriverService {
+	public String createSet(ActionManagerSet set) throws ActionManagerException;
+
+	public List<ActionManagerSet> ListSets() throws ActionManagerException;
+
+	public String createAction(
+			String splitRuleId, 
+			String set, 
+			Agent agent,
+			Operation operation, 
+			String infoPackage, 
+			Provenance provenance,
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public String updateAction(
+			String actionId, 
+			String splitRuleId, 
+			String set,
+			Agent agent, 
+			Operation operation, 
+			String infoPackage,
+			Provenance provenance, 
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public boolean deleteAction(String actionId) throws ActionManagerException;
+
+	public List<String> getActionsByAgent(String agentId, int limit)
+			throws ActionManagerException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SearchServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(revision 46897)
@@ -0,0 +1,16 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class SearchServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 4233470724221380778L;
+
+	public SearchServiceException(String message) {
+		super(message);
+	}
+
+	public SearchServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface DatabaseService extends DriverService {
+
+	public boolean importFromEPR(String db, EPR epr, String xslt);
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(revision 46897)
@@ -0,0 +1,35 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ResultSetService extends DriverService {
+
+	EPR createPullRSEPR(EPR dataProviderEPR, String bdId, int initialPageSize,
+			int expiryTime, String styleSheet, Integer keepAliveTime,
+			Integer total);
+
+	EPR createPullRS(String dataProviderServiceAddress, String bdId,
+			int initialPageSize, int expiryTime, String styleSheet,
+			Integer keepAliveTime, Integer total);
+
+	void closeRS(String rsId);
+
+	List<String> getResult(String rsId, int fromPosition, int toPosition,
+			String requestMode) throws ResultSetServiceException;
+
+	int getNumberOfElements(String rsId) throws ResultSetServiceException;
+
+	EPR createPushRS(int expiryTime, int keepAliveTime)
+			throws ResultSetServiceException;
+
+	String populateRS(String rsId, List<String> elements)
+			throws ResultSetServiceException;
+
+	String getRSStatus(String rsId) throws ResultSetServiceException;
+
+	String getProperty(String rsId, String name)
+			throws ResultSetServiceException;
+}
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISLookUpServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 2971319868850757633L;
+
+	public ISLookUpServiceException() {
+		super();
+	}
+
+	public ISLookUpServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISLookUpServiceException(String message) {
+		super(message);
+	}
+
+	public ISLookUpServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(revision 46897)
@@ -0,0 +1,5 @@
+package eu.dnetlib.api;
+
+public interface DriverServiceEndpoint<S extends DriverService> {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface ISRegistryService extends DriverService {
+
+	public boolean deleteProfile(String profId)
+			throws ISRegistryServiceException;
+
+	public boolean updateProfile(String profId, String resourceProfile,
+			String resourceType) throws ISRegistryServiceException;
+
+	public String registerProfile(String resourceProfile)
+			throws ISRegistryServiceException;
+
+	public String registerSecureProfile(String resourceProfID,
+			String secureProfID) throws ISRegistryServiceException;
+
+	public String insertProfileForValidation(String resourceType,
+			String resourceProfile) throws ISRegistryServiceException;
+
+	public boolean addResourceType(String resourceType, String resourceSchema)
+			throws ISRegistryServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java
===================================================================
--- modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(nonexistent)
+++ modules/uoa-api/trunk/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(revision 46897)
@@ -0,0 +1,5 @@
+package eu.dnetlib.api;
+
+public interface DriverServiceEndpoint<S extends DriverService> {
+
+}
Index: modules/uoa-api/trunk
===================================================================
--- modules/uoa-api/trunk	(nonexistent)
+++ modules/uoa-api/trunk	(revision 46897)

Property changes on: modules/uoa-api/trunk
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,6 ##
+.classpath
+.settings
+.project
+target
+*.iml
+.idea
Index: modules/uoa-api/tags/uoa-api-1.2.0/pom.xml
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/pom.xml	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/pom.xml	(revision 46897)
@@ -0,0 +1,34 @@
+<?xml version="1.0" ?>
+<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>dnet-parent</artifactId>
+		<version>1.0.0</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>eu.dnetlib</groupId>
+	<artifactId>uoa-api</artifactId>
+	<packaging>jar</packaging>
+	<version>1.2.0</version>
+	<scm>
+		<developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/tags/uoa-api-1.2.0</developerConnection>
+	</scm>
+	<dependencies>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>dnet-actionmanager-api</artifactId>
+			<version>[3.0.0]</version>
+		</dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>uoa-domain</artifactId>
+			<version>[1.2.0, 1.3.0-SNAPSHOT)</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>[0.0.0,)</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+</project>
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(revision 46897)
@@ -0,0 +1,184 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.NotificationQuery;
+import eu.dnetlib.domain.functionality.NotificationResult;
+import eu.dnetlib.domain.functionality.NotificationSchedule;
+import eu.dnetlib.domain.functionality.NotificationSubscription;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of notification service. Alert service is used to manage queries, schedules, events, results and subscriptions.
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.NotificationQuery
+ * @see eu.dentlib.domain.functionality.NotificationSchedule
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see eu.dnetlib.domain.functionality.NotificationResult
+ * @see eu.dnetlib.domain.functionality.NotificationSubscription
+ * @see NotificationServiceException
+ * 
+ */
+public interface NotificationService extends DriverService {
+	/**
+	 * Retrieve all the supported languages in which queries can be expressed.
+	 * @return a set containing all the supported languages in which queries can be expressed
+	 */
+	public SortedSet<String> getSupportedQueryLanguages();
+
+	/**
+	 * Retrieve a page of queries.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing queries
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationQuery> getQueries(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a query.
+	 * @param query the query to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addQuery(final NotificationQuery query) throws NotificationServiceException;
+	
+	/**
+	 * Remove a query.
+	 * @param queryId the unique identifier of the query to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeQuery(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Execute a query and return the generated result.
+	 * @param queryId the unique identifier of the query to execute
+	 * @param resultId the unique result identifier to use
+	 * @param fromDate the from date to use
+	 * @param toDate the to date to use
+	 * @param limit the limit to use
+	 * @param offset the offset to use
+	 * @return a result page containing the generated result
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ResultPage executeQuery(final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of schedules.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing schedules
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSchedule> getSchedules(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a schedule.
+	 * @param schedule the schedule to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSchedule(final NotificationSchedule schedule) throws NotificationServiceException;
+	
+	/**
+	 * Enable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Disable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Remove a schedule.
+	 * @param queryId the unique identifier of the query of the schedule to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of events.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing events
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationEvent> getEvents(final int pageNumber, final int pageSize) throws NotificationServiceException;
+
+	/**
+	 * Retrieve a page of results.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing results
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationResult> getResults(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the event of the result to retrieve
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of the previous event of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the next event of the event whose result to retrieve 
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the previous event of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getPreviousResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containign subscriptions
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a subscription.
+	 * @param subscription the subscription to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSubscription(final NotificationSubscription subscription) throws NotificationServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to enable
+	 * @param alertService the URL of the alert service of the subscription to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to disable
+	 * @param alertService the URL of the alert service of the subscription to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to remove
+	 * @param alertService the URL of the alert service of the subscription to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/pom.xml
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/pom.xml	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/pom.xml	(revision 46897)
@@ -0,0 +1,34 @@
+<?xml version="1.0" ?>
+<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>dnet-parent</artifactId>
+		<version>1.0.0</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>eu.dnetlib</groupId>
+	<artifactId>uoa-api</artifactId>
+	<packaging>jar</packaging>
+	<version>1.0.0</version>
+	<scm>
+		<developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/tags/uoa-api-1.0.0</developerConnection>
+	</scm>
+	<dependencies>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>dnet-actionmanager-api</artifactId>
+			<version>[3.0.0]</version>
+		</dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>uoa-domain</artifactId>
+			<version>[1.0.0]</version>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>[0.0.0,)</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+</project>
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by notification service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see NotificationService
+ * 
+ */
+public class NotificationServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * Construct a new notification service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public NotificationServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new notification service exception with the specified message.
+	 * @param message the message
+	 */
+	public NotificationServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Collection;
+import eu.dnetlib.domain.functionality.CollectionSearchCriteria;
+
+public interface CollectionService extends DriverService {
+
+	public Collection getCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public List<Collection> getCollections(List<String> collectionIds)
+			throws CollectionServiceException;
+
+	public void updateCollection(Collection collection)
+			throws CollectionServiceException;
+			
+	public void deleteCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public String createCollection(Collection collection)
+			throws CollectionServiceException;
+	
+	public List<Collection> searchCollections(CollectionSearchCriteria criteria) 
+			throws CollectionServiceException;
+}
\ No newline at end of file

Property changes on: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
___________________________________________________________________
Added: svn:mergeinfo
## -0,0 +0,0 ##
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.functionality;
+
+public class RatingServiceException extends Exception {
+
+	/**
+	 * Used for serialization / deserialization.
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Create a new rating service exception.
+	 *
+	 */
+	public RatingServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public RatingServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public RatingServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public RatingServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api;
+
+public class DriverServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	public DriverServiceException() {
+		super();
+	}
+
+	public DriverServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DriverServiceException(String message) {
+		super(message);
+	}
+
+	public DriverServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(revision 46897)
@@ -0,0 +1,257 @@
+package eu.dnetlib.api.data;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.jws.WebParam;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.Repository;
+import eu.dnetlib.domain.data.RepositoryInterface;
+
+public interface DatasourceManagerService extends DriverService {
+
+	/**
+	 * Register a datasource.
+	 * 
+	 * @param ds
+	 *            the new datasource
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean addDatasource(Repository repository)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Delete a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean deleteDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public Repository getDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns all the datasources.
+	 * 
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> 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)
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> listDatasourcesUsingFilter(String compliance,
+			String contentDescription, String iisProcessingWorkflow, String collectedFrom)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * updates the level of compliance of a datasource.
+	 * 
+	 * @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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, 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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId,
+			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(String dsId, RepositoryInterface 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(String dsId, 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(String dsId, String sql, 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;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/IndexService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/IndexService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/IndexService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+import eu.dnetlib.domain.data.Hint;
+
+public interface IndexService extends DriverService {
+
+	public EPR indexLookup(String id, String query, String mdformat,
+			String layout) throws IndexServiceException;
+	
+	public Hint suggestiveSearch(String id, String query, 
+			String mdformat, String layout, String heuristicProfileName)
+				throws IndexServiceException;
+
+	public EPR getBrowsingStatistics(String query, String index,
+			String mdFormatId, String layoutId) throws IndexServiceException;
+
+	public List<String> getListOfIndices() throws IndexServiceException;
+
+	public String getIndexStatistics(String index) throws IndexServiceException;
+
+	public String getListOfIndicesCSV() throws IndexServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(revision 46897)
@@ -0,0 +1,21 @@
+/**
+ * 
+ */
+package eu.dnetlib.api.data;
+
+/**
+ * @author stoumpos
+ *
+ */
+public class BrowseDataNotAvailableException extends SearchServiceException {
+
+	private static final long serialVersionUID = 8370117296836628026L;
+
+	public BrowseDataNotAvailableException(String message) {
+		super(message);
+	}
+
+	public BrowseDataNotAvailableException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class UserProfileServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 8051839588351350465L;
+
+	public UserProfileServiceException() {
+		super();
+	}
+
+	public UserProfileServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public UserProfileServiceException(String message) {
+		super(message);
+	}
+
+	public UserProfileServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(revision 46897)
@@ -0,0 +1,31 @@
+package eu.dnetlib.api.data;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public class MDStoreServiceException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 4599049733249165737L;
+
+	public MDStoreServiceException() {
+	}
+
+	public MDStoreServiceException(String message) {
+		super(message);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public MDStoreServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api.data;
+
+@SuppressWarnings("serial")
+public class DatasourceManagerServiceException extends Exception {
+
+	public DatasourceManagerServiceException() {
+		super();
+	}
+
+	public DatasourceManagerServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DatasourceManagerServiceException(String message) {
+		super(message);
+	}
+
+	public DatasourceManagerServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISRegistryServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 4179398986751223317L;
+
+	public ISRegistryServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public ISRegistryServiceException() {
+		super();
+	}
+
+	public ISRegistryServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISRegistryServiceException(String message) {
+		super(message);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(revision 46897)
@@ -0,0 +1,39 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISSNService extends DriverService {
+	String getCurrentMessage(String topic) throws ISSNServiceException;
+
+	boolean pauseSubscription(String subscrId) throws ISSNServiceException;
+
+	boolean renew(String subscrId, int terminationTime) throws ISSNServiceException;
+
+	boolean resumeSubscription(String subscrId) throws ISSNServiceException;
+
+	String subscribe(
+			EPR consumerReference,
+			String topicExpression,
+			int initialTerminationTime) throws ISSNServiceException;
+
+	boolean unsubscribe(String subscrId) throws ISSNServiceException;
+
+	boolean actionCreatePerformed(
+			String resourceType,
+			String profileId,
+			String profile) throws ISSNServiceException;
+
+	boolean actionUpdatePerformed(
+			String resourceType,
+			String profileId,
+			String profileBefore,
+			String profileAfter) throws ISSNServiceException;
+
+	boolean actionDeletePerformed(String resourceType, String profileId)
+			throws ISSNServiceException;
+
+	List<String> listSubscriptions();
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/MDStoreServiceException.java	(revision 46897)
@@ -0,0 +1,31 @@
+package eu.dnetlib.api.data;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public class MDStoreServiceException extends Exception {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 4599049733249165737L;
+
+	public MDStoreServiceException() {
+	}
+
+	public MDStoreServiceException(String message) {
+		super(message);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public MDStoreServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public MDStoreServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+		super(message, cause, enableSuppression, writableStackTrace);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api.data;
+
+@SuppressWarnings("serial")
+public class DatasourceManagerServiceException extends Exception {
+
+	public DatasourceManagerServiceException() {
+		super();
+	}
+
+	public DatasourceManagerServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DatasourceManagerServiceException(String message) {
+		super(message);
+	}
+
+	public DatasourceManagerServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/PublisherService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/PublisherService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/PublisherService.java	(revision 46897)
@@ -0,0 +1,15 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface PublisherService extends DriverService {
+
+	public String getResourceById(String id, String format)
+			throws PublisherServiceException;
+	
+	public EPR getResourcesByIds(List<String> ids, String format)
+			throws PublisherServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class IndexServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 3390962667213486580L;
+
+	public IndexServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateResp;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeResp;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateRequest;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateResp;
+
+
+//TODO: remove???
+
+public interface A2Service extends DriverService {
+
+//	public AuthenticateResp authenticate(
+//			AuthenticateRequest authenticationRequest);
+//
+//	public AuthorizeResp authorize(AuthorizeRequest authorizationRequest);
+//
+//	public InvalidateResp invalidate(InvalidateRequest invalidationRequest);
+
+	public boolean validate(String profId, String secProfId);
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingNodeManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class A2ServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = -4143447663291476467L;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.actionmanager.common.Operation;
+import eu.dnetlib.actionmanager.common.Provenance;
+import eu.dnetlib.actionmanager.rmi.ActionManagerException;
+import eu.dnetlib.actionmanager.set.ActionManagerSet;
+import eu.dnetlib.api.DriverService;
+
+public interface ActionManagerService extends DriverService {
+	public String createSet(ActionManagerSet set) throws ActionManagerException;
+
+	public List<ActionManagerSet> ListSets() throws ActionManagerException;
+
+	public String createAction(
+			String splitRuleId, 
+			String set, 
+			Agent agent,
+			Operation operation, 
+			String infoPackage, 
+			Provenance provenance,
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public String updateAction(
+			String actionId, 
+			String splitRuleId, 
+			String set,
+			Agent agent, 
+			Operation operation, 
+			String infoPackage,
+			Provenance provenance, 
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public boolean deleteAction(String actionId) throws ActionManagerException;
+
+	public List<String> getActionsByAgent(String agentId, int limit)
+			throws ActionManagerException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface ISRegistryService extends DriverService {
+
+	public boolean deleteProfile(String profId)
+			throws ISRegistryServiceException;
+
+	public boolean updateProfile(String profId, String resourceProfile,
+			String resourceType) throws ISRegistryServiceException;
+
+	public String registerProfile(String resourceProfile)
+			throws ISRegistryServiceException;
+
+	public String registerSecureProfile(String resourceProfID,
+			String secureProfID) throws ISRegistryServiceException;
+
+	public String insertProfileForValidation(String resourceType,
+			String resourceProfile) throws ISRegistryServiceException;
+
+	public boolean addResourceType(String resourceType, String resourceSchema)
+			throws ISRegistryServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.1.0/deploy.info
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/deploy.info	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/deploy.info	(revision 46897)
@@ -0,0 +1,11 @@
+
+{
+  "type_source": "SVN", 
+  "goal": "package -U -T 4C source:jar", 
+  "url": "http://svn-public.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/trunk", 
+  "deploy_repository": "dnet4-snapshots", 
+  "version": "4", 
+  "mail": "antleb@di.uoa.gr, kiatrop@di.uoa.gr", 
+  "deploy_repository_url": "http://maven.research-infrastructures.eu/nexus/content/repositories/dnet4-snapshots", 
+  "name": "uoa-api"
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/PublisherService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/PublisherService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/PublisherService.java	(revision 46897)
@@ -0,0 +1,15 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface PublisherService extends DriverService {
+
+	public String getResourceById(String id, String format)
+			throws PublisherServiceException;
+	
+	public EPR getResourcesByIds(List<String> ids, String format)
+			throws PublisherServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(revision 46897)
@@ -0,0 +1,19 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISSNServiceException extends DriverServiceException {
+	private static final long serialVersionUID = -5921523712725388939L;
+
+	public ISSNServiceException(String mesg) {
+		super(mesg);
+	}
+
+	public ISSNServiceException(String mesg, Throwable cause) {
+		super(mesg, cause);
+	}
+
+	public ISSNServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISRegistryServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 4179398986751223317L;
+
+	public ISRegistryServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public ISRegistryServiceException() {
+		super();
+	}
+
+	public ISRegistryServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISRegistryServiceException(String message) {
+		super(message);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/StatsManagerService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * Created by antleb on 10/24/14.
+ */
+public interface StatsManagerService extends DriverService {
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(revision 46897)
@@ -0,0 +1,39 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISSNService extends DriverService {
+	String getCurrentMessage(String topic) throws ISSNServiceException;
+
+	boolean pauseSubscription(String subscrId) throws ISSNServiceException;
+
+	boolean renew(String subscrId, int terminationTime) throws ISSNServiceException;
+
+	boolean resumeSubscription(String subscrId) throws ISSNServiceException;
+
+	String subscribe(
+			EPR consumerReference,
+			String topicExpression,
+			int initialTerminationTime) throws ISSNServiceException;
+
+	boolean unsubscribe(String subscrId) throws ISSNServiceException;
+
+	boolean actionCreatePerformed(
+			String resourceType,
+			String profileId,
+			String profile) throws ISSNServiceException;
+
+	boolean actionUpdatePerformed(
+			String resourceType,
+			String profileId,
+			String profileBefore,
+			String profileAfter) throws ISSNServiceException;
+
+	boolean actionDeletePerformed(String resourceType, String profileId)
+			throws ISSNServiceException;
+
+	List<String> listSubscriptions();
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/NotificationService.java	(revision 46897)
@@ -0,0 +1,184 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.NotificationQuery;
+import eu.dnetlib.domain.functionality.NotificationResult;
+import eu.dnetlib.domain.functionality.NotificationSchedule;
+import eu.dnetlib.domain.functionality.NotificationSubscription;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of notification service. Alert service is used to manage queries, schedules, events, results and subscriptions.
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.NotificationQuery
+ * @see eu.dentlib.domain.functionality.NotificationSchedule
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see eu.dnetlib.domain.functionality.NotificationResult
+ * @see eu.dnetlib.domain.functionality.NotificationSubscription
+ * @see NotificationServiceException
+ * 
+ */
+public interface NotificationService extends DriverService {
+	/**
+	 * Retrieve all the supported languages in which queries can be expressed.
+	 * @return a set containing all the supported languages in which queries can be expressed
+	 */
+	public SortedSet<String> getSupportedQueryLanguages();
+
+	/**
+	 * Retrieve a page of queries.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing queries
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationQuery> getQueries(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a query.
+	 * @param query the query to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addQuery(final NotificationQuery query) throws NotificationServiceException;
+	
+	/**
+	 * Remove a query.
+	 * @param queryId the unique identifier of the query to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeQuery(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Execute a query and return the generated result.
+	 * @param queryId the unique identifier of the query to execute
+	 * @param resultId the unique result identifier to use
+	 * @param fromDate the from date to use
+	 * @param toDate the to date to use
+	 * @param limit the limit to use
+	 * @param offset the offset to use
+	 * @return a result page containing the generated result
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ResultPage executeQuery(final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of schedules.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing schedules
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSchedule> getSchedules(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a schedule.
+	 * @param schedule the schedule to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSchedule(final NotificationSchedule schedule) throws NotificationServiceException;
+	
+	/**
+	 * Enable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Disable a schedule.
+	 * @param queryId the unique identifier of the query whose schedule to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Remove a schedule.
+	 * @param queryId the unique identifier of the query of the schedule to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSchedule(final String queryId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of events.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing events
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationEvent> getEvents(final int pageNumber, final int pageSize) throws NotificationServiceException;
+
+	/**
+	 * Retrieve a page of results.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing results
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationResult> getResults(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the event of the result to retrieve
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a result of the previous event of an event of a query.
+	 * @param queryId the unique identifier of the query of the event of the result to retrieve
+	 * @param date the date corresponding to the next event of the event whose result to retrieve 
+	 * @param resultId the unique identifier of the result to retrieve
+	 * @return the specified result of the previous event of the specified event of the specified query or null if no such result exists
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public NotificationResult getPreviousResult(final String queryId, final Date date, final String resultId) throws NotificationServiceException;
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containign subscriptions
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public ObjectPage<NotificationSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws NotificationServiceException;
+	
+	/**
+	 * Add a subscription.
+	 * @param subscription the subscription to add
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void addSubscription(final NotificationSubscription subscription) throws NotificationServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to enable
+	 * @param alertService the URL of the alert service of the subscription to enable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void enableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to disable
+	 * @param alertService the URL of the alert service of the subscription to disable
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void disableSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param queryId the unique identifier of the query of the schedule of the subscription to remove
+	 * @param alertService the URL of the alert service of the subscription to remove
+	 * @throws NotificationServiceException if any errors occur
+	 */
+	public void removeSubscription(final String queryId, final URL alertService) throws NotificationServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(revision 46897)
@@ -0,0 +1,150 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.AlertSubscription;
+import eu.dnetlib.domain.functionality.AlertTemplate;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of alert service. Alert service is used to manage templates and subscriptions. 
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.AlertTemplate
+ * @see eu.dnetlib.domain.functionality.AlertSubscription
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see AlertServiceException
+ * 
+ */
+public interface AlertService extends DriverService {
+	/**
+	 * Retrieve all the supported modes in which alerts can be sent.
+	 * @return a sorted set containing all the supported modes in which alerts can be sent
+	 */
+	public SortedSet<String> getSupportedAlertModes();
+	
+	/**
+	 * Retrieve a page of templates.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing templates
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertTemplate> getTemplates(final int pageNumber, final int pageSize) throws AlertServiceException;
+	
+	/**
+	 * Add a template.
+	 * @param template the template to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addTemplate(final AlertTemplate template) throws AlertServiceException;
+	
+	/**
+	 * Remove a template.
+	 * @param templateId the unique identifier of the template to remove
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeTemplate(final String templateId) throws AlertServiceException;	
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws AlertServiceException;
+
+	/**
+	 * Retrieve some subscriptions by alert mode and subscriber.
+	 * @param alertMode the alert mode of the subscriptions to retrieve
+	 * @param subscriber the subscriber URI of the subscriptions to retrieve (prefix match)
+	 * @param limit the maximum number of subscriptions to retrieve
+	 * @param offset the offset to start at 
+	 * @return a list of subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */ 
+	public SortedSet<AlertSubscription> getSubscriptions(final String alerMode, final String subscriber, final int limit, final int offset) throws AlertServiceException;
+	
+	/**
+	 * Add a new subscription.
+	 * @param subscription the subscription to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addSubscription(final AlertSubscription subscription) throws AlertServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to enable
+	 * @param notificationService the URL of the notification service of the subscription to enable
+	 * @param queryId the unique identifier of the notification query  of the subscription to enable
+	 * @param resultId the unique identifier of the result of the subscription to enable
+	 * @param alertMode the alert mode of the subscription to enable
+	 * @param subscriber the URI of the subscriber of the subscription to enable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void enableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param templateId the unique identifier of the template the subscription to disable
+	 * @param notificationService the URL of the notification service of the subscription to disable
+	 * @param queryId the unique identifier of the notification query of the subscription to disable
+	 * @param resultId the unique identifier of the result of the subscription to disable
+	 * @param alertMode the alert mode of the subscription to disable
+	 * @param subscriber the URI of the subscriber of the subscription to disable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void disableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to remove
+	 * @param notificationService the URL of the notification service of the subscription to remove
+	 * @param queryId the unique identifier of the notification query of the subscription to remove
+	 * @param resultId the unique identifier of the result of the subscription to remove
+	 * @param alertMode the alert mode of the subscription to remove
+	 * @param subscriber the URI of the subscriber of the subscription to remove 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Count the results of an alert.
+	 * @param templateId the unique identifier of the template of the alert results to count
+	 * @param notificationService the URL of the notification service of the alert results to count
+	 * @param queryId the unique identifier of the notification query of the alert results to count
+	 * @param date the date that corresponds to the notification event of the alert results to count
+	 * @param resultId the unique identifier of the notification result of the alert results to count
+	 * @return the total number of the specified alert results
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public int countAlertResults(final URL notificationService, final String queryId, final Date date, final String resultId) throws AlertServiceException;
+
+	/**
+	 * Retrieve the results of an alert.
+	 * @param notificationService the URL of the notification service of the alert results to retrieve
+	 * @param queryId the unique identfier of the notification query of the alert results to retrieve
+	 * @param resultId the unique identifier of the notification result of the alert results to retrieve
+	 * @param fromDate the date from which to retrieve alert results
+	 * @param toDate the date up to which to retrieve alert results 
+	 * @param limit the maximum number of alert results to retrieve
+	 * @param offset the offset to start at
+	 * @return a result page
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ResultPage getAlertResults(final URL notificationService, final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws AlertServiceException;
+			
+	/**
+	 * Alert this service about an event generated by a notification service.
+	 * @param notificationService the URL of the notification service
+	 * @param event the notification event
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void alert(final URL notificationService, final NotificationEvent event) throws AlertServiceException; 
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by alert service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see AlertService
+ *
+ */
+public class AlertServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Construct a new alert service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public AlertServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new alert service exception with the specified message.
+	 * @param message the message
+	 */
+	public AlertServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/data/IndexServiceException.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class IndexServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 3390962667213486580L;
+
+	public IndexServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ActionManagerService.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.actionmanager.common.Agent;
+import eu.dnetlib.actionmanager.common.Operation;
+import eu.dnetlib.actionmanager.common.Provenance;
+import eu.dnetlib.actionmanager.rmi.ActionManagerException;
+import eu.dnetlib.actionmanager.set.ActionManagerSet;
+import eu.dnetlib.api.DriverService;
+
+public interface ActionManagerService extends DriverService {
+	public String createSet(ActionManagerSet set) throws ActionManagerException;
+
+	public List<ActionManagerSet> ListSets() throws ActionManagerException;
+
+	public String createAction(
+			String splitRuleId, 
+			String set, 
+			Agent agent,
+			Operation operation, 
+			String infoPackage, 
+			Provenance provenance,
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public String updateAction(
+			String actionId, 
+			String splitRuleId, 
+			String set,
+			Agent agent, 
+			Operation operation, 
+			String infoPackage,
+			Provenance provenance, 
+			String trust, 
+			String nsprefix) throws ActionManagerException;
+
+	public boolean deleteAction(String actionId) throws ActionManagerException;
+
+	public List<String> getActionsByAgent(String agentId, int limit)
+			throws ActionManagerException;
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface ISRegistryService extends DriverService {
+
+	public boolean deleteProfile(String profId)
+			throws ISRegistryServiceException;
+
+	public boolean updateProfile(String profId, String resourceProfile,
+			String resourceType) throws ISRegistryServiceException;
+
+	public String registerProfile(String resourceProfile)
+			throws ISRegistryServiceException;
+
+	public String registerSecureProfile(String resourceProfID,
+			String secureProfID) throws ISRegistryServiceException;
+
+	public String insertProfileForValidation(String resourceType,
+			String resourceProfile) throws ISRegistryServiceException;
+
+	public boolean addResourceType(String resourceType, String resourceSchema)
+			throws ISRegistryServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISRegistryServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISRegistryServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 4179398986751223317L;
+
+	public ISRegistryServiceException(Throwable cause) {
+		super(cause);
+	}
+
+	public ISRegistryServiceException() {
+		super();
+	}
+
+	public ISRegistryServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISRegistryServiceException(String message) {
+		super(message);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/CSHarvesterService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverService;
+
+public interface CSHarvesterService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SimilarityService.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.SimilarDocument;
+
+public interface SimilarityService extends DriverService {
+
+	/**
+	 * Returns a list of similar documents which are similar to document with
+	 * specified id. No additional values are returned (only ids and score)
+	 * 
+	 * @param id The specified id
+	 * @return a list of {@link SimilarDocument}
+	 */
+	public List<SimilarDocument> getSimilarDocuments(String id)
+			throws SimilarityServiceException;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/src/main/java/eu/dnetlib/api/enabling/ISSNService.java	(revision 46897)
@@ -0,0 +1,39 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISSNService extends DriverService {
+	String getCurrentMessage(String topic) throws ISSNServiceException;
+
+	boolean pauseSubscription(String subscrId) throws ISSNServiceException;
+
+	boolean renew(String subscrId, int terminationTime) throws ISSNServiceException;
+
+	boolean resumeSubscription(String subscrId) throws ISSNServiceException;
+
+	String subscribe(
+			EPR consumerReference,
+			String topicExpression,
+			int initialTerminationTime) throws ISSNServiceException;
+
+	boolean unsubscribe(String subscrId) throws ISSNServiceException;
+
+	boolean actionCreatePerformed(
+			String resourceType,
+			String profileId,
+			String profile) throws ISSNServiceException;
+
+	boolean actionUpdatePerformed(
+			String resourceType,
+			String profileId,
+			String profileBefore,
+			String profileAfter) throws ISSNServiceException;
+
+	boolean actionDeletePerformed(String resourceType, String profileId)
+			throws ISSNServiceException;
+
+	List<String> listSubscriptions();
+}
Index: modules/uoa-api/tags/uoa-api-1.2.0/deploy.info
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0/deploy.info	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0/deploy.info	(revision 46897)
@@ -0,0 +1,11 @@
+
+{
+  "type_source": "SVN", 
+  "goal": "package -U -T 4C source:jar", 
+  "url": "http://svn-public.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/trunk", 
+  "deploy_repository": "dnet4-snapshots", 
+  "version": "4", 
+  "mail": "antleb@di.uoa.gr, kiatrop@di.uoa.gr", 
+  "deploy_repository_url": "http://maven.research-infrastructures.eu/nexus/content/repositories/dnet4-snapshots", 
+  "name": "uoa-api"
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.2.0
===================================================================
--- modules/uoa-api/tags/uoa-api-1.2.0	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.2.0	(revision 46897)

Property changes on: modules/uoa-api/tags/uoa-api-1.2.0
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,6 ##
+.classpath
+.settings
+.project
+target
+*.iml
+.idea
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/NotificationServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by notification service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see NotificationService
+ * 
+ */
+public class NotificationServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * Construct a new notification service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public NotificationServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new notification service exception with the specified message.
+	 * @param message the message
+	 */
+	public NotificationServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(revision 46897)
@@ -0,0 +1,56 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Post;
+import eu.dnetlib.domain.functionality.Thread;
+
+/**
+ * This interface describes the available methods  of a forum service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface ForumService extends DriverService {
+	/**
+	 * Open a new thread.
+	 * @param communityId the id of the community that the thread belongs to
+	 * @param userId the id of the user that opens the thread
+	 * @param topic the topic of the thread
+	 * @return the id of the thread just opened
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public long openThread(String communityId, String userId, String topic) throws ForumServiceException;
+	
+	/**
+	 * Edit an existing thread.
+	 * @param threadId the id of the thread to edit
+	 * @param topic the new topic of the thread
+	 * @param posts the new posts of the thread
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void editThread(long threadId, String topic, List<Post> posts) throws ForumServiceException;
+	
+	/**
+	 * Delete an existing thread.
+	 * @param threadId the id of the thread to delete
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void deleteThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for an existing thread by id.
+	 * @param threadId the id of the thread to search for
+	 * @return the thread with the specified id or null if no such thread exists
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public Thread searchThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for existing threads by community.
+	 * @param communityId the id of the community the threads belong to
+	 * @return a list containing all the threads that belong to the specified community
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public List<Thread> searchThread(String communityId) throws ForumServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/AlertService.java	(revision 46897)
@@ -0,0 +1,150 @@
+package eu.dnetlib.api.functionality;
+
+import java.net.URI;
+import java.net.URL;
+import java.util.Date;
+import java.util.SortedSet;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.AlertSubscription;
+import eu.dnetlib.domain.functionality.AlertTemplate;
+import eu.dnetlib.domain.functionality.NotificationEvent;
+import eu.dnetlib.domain.functionality.ObjectPage;
+import eu.dnetlib.domain.functionality.ResultPage;
+
+/**
+ * This interface declares the available methods of alert service. Alert service is used to manage templates and subscriptions. 
+ * @author thanos@di.uoa.gr
+ * @see eu.dnetlib.domain.functionality.AlertTemplate
+ * @see eu.dnetlib.domain.functionality.AlertSubscription
+ * @see eu.dnetlib.domain.functionality.NotificationEvent
+ * @see AlertServiceException
+ * 
+ */
+public interface AlertService extends DriverService {
+	/**
+	 * Retrieve all the supported modes in which alerts can be sent.
+	 * @return a sorted set containing all the supported modes in which alerts can be sent
+	 */
+	public SortedSet<String> getSupportedAlertModes();
+	
+	/**
+	 * Retrieve a page of templates.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing templates
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertTemplate> getTemplates(final int pageNumber, final int pageSize) throws AlertServiceException;
+	
+	/**
+	 * Add a template.
+	 * @param template the template to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addTemplate(final AlertTemplate template) throws AlertServiceException;
+	
+	/**
+	 * Remove a template.
+	 * @param templateId the unique identifier of the template to remove
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeTemplate(final String templateId) throws AlertServiceException;	
+	
+	/**
+	 * Retrieve a page of subscriptions.
+	 * @param pageNumber the number of the page to retrieve
+	 * @param pageSize the size of the page to retrieve
+	 * @return an object page containing subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ObjectPage<AlertSubscription> getSubscriptions(final int pageNumber, final int pageSize) throws AlertServiceException;
+
+	/**
+	 * Retrieve some subscriptions by alert mode and subscriber.
+	 * @param alertMode the alert mode of the subscriptions to retrieve
+	 * @param subscriber the subscriber URI of the subscriptions to retrieve (prefix match)
+	 * @param limit the maximum number of subscriptions to retrieve
+	 * @param offset the offset to start at 
+	 * @return a list of subscriptions
+	 * @throws AlertServiceException if any errors occur
+	 */ 
+	public SortedSet<AlertSubscription> getSubscriptions(final String alerMode, final String subscriber, final int limit, final int offset) throws AlertServiceException;
+	
+	/**
+	 * Add a new subscription.
+	 * @param subscription the subscription to add
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void addSubscription(final AlertSubscription subscription) throws AlertServiceException;
+	
+	/**
+	 * Enable a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to enable
+	 * @param notificationService the URL of the notification service of the subscription to enable
+	 * @param queryId the unique identifier of the notification query  of the subscription to enable
+	 * @param resultId the unique identifier of the result of the subscription to enable
+	 * @param alertMode the alert mode of the subscription to enable
+	 * @param subscriber the URI of the subscriber of the subscription to enable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void enableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Disable a subscription.
+	 * @param templateId the unique identifier of the template the subscription to disable
+	 * @param notificationService the URL of the notification service of the subscription to disable
+	 * @param queryId the unique identifier of the notification query of the subscription to disable
+	 * @param resultId the unique identifier of the result of the subscription to disable
+	 * @param alertMode the alert mode of the subscription to disable
+	 * @param subscriber the URI of the subscriber of the subscription to disable 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void disableSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Remove a subscription.
+	 * @param templateId the unique identifier of the template of the subscription to remove
+	 * @param notificationService the URL of the notification service of the subscription to remove
+	 * @param queryId the unique identifier of the notification query of the subscription to remove
+	 * @param resultId the unique identifier of the result of the subscription to remove
+	 * @param alertMode the alert mode of the subscription to remove
+	 * @param subscriber the URI of the subscriber of the subscription to remove 
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void removeSubscription(final String templateId, final URL notificationService, final String queryId, final String resultId, final String alertMode, final URI subscriber) throws AlertServiceException;
+	
+	/**
+	 * Count the results of an alert.
+	 * @param templateId the unique identifier of the template of the alert results to count
+	 * @param notificationService the URL of the notification service of the alert results to count
+	 * @param queryId the unique identifier of the notification query of the alert results to count
+	 * @param date the date that corresponds to the notification event of the alert results to count
+	 * @param resultId the unique identifier of the notification result of the alert results to count
+	 * @return the total number of the specified alert results
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public int countAlertResults(final URL notificationService, final String queryId, final Date date, final String resultId) throws AlertServiceException;
+
+	/**
+	 * Retrieve the results of an alert.
+	 * @param notificationService the URL of the notification service of the alert results to retrieve
+	 * @param queryId the unique identfier of the notification query of the alert results to retrieve
+	 * @param resultId the unique identifier of the notification result of the alert results to retrieve
+	 * @param fromDate the date from which to retrieve alert results
+	 * @param toDate the date up to which to retrieve alert results 
+	 * @param limit the maximum number of alert results to retrieve
+	 * @param offset the offset to start at
+	 * @return a result page
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public ResultPage getAlertResults(final URL notificationService, final String queryId, final String resultId, final Date fromDate, final Date toDate, final int limit, final int offset) throws AlertServiceException;
+			
+	/**
+	 * Alert this service about an event generated by a notification service.
+	 * @param notificationService the URL of the notification service
+	 * @param event the notification event
+	 * @throws AlertServiceException if any errors occur
+	 */
+	public void alert(final URL notificationService, final NotificationEvent event) throws AlertServiceException; 
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/AlertServiceException.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+/**
+ * This exception is thrown by alert service if any errors occur.
+ * @author thanos@di.uoa.gr
+ * @see AlertService
+ *
+ */
+public class AlertServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Construct a new alert service exception with the specified message and cause.
+	 * @param message the message
+	 * @param cause the cause
+	 */
+	public AlertServiceException(final String message, final Throwable cause) {
+		super(message, cause);
+	}
+	
+	/**
+	 * Construct a new alert service exception with the specified message.
+	 * @param message the message
+	 */
+	public AlertServiceException(final String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RecommendationServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class RecommendationServiceException extends DriverServiceException {
+	
+	private static final long serialVersionUID = 1L;
+
+	public RecommendationServiceException() {
+		super();
+	}
+
+	public RecommendationServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public RecommendationServiceException(String message) {
+		super(message);
+	}
+
+	public RecommendationServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CommunityService.java	(revision 46897)
@@ -0,0 +1,79 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Community;
+import eu.dnetlib.domain.functionality.CommunitySearchCriteria;
+
+/**
+ * The class that manages Community objects
+ * 
+ */
+public interface CommunityService extends DriverService {
+	/**
+	 * Create or edit a community.
+	 * @param community the community to save 
+	 * @return the community just saved
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public Community saveCommunity(Community community) throws CommunityServiceException;
+
+	/**
+	 * Delete a community.
+	 * @param community the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunity(Community community) throws CommunityServiceException;
+	
+	/**
+	 * Delete a community.
+	 * @param id the id of the community to delete
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public void deleteCommunityById(String id) throws CommunityServiceException;
+	
+	/**
+	 * Search for a community by id
+	 * @param id the id of the community to search for
+	 * @return the community with the specified id or null if no such community exists
+	 * @throws CommunityServiceException
+	 */
+	public Community getCommunityById(String id) throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<Community> searchCommunities(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+
+	/**
+	 * Search for communities by the specified criteria.
+	 * @param criteria the search criteria to match
+	 * @return a list containing the ids of all the communities that match the specified criteria
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public List<String> searchCommunityIds(CommunitySearchCriteria criteria)
+			throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is owner of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is owner of the community; false otherwise
+	 * @throws CommunityServiceException if any errors occur
+	 */
+	public boolean isOwner(String communityId, String userId) throws CommunityServiceException;
+	
+	/**
+	 * Check if a user is manager of a community.
+	 * @param communityId the id of the community to check for
+	 * @param userId the id of the user to check for
+	 * @return true if the user is manager of the community; false otherwise
+	 * @throws CommunityServiceException
+	 */
+	public boolean isManager(String communityId, String userId) throws CommunityServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/ForumService.java	(revision 46897)
@@ -0,0 +1,56 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Post;
+import eu.dnetlib.domain.functionality.Thread;
+
+/**
+ * This interface describes the available methods  of a forum service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface ForumService extends DriverService {
+	/**
+	 * Open a new thread.
+	 * @param communityId the id of the community that the thread belongs to
+	 * @param userId the id of the user that opens the thread
+	 * @param topic the topic of the thread
+	 * @return the id of the thread just opened
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public long openThread(String communityId, String userId, String topic) throws ForumServiceException;
+	
+	/**
+	 * Edit an existing thread.
+	 * @param threadId the id of the thread to edit
+	 * @param topic the new topic of the thread
+	 * @param posts the new posts of the thread
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void editThread(long threadId, String topic, List<Post> posts) throws ForumServiceException;
+	
+	/**
+	 * Delete an existing thread.
+	 * @param threadId the id of the thread to delete
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public void deleteThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for an existing thread by id.
+	 * @param threadId the id of the thread to search for
+	 * @return the thread with the specified id or null if no such thread exists
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public Thread searchThread(long threadId) throws ForumServiceException;
+	
+	/**
+	 * Search for existing threads by community.
+	 * @param communityId the id of the community the threads belong to
+	 * @return a list containing all the threads that belong to the specified community
+	 * @throws ForumServiceException if any errors occur
+	 */
+	public List<Thread> searchThread(String communityId) throws ForumServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(revision 46897)
@@ -0,0 +1,23 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class CollectionServiceException extends DriverServiceException{
+	private static final long serialVersionUID = 1L;
+
+	public CollectionServiceException(){
+		super();
+	}
+	
+	public CollectionServiceException(String message, Throwable cause){
+		super(message, cause);
+	}
+	
+	public CollectionServiceException(String message){
+		super(message);
+	}
+	
+	public CollectionServiceException(Throwable cause){
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(revision 46897)
@@ -0,0 +1,30 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.UserProfile;
+import eu.dnetlib.domain.functionality.UserProfileSearchCriteria;
+
+/**
+ * Class that manages UserProfile objects.
+ */
+public interface UserProfileService extends DriverService {
+
+	public UserProfile saveUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUserById(String id) throws UserProfileServiceException;
+
+	public UserProfile getUserById(String id)
+			throws UserProfileServiceException;
+
+	public List<UserProfile> searchUsers(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+
+	public List<String> searchUserIds(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * The webInterface service interface
+ * 
+ */
+public interface WebInterfaceService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java	(revision 46897)
@@ -0,0 +1,28 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Collection;
+import eu.dnetlib.domain.functionality.CollectionSearchCriteria;
+
+public interface CollectionService extends DriverService {
+
+	public Collection getCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public List<Collection> getCollections(List<String> collectionIds)
+			throws CollectionServiceException;
+
+	public void updateCollection(Collection collection)
+			throws CollectionServiceException;
+			
+	public void deleteCollection(String collectionId)
+			throws CollectionServiceException;
+
+	public String createCollection(Collection collection)
+			throws CollectionServiceException;
+	
+	public List<Collection> searchCollections(CollectionSearchCriteria criteria) 
+			throws CollectionServiceException;
+}
\ No newline at end of file

Property changes on: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CollectionService.java
___________________________________________________________________
Added: svn:mergeinfo
## -0,0 +0,0 ##
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ForumServiceException.java	(revision 46897)
@@ -0,0 +1,47 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+/**
+ * This exception is thrown by forum service on any error.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public class ForumServiceException extends DriverServiceException {
+	/**
+	 * Used for serialization / deserialization
+	 */
+	private static final long serialVersionUID = -8624823395470214377L;
+
+	/**
+	 * Create a new forum service exception.
+	 */
+	public ForumServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public ForumServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public ForumServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new forum service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public ForumServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/DatasourceManagerService.java	(revision 46897)
@@ -0,0 +1,257 @@
+package eu.dnetlib.api.data;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.jws.WebParam;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.Repository;
+import eu.dnetlib.domain.data.RepositoryInterface;
+
+public interface DatasourceManagerService extends DriverService {
+
+	/**
+	 * Register a datasource.
+	 * 
+	 * @param ds
+	 *            the new datasource
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean addDatasource(Repository repository)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Delete a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public boolean deleteDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns a datasource.
+	 * 
+	 * @param dsId
+	 *            the OpenAireDataSourceId (example: opendoar____::2101)
+	 * @throws DatasourceManagerServiceException
+	 */
+	public Repository getDatasource(String dsId)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * Returns all the datasources.
+	 * 
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> 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)
+	 * @return a list of XML profiles
+	 * @throws DatasourceManagerServiceException
+	 */
+	public List<Repository> listDatasourcesUsingFilter(String compliance,
+			String contentDescription, String iisProcessingWorkflow, String collectedFrom)
+			throws DatasourceManagerServiceException;
+
+	/**
+	 * updates the level of compliance of a datasource.
+	 * 
+	 * @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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, 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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId,
+			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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId, String field,
+			String value, 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(String dsId, String ifaceId,
+			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(String dsId, RepositoryInterface 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(String dsId, 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(String dsId, String sql, 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;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/IndexService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/IndexService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/IndexService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+import eu.dnetlib.domain.data.Hint;
+
+public interface IndexService extends DriverService {
+
+	public EPR indexLookup(String id, String query, String mdformat,
+			String layout) throws IndexServiceException;
+	
+	public Hint suggestiveSearch(String id, String query, 
+			String mdformat, String layout, String heuristicProfileName)
+				throws IndexServiceException;
+
+	public EPR getBrowsingStatistics(String query, String index,
+			String mdFormatId, String layoutId) throws IndexServiceException;
+
+	public List<String> getListOfIndices() throws IndexServiceException;
+
+	public String getIndexStatistics(String index) throws IndexServiceException;
+
+	public String getListOfIndicesCSV() throws IndexServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/data/BrowseDataNotAvailableException.java	(revision 46897)
@@ -0,0 +1,21 @@
+/**
+ * 
+ */
+package eu.dnetlib.api.data;
+
+/**
+ * @author stoumpos
+ *
+ */
+public class BrowseDataNotAvailableException extends SearchServiceException {
+
+	private static final long serialVersionUID = 8370117296836628026L;
+
+	public BrowseDataNotAvailableException(String message) {
+		super(message);
+	}
+
+	public BrowseDataNotAvailableException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CollectionServiceException.java	(revision 46897)
@@ -0,0 +1,23 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class CollectionServiceException extends DriverServiceException{
+	private static final long serialVersionUID = 1L;
+
+	public CollectionServiceException(){
+		super();
+	}
+	
+	public CollectionServiceException(String message, Throwable cause){
+		super(message, cause);
+	}
+	
+	public CollectionServiceException(String message){
+		super(message);
+	}
+	
+	public CollectionServiceException(Throwable cause){
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/UserProfileService.java	(revision 46897)
@@ -0,0 +1,30 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.UserProfile;
+import eu.dnetlib.domain.functionality.UserProfileSearchCriteria;
+
+/**
+ * Class that manages UserProfile objects.
+ */
+public interface UserProfileService extends DriverService {
+
+	public UserProfile saveUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUser(UserProfile profile)
+			throws UserProfileServiceException;
+
+	public void deleteUserById(String id) throws UserProfileServiceException;
+
+	public UserProfile getUserById(String id)
+			throws UserProfileServiceException;
+
+	public List<UserProfile> searchUsers(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+
+	public List<String> searchUserIds(UserProfileSearchCriteria criteria)
+			throws UserProfileServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverService.java	(revision 46897)
@@ -0,0 +1,18 @@
+package eu.dnetlib.api;
+
+import eu.dnetlib.domain.ServiceIdentity;
+import eu.dnetlib.domain.enabling.Notification;
+
+/**
+ * The basic interface that all DRIVER services must implement.
+ */
+public interface DriverService {
+	/**
+	 * Identifies the service's version.
+	 * 
+	 * @return the service's identification
+	 */
+	public ServiceIdentity identify();
+	
+	public void notify(Notification notification) throws DriverServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/A2Service.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthenticateResp;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeRequest;
+//import eu.dnetlib.enabling.aas.rmi.AuthorizeResp;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateRequest;
+//import eu.dnetlib.enabling.aas.rmi.InvalidateResp;
+
+
+//TODO: remove???
+
+public interface A2Service extends DriverService {
+
+//	public AuthenticateResp authenticate(
+//			AuthenticateRequest authenticationRequest);
+//
+//	public AuthorizeResp authorize(AuthorizeRequest authorizationRequest);
+//
+//	public InvalidateResp invalidate(InvalidateRequest invalidationRequest);
+
+	public boolean validate(String profId, String secProfId);
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/HostingNodeManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingNodeManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/A2ServiceException.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class A2ServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = -4143447663291476467L;
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/WebInterfaceService.java	(revision 46897)
@@ -0,0 +1,11 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+/**
+ * The webInterface service interface
+ * 
+ */
+public interface WebInterfaceService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/deploy.info
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/deploy.info	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/deploy.info	(revision 46897)
@@ -0,0 +1,11 @@
+
+{
+  "type_source": "SVN", 
+  "goal": "package -U -T 4C source:jar", 
+  "url": "http://svn-public.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-api/trunk", 
+  "deploy_repository": "dnet4-snapshots", 
+  "version": "4", 
+  "mail": "antleb@di.uoa.gr, kiatrop@di.uoa.gr", 
+  "deploy_repository_url": "http://maven.research-infrastructures.eu/nexus/content/repositories/dnet4-snapshots", 
+  "name": "uoa-api"
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SearchServiceException.java	(revision 46897)
@@ -0,0 +1,16 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class SearchServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 4233470724221380778L;
+
+	public SearchServiceException(String message) {
+		super(message);
+	}
+
+	public SearchServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/enabling/ISSNServiceException.java	(revision 46897)
@@ -0,0 +1,19 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISSNServiceException extends DriverServiceException {
+	private static final long serialVersionUID = -5921523712725388939L;
+
+	public ISSNServiceException(String mesg) {
+		super(mesg);
+	}
+
+	public ISSNServiceException(String mesg, Throwable cause) {
+		super(mesg, cause);
+	}
+
+	public ISSNServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0/src/main/java/eu/dnetlib/api/DriverService.java	(revision 46897)
@@ -0,0 +1,18 @@
+package eu.dnetlib.api;
+
+import eu.dnetlib.domain.ServiceIdentity;
+import eu.dnetlib.domain.enabling.Notification;
+
+/**
+ * The basic interface that all DRIVER services must implement.
+ */
+public interface DriverService {
+	/**
+	 * Identifies the service's version.
+	 * 
+	 * @return the service's identification
+	 */
+	public ServiceIdentity identify();
+	
+	public void notify(Notification notification) throws DriverServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.1.0
===================================================================
--- modules/uoa-api/tags/uoa-api-1.1.0	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.1.0	(revision 46897)

Property changes on: modules/uoa-api/tags/uoa-api-1.1.0
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,4 ##
+.classpath
+.settings
+.project
+target
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/MDStoreService.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.data;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+/**
+ * Created by antleb on 9/8/14.
+ */
+public interface MDStoreService extends DriverService {
+
+	public EPR deliverMDRecords(String mdStoreId, String from, String until, String recordsFilter) throws MDStoreServiceException;
+
+	public String deliverRecord(String mdStoreId, String recordId) throws MDStoreServiceException;
+
+	public List<String> getListOfMDStores() throws MDStoreServiceException;
+
+	public List<String> listMDStores(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public EPR bulkDeliverMDRecords(String format, String layout, String interpretation) throws MDStoreServiceException;
+
+	public boolean storeMDRecordsFromRS(String mdStoreId, String resultSetId, String storingType) throws MDStoreServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/HostingContextManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+
+public interface HostingContextManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpService.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ISLookUpService extends DriverService {
+
+	public EPR searchProfile(String XQuery) throws ISLookUpServiceException;
+
+	public List<String> quickSearchProfile(String XQuery)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfile(String profId)
+			throws ISLookUpServiceException;
+
+	public String getResourceProfileByQuery(String XQuery)
+			throws ISLookUpServiceException;
+
+	public List<String> listResourceTypes() throws ISLookUpServiceException;
+
+	public String getResourceTypeSchema(String resourceType)
+			throws ISLookUpServiceException;
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ResultSetServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ResultSetServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 3213415320259238226L;
+
+	public ResultSetServiceException() {
+		super();
+	}
+
+	public ResultSetServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ResultSetServiceException(String message) {
+		super(message);
+	}
+
+	public ResultSetServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SearchService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SearchService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SearchService.java	(revision 46897)
@@ -0,0 +1,112 @@
+package eu.dnetlib.api.data;
+
+import java.util.Collection;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.data.FormattedSearchResult;
+import eu.dnetlib.domain.data.SearchResult;
+import eu.dnetlib.domain.data.SuggestiveResult;
+
+public interface SearchService extends DriverService {
+
+	/**
+	 * Returns search results for given query containing the request parameters and 
+	 * the list of search result XML records as it is derived after the application of 
+	 * the xslt tranfrormer.
+	 * 
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for search results 
+	 * @param locale the locale
+	 * @param page the search result page 
+	 * @param size the search result page size
+	 * @return {@link SearchResult} containing the request parameters and the list of 
+	 * search result xml records
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult search(String queryText, String transformer,
+			String locale, int page, int size) throws SearchServiceException;
+
+	/**
+	 * Returns refine results of given query containing the request parameters and 
+	 * the list of refine XML records as it is derived after the application of 
+	 * the xslt transfrormer.
+	 * @param queryText the query
+	 * @param transformer the name of the xslt transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link SearchResult} containing the request parameters and the list of refine xml records
+	 * 
+	 * @throws SearchServiceException 
+	 */
+	public SearchResult refine(String queryText, String transformer,
+			String locale, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns search and refine results  containing the request parameters, the list 
+	 * of XML search records and the list of XML refine records as it is derived after 
+	 * the application of the xslt tranfrormers.
+	 * @param queryText the query 
+	 * @param searchTransformer the xslt transformer of search results
+	 * @param refineTransformer the xslt transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return {@link SearchResult} containing the request parameters, the list 
+	 * of search records and the list of refine records 
+	 * 
+	 * @throws SearchServiceException
+	 */
+	public SearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+
+	/**
+	 * Returns a {@link FormattedSearchResult} containing the formatted results of search 
+	 * @param queryText the query
+	 * @param transformer the name of the transformer for refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param fields the fields to include in refine results
+	 * @return {@link FormattedSearchResult} containing the formatted results of refine 
+	 * 
+	 * @throws SearchServiceException	 */
+	public FormattedSearchResult search(String queryText, String transformer, String format,
+			String locale, int page, int size) throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  
+	 * @throws SearchServiceException
+	 */
+	public FormattedSearchResult refine(String queryText, String refineTransformer, 
+			String format, String locale, Collection<String> fields)
+				throws SearchServiceException;
+	
+	/**
+	 * Returns a  {@link FormattedSearchResult} containing the formatted results of refine and search 
+	 * @param queryText the query 
+	 * @param searchTransformer the transformer of search results
+	 * @param refineTransformer the transformer of refine results
+	 * @param format the format
+	 * @param locale the locale
+	 * @param page the search result page
+	 * @param size the search result page size
+	 * @param fields the fields to include in refine
+	 * @return  {@link FormattedSearchResult} containing the formatted results of refine and search  */
+	public FormattedSearchResult searchNrefine(String queryText, String searchTransformer, String refineTransformer, 
+			String format, String locale, int page, int size, Collection<String> fields) throws SearchServiceException;
+	
+	public SuggestiveResult suggestiveSearch(String query) throws SearchServiceException;
+
+}
\ No newline at end of file
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/SimilarityServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.data;
+
+public class SimilarityServiceException extends Exception {
+
+	private static final long serialVersionUID = -4552557846773396398L;
+
+	public SimilarityServiceException() {
+		super();
+
+	}
+
+	public SimilarityServiceException(String message, Throwable cause) {
+		super(message, cause);
+
+	}
+
+	public SimilarityServiceException(String message) {
+		super(message);
+
+	}
+
+	public SimilarityServiceException(Throwable cause) {
+		super(cause);
+
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/data/PublisherServiceException.java	(revision 46897)
@@ -0,0 +1,12 @@
+package eu.dnetlib.api.data;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class PublisherServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 6956403917254162285L;
+
+	public PublisherServiceException(String message) {
+		super(message);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/DatabaseService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface DatabaseService extends DriverService {
+
+	public boolean importFromEPR(String db, EPR epr, String xslt);
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/LocalDownloadManagerService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface LocalDownloadManagerService extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ResultSetService.java	(revision 46897)
@@ -0,0 +1,35 @@
+package eu.dnetlib.api.enabling;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ResultSetService extends DriverService {
+
+	EPR createPullRSEPR(EPR dataProviderEPR, String bdId, int initialPageSize,
+			int expiryTime, String styleSheet, Integer keepAliveTime,
+			Integer total);
+
+	EPR createPullRS(String dataProviderServiceAddress, String bdId,
+			int initialPageSize, int expiryTime, String styleSheet,
+			Integer keepAliveTime, Integer total);
+
+	void closeRS(String rsId);
+
+	List<String> getResult(String rsId, int fromPosition, int toPosition,
+			String requestMode) throws ResultSetServiceException;
+
+	int getNumberOfElements(String rsId) throws ResultSetServiceException;
+
+	EPR createPushRS(int expiryTime, int keepAliveTime)
+			throws ResultSetServiceException;
+
+	String populateRS(String rsId, List<String> elements)
+			throws ResultSetServiceException;
+
+	String getRSStatus(String rsId) throws ResultSetServiceException;
+
+	String getProperty(String rsId, String name)
+			throws ResultSetServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ConversionServiceException.java	(revision 46897)
@@ -0,0 +1,20 @@
+package eu.dnetlib.api.functionality;
+
+@SuppressWarnings("serial")
+public class ConversionServiceException extends Exception {
+	public ConversionServiceException() {
+		super();
+	}
+	
+	public ConversionServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ConversionServiceException(String message) {
+		super(message);
+	}
+	
+	public ConversionServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/enabling/ISLookUpServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.enabling;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ISLookUpServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 2971319868850757633L;
+
+	public ISLookUpServiceException() {
+		super();
+	}
+
+	public ISLookUpServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+	
+	public ISLookUpServiceException(String message) {
+		super(message);
+	}
+
+	public ISLookUpServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorService.java	(revision 46897)
@@ -0,0 +1,9 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.EPR;
+
+public interface ValidatorService extends DriverService {
+
+	public EPR validate(EPR datasource);
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ConversionService.java	(revision 46897)
@@ -0,0 +1,26 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.ConversionStatus;
+
+public interface ConversionService extends DriverService { 
+	
+	/**
+	 * Adds a conversion job
+	 * @param fileUrl the url of the file to be converted
+	 * @param format the desired format 
+	 * @return the {@link ConversionStatus} of the conversion job
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus addJob(String fileUrl, String format)  
+				throws ConversionServiceException;
+	/**
+	 * The {@link ConversionStatus} of a conversion job 
+	 * @param conversionId the id of the conversion job
+	 * @return the {@link ConversionStatus}  
+	 * @throws ConversionServiceException
+	 */
+	public ConversionStatus getStatus(String conversionId) 
+				throws ConversionServiceException;
+	
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RecommendationService.java	(revision 46897)
@@ -0,0 +1,348 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Recommendation;
+
+/**
+ * The class that manages Recommendation objects
+ */
+public interface RecommendationService extends DriverService {
+
+	/**
+	 * creates a new recommendation of type announcement
+	 * 
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the date the announcement expires
+	 * @return the id of the new recommendation
+	 * @throws RecommendationWebServiceException
+	 *             if the announcement cannot be created
+	 */
+	public String generateAnnouncement(int index, boolean active,
+			String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 announcements
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapAnnouncements(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+
+	/**
+	 * Swap the index of 2 user recommendaitons
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapUserRecommendations(String announcementId1, String announcementId2) 
+			throws RecommendationServiceException;;
+		
+	/**
+	 * Swap the index of 2 community recommendations
+	 * 
+	 * @param announcementId1
+	 *            the id of the fist announcement
+	 * @param announcementId2
+	 *            the id of the second announcement
+	 */
+	public void swapCommunityRecommendations(String announcementId1, String announcementId2)
+			throws RecommendationServiceException;
+		
+	/**
+	 * creates a new recommendation
+	 * 
+	 * @param index
+	 *            the recommendation index
+	 * @param active
+	 *            the state of the recommendaiton, is it active or not #param
+	 *            title the title of the recommendation
+	 * @param rText
+	 *            the recommendation text
+	 * @param creationDate
+	 *            the date the recommendation was created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation cannot be created
+	 */
+	public Recommendation generateRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate) throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type community
+	 * 
+	 * @param recommendationText
+	 *            the recommendation text
+	 * @param creationDate
+	 * @param expirationDate
+	 * @param communityId
+	 *            the ids of the associated communities
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the community recommendation cannot be created
+	 */
+	public String generateCommunityRecommendation(int index, boolean active,
+			String title, String recommendationText, Date creationDate,
+			Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * creates a new recommendation of type user
+	 * 
+	 * @param recommendationText
+	 * @param creationDate
+	 * @param expirationDate
+	 * @return the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the user recommendation cannot be created
+	 */
+	public String generateUserRecommendation(int index, boolean active,
+			String title, String userId, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements that haven't
+	 * expired
+	 * 
+	 * @return the announcements' recommendation text
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves ths ids of all announcements
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllAnnouncementIds()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of all announcements
+	 * 
+	 * @return the recommendation text of all announcements
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllAnnouncements()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, only the content
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations()
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all recommendations of type community, the objects
+	 * 
+	 * @return the recommendation text of all community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj()
+			throws RecommendationServiceException;
+
+	public List<String> getCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	public List<Recommendation> getCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation content that are associated with a
+	 * community
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getAllCommunityRecommendations(String communityId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves all community recommendation objects that are associated with a
+	 * community.
+	 * 
+	 * @param communityId
+	 *            the id of the community
+	 * @return the recommendation text of the community recommendations
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getAllCommunityRecommendationsObj(
+			String communityId) throws RecommendationServiceException;
+
+	public List<String> getAllUserRecommendations(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the recommendation id
+	 * @return the recommendation or null if the recommendation does not exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+
+	public Recommendation getRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the text of a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @return the recommendation text or null if the recommendation does not
+	 *         exist
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public String getRecommendationText(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * retrieves the recommendation text of a Set of recommendations
+	 * 
+	 * @param recommendationIds
+	 *            the ids of the recommendations
+	 * @return a Set of the recommendations' text
+	 * @throws RecommendationServiceException
+	 * 
+	 */
+	public List<String> getRecommendations(List<String> recommendationIds)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void removeRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type announcement
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement does not exist or cannot be updated
+	 */
+	public void removeAnnouncement(String announcementId)
+			throws RecommendationServiceException;
+
+	/**
+	 * removes a recommendation of type community
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param communityId
+	 *            the id of the community
+	 * @throws RecommendationServiceException
+	 */
+	public void removeCommunityRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	public void removeUserRecommendation(String recommendationId)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates a recommendation
+	 * 
+	 * @param recommendationId
+	 *            the id of the recommendation
+	 * @param recommendationText
+	 *            the text of the recommendation
+	 * @param creationDate
+	 *            the date the recommendation is created
+	 * @param expirationDate
+	 *            the date the recommendation expires
+	 * @throws RecommendationServiceException
+	 *             if the recommendation does not exist or cannot be updated
+	 */
+	public void updateRecommendation(String recommendationId, int index,
+			boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	/**
+	 * updates an announcement and the corresponding recommendation
+	 * 
+	 * @param announcementId
+	 *            the id of the announcement
+	 * @param recommendationText
+	 *            the text of the corresponding recommendation
+	 * @param creationDate
+	 *            the creation date of the announcement
+	 * @param expirationDate
+	 *            the expiration date of the announcement
+	 * @throws RecommendationServiceException
+	 *             if the announcement recommendation does not exist or cannot
+	 *             be updated
+	 */
+	public void updateAnnouncement(String announcementId, int index,
+			boolean active, String announcementTitle, String announcementText,
+			Date creationDate, Date expirationDate)
+			throws RecommendationServiceException;
+
+	public void updateCommunityRecommendation(String recommendationId,
+			int index, boolean active, String title, String recommendationText,
+			Date creationDate, Date expirationDate, Set<String> communityIds)
+			throws RecommendationServiceException;
+
+	/*
+	 * /** sends an e-mail to all users with the recommendation text of an
+	 * announcement
+	 * 
+	 * @param announcementId the id of the announcement @throws
+	 * RecommendationServiceException if the announcement or recommendation does
+	 * not exist
+	 * 
+	 * public void sendAnnouncement( String announcementId ) throws
+	 * RecommendationServiceException;
+	 */
+
+	public void addRecommendationToUser(String recommendationId, String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<String> getCommunityRecommendationsForUser(String userId)
+			throws RecommendationServiceException;
+
+	/**
+	 * gets all the community recommendation objects for a specific user
+	 * 
+	 * @throws RecommendationServiceException
+	 */
+	public List<Recommendation> getCommunityRecommendationsForUserObj(
+			String userId) throws RecommendationServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/MadgikValidator.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface MadgikValidator extends DriverService {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RatingService.java	(revision 46897)
@@ -0,0 +1,54 @@
+package eu.dnetlib.api.functionality;
+
+import java.util.List;
+
+import eu.dnetlib.api.DriverService;
+import eu.dnetlib.domain.functionality.Rating;
+
+/**
+ * This interface describes the methods available for a rating service.
+ * @author thanos@di.uoa.gr
+ *
+ */
+public interface RatingService extends DriverService {
+	/**
+	 * Rate a document by a specifed user.
+	 * @param userId the id of the user
+	 * @param documentId the id of the document
+	 * @param score the rating score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public void rate(String userId, String documentId, float score) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by user.
+	 * @param userId the id of the user
+	 * @return a list containing all the ratings of the specified user ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByUser(String userId) throws RatingServiceException;
+	
+	/**
+	 * Search for existing ratings by document.
+	 * @param documentId the id of the document
+	 * @return a list containing all the ratings of the soecified document ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> searchRatingsByDocument(String documentId) throws RatingServiceException;
+	
+	/**
+	 * Get the top ratings.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopRatings(int limit) throws RatingServiceException;
+	
+	/**
+	 * Get the top documents.
+	 * @param limit the maximum number of ratings to retrieve
+	 * @return a list containing the top document average ratings ordered by score
+	 * @throws RatingServiceException if any errors occur
+	 */
+	public List<Rating> getTopDocuments(int limit) throws RatingServiceException;
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorUserInterfaceService.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorUserInterfaceService.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorUserInterfaceService.java	(revision 46897)
@@ -0,0 +1,7 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverService;
+
+public interface ValidatorUserInterfaceService extends DriverService {
+	public boolean reloadRepositoryFile();
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/RatingServiceException.java	(revision 46897)
@@ -0,0 +1,42 @@
+package eu.dnetlib.api.functionality;
+
+public class RatingServiceException extends Exception {
+
+	/**
+	 * Used for serialization / deserialization.
+	 */
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * Create a new rating service exception.
+	 *
+	 */
+	public RatingServiceException() {
+		super();
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message.
+	 * @param message the error message
+	 */
+	public RatingServiceException(String message) {
+		super(message);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified cause.
+	 * @param cause the cause
+	 */
+	public RatingServiceException(Throwable cause) {
+		super(cause);
+	}
+	
+	/**
+	 * Create a new rating service exception with the specified error message and cause.
+	 * @param message the error message
+	 * @param cause the cause
+	 */
+	public RatingServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/ValidatorServiceException.java	(revision 46897)
@@ -0,0 +1,27 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class ValidatorServiceException extends DriverServiceException {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public ValidatorServiceException() {
+		super();
+	}
+
+	public ValidatorServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public ValidatorServiceException(String message) {
+		super(message);
+	}
+
+	public ValidatorServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/UserProfileServiceException.java	(revision 46897)
@@ -0,0 +1,25 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+public class UserProfileServiceException extends DriverServiceException {
+
+	private static final long serialVersionUID = 8051839588351350465L;
+
+	public UserProfileServiceException() {
+		super();
+	}
+
+	public UserProfileServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public UserProfileServiceException(String message) {
+		super(message);
+	}
+
+	public UserProfileServiceException(Throwable cause) {
+		super(cause);
+	}
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverServiceEndpoint.java	(revision 46897)
@@ -0,0 +1,5 @@
+package eu.dnetlib.api;
+
+public interface DriverServiceEndpoint<S extends DriverService> {
+
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/functionality/CommunityServiceException.java	(revision 46897)
@@ -0,0 +1,24 @@
+package eu.dnetlib.api.functionality;
+
+import eu.dnetlib.api.DriverServiceException;
+
+
+public class CommunityServiceException extends DriverServiceException {
+	private static final long serialVersionUID = 8752304807357459107L;
+
+	public CommunityServiceException() {
+        super();
+    }
+
+    public CommunityServiceException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public CommunityServiceException(String message) {
+        super(message);
+    }
+
+    public CommunityServiceException(Throwable cause) {
+        super(cause);
+    }
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverServiceException.java
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverServiceException.java	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0/src/main/java/eu/dnetlib/api/DriverServiceException.java	(revision 46897)
@@ -0,0 +1,21 @@
+package eu.dnetlib.api;
+
+public class DriverServiceException extends Exception {
+	private static final long serialVersionUID = 1L;
+
+	public DriverServiceException() {
+		super();
+	}
+
+	public DriverServiceException(String message, Throwable cause) {
+		super(message, cause);
+	}
+
+	public DriverServiceException(String message) {
+		super(message);
+	}
+
+	public DriverServiceException(Throwable cause) {
+		super(cause);
+	}
+}
Index: modules/uoa-api/tags/uoa-api-1.0.0
===================================================================
--- modules/uoa-api/tags/uoa-api-1.0.0	(nonexistent)
+++ modules/uoa-api/tags/uoa-api-1.0.0	(revision 46897)

Property changes on: modules/uoa-api/tags/uoa-api-1.0.0
___________________________________________________________________
Added: svn:ignore
## -0,0 +1,4 ##
+.classpath
+.settings
+.project
+target
