Project

General

Profile

« Previous | Next » 

Revision 28070

added the implementation of method findNextScheduledExecution, see #567

View differences:

modules/dnet-openaireplus-workflows/trunk/pom.xml
31 31
		<dependency>
32 32
			<groupId>eu.dnetlib</groupId>
33 33
			<artifactId>dnet-openaireplus-datasource-manager-service</artifactId>
34
			<version>[3.0.0-SNAPSHOT]</version>
34
			<version>[3.0.1-SNAPSHOT]</version>
35 35
		</dependency>
36 36
		<dependency>
37 37
			<groupId>eu.dnetlib</groupId>
modules/dnet-openaireplus-datasource-manager-service/trunk/src/main/java/eu/dnetlib/enabling/datasources/DatasourceManagerClients.java
1 1
package eu.dnetlib.enabling.datasources;
2 2

  
3 3
import java.io.StringReader;
4
import java.text.ParseException;
5
import java.util.Date;
4 6
import java.util.List;
5 7
import java.util.Map;
6 8
import java.util.regex.Pattern;
......
13 15
import org.apache.commons.logging.LogFactory;
14 16
import org.dom4j.Document;
15 17
import org.dom4j.io.SAXReader;
18
import org.quartz.CronExpression;
16 19
import org.springframework.beans.factory.annotation.Required;
17 20
import org.springframework.core.io.ClassPathResource;
18 21
import org.springframework.core.io.Resource;
......
23 26
import eu.dnetlib.enabling.database.rmi.DatabaseService;
24 27
import eu.dnetlib.enabling.datasources.rmi.DatasourceDesc;
25 28
import eu.dnetlib.enabling.datasources.rmi.DatasourceManagerServiceException;
29
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpDocumentNotFoundException;
30
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpException;
26 31
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
27 32
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryService;
28 33
import eu.dnetlib.enabling.resultset.client.ResultSetClientFactory;
......
254 259

  
255 260
		return !list.isEmpty();
256 261
	}
262
	
263
	public Date findNextScheduledExecution(String dsId, String ifaceId) throws DatasourceManagerServiceException {
264
		final String xquery = "/*[.//DATAPROVIDER/@interface='" + ifaceId + "' and .//SCHEDULING/@enabled='true']//CRON/text()";
265
		try {
266
			final String cronExpression = lookupLocator.getService().getResourceProfileByQuery(xquery);
267
			final CronExpression cron = new CronExpression(cronExpression);
268
			return cron.getNextValidTimeAfter(new Date());
269
		} catch (ISLookUpDocumentNotFoundException e) {
270
			// When the value is not found a null value must be returned
271
			return null;
272
		} catch (ISLookUpException e) {
273
			throw new DatasourceManagerServiceException("Error in xquery: " + xquery, e);
274
		} catch (ParseException e) {
275
			throw new DatasourceManagerServiceException("Error parsing cron expression", e);
276
		}
277
	}
257 278

  
258 279
	public String getDb() {
259 280
		return db;
modules/dnet-openaireplus-datasource-manager-service/trunk/src/main/java/eu/dnetlib/enabling/datasources/DatasourceManagerServiceImpl.java
1 1
package eu.dnetlib.enabling.datasources;
2 2

  
3
import java.util.Date;
3 4
import java.util.HashMap;
4 5
import java.util.List;
5 6
import java.util.Map;
......
234 235
		this.datasourceManagerClients = datasourceManagerClients;
235 236
	}
236 237

  
238
	@Override
239
	public Date findNextScheduledExecution(String dsId, String ifaceId)
240
			throws DatasourceManagerServiceException {
241
		return datasourceManagerClients.findNextScheduledExecution(dsId, ifaceId);
242
	}
243

  
237 244
}
modules/dnet-openaireplus-datasource-manager-service/trunk/pom.xml
9 9
	<groupId>eu.dnetlib</groupId>
10 10
	<artifactId>dnet-openaireplus-datasource-manager-service</artifactId>
11 11
	<packaging>jar</packaging>
12
	<version>3.0.0-SNAPSHOT</version>
12
	<version>3.0.1-SNAPSHOT</version>
13 13
	<dependencies>
14 14
		<dependency>
15 15
			<groupId>eu.dnetlib</groupId>
......
24 24
		<dependency>
25 25
			<groupId>eu.dnetlib</groupId>
26 26
			<artifactId>dnet-datasource-manager-rmi</artifactId>
27
			<version>[3.0.0-SNAPSHOT]</version>
27
			<version>[3.0.1-SNAPSHOT]</version>
28 28
		</dependency>
29 29
		<dependency>
30 30
			<groupId>eu.dnetlib</groupId>

Also available in: Unified diff