You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/03/12 23:42:12 UTC
svn commit: r157288 - in cocoon/branches/BRANCH_2_1_X: ./
src/blocks/forms/java/org/apache/cocoon/forms/binding/
src/blocks/forms/java/org/apache/cocoon/forms/formmodel/
src/blocks/forms/java/org/apache/cocoon/forms/transformation/
src/blocks/mail/java/org/apache/cocoon/mail/
src/blocks/xmldb/java/org/apache/cocoon/generation/
src/java/org/apache/cocoon/
src/java/org/apache/cocoon/components/flow/javascript/fom/
src/java/org/apache/cocoon/environment/
src/java/org/apache/cocoon/environment/wrapper/
src/java/org/apache/cocoon/servlet/ src/java/org/apache/cocoon/util/
src/java/org/apache/cocoon/util/log/
src/test/org/apache/cocoon/core/container/
src/test/org/apache/cocoon/util/test/ src/webapp/WEB-INF/
Author: sylvain
Date: Sat Mar 12 14:42:07 2005
New Revision: 157288
URL: http://svn.apache.org/viewcvs?view=rev&rev=157288
Log:
Refactor deprecation to automatically throw DeprecationException depending on a chosen limit
Added:
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/Deprecation.java
- copied, changed from r157059, cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/DeprecationLogger.java
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/DeprecationException.java (with props)
cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/util/test/DeprecationTestCase.java (with props)
Removed:
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/DeprecationLogger.java
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/FormsPipelineConfig.java
cocoon/branches/BRANCH_2_1_X/src/blocks/mail/java/org/apache/cocoon/mail/MailCommandSelector.java
cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBCollectionGenerator.java
cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBGenerator.java
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/Cocoon.java
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/AbstractEnvironment.java
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/servlet/CocoonServlet.java
cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/core/container/ContainerTestCase.java
cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/web.xml
cocoon/branches/BRANCH_2_1_X/status.xml
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java Sat Mar 12 14:42:07 2005
@@ -16,7 +16,7 @@
package org.apache.cocoon.forms.binding;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.w3c.dom.Element;
/**
@@ -38,7 +38,7 @@
public JXPathBindingBase buildBinding(Element bindingElm, JXPathBindingManager.Assistant assistant)
throws BindingException {
- DeprecationLogger.log("'fb:struct' is deprecated and replaced by 'fb:group' at " + DomHelper.getLocation(bindingElm));
+ Deprecation.logger.info("'fb:struct' is deprecated and replaced by 'fb:group' at " + DomHelper.getLocation(bindingElm));
try {
String widgetId = DomHelper.getAttribute(bindingElm, "id");
CommonAttributes commonAtts = JXPathBindingBuilderBase.getCommonAttributes(bindingElm);
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java Sat Mar 12 14:42:07 2005
@@ -19,7 +19,7 @@
import org.apache.cocoon.forms.event.ActionListener;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.w3c.dom.Element;
/**
@@ -48,7 +48,7 @@
if (actionCommand == null) {
actionCommand = DomHelper.getAttribute(widgetElement, "action-command", null);
if (actionCommand != null) {
- DeprecationLogger.log("The 'action-command' attribute is deprecated and replaced by 'command', at " +
+ Deprecation.logger.warn("The 'action-command' attribute is deprecated and replaced by 'command', at " +
DomHelper.getLocation(widgetElement));
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java Sat Mar 12 14:42:07 2005
@@ -20,7 +20,7 @@
import org.apache.cocoon.forms.Constants;
import org.apache.cocoon.forms.event.ActionListener;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.w3c.dom.Element;
/**
@@ -62,7 +62,7 @@
if (actionCommand == null) {
actionCommand = DomHelper.getAttribute(widgetElement, "action-command", null);
if (actionCommand != null) {
- DeprecationLogger.log("The 'action-command' attribute is deprecated and replaced by 'command', at " +
+ Deprecation.logger.warn("The 'action-command' attribute is deprecated and replaced by 'command', at " +
DomHelper.getLocation(widgetElement));
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java Sat Mar 12 14:42:07 2005
@@ -20,7 +20,7 @@
import org.apache.cocoon.forms.Constants;
import org.apache.cocoon.forms.event.ActionListener;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.w3c.dom.Element;
/**
@@ -39,7 +39,7 @@
if (actionCommand == null) {
actionCommand = DomHelper.getAttribute(widgetElement, "action-command", null);
if (actionCommand != null) {
- DeprecationLogger.log("The 'action-command' attribute is deprecated and replaced by 'command', at " +
+ Deprecation.logger.warn("The 'action-command' attribute is deprecated and replaced by 'command', at " +
DomHelper.getLocation(widgetElement));
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java Sat Mar 12 14:42:07 2005
@@ -18,7 +18,7 @@
import org.w3c.dom.Element;
import org.apache.cocoon.forms.Constants;
import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
/**
* Builds {StructDefinition}s.
@@ -43,7 +43,7 @@
}
definition.makeImmutable();
- DeprecationLogger.log("Use of 'fd:struct' is deprecated. Use 'fd:group' instead, at " + definition.getLocation());
+ Deprecation.logger.info("Use of 'fd:struct' is deprecated. Use 'fd:group' instead, at " + definition.getLocation());
return definition;
}
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/FormsPipelineConfig.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/FormsPipelineConfig.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/FormsPipelineConfig.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/FormsPipelineConfig.java Sat Mar 12 14:42:07 2005
@@ -31,7 +31,7 @@
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.forms.formmodel.Form;
import org.apache.cocoon.i18n.I18nUtils;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.apache.cocoon.xml.AttributesImpl;
import org.apache.commons.jxpath.JXPathContext;
import org.apache.commons.jxpath.JXPathException;
@@ -353,7 +353,7 @@
public Object getVariable(String name) {
Object value = this.vars.get(name);
if ( deprecatedNames.contains(name) ) {
- DeprecationLogger.log("CForms: usage of the variable '" + name + "' is deprecated."+
+ Deprecation.logger.warn("CForms: usage of the variable '" + name + "' is deprecated."+
"Please use 'cocoon/" + name + "' instead. The usage of just '"+
name+"' will be removed in Cocoon 2.2.");
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/mail/java/org/apache/cocoon/mail/MailCommandSelector.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/mail/java/org/apache/cocoon/mail/MailCommandSelector.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/mail/java/org/apache/cocoon/mail/MailCommandSelector.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/mail/java/org/apache/cocoon/mail/MailCommandSelector.java Sat Mar 12 14:42:07 2005
@@ -17,7 +17,7 @@
import java.util.Map;
import org.apache.cocoon.selection.AbstractSwitchSelector;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.apache.avalon.framework.parameters.Parameters;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.ObjectModelHelper;
@@ -91,7 +91,7 @@
}
public boolean select(String expression, Object selectorContext) {
- DeprecationLogger.log("The MailCommandSelector is deprecated."
+ Deprecation.logger.warn("The MailCommandSelector is deprecated."
+ " Use RequestAttributeSelector, RequestParameterSelector, or ParameterSelector instead.");
if (selectorContext == null) {
return false;
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBCollectionGenerator.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBCollectionGenerator.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBCollectionGenerator.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBCollectionGenerator.java Sat Mar 12 14:42:07 2005
@@ -25,7 +25,7 @@
import org.apache.cocoon.ResourceNotFoundException;
import org.apache.cocoon.caching.CacheableProcessingComponent;
import org.apache.cocoon.environment.SourceResolver;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.apache.excalibur.source.SourceValidity;
import org.xml.sax.SAXException;
@@ -136,7 +136,7 @@
String src,
Parameters par)
throws ProcessingException, SAXException,IOException {
- DeprecationLogger.log("The XMLDBCollectionGenerator is deprecated. Use the XML:DB pseudo protocol instead");
+ Deprecation.logger.warn("The XMLDBCollectionGenerator is deprecated. Use the XML:DB pseudo protocol instead");
super.setup(resolver, objectModel, src, par);
}
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBGenerator.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBGenerator.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBGenerator.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/xmldb/java/org/apache/cocoon/generation/XMLDBGenerator.java Sat Mar 12 14:42:07 2005
@@ -25,7 +25,7 @@
import org.apache.cocoon.ResourceNotFoundException;
import org.apache.cocoon.caching.CacheableProcessingComponent;
import org.apache.cocoon.environment.SourceResolver;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.apache.excalibur.source.SourceValidity;
import org.xml.sax.SAXException;
@@ -129,7 +129,7 @@
String src,
Parameters par)
throws ProcessingException, SAXException,IOException {
- DeprecationLogger.log("The XMLDBGenerator is deprecated. Use the XML:DB pseudo protocol instead");
+ Deprecation.logger.warn("The XMLDBGenerator is deprecated. Use the XML:DB pseudo protocol instead");
super.setup(resolver, objectModel, src, par);
}
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/Cocoon.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/Cocoon.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/Cocoon.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/Cocoon.java Sat Mar 12 14:42:07 2005
@@ -57,7 +57,7 @@
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.util.ClassUtils;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.apache.commons.lang.SystemUtils;
import org.apache.excalibur.instrument.InstrumentManageable;
@@ -195,7 +195,7 @@
*/
public void setLoggerManager(LoggerManager loggerManager) {
this.loggerManager = loggerManager;
- DeprecationLogger.logger = this.loggerManager.getLoggerForCategory("deprecation");
+ Deprecation.setLogger(this.loggerManager.getLoggerForCategory("deprecation"));
}
/**
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/components/flow/javascript/fom/FOM_Cocoon.java Sat Mar 12 14:42:07 2005
@@ -46,7 +46,7 @@
import org.apache.cocoon.environment.Response;
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.util.ClassUtils;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.mozilla.javascript.JavaScriptException;
import org.mozilla.javascript.NativeJavaClass;
import org.mozilla.javascript.NativeJavaObject;
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/AbstractEnvironment.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/AbstractEnvironment.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/AbstractEnvironment.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/AbstractEnvironment.java Sat Mar 12 14:42:07 2005
@@ -34,7 +34,7 @@
import org.apache.cocoon.components.source.SourceUtil;
import org.apache.cocoon.util.BufferedOutputStream;
import org.apache.cocoon.util.ClassUtils;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
import org.apache.commons.collections.iterators.IteratorEnumeration;
import org.apache.excalibur.source.SourceException;
import org.xml.sax.SAXException;
@@ -370,7 +370,7 @@
*/
public Source resolve(String systemId)
throws ProcessingException, SAXException, IOException {
- DeprecationLogger.log("The resolve(String) method of the SourceResolver is "
+ Deprecation.logger.warn("The method SourceResolver.resolve(String) is "
+ "deprecated. Use resolveURI(String) instead.");
if (!this.initializedComponents) {
initComponents();
@@ -468,7 +468,7 @@
* @deprecated Use {@link #getOutputStream(int)} instead.
*/
public OutputStream getOutputStream() throws IOException {
- DeprecationLogger.log("The getOutputStream() method of the Environment " +
+ Deprecation.logger.warn("The method Environment.getOutputStream() " +
"is deprecated. Use getOutputStream(-1) instead.");
// by default we use the complete buffering output stream
return this.getOutputStream(-1);
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/environment/wrapper/EnvironmentWrapper.java Sat Mar 12 14:42:07 2005
@@ -31,7 +31,7 @@
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.Response;
import org.apache.cocoon.util.BufferedOutputStream;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
/**
@@ -298,7 +298,7 @@
*/
public OutputStream getOutputStream()
throws IOException {
- DeprecationLogger.log("The getOutputStream() method of the Environment " +
+ Deprecation.logger.warn("The method Environment.getOutputStream() " +
"is deprecated. Use getOutputStream(-1) instead.");
return this.outputStream == null
? this.environment.getOutputStream()
Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/servlet/CocoonServlet.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/servlet/CocoonServlet.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/servlet/CocoonServlet.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/servlet/CocoonServlet.java Sat Mar 12 14:42:07 2005
@@ -44,6 +44,7 @@
import org.apache.cocoon.servlet.multipart.MultipartHttpServletRequest;
import org.apache.cocoon.servlet.multipart.RequestFactory;
import org.apache.cocoon.util.ClassUtils;
+import org.apache.cocoon.util.Deprecation;
import org.apache.cocoon.util.IOUtils;
import org.apache.cocoon.util.StringUtils;
import org.apache.cocoon.util.log.CocoonLogFormatter;
@@ -848,6 +849,9 @@
}
this.log = this.loggerManager.getLoggerForCategory(accesslogger);
+
+ final String deprecationLevel = getInitParameter("forbidden-deprecation-level", "ERROR");
+ Deprecation.setForbiddenLevel(Deprecation.LogLevel.getLevel(deprecationLevel));
}
private LoggerManager newLoggerManager(String loggerManagerClass, Hierarchy hierarchy) {
Copied: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/Deprecation.java (from r157059, cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/DeprecationLogger.java)
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/Deprecation.java?view=diff&rev=157288&p1=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/DeprecationLogger.java&r1=157059&p2=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/Deprecation.java&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/log/DeprecationLogger.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/Deprecation.java Sat Mar 12 14:42:07 2005
@@ -13,26 +13,164 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.util.log;
+package org.apache.cocoon.util;
+import org.apache.avalon.framework.logger.ConsoleLogger;
import org.apache.avalon.framework.logger.Logger;
+import org.apache.commons.lang.enums.ValuedEnum;
/**
- * This class provides static accessors for a special "deprecation" logger.
- * All deprecated code should use this logger to log warnings into the
- * deprecation log. This makes it easier for users to find out if they're
+ * This class provides a special static "deprecation" logger.
+ * All deprecated code should use this logger to log messages into the
+ * deprecation logger. This makes it easier for users to find out if they're
* using deprecated stuff.
+ * <p>
+ * Additionally, it is possible to set the forbidden level of deprecation messages (default
+ * is to forbid ERROR, i.e. allow up to WARN). Messages equal to or above the forbidden level
+ * will lead to throwing a {@link DeprecationException}. Setting the forbidden level to
+ * FATAL_ERROR allows running legacy applications using deprecated features (tolerant mode), and
+ * setting the forbidden level to DEBUG will run in strict mode, forbidding all deprecations.
+ * <p>
+ * Note that according to the above, issuing a fatalError log always raises an exception, and
+ * can therefore be used when detecting old features that have been totally removed.
*
* @version $Id$
*/
-public class DeprecationLogger {
-
- /** This is the logger used to log the warn messages.
- * THIS IS AN INTERNAL FIELD, DON'T USE IT DIRECTLY.
+public class Deprecation {
+
+ /**
+ * The deprecation logger.
*/
- public static Logger logger;
+ public static final Logger logger = new LoggerWrapper(new ConsoleLogger());
+
+ private static final int DEBUG_VALUE = 0;
+ private static final int INFO_VALUE = 1;
+ private static final int WARN_VALUE = 2;
+ private static final int ERROR_VALUE = 3;
+ private static final int FATAL_VALUE = 3;
+ private static final int FATAL_ERROR_VALUE = 4;
+
+ public static final LogLevel DEBUG = new LogLevel("DEBUG", DEBUG_VALUE);
+ public static final LogLevel INFO = new LogLevel("INFO", INFO_VALUE);
+ public static final LogLevel WARN = new LogLevel("WARN", WARN_VALUE);
+ public static final LogLevel ERROR = new LogLevel("ERROR", ERROR_VALUE);
+ public static final LogLevel FATAL_ERROR = new LogLevel("FATAL_ERROR", FATAL_ERROR_VALUE);
- public static void log(String message) {
- logger.warn(message);
+ public static final class LogLevel extends ValuedEnum {
+ private LogLevel(String text, int value) {
+ super(text, value);
+ }
+
+ public static LogLevel getLevel(String level) {
+ return (LogLevel)ValuedEnum.getEnum(LogLevel.class, level);
+ }
+ }
+
+ public static void setLogger(Logger newLogger) {
+ // Note: the "logger" attribute is not of type LoggerWrapper so that it appears
+ // as a standard Logger in the javadocs.
+ ((LoggerWrapper)logger).setLogger(newLogger);
+ }
+
+ public static void setForbiddenLevel(LogLevel level) {
+ ((LoggerWrapper)logger).setForbiddenLevel(level);
+ }
+
+ /**
+ * Wraps a logger, and throws an DeprecatedException if the message level is
+ * higher than the allowed one.
+ */
+ private static class LoggerWrapper implements Logger {
+
+ private Logger realLogger;
+ // up to warn is allowed
+ private int forbiddenLevel = ERROR_VALUE;
+
+ public LoggerWrapper(Logger logger) {
+ this.realLogger = logger;
+ }
+
+ public void setLogger(Logger logger) {
+ // Unwrap a wrapped logger
+ while(logger instanceof LoggerWrapper) {
+ logger = ((LoggerWrapper)logger).realLogger;
+ }
+ this.realLogger = logger;
+ }
+
+ public void setForbiddenLevel(LogLevel level) {
+ this.forbiddenLevel = level.getValue();
+ }
+
+ private void throwException(int level, String message) {
+ if (level >= this.forbiddenLevel) {
+ throw new DeprecationException(message);
+ }
+ }
+
+ private boolean isThrowingException(int level) {
+ return level >= this.forbiddenLevel;
+ }
+
+ public void debug(String message) {
+ realLogger.debug(message);
+ throwException(DEBUG_VALUE, message);
+ }
+ public void debug(String message, Throwable thr) {
+ realLogger.debug(message, thr);
+ throwException(DEBUG_VALUE, message);
+ }
+ public void info(String message) {
+ realLogger.info(message);
+ throwException(INFO_VALUE, message);
+ }
+ public void info(String message, Throwable thr) {
+ realLogger.info(message, thr);
+ throwException(INFO_VALUE, message);
+ }
+ public void warn(String message) {
+ realLogger.warn(message);
+ throwException(WARN_VALUE, message);
+ }
+ public void warn(String message, Throwable thr) {
+ realLogger.warn(message, thr);
+ throwException(WARN_VALUE, message);
+ }
+ public void error(String message) {
+ realLogger.error(message);
+ throwException(ERROR_VALUE, message);
+ }
+ public void error(String message, Throwable thr) {
+ realLogger.error(message, thr);
+ throwException(ERROR_VALUE, message);
+ }
+ public void fatalError(String message) {
+ realLogger.fatalError(message);
+ throwException(FATAL_VALUE, message);
+ }
+ public void fatalError(String message, Throwable thr) {
+ realLogger.fatalError(message, thr);
+ throwException(FATAL_VALUE, message);
+ }
+ public boolean isDebugEnabled() {
+ // Enable level also if it is set to throw an exception, so that
+ // logging the message occurs, and then throws it.
+ return isThrowingException(DEBUG_VALUE) || realLogger.isDebugEnabled();
+ }
+ public boolean isInfoEnabled() {
+ return isThrowingException(INFO_VALUE) || realLogger.isInfoEnabled();
+ }
+ public boolean isWarnEnabled() {
+ return isThrowingException(WARN_VALUE) || realLogger.isWarnEnabled();
+ }
+ public boolean isErrorEnabled() {
+ return isThrowingException(ERROR_VALUE) || realLogger.isErrorEnabled();
+ }
+ public boolean isFatalErrorEnabled() {
+ return true;
+ }
+ public Logger getChildLogger(String message) {
+ return realLogger.getChildLogger(message);
+ }
}
}
Added: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/DeprecationException.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/DeprecationException.java?view=auto&rev=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/DeprecationException.java (added)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/DeprecationException.java Sat Mar 12 14:42:07 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2005 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.cocoon.util;
+
+
+/**
+ * An exception that indicates unauthorized use of a deprecated feature, or an
+ * attempt to use a old feature that has been removed.
+ *
+ * @version $Id$
+ */
+public class DeprecationException extends RuntimeException {
+ public DeprecationException(String message) {
+ super(message);
+ }
+}
Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/DeprecationException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/DeprecationException.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/core/container/ContainerTestCase.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/core/container/ContainerTestCase.java?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/core/container/ContainerTestCase.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/core/container/ContainerTestCase.java Sat Mar 12 14:42:07 2005
@@ -34,7 +34,7 @@
import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.WrapperServiceManager;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
/**
* JUnit TestCase for Cocoon Components.
@@ -142,7 +142,7 @@
String level = System.getProperty("junit.test.loglevel", "" + ConsoleLogger.LEVEL_WARN);
this.logger = new ConsoleLogger(Integer.parseInt(level));
- DeprecationLogger.logger = this.logger;
+ Deprecation.setLogger(this.logger);
prepare();
}
Added: cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/util/test/DeprecationTestCase.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/util/test/DeprecationTestCase.java?view=auto&rev=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/util/test/DeprecationTestCase.java (added)
+++ cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/util/test/DeprecationTestCase.java Sat Mar 12 14:42:07 2005
@@ -0,0 +1,108 @@
+/*
+ * Copyright 1999-2004 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.cocoon.util.test;
+
+import junit.framework.TestCase;
+
+import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.cocoon.util.Deprecation;
+import org.apache.cocoon.util.DeprecationException;
+
+/**
+ * Test Cases for the Deprecation class.
+ * @see org.apache.cocoon.util.Deprecation
+ *
+ * @version $Id$
+ */
+public class DeprecationTestCase extends TestCase {
+ public DeprecationTestCase(String name) {
+ super(name);
+ }
+
+ private Logger originalLogger;
+ private Logger consoleLogger;
+
+ public void setUp() throws Exception {
+ super.setUp();
+ originalLogger = Deprecation.logger;
+ // Setup a disabled logger: avoids polluting the test output, and also test
+ // that isXXXEnabled also matches the forbidden deprecation level
+ consoleLogger = new ConsoleLogger(ConsoleLogger.LEVEL_DISABLED);
+ Deprecation.setLogger(consoleLogger);
+ Deprecation.setForbiddenLevel(Deprecation.ERROR);
+ }
+
+ public void tearDown() throws Exception {
+ Deprecation.setLogger(originalLogger);
+ super.tearDown();
+ }
+
+ public void testPrecond() {
+ // Double check that our logger won't let anything go through, and that
+ // enabled levels are because of the allowed level we've set.
+ assertFalse(consoleLogger.isInfoEnabled());
+ assertFalse(consoleLogger.isWarnEnabled());
+ assertFalse(consoleLogger.isErrorEnabled());
+ }
+
+ public void testInfoOk() {
+ try {
+ Deprecation.logger.info("testing deprecation logs");
+ } catch(DeprecationException de) {
+ fail("Should not throw an exception");
+ }
+ }
+
+ public void testWarnOk() {
+ try {
+ Deprecation.logger.warn("testing deprecation logs");
+ } catch(DeprecationException de) {
+ fail("Should not throw an exception");
+ }
+ }
+
+ public void testErrorFails() {
+ try {
+ Deprecation.logger.error("testing deprecation logs");
+ } catch(DeprecationException de) {
+ return; // success
+ }
+ fail("Should throw an exception");
+ }
+
+ public void testDebugFails() {
+ Deprecation.setForbiddenLevel(Deprecation.DEBUG);
+ try {
+ Deprecation.logger.debug("testing deprecation logs");
+ } catch(DeprecationException de) {
+ return; // success
+ }
+ fail("Should throw an exception");
+ }
+
+ public void testInfoDisabled() {
+ assertFalse(Deprecation.logger.isInfoEnabled());
+ }
+
+ public void testWarnDisabled() {
+ assertFalse(Deprecation.logger.isWarnEnabled());
+ }
+
+ public void testErrorEnabled() {
+ assertTrue(Deprecation.logger.isErrorEnabled());
+ }
+}
Propchange: cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/util/test/DeprecationTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/branches/BRANCH_2_1_X/src/test/org/apache/cocoon/util/test/DeprecationTestCase.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/web.xml?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/web.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/web.xml Sat Mar 12 14:42:07 2005
@@ -131,6 +131,16 @@
</init-param>
<!--
+ The forbidden level for deprectation messages. DEBUG forbids all deprecations (strict mode)
+ and FATAL_ERROR allows all (tolerant mode). Default is ERROR, allowing up to WARN.
+ See org.apache.util.Deprecation for more details.
+ -->
+ <init-param>
+ <param-name>forbidden-deprecation-level</param-name>
+ <param-value>ERROR</param-value>
+ </init-param>
+
+ <!--
This parameter switches the logging system from LogKit to Log4J for Cocoon.
Log4J has to be configured already.
<init-param>
Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?view=diff&r1=157287&r2=157288
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Sat Mar 12 14:42:07 2005
@@ -202,6 +202,12 @@
<changes>
<release version="@version@" date="@date@">
+ <action dev="SW" type="update">
+ Refactored the Deprecation class: the "forbidden-deprecation-level" parameter in web.xml
+ allows to raise deprecation exceptions depending on the log level. For example, DEBUG
+ allows no deprecations (strict mode), and FATAL_ERROR allows all (tolerant mode).
+ Default is ERROR, allowing messages up to WARN.
+ </action>
<action dev="SW" type="add">
A flowscript's file encoding can now be specified by a comment on the script's
very first line, in the form "<code>// encoding = xxxx</code>". Otherwise, the