You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by be...@apache.org on 2006/10/27 22:42:58 UTC

svn commit: r468529 - in /james/server/sandbox/spring-integration/src/main: config/ java/org/apache/james/container/spring/adaptor/ java/org/apache/james/container/spring/logging/

Author: berndf
Date: Fri Oct 27 13:42:57 2006
New Revision: 468529

URL: http://svn.apache.org/viewvc?view=rev&rev=468529
Log:
activate last James component 
make customizing logging more simple

Added:
    james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java
      - copied, changed from r468459, james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java
    james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java
    james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java
Removed:
    james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java
Modified:
    james/server/sandbox/spring-integration/src/main/config/spring-config.xml

Modified: james/server/sandbox/spring-integration/src/main/config/spring-config.xml
URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/config/spring-config.xml?view=diff&rev=468529&r1=468528&r2=468529
==============================================================================
--- james/server/sandbox/spring-integration/src/main/config/spring-config.xml (original)
+++ james/server/sandbox/spring-integration/src/main/config/spring-config.xml Fri Oct 27 13:42:57 2006
@@ -30,16 +30,18 @@
 
     <bean id="serviceManager" class="org.apache.james.container.spring.adaptor.ServiceManagerBridge" />
 
-    <bean name="logger, loggerMap" class="org.apache.james.container.spring.adaptor.LoggerAdaptor" />
+    <bean name="logWorker" class="org.apache.james.container.spring.logging.SystemConsoleLogWorker" />
+
+    <bean name="logger, loggerMap" class="org.apache.james.container.spring.adaptor.LoggingBridge" >
+        <property name="logWorker" ref="logWorker" />
+    </bean>
 
     <bean id="configurationProvider" class="org.apache.james.container.spring.adaptor.AvalonConfigurationFileProvider" >
-        <property name="configurationPath"
-                  value="src/main/config/james-config.xml" />
+        <property name="configurationPath" value="src/main/config/james-config.xml" />
     </bean>
 
     <bean id="avalonContext" class="org.apache.james.container.spring.adaptor.AvalonContext" >
-        <property name="applicationHome"
-                  value="data" />
+        <property name="applicationHome" value="data" />
     </bean>
 
 
@@ -82,40 +84,31 @@
 
     <!-- James components with dependencies to other components -->
 
-     <bean name="James" class="org.apache.james.James" />
+    <bean name="James" class="org.apache.james.James" />
 
-      <bean name="dnsserver, org.apache.james.services.DNSServer" class="org.apache.james.dnsserver.DNSServer" />
+    <bean name="dnsserver, org.apache.james.services.DNSServer" class="org.apache.james.dnsserver.DNSServer" />
 
     <bean name="matcherpackages" class="org.apache.james.transport.JamesMatcherLoader" />
 
     <bean name="mailetpackages" class="org.apache.james.transport.JamesMailetLoader" />
 
-      <bean name="remotemanager" class="org.apache.james.remotemanager.RemoteManager" />
-
-
-      <bean name="pop3server" class="org.apache.james.pop3server.POP3Server" />
+    <bean name="remotemanager" class="org.apache.james.remotemanager.RemoteManager" />
 
-      <bean name="smtpserver" class="org.apache.james.smtpserver.SMTPServer" />
+    <bean name="pop3server" class="org.apache.james.pop3server.POP3Server" />
 
-      <bean name="nntpserver" class="org.apache.james.nntpserver.NNTPServer" />
+    <bean name="smtpserver" class="org.apache.james.smtpserver.SMTPServer" />
 
+    <bean name="nntpserver" class="org.apache.james.nntpserver.NNTPServer" />
 
-      <bean name="nntp-repository" class="org.apache.james.nntpserver.repository.NNTPRepositoryImpl" />
-<!--
+    <bean name="nntp-repository" class="org.apache.james.nntpserver.repository.NNTPRepositoryImpl" />
 
-      <block name="fetchmail" class="org.apache.james.fetchmail.FetchScheduler" >
-        <provide name="scheduler"
-                 role="org.apache.avalon.cornerstone.services.scheduler.TimeScheduler"/>
-        <provide name="James" role="org.apache.james.services.MailServer"/>
-        <provide name="localusersrepository" role="org.apache.james.services.UsersRepository"/>
-      </block>
--->
+    <bean name="fetchmail" class="org.apache.james.fetchmail.FetchScheduler" />
 
-      <bean name="spoolrepository" class="org.apache.james.mailrepository.MailStoreSpoolRepository" />
+    <bean name="spoolrepository" class="org.apache.james.mailrepository.MailStoreSpoolRepository" />
 
-      <bean name="users-store" class="org.apache.james.core.AvalonUsersStore" />
+    <bean name="users-store" class="org.apache.james.core.AvalonUsersStore" />
 
-      <bean name="localusersrepository" class="org.apache.james.core.LocalUsersRepository" />
+    <bean name="localusersrepository" class="org.apache.james.core.LocalUsersRepository" />
 
     <bean name="spoolmanager" class="org.apache.james.transport.JamesSpoolManager" />
 

Copied: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java (from r468459, james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java)
URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java?view=diff&rev=468529&p1=james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java&r1=468459&p2=james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java&r2=468529
==============================================================================
--- james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggerAdaptor.java (original)
+++ james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/adaptor/LoggingBridge.java Fri Oct 27 13:42:57 2006
@@ -20,21 +20,47 @@
 
 import org.apache.avalon.framework.logger.Logger;
 import org.apache.james.container.spring.logging.LoggerToComponentMapper;
+import org.apache.james.container.spring.logging.LogWorker;
+
+/**
+ * bridge to act as a Avalon logger but effectively forward to a some other logging service
+ */
+public class LoggingBridge implements Logger, LoggerToComponentMapper {
+    public static final String LEVEL_DEBUG = "debug";
+    public static final String LEVEL_INFO  = "info";
+    public static final String LEVEL_WARN  = "warn";
+    public static final String LEVEL_ERROR = "error";
+    public static final String LEVEL_FATAL = "fatal";
 
-public class LoggerAdaptor implements Logger, LoggerToComponentMapper {
     private boolean m_debugEnabled = true;
+    private LogWorker logWorker;
+
+    public void setLogWorker(LogWorker logWorker) {
+        this.logWorker = logWorker;
+    }
 
     public Logger getComponentLogger(String beanName) {
-        return this; // every bean gets the same logger
+        return this; // every bean gets the same logger, could be more finegrained
+    }
+
+    protected void forwardLogMessage(String level, String message) {
+        logWorker.logMessage(level, message);
+    }
+
+    protected void forwardLogException(String level, String message, Throwable exception) {
+        logWorker.logException(level, message, exception);
+    }
+
+    public org.apache.avalon.framework.logger.Logger getChildLogger(java.lang.String string) {
+        return this;
     }
 
     public void debug(java.lang.String string) {
-        System.out.println(string);
+        forwardLogMessage(LEVEL_DEBUG, string);
     }
 
     public void debug(java.lang.String string, java.lang.Throwable throwable) {
-        System.out.println(string + throwable.toString());
-        throwable.printStackTrace();
+        forwardLogException(LEVEL_DEBUG, string, throwable);
     }
 
     public boolean isDebugEnabled() {
@@ -46,12 +72,11 @@
     }
 
     public void info(java.lang.String string) {
-        System.out.println(string);
+        forwardLogMessage(LEVEL_INFO, string);
     }
 
     public void info(java.lang.String string, java.lang.Throwable throwable) {
-        System.out.println(string + throwable.toString());
-        throwable.printStackTrace();
+        forwardLogException(LEVEL_INFO, string, throwable);
     }
 
     public boolean isInfoEnabled() {
@@ -59,12 +84,11 @@
     }
 
     public void warn(java.lang.String string) {
-        System.out.println(string);
+        forwardLogMessage(LEVEL_WARN, string);
     }
 
     public void warn(java.lang.String string, java.lang.Throwable throwable) {
-        System.out.println(string + throwable.toString());
-        throwable.printStackTrace();
+        forwardLogException(LEVEL_WARN, string, throwable);
     }
 
     public boolean isWarnEnabled() {
@@ -72,12 +96,11 @@
     }
 
     public void error(java.lang.String string) {
-        System.out.println(string);
+        forwardLogMessage(LEVEL_ERROR, string);
     }
 
     public void error(java.lang.String string, java.lang.Throwable throwable) {
-        System.out.println(string + throwable.toString());
-        throwable.printStackTrace();
+        forwardLogException(LEVEL_ERROR, string, throwable);
     }
 
     public boolean isErrorEnabled() {
@@ -85,20 +108,16 @@
     }
 
     public void fatalError(java.lang.String string) {
-        System.out.println(string);
+        forwardLogMessage(LEVEL_FATAL, string);
     }
 
     public void fatalError(java.lang.String string, java.lang.Throwable throwable) {
-        System.out.println(string + throwable.toString());
-        throwable.printStackTrace();
+        forwardLogException(LEVEL_FATAL, string, throwable);
     }
 
     public boolean isFatalErrorEnabled() {
         return true;
     }
 
-    public org.apache.avalon.framework.logger.Logger getChildLogger(java.lang.String string) {
-        return this;
-    }
 
 }

Added: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java?view=auto&rev=468529
==============================================================================
--- james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java (added)
+++ james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/LogWorker.java Fri Oct 27 13:42:57 2006
@@ -0,0 +1,30 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.container.spring.logging;
+
+/**
+ * performs the actual logging which is getting forwarded from avalon component
+ */
+public interface LogWorker {
+
+    void logMessage(String level, String message);
+
+    void logException(String level, String message, Throwable exception);
+
+}

Added: james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java?view=auto&rev=468529
==============================================================================
--- james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java (added)
+++ james/server/sandbox/spring-integration/src/main/java/org/apache/james/container/spring/logging/SystemConsoleLogWorker.java Fri Oct 27 13:42:57 2006
@@ -0,0 +1,34 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.container.spring.logging;
+
+/**
+ * logs forwareded logging messages to System console, the most simple form of a LogWorker
+ */
+public class SystemConsoleLogWorker implements LogWorker {
+
+    public void logMessage(String level, String message) {
+        System.out.println(message);
+    }
+
+    public void logException(String level, String message, Throwable exception) {
+        System.out.println(message + exception.toString());
+        exception.printStackTrace();
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org