Revision 28070
Added by Michele Artini over 10 years ago
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
added the implementation of method findNextScheduledExecution, see #567