Author: cziegeler
Date: Mon Feb 14 09:45:21 2005
New Revision: 153811

URL: http://svn.apache.org/viewcvs?view=rev&rev=153811
Log:
Add deprecation warning

Modified:
    
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/FormsPipelineConfig.java

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=153810&r2=153811
==============================================================================
--- 
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
 Mon Feb 14 09:45:21 2005
@@ -17,7 +17,9 @@
 
 import java.io.IOException;
 import java.io.StringReader;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
@@ -29,6 +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.xml.AttributesImpl;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.JXPathException;
@@ -113,15 +116,18 @@
         }
         cocoonOM.put("parameters", parameters);
         
-        Variables vars = jxpc.getVariables();
+        FormsVariables vars = new FormsVariables();
         vars.declareVariable("cocoon", cocoonOM);
         // These four are deprecated!
-        // FIXME - We should add a warning if they are used
         vars.declareVariable("continuation", wk);
         vars.declareVariable("request", request);
         vars.declareVariable("session", session);
         vars.declareVariable("parameters", parameters);
-        
+        vars.addDeprecatedVariable("continuation");
+        vars.addDeprecatedVariable("request");
+        vars.addDeprecatedVariable("session");
+        vars.addDeprecatedVariable("parameters");
+
         Locale localeParameter = null;
         String localeStr = parameters.getParameter("locale", null);
         if (localeStr != null) {
@@ -322,5 +328,49 @@
             formAtts.addCDATAAttribute("method", getFormMethod());
         }
         return formAtts;
+    }
+    
+    public static final class FormsVariables implements Variables {
+        
+        final Map vars = new HashMap();
+        final List deprecatedNames = new ArrayList();
+
+        public void addDeprecatedVariable(String name) {
+            this.deprecatedNames.add(name);
+        }
+
+        /* (non-Javadoc)
+         * @see 
org.apache.commons.jxpath.Variables#declareVariable(java.lang.String, 
java.lang.Object)
+         */
+        public void declareVariable(String name, Object value) {
+            this.vars.put(name, value);
+        }
+
+        /* (non-Javadoc)
+         * @see 
org.apache.commons.jxpath.Variables#getVariable(java.lang.String)
+         */
+        public Object getVariable(String name) {
+            Object value = this.vars.get(name);
+            if ( value != null && deprecatedNames.contains(name) ) {
+                DeprecationLogger.log("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.");
+            }
+            return value;
+        }
+
+        /* (non-Javadoc)
+         * @see 
org.apache.commons.jxpath.Variables#isDeclaredVariable(java.lang.String)
+         */
+        public boolean isDeclaredVariable(String name) {
+            return this.vars.containsKey(name);
+        }
+
+        /* (non-Javadoc)
+         * @see 
org.apache.commons.jxpath.Variables#undeclareVariable(java.lang.String)
+         */
+        public void undeclareVariable(String name) {
+            this.vars.remove(name);
+        }
     }
 }


Reply via email to