You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ja...@apache.org on 2008/12/04 22:40:10 UTC
svn commit: r723453 - in /incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH: ./
src/com/ecyrd/jspwiki/ src/com/ecyrd/jspwiki/log/
src/com/ecyrd/jspwiki/ui/admin/
Author: jalkanen
Date: Thu Dec 4 13:40:09 2008
New Revision: 723453
URL: http://svn.apache.org/viewvc?rev=723453&view=rev
Log:
Merge from trunk.
Modified:
incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ChangeLog
incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ReleaseNotes
incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/Release.java
incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/WikiEngine.java
incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerFactory.java
incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerImpl.java
incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/ui/admin/AdminBeanManager.java
Modified: incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ChangeLog
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ChangeLog?rev=723453&r1=723452&r2=723453&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ChangeLog (original)
+++ incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ChangeLog Thu Dec 4 13:40:09 2008
@@ -1,3 +1,13 @@
+2008-11-29 Harry Metske <me...@apache.org>
+
+ * 3.0.0-svn-23
+
+ * implemented the unregisterAllLoggerMBeans method in the LoggerFactory
+ * added some more robustness to LoggerFactory
+ * made the LoggerImpl Serializable
+ * added a note to the ReleaseNotes
+
+
2008-12-04 Janne Jalkanen <ja...@apache.org>
* 3.0.0-svn-22
Modified: incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ReleaseNotes
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ReleaseNotes?rev=723453&r1=723452&r2=723453&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ReleaseNotes (original)
+++ incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/ReleaseNotes Thu Dec 4 13:40:09 2008
@@ -1,13 +1,10 @@
-Welcome to the stable version of JSPWiki 2.8!
+Welcome to the stable version of JSPWiki 3.0!
This is the first version of JSPWiki which is released completely under
the Apache License. This is done as a part of the transition to the
Apache Incubation.
-However, this is NOT an Apache release - JSPWiki 3.0 will be the first
-official Apache release.
-
Please report any issues you can find at http://issues.apache.org/JIRA/
@@ -18,31 +15,20 @@
* Simplified Chinese, Dutch and Italian localizations added!
-* There is no more need for JAAS files! Hooray! This has
- been replaced with custom jspwiki properties. Please see
- the UPGRADING document.
-
-* Massive improvements to the default template, like
- section editing.
-
-* Sneak preview in the default editor
-
-* WikiWizard is removed (it is LGPL), but FCK integration is available,
- and WikiWizard can still be installed as a separate package.
-
-* German, Finnish, Spanish, Simplified Chinese and Dutch language corepages
-
-* Support for the UniversalEditButton (http://universaleditbutton.org/).
-
-* Password hashes are now salted. This means you can't share the passwords
- if you have JSPWiki 2.6 instances, as the passwords are upgraded
- transparently.
+* Logging by JSPWiki is now done with slf4j, see http://www.slf4j.org for details.
+ You can now decide at runtime which logging implementation you want, just pick
+ the right slf4j implementation and drop it in WEB-INF/lib
+ The default implementation is log4j, so you don't have to switch to anything else unless
+ you have a good reason.
+ The log4j configuration statements have been moved to a separate file log4j.properties,
+ this file should be on your CLASSPATH, by default it is placed in WEB-INF/classes
The full log of any issues fixed can be found at:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310732&styleName=Html&version=12312864
+ ==> how to get this to 3.0 ?
-Please also see http://www.jspwiki.org/wiki/NewIn2.8
+Please also see http://www.jspwiki.org/wiki/NewIn3.0
UPGRADE NOTES
=============
@@ -53,29 +39,7 @@
EXPERIMENTAL FEATURES
=====================
-There are some features in this release which could mostly be considered
-experimental at best. The following ones are known to work only
-partially:
-
-* WebDAV support. This is known to be broken on pretty many levels...
-
-* Admin interface. Check out /admin/Admin.jsp.
KNOWN PROBLEMS
==============
-* WebDav does not yet support the new
- authentication/permissions scheme. Therefore, if you have very
- sensitive data in your wiki, you might not want to enable it.
-
-* Not all old plugins work. Specifically any plugins, which construct
- new WikiPages will fail because of the constructor has been changed.
-
-* The PageFilter API was changed in 2.6
-
-* Our documentation simply sucks at this point. Please forgive us,
- and point where those fixes are needed. We will improve upon
- based your input.
-
-* The ShortURLConstructor does not work reliably. Please use
- ShortViewURLConstructor, or Apache mod_rewrite.
Modified: incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/Release.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/Release.java?rev=723453&r1=723452&r2=723453&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/Release.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/Release.java Thu Dec 4 13:40:09 2008
@@ -77,7 +77,7 @@
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "22";
+ public static final String BUILD = "23";
/**
* This is the generic version string you should use
Modified: incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/WikiEngine.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/WikiEngine.java?rev=723453&r1=723452&r2=723453&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/WikiEngine.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/WikiEngine.java Thu Dec 4 13:40:09 2008
@@ -1535,6 +1535,7 @@
{
fireEvent( WikiEngineEvent.SHUTDOWN );
m_filterManager.destroy();
+ LoggerFactory.unRegisterAllLoggerMBeans();
}
/**
Modified: incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerFactory.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerFactory.java?rev=723453&r1=723452&r2=723453&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerFactory.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerFactory.java Thu Dec 4 13:40:09 2008
@@ -24,7 +24,9 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashMap;
+import java.util.Set;
+import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.slf4j.bridge.SLF4JBridgeHandler;
@@ -50,7 +52,10 @@
*/
public final class LoggerFactory
{
- private static boolean c_log4jPresent = true;
+ private static boolean c_isLog4jPresent = true;
+
+ // it appears that after shutting down JSPWiki, we get new requests for Loggers, to prevent this we "close the door" :
+ private static boolean c_isLoggerFactoryClosed= false;
private static final String SLF4J_LOG4J_ADAPTER_CLASS = "org.slf4j.impl.Log4jLoggerAdapter";
@@ -58,6 +63,12 @@
private static HashMap<String, LoggerImpl> c_registeredLoggers = new HashMap<String, LoggerImpl>( 200 );
+ /**
+ * @TODO We need something here to make the Logger MBeans unique across the JVM, this will not work if you
+ * run multiple wiki's in the same JVM, same is true for other MBeans.
+ */
+ private static final String OBJECTNAME_PREFIX = Release.APPNAME + ":component=Loggers,name=";
+
static
{
SLF4JBridgeHandler.install();
@@ -68,6 +79,19 @@
*/
private LoggerFactory()
{}
+
+
+ /**
+ * Utility method for locating a Logger based on a Class.
+ *
+ * @param clazz The Class to find a Logger for.
+ * @return A Logger instance.
+ */
+ public static final Logger getLogger( Class clazz )
+ {
+ return getLogger( clazz.getName() );
+ }
+
/**
* Returns a Logger instance, and also, if it is a Log4J logger, registers the Logging MBean.
@@ -77,11 +101,16 @@
*/
public static final synchronized Logger getLogger( String loggerName )
{
+ if( c_isLoggerFactoryClosed )
+ {
+ return null;
+ }
+
if( c_registeredLoggers.get( loggerName ) == null )
{
LoggerImpl logger = new LoggerImpl( loggerName );
c_registeredLoggers.put( loggerName, logger );
- if( c_log4jPresent )
+ if( c_isLog4jPresent )
{
registerLoggerMBean( loggerName );
}
@@ -130,13 +159,17 @@
Constructor constr = mbeanClass.getConstructor( loggerClass );
Object dynMBean = constr.newInstance( arglist );
ObjectName mbeanName = new ObjectName( Release.APPNAME + ":component=Loggers,name=" + loggerName );
- ManagementFactory.getPlatformMBeanServer().registerMBean( dynMBean, mbeanName );
+ MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
+ if( !mbeanServer.isRegistered( mbeanName ) )
+ {
+ mbeanServer.registerMBean( dynMBean, mbeanName );
+ }
}
catch( ClassNotFoundException cnfe )
{
// apparently we cannot find the slf4j log4j adapter, so we assume there is no log4j
// available, so there is no use in registering MBeans
- c_log4jPresent = false;
+ c_isLog4jPresent = false;
System.err.println( "Could not find class " +SLF4J_LOG4J_ADAPTER_CLASS + ", so no dynamic log configuration here :-(" );
}
catch( Exception e )
@@ -145,14 +178,26 @@
}
}
+
/**
- * Utility method for locating a Logger based on a Class.
- *
- * @param clazz The Class to find a Logger for.
- * @return A Logger instance.
+ * UnRegisters all Logger MBeans from the Platform MBeanServer.
*/
- public static final Logger getLogger( Class clazz )
+ public static void unRegisterAllLoggerMBeans()
{
- return getLogger( clazz.getName() );
+ c_isLoggerFactoryClosed = true;
+
+ Set<String> loggerNames = c_registeredLoggers.keySet();
+ for( String loggerName : loggerNames )
+ {
+ try
+ {
+ ObjectName mbeanName = new ObjectName( OBJECTNAME_PREFIX + loggerName );
+ ManagementFactory.getPlatformMBeanServer().unregisterMBean( mbeanName );
+ }
+ catch( Exception e )
+ {
+ // ignore this, we can't do anything about it
+ }
+ }
}
}
Modified: incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerImpl.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerImpl.java?rev=723453&r1=723452&r2=723453&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerImpl.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/log/LoggerImpl.java Thu Dec 4 13:40:09 2008
@@ -20,6 +20,8 @@
*/
package com.ecyrd.jspwiki.log;
+import java.io.Serializable;
+
import org.slf4j.Logger;
/**
@@ -28,8 +30,9 @@
* @author Harry Metske
* @since 3.0
*/
-public class LoggerImpl implements com.ecyrd.jspwiki.log.Logger
+public class LoggerImpl implements com.ecyrd.jspwiki.log.Logger, Serializable
{
+ private static final long serialVersionUID = 1L;
Logger m_slf4jLogger = null;
/**
Modified: incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/ui/admin/AdminBeanManager.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/ui/admin/AdminBeanManager.java?rev=723453&r1=723452&r2=723453&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/ui/admin/AdminBeanManager.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_JCR_BRANCH/src/com/ecyrd/jspwiki/ui/admin/AdminBeanManager.java Thu Dec 4 13:40:09 2008
@@ -113,12 +113,12 @@
if( !m_mbeanServer.isRegistered(name))
{
m_mbeanServer.registerMBean( ab, name );
+ log.info("Registered new admin bean "+ab.getTitle());
}
}
m_allBeans.add( ab );
- log.info("Registered new admin bean "+ab.getTitle());
}
catch( InstanceAlreadyExistsException e )
{