From 5af0f6a841844e65d458768b12ca911b9189bf11 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Fri, 7 Oct 2022 13:38:56 +0300 Subject: [PATCH 1/6] Updated parent in pom.xml and moved to log4j2 --- pom.xml | 109 ++++-------------- .../AdminToolsCheckDeployController.java | 5 +- .../controllers/BrowserCacheController.java | 7 +- .../controllers/CommunityController.java | 5 +- .../controllers/ConnectController.java | 5 +- .../controllers/CuratorController.java | 5 +- .../controllers/EmailController.java | 5 +- .../controllers/ExploreController.java | 5 +- .../controllers/MenuController.java | 5 +- .../controllers/NotificationsController.java | 5 +- .../PortalSubscribersController.java | 5 +- .../controllers/SubscriberController.java | 5 +- .../services/CuratorService.java | 5 +- .../uoaadmintools/services/LayoutService.java | 5 +- .../uoaadmintools/services/MenuService.java | 5 +- .../services/NotificationsService.java | 5 +- .../services/StatisticsService.java | 5 +- .../services/SubscriberService.java | 5 +- src/main/resources/log4j.properties | 20 ---- src/main/resources/log4j2.xml | 39 +++++++ 20 files changed, 113 insertions(+), 142 deletions(-) delete mode 100644 src/main/resources/log4j.properties create mode 100644 src/main/resources/log4j2.xml diff --git a/pom.xml b/pom.xml index 4df8163..614d0f8 100644 --- a/pom.xml +++ b/pom.xml @@ -7,17 +7,14 @@ 2.0.5-SNAPSHOT war uoa-admin-tools - - org.springframework.boot - spring-boot-starter-parent - 1.5.8.RELEASE - + eu.dnetlib + uoa-spring-boot-parent + 1.0.0-SNAPSHOT UTF-8 UTF-8 - 1.8 ${maven.build.timestamp} E MMM dd HH:mm:ss z yyyy @@ -26,77 +23,39 @@ org.springframework.boot spring-boot-starter-data-mongodb - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-logging - - - - - - org.springframework.boot - spring-boot-starter-tomcat - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-security - - - - log4j - log4j - 1.2.17 - - - com.google.code.gson - gson - 2.8.2 - javax.mail mail 1.5.0-b01 - - commons-io - commons-io - 20030203.000550 - + + + + + eu.dnetlib uoa-admin-tools-library - 1.0.5 + 1.0.6-SNAPSHOT - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - + org.springframework.boot + spring-boot-maven-plugin + + eu.dnetlib.uoaadmintools.UoaAdminToolsApplication + true + + + + + repackage + + + + org.apache.maven.plugins maven-war-plugin @@ -107,27 +66,5 @@ uoa-admin-tools - - - src/main/resources - true - - - - - - dnet45-releases - D-Net 45 Releases - http://maven.research-infrastructures.eu/nexus/content/repositories/dnet45-releases - - true - - - false - - default - - - diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java index cd91dd8..dd2706c 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java @@ -7,7 +7,8 @@ import eu.dnetlib.uoaadmintools.configuration.GlobalVars; import eu.dnetlib.uoaadmintools.configuration.mongo.MongoConnection; import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig; import eu.dnetlib.uoaadmintools.configuration.properties.MongoConfig; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.security.access.prepost.PreAuthorize; @@ -23,7 +24,7 @@ import java.util.Map; @RestController @CrossOrigin(origins = "*") public class AdminToolsCheckDeployController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private MongoConnection mongoConnection; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java index 6b78e6f..dc4bb3a 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java @@ -1,19 +1,18 @@ package eu.dnetlib.uoaadmintools.controllers; import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.ResourceAccessException; import org.springframework.web.client.RestTemplate; @RestController @RequestMapping("/cache") @CrossOrigin(origins = "*") public class BrowserCacheController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private RestTemplate restTemplate; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java index 2e1ef8b..f09979c 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java @@ -8,7 +8,8 @@ import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -19,7 +20,7 @@ import java.util.List; @RequestMapping("/community") @CrossOrigin(origins = "*") public class CommunityController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private RolesUtils rolesUtils; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java index 9420b5b..3da4d68 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java @@ -7,7 +7,8 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.fullEntities.PortalResponse; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -18,7 +19,7 @@ import java.util.List; @RequestMapping("/connect") @CrossOrigin(origins = "*") public class ConnectController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private LayoutService layoutService; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java index 6a46990..02bac7e 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintools.entities.curator.CuratorResponse; import eu.dnetlib.uoaadmintools.services.CuratorService; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -15,7 +16,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class CuratorController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private CuratorService curatorService; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java index 6153771..291e839 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java @@ -12,7 +12,8 @@ import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.InvalidReCaptchaException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; import eu.dnetlib.uoaadmintoolslibrary.recaptcha.VerifyRecaptcha; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -21,7 +22,7 @@ import java.util.*; @RestController @CrossOrigin(origins = "*") public class EmailController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private EmailSender emailSender; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java index 9b8ac06..a9b06c0 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.fullEntities.PortalResponse; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -17,7 +18,7 @@ import java.util.List; @CrossOrigin(origins = "*") @PreAuthorize("hasAnyAuthority(@AuthorizationService.PORTAL_ADMIN)") public class ExploreController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private PortalService portalService; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java index 7110434..a4f2071 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java @@ -10,7 +10,8 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.Portal; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -20,7 +21,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class MenuController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private MenuService menuService; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java index 75fac21..ddf021c 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java @@ -7,7 +7,8 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.Portal; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -20,7 +21,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class NotificationsController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private NotificationsDAO notificationsDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java index 05ce988..86356ae 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintools.entities.subscriber.PortalSubscribers; import eu.dnetlib.uoaadmintoolslibrary.dao.PortalDAO; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.responses.SingleValueWrapperResponse; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -26,7 +27,7 @@ public class PortalSubscribersController { // @Autowired // private SecurityConfig securityConfig; - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @RequestMapping(value = "/community/{pid}/subscribers/count", method = RequestMethod.GET) public SingleValueWrapperResponse getNumberOfSubscribersPerPortal(@PathVariable(value="pid", required = true) String pid) throws ContentNotFoundException { diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java index 9510a55..f42a32b 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java @@ -3,7 +3,8 @@ package eu.dnetlib.uoaadmintools.controllers; import eu.dnetlib.uoaadmintools.dao.SubscriberDAO; import eu.dnetlib.uoaadmintools.entities.subscriber.Subscriber; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -15,7 +16,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class SubscriberController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private SubscriberDAO subscriberDAO; @RequestMapping(value = "/subscriber", method = RequestMethod.GET) diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java index 85e5247..cfe78ad 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintools.dao.CuratorDAO; import eu.dnetlib.uoaadmintools.entities.Manager; import eu.dnetlib.uoaadmintools.entities.curator.Curator; import eu.dnetlib.uoaadmintools.entities.curator.CuratorResponse; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,7 +16,7 @@ import java.util.List; @Service public class CuratorService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private CuratorDAO curatorDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java index 429acb7..a110d14 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java @@ -3,15 +3,16 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.LayoutDAO; import eu.dnetlib.uoaadmintools.entities.Layout; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.apache.logging.log4j.LogManager; import java.util.List; @Service public class LayoutService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private LayoutDAO layoutDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java index fbec4ed..c65a5b2 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java @@ -8,7 +8,8 @@ import eu.dnetlib.uoaadmintools.entities.menu.MenuItem; import eu.dnetlib.uoaadmintools.entities.menu.MenuItemFull; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,7 +18,7 @@ import java.util.List; @Service public class MenuService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private MenuDAO menuDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java index 81ec8db..7442679 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java @@ -2,7 +2,8 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.NotificationsDAO; import eu.dnetlib.uoaadmintools.entities.Notifications; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -10,7 +11,7 @@ import java.util.List; @Service public class NotificationsService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private NotificationsDAO notificationsDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java index afccd59..001445e 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java @@ -2,13 +2,14 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.StatisticsDAO; import eu.dnetlib.uoaadmintools.entities.statistics.Statistics; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class StatisticsService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private StatisticsDAO statisticsDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java index 798a032..235e4a5 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java @@ -2,13 +2,14 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.PortalSubscribersDAO; import eu.dnetlib.uoaadmintools.entities.subscriber.PortalSubscribers; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class SubscriberService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private PortalSubscribersDAO portalSubscribersDAO; diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties deleted file mode 100644 index de1e5d7..0000000 --- a/src/main/resources/log4j.properties +++ /dev/null @@ -1,20 +0,0 @@ -log4j.rootLogger = DEBUG, R - -log4j.logger.eu.dnetlib = DEBUG -log4j.logger.org.springframework = DEBUG, S - -log4j.additivity.org.springframework = false - -log4j.appender.R=org.apache.log4j.RollingFileAppender -log4j.appender.R.File=/var/log/dnet/uoa-admin-tools/uoa-admin-tools.log -log4j.appender.R.MaxFileSize=10MB -log4j.appender.R.MaxBackupIndex=10 -log4j.appender.R.layout=org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n - -log4j.appender.S=org.apache.log4j.RollingFileAppender -log4j.appender.S.File=/var/log/dnet/uoa-admin-tools/uoa-admin-tools-spring.log -log4j.appender.S.MaxFileSize=10MB -log4j.appender.S.MaxBackupIndex=10 -log4j.appender.S.layout=org.apache.log4j.PatternLayout -log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..4ec29fc --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,39 @@ + + + + + %d %p %t [%c] - %m%n + + + + + + + ${LOG_PATTERN} + + + + + + + + + ${LOG_PATTERN} + + + + + + + + + + + + + + + + \ No newline at end of file From 031192b9fb810ce816f4f67b659c26e3c659294e Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Mon, 10 Oct 2022 13:52:19 +0300 Subject: [PATCH 2/6] [Admin Tools | log4j2]: Added swagger | log4j2.xml: Updated log4j settings - default file is spring log file | pom.xml: Added scm & updated version of libraries and parent. --- pom.xml | 20 ++++- .../UoaAdminToolsApplication.java | 3 +- .../configuration/SwaggerConfig.java | 86 +++++++++++++++++++ .../properties/APIProperties.java | 38 ++++++++ src/main/resources/admintools.properties | 5 ++ src/main/resources/log4j2.xml | 8 +- 6 files changed, 152 insertions(+), 8 deletions(-) create mode 100644 src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java create mode 100644 src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/APIProperties.java diff --git a/pom.xml b/pom.xml index 614d0f8..c5f25d8 100644 --- a/pom.xml +++ b/pom.xml @@ -2,15 +2,17 @@ 4.0.0 - eu.dnetlib uoa-admin-tools 2.0.5-SNAPSHOT war uoa-admin-tools + + scm:git:gitea@code-repo.d4science.org:MaDgIK/uoa-monitor-service.git + eu.dnetlib uoa-spring-boot-parent - 1.0.0-SNAPSHOT + 1.0.0 UTF-8 @@ -36,7 +38,19 @@ eu.dnetlib uoa-admin-tools-library - 1.0.6-SNAPSHOT + 1.0.6 + + + + io.springfox + springfox-swagger2 + ${swagger-version} + + + + io.springfox + springfox-swagger-ui + ${swagger-version} diff --git a/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java b/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java index c9e5dee..808e13e 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java @@ -2,6 +2,7 @@ package eu.dnetlib.uoaadmintools; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.uoaadmintools.configuration.GlobalVars; +import eu.dnetlib.uoaadmintools.configuration.properties.APIProperties; import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig; import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig; import eu.dnetlib.uoaadmintools.configuration.properties.MongoConfig; @@ -24,7 +25,7 @@ import org.springframework.web.client.RestTemplate; @PropertySource("classpath:admintools.properties"), @PropertySource(value = "classpath:dnet-override.properties", ignoreResourceNotFound = true) }) -@EnableConfigurationProperties({MongoConfig.class, ManagersApiConfig.class, BrowserCacheConfig.class, GlobalVars.class}) +@EnableConfigurationProperties({MongoConfig.class, ManagersApiConfig.class, BrowserCacheConfig.class, GlobalVars.class, APIProperties.class}) @Import({AuthorizationConfiguration.class, UoaAdminToolsLibraryConfiguration.class}) public class UoaAdminToolsApplication { diff --git a/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java b/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java new file mode 100644 index 0000000..8f31d38 --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java @@ -0,0 +1,86 @@ +package eu.dnetlib.uoaadmintools.configuration; + +import eu.dnetlib.uoaadmintools.configuration.properties.APIProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.Collections; +import java.util.List; + +/** + * Swagger configuration class + */ +@Configuration +@Profile({"swagger"}) +@EnableSwagger2 +public class SwaggerConfig extends WebMvcConfigurerAdapter { + + private final APIProperties apiProperties; + + @Autowired + public SwaggerConfig(APIProperties apiProperties) { + this.apiProperties = apiProperties; + } + + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) +// .globalOperationParameters(globalParameterList()) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title(this.apiProperties.getTitle()) + .description(this.apiProperties.getDescription()) + .version(this.apiProperties.getVersion()) + .build(); + } + + private List globalParameterList() { + Parameter authTokenHeader = new ParameterBuilder() + .name("Session") // name of the header + .modelRef(new ModelRef("string")) // data-type of the header + .required(false) + .parameterType("header") + .description("Session ID") + .build(); + return Collections.singletonList(authTokenHeader); + } + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addRedirectViewController("/v2/api-docs", "/v2/api-docs"); + registry.addRedirectViewController("/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui"); + registry.addRedirectViewController("/swagger-resources/configuration/security", "/swagger-resources/configuration/security"); + registry.addRedirectViewController("/swagger-resources", "/swagger-resources"); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + +} + diff --git a/src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/APIProperties.java b/src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/APIProperties.java new file mode 100644 index 0000000..41c16dd --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/APIProperties.java @@ -0,0 +1,38 @@ +package eu.dnetlib.uoaadmintools.configuration.properties; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties("api") +public class APIProperties { + + private String title; + private String description; + private String version; + + public APIProperties() { + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } +} diff --git a/src/main/resources/admintools.properties b/src/main/resources/admintools.properties index 01e6a0b..fee81cb 100644 --- a/src/main/resources/admintools.properties +++ b/src/main/resources/admintools.properties @@ -50,3 +50,8 @@ admintool.cache.url = https://beta.{community}.openaire.eu/purge/ #admintool.mongodb.database=openaireconnect #admintool.mongodb.username=dnet8480 #admintool.mongodb.password= + +#static properties +api.title = Uoa Admin Tools Documentation Swagger +api.description = Uoa Admin Tools is a service which is saving and serving helptexts and dynamic content +api.version = ${project.version} \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index 4ec29fc..ad623b7 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -29,11 +29,11 @@ - - - - + + + + \ No newline at end of file From 708e59f1e196abc7f24ec3a41de8aef48f0f616c Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Thu, 20 Oct 2022 10:27:53 +0300 Subject: [PATCH 3/6] [Admin Tools | log4j2]: SwaggerConfig.java: Updated swagger to separate libraries to folders. --- .../configuration/SwaggerConfig.java | 194 ++++++++++-------- 1 file changed, 108 insertions(+), 86 deletions(-) diff --git a/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java b/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java index 8f31d38..a9091bb 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java @@ -1,86 +1,108 @@ -package eu.dnetlib.uoaadmintools.configuration; - -import eu.dnetlib.uoaadmintools.configuration.properties.APIProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.ParameterBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.schema.ModelRef; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Parameter; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -import java.util.Collections; -import java.util.List; - -/** - * Swagger configuration class - */ -@Configuration -@Profile({"swagger"}) -@EnableSwagger2 -public class SwaggerConfig extends WebMvcConfigurerAdapter { - - private final APIProperties apiProperties; - - @Autowired - public SwaggerConfig(APIProperties apiProperties) { - this.apiProperties = apiProperties; - } - - - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) -// .globalOperationParameters(globalParameterList()) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.any()) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title(this.apiProperties.getTitle()) - .description(this.apiProperties.getDescription()) - .version(this.apiProperties.getVersion()) - .build(); - } - - private List globalParameterList() { - Parameter authTokenHeader = new ParameterBuilder() - .name("Session") // name of the header - .modelRef(new ModelRef("string")) // data-type of the header - .required(false) - .parameterType("header") - .description("Session ID") - .build(); - return Collections.singletonList(authTokenHeader); - } - - @Override - public void addViewControllers(ViewControllerRegistry registry) { - registry.addRedirectViewController("/v2/api-docs", "/v2/api-docs"); - registry.addRedirectViewController("/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui"); - registry.addRedirectViewController("/swagger-resources/configuration/security", "/swagger-resources/configuration/security"); - registry.addRedirectViewController("/swagger-resources", "/swagger-resources"); - } - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html"); - registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); - } - -} - +package eu.dnetlib.uoaadmintools.configuration; + +import eu.dnetlib.uoaadmintools.configuration.properties.APIProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.Collections; +import java.util.List; + +/** + * Swagger configuration class + */ +@Configuration +@Profile({"swagger"}) +@EnableSwagger2 +public class SwaggerConfig extends WebMvcConfigurerAdapter { + + private final APIProperties apiProperties; + + @Autowired + public SwaggerConfig(APIProperties apiProperties) { + this.apiProperties = apiProperties; + } + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) +// .globalOperationParameters(globalParameterList()) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaadmintools.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + @Bean + public Docket createRestApiLibrary() { + return new Docket(DocumentationType.SWAGGER_2) +// .globalOperationParameters(globalParameterList()) + .apiInfo(apiInfo()) + .groupName("Library") + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaadmintoolslibrary.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + @Bean + public Docket createRestApiAuthorizationLibrary() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .groupName("Authorization Library") + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaauthorizationlibrary.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title(this.apiProperties.getTitle()) + .description(this.apiProperties.getDescription()) + .version(this.apiProperties.getVersion()) + .build(); + } + + private List globalParameterList() { + Parameter authTokenHeader = new ParameterBuilder() + .name("Session") // name of the header + .modelRef(new ModelRef("string")) // data-type of the header + .required(false) + .parameterType("header") + .description("Session ID") + .build(); + return Collections.singletonList(authTokenHeader); + } + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addRedirectViewController("/v2/api-docs", "/v2/api-docs"); + registry.addRedirectViewController("/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui"); + registry.addRedirectViewController("/swagger-resources/configuration/security", "/swagger-resources/configuration/security"); + registry.addRedirectViewController("/swagger-resources", "/swagger-resources"); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + +} + From 6ee562dcb2152dd51830089a25a4d6d21a12560c Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Thu, 20 Oct 2022 10:51:34 +0300 Subject: [PATCH 4/6] Fix scm developer correction url --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c5f25d8..141da51 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ war uoa-admin-tools - scm:git:gitea@code-repo.d4science.org:MaDgIK/uoa-monitor-service.git + scm:git:gitea@code-repo.d4science.org:MaDgIK/uoa-admin-tools.git eu.dnetlib From 22d010c096ebf8ee9f4632634b30671d462fce91 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Tue, 8 Nov 2022 15:24:35 +0200 Subject: [PATCH 5/6] [Admin Tools | log4j2]: AdminToolsCheckDeployController.java: In /health_check/advanced method added admintool.cache.url. --- .../controllers/AdminToolsCheckDeployController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java index dd2706c..6a0efba 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java @@ -5,6 +5,7 @@ import com.mongodb.CommandResult; import com.mongodb.DBObject; import eu.dnetlib.uoaadmintools.configuration.GlobalVars; import eu.dnetlib.uoaadmintools.configuration.mongo.MongoConnection; +import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig; import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig; import eu.dnetlib.uoaadmintools.configuration.properties.MongoConfig; import org.apache.logging.log4j.LogManager; @@ -35,6 +36,9 @@ public class AdminToolsCheckDeployController { @Autowired private ManagersApiConfig managersApiConfig; + @Autowired + private BrowserCacheConfig browserCacheConfig; + @Autowired private GlobalVars globalVars; @@ -68,6 +72,8 @@ public class AdminToolsCheckDeployController { response.put("admintool.managers.api.id", managersApiConfig.getId()); response.put("admintool.managers.api.email", managersApiConfig.getEmail()); + response.put("admintool.cache.url", browserCacheConfig.getUrl()); + if(globalVars.date != null) { response.put("Date of deploy", globalVars.date.toString()); } From 4f62befa7411ab5f7d190e5046e2ecbb2fb46a86 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Fri, 9 Dec 2022 15:01:00 +0200 Subject: [PATCH 6/6] [Admin Tools | log4j2]: Allow curators with profile to be invisible in the Gateway | Dynamically align custom menu. 1. Curator.java & CuratorResponse.java: Added field private boolean visible = true; to allow curators have a profile but not be visible in the Gateway. 2. CuratorService.java: In method "getCurators()" called by /{pid}/curator, return curators that have a profile and the profile is visible. 3. MenuAlignment.java: Enum created for menu alignment options. 4. Menu.java & MenuFull.java: Added field public MenuAlignment featuredAlignment = MenuAlignment.CENTER; to allow dynamic alignment of the Gateway custom menu. 5. MenuController.java: Added api method "alignMenu()" (/community/{pid}/menu/align), to change alignment of the custom menu. 6. MenuService.java: Added method "alignMenu()" | Set featuredAlignment field (default to "CENTER"). --- .../controllers/MenuController.java | 14 ++++++++++---- .../entities/curator/Curator.java | 9 +++++++++ .../entities/curator/CuratorResponse.java | 9 +++++++++ .../uoaadmintools/entities/menu/Menu.java | 18 ++++++++++++++++++ .../entities/menu/MenuAlignment.java | 5 +++++ .../uoaadmintools/entities/menu/MenuFull.java | 17 +++++++++++++++++ .../uoaadmintools/services/CuratorService.java | 2 +- .../uoaadmintools/services/MenuService.java | 14 ++++++++++---- 8 files changed, 79 insertions(+), 9 deletions(-) create mode 100644 src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuAlignment.java diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java index a4f2071..2120169 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java @@ -1,9 +1,6 @@ package eu.dnetlib.uoaadmintools.controllers; -import eu.dnetlib.uoaadmintools.entities.menu.Menu; -import eu.dnetlib.uoaadmintools.entities.menu.MenuFull; -import eu.dnetlib.uoaadmintools.entities.menu.MenuItem; -import eu.dnetlib.uoaadmintools.entities.menu.MenuItemFull; +import eu.dnetlib.uoaadmintools.entities.menu.*; import eu.dnetlib.uoaadmintools.services.MenuService; import eu.dnetlib.uoaadmintoolslibrary.dao.PortalDAO; import eu.dnetlib.uoaadmintoolslibrary.entities.Portal; @@ -209,4 +206,13 @@ public class MenuController { public Menu toggleMenu(@PathVariable(value = "pid") String pid, @RequestParam String status, @RequestParam(value="featured", required=false) String isFeatured) throws Exception { return menuService.toggleMenu(pid, status, isFeatured); } + + @PreAuthorize("hasAnyAuthority(" + + "@AuthorizationService.PORTAL_ADMIN, " + + "@AuthorizationService.curator('community')," + + "@AuthorizationService.manager('community', #pid))") + @RequestMapping(value = {"/community/{pid}/menu/align"}, method = RequestMethod.POST) + public Menu alignMenu(@PathVariable(value = "pid") String pid, @RequestParam String alignment) throws Exception { + return menuService.alignMenu(pid, alignment); + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java index 41cbe28..c7a9423 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java @@ -16,6 +16,7 @@ public class Curator { private List affiliations; private String photo; private String bio; + private boolean visible = true; public Curator() {} @@ -66,4 +67,12 @@ public class Curator { public void setBio(String bio) { this.bio = bio; } + + public boolean isVisible() { + return visible; + } + + public void setVisible(boolean visible) { + this.visible = visible; + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java index 8ddbfd7..08c1278 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java @@ -10,6 +10,7 @@ public class CuratorResponse { private List affiliations; private String photo; private String bio; + private boolean visible = true; public CuratorResponse() { } @@ -52,4 +53,12 @@ public class CuratorResponse { public void setBio(String bio) { this.bio = bio; } + + public boolean isVisible() { + return visible; + } + + public void setVisible(boolean visible) { + this.visible = visible; + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java index d1d2c4d..696c044 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java @@ -14,6 +14,7 @@ public class Menu { public boolean isMenuEnabled; public List featuredMenuItems; public List menuItems; + public MenuAlignment featuredAlignment = MenuAlignment.CENTER; public Menu(String portalPid) { this.setPortalPid(portalPid); @@ -21,6 +22,7 @@ public class Menu { this.setFeaturedMenuEnabled(true); this.setMenuItems(new ArrayList<>()); this.setFeaturedMenuItems(new ArrayList<>()); + this.setFeaturedAlignment(MenuAlignment.CENTER.name()); } public String getPortalPid() { @@ -62,4 +64,20 @@ public class Menu { public void setMenuItems(List menuItems) { this.menuItems = menuItems; } + + public String getFeaturedAlignment() { + if(featuredAlignment == null) { + return null; + } + return featuredAlignment.name(); + } + + public void setFeaturedAlignment(String featuredAlignment) { + if(featuredAlignment == null) { + this.featuredAlignment = null; + } else { + MenuAlignment alignment = MenuAlignment.valueOf(featuredAlignment); + this.featuredAlignment = alignment; + } + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuAlignment.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuAlignment.java new file mode 100644 index 0000000..c976cca --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuAlignment.java @@ -0,0 +1,5 @@ +package eu.dnetlib.uoaadmintools.entities.menu; + +public enum MenuAlignment { + LEFT, CENTER, RIGHT +} diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java index 501d4b0..90a7bbd 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java @@ -8,6 +8,7 @@ public class MenuFull { public boolean isMenuEnabled; public List featuredMenuItems; public List menuItems; + public MenuAlignment featuredAlignment = MenuAlignment.CENTER; public String getPortalPid() { return portalPid; @@ -48,4 +49,20 @@ public class MenuFull { public void setMenuItems(List menuItems) { this.menuItems = menuItems; } + + public String getFeaturedAlignment() { + if(featuredAlignment == null) { + return null; + } + return featuredAlignment.name(); + } + + public void setFeaturedAlignment(String featuredAlignment) { + if(featuredAlignment == null) { + this.featuredAlignment = null; + } else { + MenuAlignment alignment = MenuAlignment.valueOf(featuredAlignment); + this.featuredAlignment = alignment; + } + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java index cfe78ad..a71d219 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java @@ -29,7 +29,7 @@ public class CuratorService { List curators = new ArrayList<>(); for (Manager manager : managerService.getManagers(pid, ManagerService.Type.ID)) { Curator curator = curatorDAO.findById(parseId(manager.getId())); - if (curator != null) { + if (curator != null && curator.isVisible()) { curators.add(new CuratorResponse(curator)); } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java index c65a5b2..bd0c83b 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java @@ -2,10 +2,7 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.MenuDAO; import eu.dnetlib.uoaadmintools.dao.MenuItemDAO; -import eu.dnetlib.uoaadmintools.entities.menu.Menu; -import eu.dnetlib.uoaadmintools.entities.menu.MenuFull; -import eu.dnetlib.uoaadmintools.entities.menu.MenuItem; -import eu.dnetlib.uoaadmintools.entities.menu.MenuItemFull; +import eu.dnetlib.uoaadmintools.entities.menu.*; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import org.apache.logging.log4j.LogManager; @@ -86,6 +83,7 @@ public class MenuService { if(menu == null) { menuFull.setFeaturedMenuEnabled(true); menuFull.setMenuEnabled(true); + menuFull.setFeaturedAlignment(MenuAlignment.CENTER.name()); } else { for (String menuItemId : menu.getFeaturedMenuItems()) { featuredMenuItems.add(getFullRootMenuItemById(menuItemId, portalPid, true)); @@ -97,6 +95,7 @@ public class MenuService { menuFull.setFeaturedMenuEnabled(menu.getIsFeaturedMenuEnabled()); menuFull.setMenuEnabled(menu.getIsMenuEnabled()); + menuFull.setFeaturedAlignment(menu.getFeaturedAlignment()); } menuFull.setPortalPid(portalPid); @@ -366,4 +365,11 @@ public class MenuService { } return menuDAO.save(menu); } + + public Menu alignMenu(String pid, String alignment) { + Menu menu = menuDAO.findByPortalPid(pid); + menu.setFeaturedAlignment(alignment); + + return menuDAO.save(menu); + } }