<dependencies>
<!-- Argeo Commons -->
+ <dependency>
+ <groupId>org.argeo.commons</groupId>
+ <artifactId>org.argeo.init</artifactId>
+ <version>2.3-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.argeo.commons</groupId>
<artifactId>org.argeo.enterprise</artifactId>
<artifactId>org.argeo.api</artifactId>
<version>2.3-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.argeo.commons</groupId>
+ <artifactId>org.argeo.transition</artifactId>
+ <version>2.3-SNAPSHOT</version>
+ </dependency>
<dependency>
<groupId>org.argeo.commons</groupId>
<artifactId>org.argeo.cms</artifactId>
<!-- Third Parties -->
- <dependency>
- <groupId>org.argeo.tp.apache</groupId>
- <artifactId>org.apache.log4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.argeo.tp.misc</groupId>
- <artifactId>org.slf4j.log4j12</artifactId>
- </dependency>
+ <!-- <dependency> -->
+ <!-- <groupId>org.argeo.tp.apache</groupId> -->
+ <!-- <artifactId>org.apache.log4j</artifactId> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.argeo.tp.misc</groupId> -->
+ <!-- <artifactId>org.slf4j.log4j12</artifactId> -->
+ <!-- </dependency> -->
<dependency>
<groupId>org.argeo.tp.misc</groupId>
<artifactId>org.slf4j.api</artifactId>
</dependency>
- <dependency>
- <groupId>org.argeo.tp.misc</groupId>
- <artifactId>org.slf4j.commons.logging</artifactId>
- </dependency>
+ <!-- <dependency> -->
+ <!-- <groupId>org.argeo.tp.misc</groupId> -->
+ <!-- <artifactId>slf4j.osgi</artifactId> -->
+ <!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.argeo.tp.misc</groupId> -->
+ <!-- <artifactId>org.slf4j.commons.logging</artifactId> -->
+ <!-- </dependency> -->
<!-- OSGi annotations -->
<!-- <dependency> -->
<groupId>org.argeo.tp.bouncycastle</groupId>
<artifactId>bcpkix</artifactId>
</dependency>
-<!-- <dependency> -->
-<!-- <groupId>org.argeo.tp.bouncycastle</groupId> -->
-<!-- <artifactId>bcpg</artifactId> -->
-<!-- </dependency> -->
+ <!-- <dependency> -->
+ <!-- <groupId>org.argeo.tp.bouncycastle</groupId> -->
+ <!-- <artifactId>bcpg</artifactId> -->
+ <!-- </dependency> -->
<!-- Apache Commons -->
<dependency>
<groupId>org.argeo.tp.misc</groupId>
<artifactId>org.postgresql.jdbc42</artifactId>
</dependency>
-
- <!-- Test only -->
- <dependency>
- <groupId>org.argeo.commons</groupId>
- <artifactId>org.argeo.osgi.boot</artifactId>
- <version>2.3-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
</dependencies>
<profiles>
Import-Package: javax.naming.*,\
-javax.security.*
\ No newline at end of file
+javax.security.*
+
+Export-Package: org.argeo.api.*,\
+org.apache.commons.logging;version=1.2.666
\ No newline at end of file
--- /dev/null
+package org.apache.commons.logging;
+
+import java.lang.System.Logger;
+import java.lang.System.Logger.Level;
+import java.util.Objects;
+
+/** A pseudo implementation of Apache Commons Logging. */
+public interface Log {
+ Logger getLogger();
+
+ default boolean isDebugEnabled() {
+ return getLogger().isLoggable(Level.DEBUG);
+ }
+
+ default boolean isErrorEnabled() {
+ return getLogger().isLoggable(Level.ERROR);
+ }
+
+ default boolean isInfoEnabled() {
+ return getLogger().isLoggable(Level.INFO);
+ }
+
+ default boolean isTraceEnabled() {
+ return getLogger().isLoggable(Level.TRACE);
+ }
+
+ default boolean isWarnEnabled() {
+ return getLogger().isLoggable(Level.WARNING);
+ }
+
+ /*
+ * TRACE
+ */
+
+ default void trace(String message) {
+ getLogger().log(Level.TRACE, message);
+ }
+
+ default void trace(Object message) {
+ getLogger().log(Level.TRACE, Objects.requireNonNull(message));
+ }
+
+ default void trace(String message, Throwable t) {
+ getLogger().log(Level.TRACE, message, t);
+ }
+
+ default void trace(Object message, Throwable t) {
+ trace(Objects.requireNonNull(message).toString(), t);
+ }
+
+ default void trace(String format, Object... arguments) {
+ getLogger().log(Level.TRACE, format, arguments);
+ }
+
+ /*
+ * DEBUG
+ */
+
+ default void debug(String message) {
+ getLogger().log(Level.DEBUG, message);
+ }
+
+ default void debug(Object message) {
+ getLogger().log(Level.DEBUG, message);
+ }
+
+ default void debug(String message, Throwable t) {
+ getLogger().log(Level.DEBUG, message, t);
+ }
+
+ default void debug(Object message, Throwable t) {
+ debug(Objects.requireNonNull(message).toString(), t);
+ }
+
+ default void debug(String format, Object... arguments) {
+ getLogger().log(Level.DEBUG, format, arguments);
+ }
+
+ /*
+ * INFO
+ */
+
+ default void info(String message) {
+ getLogger().log(Level.INFO, message);
+ }
+
+ default void info(Object message) {
+ getLogger().log(Level.INFO, message);
+ }
+
+ default void info(String message, Throwable t) {
+ getLogger().log(Level.INFO, message, t);
+ }
+
+ default void info(Object message, Throwable t) {
+ info(Objects.requireNonNull(message).toString(), t);
+ }
+
+ default void info(String format, Object... arguments) {
+ getLogger().log(Level.INFO, format, arguments);
+ }
+
+ /*
+ * WARN
+ */
+
+ default void warn(String message) {
+ getLogger().log(Level.WARNING, message);
+ }
+
+ default void warn(Object message) {
+ getLogger().log(Level.WARNING, message);
+ }
+
+ default void warn(String message, Throwable t) {
+ getLogger().log(Level.WARNING, message, t);
+ }
+
+ default void warn(Object message, Throwable t) {
+ warn(Objects.requireNonNull(message).toString(), t);
+ }
+
+ default void warn(String format, Object... arguments) {
+ getLogger().log(Level.WARNING, format, arguments);
+ }
+
+ /*
+ * ERROR
+ */
+
+ default void error(String message) {
+ getLogger().log(Level.ERROR, message);
+ }
+
+ default void error(Object message) {
+ getLogger().log(Level.ERROR, message);
+ }
+
+ default void error(String message, Throwable t) {
+ getLogger().log(Level.ERROR, message, t);
+ }
+
+ default void error(Object message, Throwable t) {
+ error(Objects.requireNonNull(message).toString(), t);
+ }
+
+ default void error(String format, Object... arguments) {
+ getLogger().log(Level.ERROR, format, arguments);
+ }
+
+}
--- /dev/null
+package org.apache.commons.logging;
+
+import java.lang.System.Logger;
+import java.util.Objects;
+
+/** A pseudo implementation of Apache Commons Logging. */
+public abstract class LogFactory {
+ public static Log getLog(Class<?> clss) {
+ return getLog(Objects.requireNonNull(clss).getName());
+ }
+
+ public static Log getLog(String name) {
+ Logger logger = System.getLogger(Objects.requireNonNull(name));
+ return new LoggerWrapper(logger);
+ }
+
+ static class LoggerWrapper implements Log {
+ private final Logger logger;
+
+ LoggerWrapper(Logger logger) {
+ super();
+ this.logger = logger;
+ }
+
+ @Override
+ public Logger getLogger() {
+ return logger;
+ }
+
+ }
+}
org.apache.jackrabbit.spi,\
org.apache.jackrabbit.spi.commons,\
org.slf4j.api,\
- org.slf4j.log4j12,\
- org.apache.log4j,\
org.apache.commons.collections,\
EDU.oswego.cs.dl.util.concurrent,\
org.apache.lucene,\
org.osgi.*;version=0.0.0,\
org.osgi.service.http.whiteboard;version=0.0.0,\
org.osgi.framework.namespace;version=0.0.0,\
+org.apache.log4j.*;resolution:=optional,\
*
Service-Component:\
try {
initSecurity();
- initArgeoLogger();
+// initArgeoLogger();
initNode();
if (log.isTraceEnabled())
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.Level;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-import org.apache.log4j.spi.LoggingEvent;
import org.argeo.api.ArgeoLogListener;
import org.argeo.api.ArgeoLogger;
import org.argeo.api.NodeConstants;
/** Internal debug for development purposes. */
private static Boolean debug = false;
- // private final static Log log = LogFactory.getLog(NodeLogger.class);
-
private Boolean disabled = false;
private String level = null;
- private Level log4jLevel = null;
- // private Layout layout;
+// private Level log4jLevel = null;
private Properties configuration;
// setLayout(new PatternLayout(pattern));
appender = new AppenderImpl();
reloadConfiguration();
- Logger.getRootLogger().addAppender(appender);
+// Logger.getRootLogger().addAppender(appender);
logDispatcherThread = new LogDispatcherThread();
logDispatcherThread.start();
}
public void destroy() throws Exception {
- Logger.getRootLogger().removeAppender(appender);
+// Logger.getRootLogger().removeAppender(appender);
allUsersListeners.clear();
for (List<ArgeoLogListener> lst : userListeners.values())
lst.clear();
*/
protected void reloadConfiguration() {
if (configuration != null) {
- LogManager.resetConfiguration();
- PropertyConfigurator.configure(configuration);
+// LogManager.resetConfiguration();
+// PropertyConfigurator.configure(configuration);
}
}
return;
if (level != null && !level.trim().equals("")) {
- if (log4jLevel == null || !log4jLevel.toString().equals(level))
- try {
- log4jLevel = Level.toLevel(level);
- } catch (Exception e) {
- System.err.println("Log4j level could not be set for level '" + level + "', resetting it to null.");
- e.printStackTrace();
- level = null;
- }
-
- if (log4jLevel != null && !event.getLoggingEvent().getLevel().isGreaterOrEqual(log4jLevel)) {
- return;
- }
+// if (log4jLevel == null || !log4jLevel.toString().equals(level))
+// try {
+// log4jLevel = Level.toLevel(level);
+// } catch (Exception e) {
+// System.err.println("Log4j level could not be set for level '" + level + "', resetting it to null.");
+// e.printStackTrace();
+// level = null;
+// }
+//
+// if (log4jLevel != null && !event.getLoggingEvent().getLevel().isGreaterOrEqual(log4jLevel)) {
+// return;
+// }
}
try {
}
protected void dispatchEvent(ArgeoLogListener logListener, LogEvent evt) {
- LoggingEvent event = evt.getLoggingEvent();
- logListener.appendLog(evt.getUsername(), event.getTimeStamp(), event.getLevel().toString(),
- event.getLoggerName(), event.getThreadName(), event.getMessage(), event.getThrowableStrRep());
+// LoggingEvent event = evt.getLoggingEvent();
+// logListener.appendLog(evt.getUsername(), event.getTimeStamp(), event.getLevel().toString(),
+// event.getLoggerName(), event.getThreadName(), event.getMessage(), event.getThrowableStrRep());
}
- private class AppenderImpl extends AppenderSkeleton {
+ private class AppenderImpl { //extends AppenderSkeleton {
public boolean requiresLayout() {
return false;
}
public void close() {
}
- @Override
- protected void append(LoggingEvent event) {
- if (events != null) {
- try {
- String username = CurrentUser.getUsername();
- events.put(new LogEvent(username, event));
- } catch (InterruptedException e) {
- // silent
- }
- }
- }
+// @Override
+// protected void append(LoggingEvent event) {
+// if (events != null) {
+// try {
+// String username = CurrentUser.getUsername();
+// events.put(new LogEvent(username, event));
+// } catch (InterruptedException e) {
+// // silent
+// }
+// }
+// }
}
private class LogEvent {
private final String username;
- private final LoggingEvent loggingEvent;
+// private final LoggingEvent loggingEvent;
- public LogEvent(String username, LoggingEvent loggingEvent) {
+ public LogEvent(String username) {
super();
this.username = username;
- this.loggingEvent = loggingEvent;
+// this.loggingEvent = loggingEvent;
}
- @Override
- public int hashCode() {
- return loggingEvent.hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- return loggingEvent.equals(obj);
- }
-
- @Override
- public String toString() {
- return username + "@ " + loggingEvent.toString();
- }
+// @Override
+// public int hashCode() {
+// return loggingEvent.hashCode();
+// }
+//
+// @Override
+// public boolean equals(Object obj) {
+// return loggingEvent.equals(obj);
+// }
+//
+// @Override
+// public String toString() {
+// return username + "@ " + loggingEvent.toString();
+// }
public String getUsername() {
return username;
}
- public LoggingEvent getLoggingEvent() {
- return loggingEvent;
- }
+// public LoggingEvent getLoggingEvent() {
+// return loggingEvent;
+// }
}
if (log4jConfigurationPath.equals(parentDir.resolve(changed))) {
if (isInternalDebugEnabled())
debug(log4jConfigurationPath + " has changed, reloading.");
- PropertyConfigurator.configure(log4jConfigurationPath.toUri().toURL());
+// PropertyConfigurator.configure(log4jConfigurationPath.toUri().toURL());
}
}
// reset the key
Import-Package: \
org.osgi.*;version=0.0.0,\
java.util.logging.*;resolution:=optional
+
Private-Package: *
Export-Package: !*
logManager.reset();
Logger rootLogger = logManager.getLogger("");
rootLogger.addHandler(new ThinHandler());
- rootLogger.setLevel(java.util.logging.Level.FINE);
+ rootLogger.setLevel(java.util.logging.Level.INFO);
}
}
Runtime.getRuntime().addShutdownHook(new Thread(() -> close(), "Log shutdown"));
- setDefaultLevel(Level.DEBUG);
+ setDefaultLevel(Level.INFO);
}
protected void close() {
public void log(Level level, ResourceBundle bundle, String format, Object... params) {
// measure timestamp first
Instant now = Instant.now();
- String msg = MessageFormat.format(format, params);
+ String msg = params == null ? format : MessageFormat.format(format, params);
publisher.log(this, level, bundle, msg, null, now, findCallLocation());
}
String className = stack[i].getClassName();
switch (className) {
case "java.lang.System$Logger":
+ case "java.util.logging.Logger":
case "org.apache.commons.logging.Log":
case "org.osgi.service.log.Logger":
case "org.argeo.cms.Log":
+ case "org.slf4j.impl.ArgeoLogger":
+ case "org.eclipse.jetty.util.log.Slf4jLog":
lowestLoggerInterface = i;
continue stack;
default:
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.argeo.transition</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
--- /dev/null
+Import-Package: \
+*;resolution:=optional
--- /dev/null
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.argeo.commons</groupId>
+ <version>2.3-SNAPSHOT</version>
+ <artifactId>argeo-commons</artifactId>
+ <relativePath>..</relativePath>
+ </parent>
+ <artifactId>org.argeo.transition</artifactId>
+ <packaging>jar</packaging>
+ <name>Legacy transition</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.argeo.commons</groupId>
+ <artifactId>org.argeo.api</artifactId>
+ <version>2.3-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+
+</project>
\ No newline at end of file
--- /dev/null
+package org.slf4j.impl;
+
+import org.apache.commons.logging.Log;
+import org.slf4j.helpers.MarkerIgnoringBase;
+
+class ArgeoLogger extends MarkerIgnoringBase {
+ private static final long serialVersionUID = -7719157836932627307L;
+ private final Log log;
+
+ protected ArgeoLogger(String name, Log log) {
+ this.name = name;
+ this.log = log;
+ }
+
+ @Override
+ public boolean isDebugEnabled() {
+ return log.isDebugEnabled();
+ }
+
+ @Override
+ public boolean isTraceEnabled() {
+ return log.isDebugEnabled();
+ }
+
+ @Override
+ public void trace(String msg) {
+ log.trace(msg);
+
+ }
+
+ @Override
+ public void trace(String format, Object... arguments) {
+ log.trace(format, arguments);
+
+ }
+
+ @Override
+ public void trace(String msg, Throwable t) {
+ log.trace(msg, t);
+
+ }
+
+ @Override
+ public void debug(String msg) {
+ log.debug(msg);
+
+ }
+
+ @Override
+ public void debug(String format, Object... arguments) {
+ log.debug(format, arguments);
+
+ }
+
+ @Override
+ public void debug(String msg, Throwable t) {
+ log.debug(msg, t);
+
+ }
+
+ @Override
+ public boolean isInfoEnabled() {
+ return log.isInfoEnabled();
+ }
+
+ @Override
+ public void info(String msg) {
+ log.info(msg);
+
+ }
+
+ @Override
+ public void info(String format, Object... arguments) {
+ log.info(format, arguments);
+ }
+
+ @Override
+ public void info(String msg, Throwable t) {
+ log.info(msg, t);
+
+ }
+
+ @Override
+ public boolean isWarnEnabled() {
+ return log.isWarnEnabled();
+ }
+
+ @Override
+ public void warn(String msg) {
+ log.warn(msg);
+
+ }
+
+ @Override
+ public void warn(String format, Object... arguments) {
+ log.warn(format, arguments);
+
+ }
+
+ @Override
+ public void warn(String msg, Throwable t) {
+ log.warn(msg, t);
+
+ }
+
+ @Override
+ public boolean isErrorEnabled() {
+
+ return log.isErrorEnabled();
+ }
+
+ @Override
+ public void error(String msg) {
+ log.error(msg);
+
+ }
+
+ @Override
+ public void error(String format, Object... arguments) {
+ log.error(format, arguments);
+
+ }
+
+ @Override
+ public void error(String msg, Throwable t) {
+ log.error(msg, t);
+
+ }
+
+ @Override
+ public void trace(String format, Object arg) {
+ trace(format, new Object[] { arg });
+
+ }
+
+ @Override
+ public void trace(String format, Object arg1, Object arg2) {
+ trace(format, new Object[] { arg1, arg2 });
+ }
+
+ @Override
+ public void debug(String format, Object arg) {
+ debug(format, new Object[] { arg });
+ }
+
+ @Override
+ public void debug(String format, Object arg1, Object arg2) {
+ debug(format, new Object[] { arg1, arg2 });
+ }
+
+ @Override
+ public void info(String format, Object arg) {
+ info(format, new Object[] { arg });
+ }
+
+ @Override
+ public void info(String format, Object arg1, Object arg2) {
+ info(format, new Object[] { arg1, arg2 });
+ }
+
+ @Override
+ public void warn(String format, Object arg) {
+ warn(format, new Object[] { arg });
+ }
+
+ @Override
+ public void warn(String format, Object arg1, Object arg2) {
+ warn(format, new Object[] { arg1, arg2 });
+ }
+
+ @Override
+ public void error(String format, Object arg) {
+ error(format, new Object[] { arg });
+ }
+
+ @Override
+ public void error(String format, Object arg1, Object arg2) {
+ error(format, new Object[] { arg1, arg2 });
+ }
+
+}
\ No newline at end of file
--- /dev/null
+package org.slf4j.impl;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.slf4j.ILoggerFactory;
+import org.slf4j.spi.LoggerFactoryBinder;
+
+public class StaticLoggerBinder implements LoggerFactoryBinder {
+ public static final String REQUESTED_API_VERSION = "1.7";
+
+ private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
+
+ private final ILoggerFactory loggerFactory;
+
+ protected StaticLoggerBinder() {
+ loggerFactory = new SystemLoggerFactory();
+ }
+
+ @Override
+ public ILoggerFactory getLoggerFactory() {
+ return loggerFactory;
+ }
+
+ @Override
+ public String getLoggerFactoryClassStr() {
+ return SystemLoggerFactory.class.getName();
+ }
+
+ public static final StaticLoggerBinder getSingleton() {
+ return SINGLETON;
+ }
+
+ static class SystemLoggerFactory implements ILoggerFactory {
+
+ @Override
+ public org.slf4j.Logger getLogger(String name) {
+ Log logger = LogFactory.getLog(name);
+ return new ArgeoLogger(name, logger);
+ }
+
+ }
+
+}
<module>org.argeo.init</module>
<module>org.argeo.enterprise</module>
<!-- <module>org.argeo.jcr</module> -->
-<!-- <module>org.argeo.core</module> -->
+ <!-- <module>org.argeo.core</module> -->
<!-- Eclipse -->
<module>org.argeo.swt.specific.rap</module>
<!-- CMS -->
<module>org.argeo.api</module>
+ <module>org.argeo.transition</module>
<!-- <module>org.argeo.maintenance</module> -->
<module>org.argeo.cms</module>
<module>org.argeo.cms.swt</module>
<module>org.argeo.cms.jcr</module>
-<!-- <module>org.argeo.cms.ui.theme</module> -->
+ <!-- <module>org.argeo.cms.ui.theme</module> -->
<module>org.argeo.cms.ui</module>
<module>org.argeo.cms.ui.rap</module>
<!-- CMS E4 -->