diff --git a/apps/dhp-broker-application/src/main/java/eu/dnetlib/lbs/openaire/OpenaireBrokerController.java b/apps/dhp-broker-application/src/main/java/eu/dnetlib/lbs/openaire/OpenaireBrokerController.java index f3e301f4..8534d963 100644 --- a/apps/dhp-broker-application/src/main/java/eu/dnetlib/lbs/openaire/OpenaireBrokerController.java +++ b/apps/dhp-broker-application/src/main/java/eu/dnetlib/lbs/openaire/OpenaireBrokerController.java @@ -1,6 +1,7 @@ package eu.dnetlib.lbs.openaire; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Optional; @@ -20,9 +21,8 @@ import org.elasticsearch.search.aggregations.bucket.nested.ParsedNested; import org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageRequest; -import org.springframework.data.elasticsearch.core.AbstractElasticsearchTemplate; -import org.springframework.data.elasticsearch.core.ElasticSearchScrollUtils; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; +import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate; import org.springframework.data.elasticsearch.core.SearchHit; import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.data.elasticsearch.core.SearchScrollHits; @@ -69,6 +69,8 @@ public class OpenaireBrokerController extends AbstractLbsController { @Autowired private ElasticSearchProperties props; + private static final long SCROLL_TIMEOUT_IN_MILLIS = 5 * 60 * 1000; + private static final Log log = LogFactory.getLog(OpenaireBrokerController.class); @ApiOperation("Return the datasources having events") @@ -230,7 +232,7 @@ public class OpenaireBrokerController extends AbstractLbsController { if (optSub.isPresent()) { - final AbstractElasticsearchTemplate esTemplate = (AbstractElasticsearchTemplate) esOperations; + final ElasticsearchRestTemplate esTemplate = (ElasticsearchRestTemplate) esOperations; final NativeSearchQuery searchQuery = new NativeSearchQueryBuilder() .withQuery(QueryBuilders.matchQuery("subscriptionId", subscrId)) @@ -239,13 +241,12 @@ public class OpenaireBrokerController extends AbstractLbsController { .build(); final SearchScrollHits scroll = - ElasticSearchScrollUtils.startScroll(esTemplate, IndexCoordinates.of(props.getNotificationsIndexName()), searchQuery, Notification.class); - + esTemplate.searchScrollStart(SCROLL_TIMEOUT_IN_MILLIS, searchQuery, Notification.class, IndexCoordinates.of(props.getNotificationsIndexName())); if (scroll.hasSearchHits()) { final List values = calculateEventPayloads(scroll); return new ScrollPage(scroll.getScrollId(), values.isEmpty() || scroll.getScrollId() == null, values); } else { - ElasticSearchScrollUtils.clearScroll(esTemplate, scroll.getScrollId()); + esTemplate.searchScrollClear(Arrays.asList(scroll.getScrollId())); return new ScrollPage(null, true, new ArrayList<>()); } @@ -260,16 +261,15 @@ public class OpenaireBrokerController extends AbstractLbsController { @GetMapping("/scroll/notifications/{scrollId}") public ScrollPage scrollNotifications(@PathVariable final String scrollId) { - final AbstractElasticsearchTemplate esTemplate = (AbstractElasticsearchTemplate) esOperations; + final ElasticsearchRestTemplate esTemplate = (ElasticsearchRestTemplate) esOperations; final SearchScrollHits scroll = - ElasticSearchScrollUtils.continueScroll(esTemplate, IndexCoordinates.of(props.getNotificationsIndexName()), scrollId, Notification.class); - + esTemplate.searchScrollContinue(scrollId, SCROLL_TIMEOUT_IN_MILLIS, Notification.class, IndexCoordinates.of(props.getNotificationsIndexName())); if (scroll.hasSearchHits()) { final List values = calculateEventPayloads(scroll); return new ScrollPage(scroll.getScrollId(), values.isEmpty() || scroll.getScrollId() == null, values); } else { - ElasticSearchScrollUtils.clearScroll(esTemplate, scroll.getScrollId()); + esTemplate.searchScrollClear(Arrays.asList(scroll.getScrollId())); return new ScrollPage(null, true, new ArrayList<>()); } } diff --git a/apps/dhp-broker-application/src/main/java/org/springframework/data/elasticsearch/core/ElasticSearchScrollUtils.java b/apps/dhp-broker-application/src/main/java/org/springframework/data/elasticsearch/core/ElasticSearchScrollUtils.java deleted file mode 100644 index 70762472..00000000 --- a/apps/dhp-broker-application/src/main/java/org/springframework/data/elasticsearch/core/ElasticSearchScrollUtils.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.springframework.data.elasticsearch.core; - -import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; -import org.springframework.data.elasticsearch.core.query.Query; - -public class ElasticSearchScrollUtils { - - private static final long SCROLL_TIMEOUT_IN_MILLIS = 5 * 60 * 1000; - - public static SearchScrollHits startScroll(final AbstractElasticsearchTemplate esTemplate, - final IndexCoordinates index, - final Query searchQuery, - final Class clazz) { - - return esTemplate.searchScrollStart(SCROLL_TIMEOUT_IN_MILLIS, searchQuery, clazz, index); - } - - public static SearchScrollHits continueScroll(final AbstractElasticsearchTemplate esTemplate, - final IndexCoordinates index, - final String scrollId, - final Class clazz) { - return esTemplate.searchScrollContinue(scrollId, SCROLL_TIMEOUT_IN_MILLIS, clazz, index); - } - - public static void clearScroll(final AbstractElasticsearchTemplate esTemplate, final String scrollId) { - esTemplate.searchScrollClear(scrollId); - } -} diff --git a/apps/dhp-broker-application/src/main/resources/application.properties b/apps/dhp-broker-application/src/main/resources/application.properties index df0af44a..23686587 100644 --- a/apps/dhp-broker-application/src/main/resources/application.properties +++ b/apps/dhp-broker-application/src/main/resources/application.properties @@ -26,14 +26,14 @@ lbs.elastic.eventsIndexType = event lbs.elastic.notificationsIndexName = notifications_beta_michele lbs.elastic.notificationsIndexType = notification -lbs.mail.from = lbs-noreply@research-infrastructures.eu +lbs.mail.from = notifications-noreply@openaire.eu lbs.mail.fromName = Literature Broker Service lbs.mail.cc = michele.artini@isti.cnr.it lbs.mail.smtpHost = smtp.isti.cnr.it lbs.mail.smtpPort = 587 lbs.mail.smtpUser = smtp-dnet lbs.mail.smtpPassword = hhr*7932 -lbs.mail.message.template = classpath:/templates/mail.st +lbs.mail.message.template = classpath:/templates/openaire_mail.st lbs.queues.maxReturnedValues = 1000 diff --git a/apps/dhp-broker-application/src/main/resources/templates/openaire_mail.st b/apps/dhp-broker-application/src/main/resources/templates/openaire_mail.st new file mode 100644 index 00000000..4d54418a --- /dev/null +++ b/apps/dhp-broker-application/src/main/resources/templates/openaire_mail.st @@ -0,0 +1,25 @@ +You have received this mail because you are owner of the following subscription: + +
    +
  • Topic: $sub.topic$
  • +
  • Frequency: $sub.frequency$
  • +
  • Mode: $sub.mode$
  • +
+ +
+

+There are $total$ event(s) related to the following publications
+(The list is limited to $max$ events, see the Content Provider Dashboard for all): +

+ +
    +$events:{e| +
  1. + $e.map.targetResultTitle$
    + $e.map.targetAuthors$ +
  2. +}$ +
+ +
+This email message was auto-generated. Please do not respond.