From a92b2dfe504630d7406e7ccced0cf5e9388ac03a Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Fri, 14 Jan 2022 09:15:26 +0100 Subject: [PATCH] Stabilise OSGi logging and service factories --- org.argeo.cms.jcr/pom.xml | 5 +++++ .../jcr/internal/RepositoryContextsFactory.java | 2 +- org.argeo.cms/OSGI-INF/nodeUserAdmin.xml | 2 +- .../org/argeo/cms/internal/osgi/CmsOsgiLogger.java | 14 +++++++------- .../org/argeo/cms/internal/osgi/NodeUserAdmin.java | 10 +++++++++- sdk/log4j.properties | 12 ------------ 6 files changed, 23 insertions(+), 22 deletions(-) delete mode 100644 sdk/log4j.properties diff --git a/org.argeo.cms.jcr/pom.xml b/org.argeo.cms.jcr/pom.xml index 9191abaf3..58de05bb9 100644 --- a/org.argeo.cms.jcr/pom.xml +++ b/org.argeo.cms.jcr/pom.xml @@ -15,5 +15,10 @@ org.argeo.cms 2.3-SNAPSHOT + + org.argeo.commons + org.argeo.cms.servlet + 2.3-SNAPSHOT + \ No newline at end of file diff --git a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java index 2ffac9c4c..e05a0023e 100644 --- a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java +++ b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/RepositoryContextsFactory.java @@ -73,7 +73,7 @@ public class RepositoryContextsFactory implements ManagedServiceFactory { RepositoryContext repositoryContext = repositories.remove(otherPid); repositories.put(pid, repositoryContext); if (log.isDebugEnabled()) - log.debug("Ignore update of Jackrabbit repository " + cn); + log.debug("Ignoring update of Jackrabbit repository " + cn); // FIXME perform a proper update (also of the OSGi service) return; } diff --git a/org.argeo.cms/OSGI-INF/nodeUserAdmin.xml b/org.argeo.cms/OSGI-INF/nodeUserAdmin.xml index 328d7bea5..eb048d9f5 100644 --- a/org.argeo.cms/OSGI-INF/nodeUserAdmin.xml +++ b/org.argeo.cms/OSGI-INF/nodeUserAdmin.xml @@ -2,10 +2,10 @@ - + diff --git a/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsOsgiLogger.java b/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsOsgiLogger.java index 91628d344..6898c4348 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsOsgiLogger.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/osgi/CmsOsgiLogger.java @@ -1,10 +1,8 @@ package org.argeo.cms.internal.osgi; import java.io.IOException; -import java.net.URI; import java.nio.file.FileSystems; import java.nio.file.Path; -import java.nio.file.Paths; import java.nio.file.StandardWatchEventKinds; import java.nio.file.WatchEvent; import java.nio.file.WatchKey; @@ -30,7 +28,6 @@ import org.argeo.cms.ArgeoLogger; import org.argeo.cms.CmsException; import org.argeo.cms.auth.CurrentUser; import org.argeo.cms.internal.runtime.KernelConstants; -import org.argeo.cms.internal.runtime.KernelUtils; import org.argeo.osgi.useradmin.UserAdminConf; import org.osgi.framework.Bundle; import org.osgi.framework.Constants; @@ -160,10 +157,13 @@ public class CmsOsgiLogger implements ArgeoLogger, LogListener { return; pluginLog.error(msg(status), status.getException()); } else if (severity.equals(LogLevel.WARN) && pluginLog.isWarnEnabled()) { - if (pluginLog.isTraceEnabled()) - pluginLog.warn(msg(status), status.getException()); - else + if ("org.apache.felix.scr".equals(status.getBundle().getSymbolicName()) + && (status.getException() != null && status.getException() instanceof InterruptedException)) { + // do not print stacktraces by Felix SCR shutdown pluginLog.warn(msg(status)); + } else { + pluginLog.warn(msg(status), status.getException()); + } } else if (severity.equals(LogLevel.INFO) && pluginLog.isDebugEnabled()) pluginLog.debug(msg(status), status.getException()); else if (severity.equals(LogLevel.DEBUG) && pluginLog.isTraceEnabled()) @@ -401,7 +401,7 @@ public class CmsOsgiLogger implements ArgeoLogger, LogListener { // event.getLoggerName(), event.getThreadName(), event.getMessage(), event.getThrowableStrRep()); } - private class AppenderImpl { //extends AppenderSkeleton { + private class AppenderImpl { // extends AppenderSkeleton { public boolean requiresLayout() { return false; } diff --git a/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java b/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java index 3850010e9..626a057c0 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/osgi/NodeUserAdmin.java @@ -148,10 +148,18 @@ public class NodeUserAdmin extends AggregatingUserAdmin implements ManagedServic } else { throw new IllegalArgumentException("Unsupported scheme " + u.getScheme()); } + LdapName baseDn = userDirectory.getBaseDn(); + + // FIXME make updates more robust + if (pidToBaseDn.containsValue(baseDn)) { + if (log.isDebugEnabled()) + log.debug("Ignoring user directory update of " + baseDn); + return; + } + addUserDirectory(userDirectory); // OSGi - LdapName baseDn = userDirectory.getBaseDn(); Hashtable regProps = new Hashtable<>(); regProps.put(Constants.SERVICE_PID, pid); if (isSystemRolesBaseDn(baseDn)) diff --git a/sdk/log4j.properties b/sdk/log4j.properties deleted file mode 100644 index bf3f291a5..000000000 --- a/sdk/log4j.properties +++ /dev/null @@ -1,12 +0,0 @@ -log4j.rootLogger=WARN, development - -log4j.logger.org.argeo=DEBUG - -## Appenders -log4j.appender.console=org.apache.log4j.ConsoleAppender -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m %n - -log4j.appender.development=org.apache.log4j.ConsoleAppender -log4j.appender.development.layout=org.apache.log4j.PatternLayout -log4j.appender.development.layout.ConversionPattern=%d{ABSOLUTE} %m (%F:%L) [%t] %p %n -- 2.30.2