import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.spi.LoggingEvent;
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
import org.argeo.cms.auth.CurrentUser;
import org.argeo.node.ArgeoLogListener;
import org.argeo.node.ArgeoLogger;
import org.argeo.node.NodeConstants;
+import org.argeo.osgi.useradmin.UserAdminConf;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.service.cm.ConfigurationAdmin;
logDispatcherThread = new LogDispatcherThread();
logDispatcherThread.start();
} catch (Exception e) {
- throw new ArgeoException("Cannot initialize log4j");
+ throw new CmsException("Cannot initialize log4j");
}
}
}
private String msg(LogEntry status) {
- StringBuilder sb = new StringBuilder(status.getMessage());
+ StringBuilder sb = new StringBuilder();
+ sb.append(status.getMessage());
ServiceReference<?> sr = status.getServiceReference();
if (sr != null) {
sb.append(' ');
String[] objectClasses = (String[]) sr.getProperty(Constants.OBJECTCLASS);
- sb.append(arrayToString(objectClasses));
+ if (isSpringApplicationContext(objectClasses)) {
+ sb.append("{org.springframework.context.ApplicationContext}");
+ Object symbolicName = sr.getProperty(Constants.BUNDLE_SYMBOLICNAME);
+ if (symbolicName != null)
+ sb.append(" " + Constants.BUNDLE_SYMBOLICNAME + ": " + symbolicName);
+ } else {
+ sb.append(arrayToString(objectClasses));
+ }
Object cn = sr.getProperty(NodeConstants.CN);
if (cn != null)
sb.append(" " + NodeConstants.CN + ": " + cn);
Object factoryPid = sr.getProperty(ConfigurationAdmin.SERVICE_FACTORYPID);
if (factoryPid != null)
sb.append(" " + ConfigurationAdmin.SERVICE_FACTORYPID + ": " + factoryPid);
- else {
- Object servicePid = sr.getProperty(Constants.SERVICE_PID);
- if (servicePid != null)
- sb.append(" " + Constants.SERVICE_PID + ": " + servicePid);
- }
+ // else {
+ // Object servicePid = sr.getProperty(Constants.SERVICE_PID);
+ // if (servicePid != null)
+ // sb.append(" " + Constants.SERVICE_PID + ": " + servicePid);
+ // }
// servlets
Object whiteBoardPattern = sr.getProperty(KernelConstants.WHITEBOARD_PATTERN_PROP);
if (whiteBoardPattern != null)
Object contextName = sr.getProperty(KernelConstants.CONTEXT_NAME_PROP);
if (contextName != null)
sb.append(" " + KernelConstants.CONTEXT_NAME_PROP + ": " + contextName);
+
+ // user directories
+ Object baseDn = sr.getProperty(UserAdminConf.baseDn.name());
+ if (baseDn != null)
+ sb.append(" " + UserAdminConf.baseDn.name() + ": " + baseDn);
+
}
return sb.toString();
}
return sb.toString();
}
+ private boolean isSpringApplicationContext(String[] objectClasses) {
+ for (String clss : objectClasses) {
+ if (clss.equals("org.eclipse.gemini.blueprint.context.DelegatedExecutionOsgiBundleApplicationContext")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
//
// ARGEO LOGGER
//
public synchronized void register(ArgeoLogListener listener, Integer numberOfPreviousEvents) {
String username = CurrentUser.getUsername();
if (username == null)
- throw new ArgeoException("Only authenticated users can register a log listener");
+ throw new CmsException("Only authenticated users can register a log listener");
if (!userListeners.containsKey(username)) {
List<ArgeoLogListener> lst = Collections.synchronizedList(new ArrayList<ArgeoLogListener>());
if (username == null)// FIXME
return;
if (!userListeners.containsKey(username))
- throw new ArgeoException("No user listeners " + listener + " registered for user " + username);
+ throw new CmsException("No user listeners " + listener + " registered for user " + username);
if (!userListeners.get(username).contains(listener))
- throw new ArgeoException("No user listeners " + listener + " registered for user " + username);
+ throw new CmsException("No user listeners " + listener + " registered for user " + username);
userListeners.get(username).remove(listener);
if (userListeners.get(username).isEmpty())
userListeners.remove(username);