You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2006/01/23 23:17:34 UTC
svn commit: r371687 - in /logging/log4j/trunk/src/java/org/apache/log4j:
selector/servlet/ContextDetachingSCL.java
spi/DefaultRepositorySelector.java spi/RepositorySelector.java
spi/RepositorySelectorEx.java
Author: carnold
Date: Mon Jan 23 14:17:26 2006
New Revision: 371687
URL: http://svn.apache.org/viewcvs?rev=371687&view=rev
Log:
Bug 35452: Spin-off RepositorySelectorEx
Added:
logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelectorEx.java
Modified:
logging/log4j/trunk/src/java/org/apache/log4j/selector/servlet/ContextDetachingSCL.java
logging/log4j/trunk/src/java/org/apache/log4j/spi/DefaultRepositorySelector.java
logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelector.java
Modified: logging/log4j/trunk/src/java/org/apache/log4j/selector/servlet/ContextDetachingSCL.java
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/src/java/org/apache/log4j/selector/servlet/ContextDetachingSCL.java?rev=371687&r1=371686&r2=371687&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/selector/servlet/ContextDetachingSCL.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/selector/servlet/ContextDetachingSCL.java Mon Jan 23 14:17:26 2006
@@ -23,6 +23,7 @@
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.LoggerRepositoryEx;
import org.apache.log4j.spi.RepositorySelector;
+import org.apache.log4j.spi.RepositorySelectorEx;
import javax.naming.Context;
import javax.naming.NamingException;
@@ -73,16 +74,19 @@
RepositorySelector repositorySelector =
LogManager.getRepositorySelector();
- LoggerRepository lr = repositorySelector.detachRepository(loggingContextName);
- if(lr != null) {
- Logger logger = lr.getLogger(this.getClass().getName());
- if (lr instanceof LoggerRepositoryEx) {
- logger.debug("About to shutdown logger repository named [{}]",
+ if (repositorySelector instanceof RepositorySelectorEx) {
+ LoggerRepository lr =
+ ((RepositorySelectorEx) repositorySelector).detachRepository(loggingContextName);
+ if(lr != null) {
+ Logger logger = lr.getLogger(this.getClass().getName());
+ if (lr instanceof LoggerRepositoryEx) {
+ logger.debug("About to shutdown logger repository named [{}]",
((LoggerRepositoryEx) lr).getName());
- } else {
- logger.debug("About to shutdown unnamed logger repository");
+ } else {
+ logger.debug("About to shutdown unnamed logger repository");
+ }
+ lr.shutdown();
}
- lr.shutdown();
}
}
}
Modified: logging/log4j/trunk/src/java/org/apache/log4j/spi/DefaultRepositorySelector.java
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/src/java/org/apache/log4j/spi/DefaultRepositorySelector.java?rev=371687&r1=371686&r2=371687&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/spi/DefaultRepositorySelector.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/spi/DefaultRepositorySelector.java Mon Jan 23 14:17:26 2006
@@ -18,7 +18,7 @@
import org.apache.log4j.helpers.Constants;
-public class DefaultRepositorySelector implements RepositorySelector {
+public class DefaultRepositorySelector implements RepositorySelectorEx {
LoggerRepository defaultRepository;
public DefaultRepositorySelector(final LoggerRepository repository) {
@@ -27,14 +27,6 @@
public LoggerRepository getLoggerRepository() {
return defaultRepository;
- }
-
- public LoggerRepository getLoggerRepository(final String name) {
- if(Constants.DEFAULT_REPOSITORY_NAME.equals(name)) {
- return defaultRepository;
- } else {
- return null;
- }
}
/**
Modified: logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelector.java
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelector.java?rev=371687&r1=371686&r2=371687&view=diff
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelector.java (original)
+++ logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelector.java Mon Jan 23 14:17:26 2006
@@ -34,34 +34,9 @@
public interface RepositorySelector {
/**
- * Get a {@link LoggerRepository} by name. If the named repository does not
- * exists or is unknown to this selector, then <code>null</code> is returned.
- *
- * @since 1.3
- */
- public LoggerRepository getLoggerRepository(String name);
-
- /**
* Returns a {@link LoggerRepository} depending on the context. Implementors
* must make sure that under all circumstances a valid (non-null)
* LoggerRepository is returned.
*/
public LoggerRepository getLoggerRepository();
-
- /**
- * Remove the repository with the given name from the list maintained by the
- * respository selector.
- *
- * <p>When applications are stopped or recycled, this method should be called
- * to ensure that the associated repository is recycled as well. After the
- * repository is detached from this selector, the returned value, i.e. the
- * detached repository, can be used to shutdown the repository.
- *
- * <p>If more than one application share the same logging context, then the
- * applications need to coordinate their actions.
- *
- * @return The LoggerRepository instance that was detached.
- * @since 1.3
- */
- public LoggerRepository detachRepository(String name);
}
Added: logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelectorEx.java
URL: http://svn.apache.org/viewcvs/logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelectorEx.java?rev=371687&view=auto
==============================================================================
--- logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelectorEx.java (added)
+++ logging/log4j/trunk/src/java/org/apache/log4j/spi/RepositorySelectorEx.java Mon Jan 23 14:17:26 2006
@@ -0,0 +1,53 @@
+/*
+ * Copyright 1999,2006 The Apache Software Foundation.
+ *
+ * Licensed 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.log4j.spi;
+
+
+/**
+ * The <code>LogManager</code> uses one (and only one)
+ * <code>RepositorySelector</code> implementation to select the
+ * {@link LoggerRepository} for a particular application context.
+ *
+ * <p>It is the responsability of the <code>RepositorySelector</code>
+ * implementation to track the application context. Log4j makes no assumptions
+ * about the application context or on its management.
+ *
+ * <p>See also {@link org.apache.log4j.LogManager LogManager}.
+ *
+ * @author Ceki Gülcü
+ * @since 1.3
+ * */
+public interface RepositorySelectorEx extends RepositorySelector {
+
+
+ /**
+ * Remove the repository with the given name from the list maintained by the
+ * respository selector.
+ *
+ * <p>When applications are stopped or recycled, this method should be called
+ * to ensure that the associated repository is recycled as well. After the
+ * repository is detached from this selector, the returned value, i.e. the
+ * detached repository, can be used to shutdown the repository.
+ *
+ * <p>If more than one application share the same logging context, then the
+ * applications need to coordinate their actions.
+ *
+ * @return The LoggerRepository instance that was detached.
+ * @since 1.3
+ */
+ LoggerRepository detachRepository(String name);
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org