From 6e2592004b92140d33c1c31d44f569524c406c08 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Thu, 7 Dec 2023 11:33:02 +0100 Subject: [PATCH] Feature #26194: News Feed portlet: remove elastic search client --- .settings/org.eclipse.wst.common.component | 40 ++++-- CHANGELOG.md | 7 + pom.xml | 126 ++++++------------ .../user/newsfeed/server/NewsServiceImpl.java | 31 ++--- 4 files changed, 89 insertions(+), 115 deletions(-) diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 70c9b0e..0c3f1a8 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,24 +1,44 @@ - + + + - + + + - + + + - + + + - + + + - + + + uses - + + + - + + + - - + + + + + + diff --git a/CHANGELOG.md b/CHANGELOG.md index f325d97..46f1f5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + + +## [v3.0.0-SNAPSHOT] - 2023-12-15 + +- Feature #26194: News Feed portlet: remove elastic search client + ## [v2.8.4] - 2022-05-15 - fixed changelog and README diff --git a/pom.xml b/pom.xml index 37086ad..94e2a7e 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.gcube.portlets.user news-feed war - 2.8.4 + 3.0.0-SNAPSHOT gCube News Feed Portlet @@ -38,7 +38,7 @@ org.gcube.distribution maven-portal-bom - 3.6.4 + 3.7.0-SNAPSHOT pom import @@ -86,6 +86,46 @@ xml-apis 1.4.01 + + org.gcube.portal + social-library-stubs + 1.0.0-SNAPSHOT + provided + + + org.gcube.social-networking + social-service-client + [2.0.0-SNAPSHOT, 3.0.0) + provided + + + org.gcube.socialnetworking + social-util-library + [1.7.2-SNAPSHOT,2.0.0-SNAPSHOT) + compile + + + + org.gcube.portlets.widgets + pickitem-widget + [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) + + + org.gcube.portlets.widgets + image-previewer-widget + [1.1.0-SNAPSHOT, 2.0.0-SNAPSHOT) + + + org.gcube.portal + notifications-common-library + provided + + + org.gcube.portlets.widgets + user-selection-dialog + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) + compile + org.gcube.portlets.user gcube-widgets @@ -129,91 +169,12 @@ com.google gwt-jsonmaker - org.gcube.common common-authorization provided - - org.gcube.portal - social-networking-library - provided - - - com.netflix.astyanax - astyanax-core - provided - - - org.slf4j - log4j-over-slf4j - - - - - com.netflix.astyanax - astyanax-thrift - provided - - - com.netflix.astyanax - astyanax-cassandra - provided - - - org.apache.cassandra - cassandra-all - provided - - - org.apache.cassandra - cassandra-thrift - provided - - - org.apache.thrift - libthrift - - - commons-logging - commons-logging - - - provided - - - org.gcube.socialnetworking - social-util-library - [1.7.2-SNAPSHOT,2.0.0-SNAPSHOT) - compile - - - org.gcube.socialnetworking - social-data-search-client - [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) - - - org.gcube.portlets.widgets - pickitem-widget - [2.0.0-SNAPSHOT, 3.0.0-SNAPSHOT) - - - org.gcube.portlets.widgets - image-previewer-widget - [1.1.0-SNAPSHOT, 2.0.0-SNAPSHOT) - - - org.gcube.portal - notifications-common-library - provided - - - org.gcube.portlets.widgets - user-selection-dialog - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) - compile - + org.gcube.core common-scope-maps @@ -232,7 +193,6 @@ 1.0.3 compile - commons-validator commons-validator diff --git a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java index f9c4d5d..2023e6a 100644 --- a/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/newsfeed/server/NewsServiceImpl.java @@ -52,9 +52,8 @@ import org.gcube.portlets.user.newsfeed.shared.NewsConstants; import org.gcube.portlets.user.newsfeed.shared.OperationResult; import org.gcube.portlets.user.newsfeed.shared.UserSettings; import org.gcube.portlets.widgets.pickitem.shared.ItemBean; +import org.gcube.social_networking.social_networking_client_library.FullTextSearchClient; import org.gcube.social_networking.socialutillibrary.Utils; -import org.gcube.socialnetworking.social_data_search_client.ElasticSearchClient; -import org.gcube.socialnetworking.social_data_search_client.ElasticSearchClientImpl; import org.gcube.socialnetworking.socialtoken.SocialMessageParser; import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.RoleManager; @@ -101,23 +100,12 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService */ private DatabookStore store; - /** - * Elasticsearch client - */ - private ElasticSearchClient escl; + private final static int MAX_POSTS_NO = 30; public void init() { store = new DBCassandraAstyanaxImpl(); - try { - escl = new ElasticSearchClientImpl(null); - _log.info("Elasticsearch connection created"); - } catch (Exception e) { - escl = null; - _log.error("Unable to create elasticsearch client connection!!!", e); - } - APP_ID = this.getClass().getName(); } @@ -345,12 +333,8 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService @Override public ArrayList getPostsByQuery(String query, int from, int quantity) { - // TODO : check this error better - if(escl == null){ - _log.warn("There is no connection to elasticsearch, sorry."); - return null; - } - + _log.debug("\n\n IN getPostsByQuery "); + PortalContext pContext = PortalContext.getConfiguration(); String userName = pContext.getCurrentUser(getThreadLocalRequest()).getUsername(); String currentScope = pContext.getCurrentScope(getThreadLocalRequest()); @@ -384,11 +368,14 @@ public class NewsServiceImpl extends RemoteServiceServlet implements NewsService vres.add(currentScope); } + FullTextSearchClient sClient = new FullTextSearchClient(); + List enhancedFeeds = sClient.search(query, from, quantity); + // query elastic search - List enhancedFeeds = escl.search(query, vres, from, quantity); + //escl.search(query, vres, from, quantity); // retrieve the ids of liked posts by the user - List likedPosts = store.getAllLikedFeedIdsByUser(userName); + List likedPosts = store.getAllLikedPostIdsByUser(userName); // update fields "liked" and "isuser" for (EnhancedFeed enhancedFeed : enhancedFeeds) {