Author: dolander
Date: Sat Jan 29 16:31:56 2005
New Revision: 149088

URL: http://svn.apache.org/viewcvs?view=rev&rev=149088
Log:
Add the ability for the JavaScript reportNetUIErrors to post those errors
back to the server so they can be logged.

Cleaned up a bunch of TODOs by adding logging to the tree.


Added:
   
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/
   
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/Controller.jpf
   
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/index.jsp
   
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/JsReportError.xml
Modified:
   incubator/beehive/trunk/netui/src/javascript/tagshtml/netui-tree.js
   
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ConfigurePopup.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RetrievePopupOutput.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/AttributeRenderer.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/ServletTreeRenderer.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeContent.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeLabel.java
   
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreePropertyOverride.java
   
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml

Modified: incubator/beehive/trunk/netui/src/javascript/tagshtml/netui-tree.js
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/javascript/tagshtml/netui-tree.js?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/javascript/tagshtml/netui-tree.js&r1=149087&p2=incubator/beehive/trunk/netui/src/javascript/tagshtml/netui-tree.js&r2=149088
==============================================================================
--- incubator/beehive/trunk/netui/src/javascript/tagshtml/netui-tree.js 
(original)
+++ incubator/beehive/trunk/netui/src/javascript/tagshtml/netui-tree.js Sat Jan 
29 16:31:56 2005
@@ -54,21 +54,21 @@
 NetUITree.prototype.getTreeName = function(node)
 {
     if (node.nodeName != "A")
-        return reportError("getTreeName: Expected Node was not an A:" + 
node.nodeName);
+        return reportNetUIError("getTreeName: Expected Node was not an A:" + 
node.nodeName);
 
     // parent of the A should be a DIV
     node = node.parentNode;
     if (node.nodeName != "DIV")
-        return reportError("getTreeName: Expected Node was not an DIV:" + 
node.nodeName);
+        return reportNetUIError("getTreeName: Expected Node was not an DIV:" + 
node.nodeName);
 
     // parent of the DIV is the root of the tree DIV
     node = node.parentNode;
     if (node.nodeName != "DIV")
-        return reportError("getTreeName: Expected Node was not an DIV:" + 
node.nodeName);
+        return reportNetUIError("getTreeName: Expected Node was not an DIV:" + 
node.nodeName);
 
     var attr = node.getAttribute("netui:treeName");
     if (attr == null)
-       return reportError("getTreeName: The treeName was not found");
+       return reportNetUIError("getTreeName: The treeName was not found");
 
     return attr;
 }
@@ -97,12 +97,12 @@
     var func = function() {
        if (req.readyState==4) {
           if (req.status == 200) {
-              if (req.responseXML!=null) {
+              if (req.responseXML!=null && callback != null) {
                   callback(req);
               }
           }
           else {
-              reportError("Unable to retrieve XML data:"; +  req.statusText);
+              reportNetUIError("Unable to retrieve XML data:"; +  
req.statusText);
           }
        }
     }
@@ -158,7 +158,7 @@
                   var txt = getCData(treeDivs[j]);
                    //alert("Text:" + txt.nodeValue);
                   if (txt == null) {
-                      reportError("Didn't find the CDATA");
+                      reportNetUIError("Didn't find the CDATA");
                       return;
                   }
               
@@ -193,7 +193,7 @@
 {
     // make sure that what is calling this is an anchor
     if (this.nodeName != "A")
-        return reportError("NetUIExpandTree: Expected Node was not an A:" + 
this.nodeName);
+        return reportNetUIError("NetUIExpandTree: Expected Node was not an A:" 
+ this.nodeName);
 
     // Create the XmlHttpRequest that will inform the server of the 
     // change in the client state.
@@ -213,14 +213,14 @@
         }
     }
     if (img == null)
-        return reportError("IMG tag not found");
+        return reportNetUIError("IMG tag not found");
     img.src = netUI.webAppName + netUI.netUITree.imgExpandName;
     this.onclick = NetUICollapseTree;
 
     // go up the level and get the Div
     var parentDiv = this.parentNode;
     if (parentDiv.nodeName != "DIV")
-        return reportError("Expected Node was not an DIV:" + 
parentDiv.nodeName);
+        return reportNetUIError("Expected Node was not an DIV:" + 
parentDiv.nodeName);
 
     var depth = netUI.netUITree.getDepth(parentDiv);
     parentDiv.setAttribute("netui-tree-anchor","expand");
@@ -241,7 +241,7 @@
 function NetUICollapseTree()
 {
     if (this.nodeName != "A")
-        return reportError("NetUICollapseTree: Expected Node was not an A:" + 
this.nodeName);
+        return reportNetUIError("NetUICollapseTree: Expected Node was not an 
A:" + this.nodeName);
     return NetUICollapseTreeNode(this,true);
 }
 
@@ -251,7 +251,7 @@
 {
     // verify we are inside an anchor
     if (node.nodeName != "A")
-        return reportError("NetUICollapseTreeNode: Expected Node was not an 
A:" + node.nodeName);
+        return reportNetUIError("NetUICollapseTreeNode: Expected Node was not 
an A:" + node.nodeName);
 
     // Create the XmlHttpRequest that will inform the server of the 
     // change in the client state.
@@ -271,7 +271,7 @@
         }
     }
     if (img == null)
-        return reportError("IMG tag not found");
+        return reportNetUIError("IMG tag not found");
 
     // set the image to be the collapse image
     img.src = netUI.webAppName + netUI.netUITree.imgCollapseName;
@@ -280,7 +280,7 @@
     // go up the level
     var parentDiv = node.parentNode;
     if (parentDiv.nodeName != "DIV")
-        return reportError("Expected Node was not a DIV:" + 
parentDiv.nodeName);
+        return reportNetUIError("Expected Node was not a DIV:" + 
parentDiv.nodeName);
 
     // get the depth and then begin to collapse rows
     var depth = netUI.netUITree.getDepth(parentDiv);
@@ -296,7 +296,7 @@
 {
     var parentDiv = a.parentNode;
     if (parentDiv.nodeName != "DIV")
-        return reportError("Exception Node was not a DIV:" + 
parentDiv.nodeName);
+        return reportNetUIError("Exception Node was not a DIV:" + 
parentDiv.nodeName);
     return parentDiv;
 }
 
@@ -305,7 +305,7 @@
 NetUITree.prototype.getDepth = function(div)
 {
     if (div.nodeName != "DIV")
-        return reportError("getDepth only support DIV nodes, found: " + 
div.nodeName);
+        return reportNetUIError("getDepth only support DIV nodes, found: " + 
div.nodeName);
     
     var attr = div.getAttribute("netui-tree-level");
     return attr;
@@ -373,7 +373,7 @@
 NetUITree.prototype.expandTree = function(depth,div)
 {
     if (div.nodeName != "DIV")
-        return reportError("expandTree only support DIV nodes, found: " + 
div.nodeName);
+        return reportNetUIError("expandTree only support DIV nodes, found: " + 
div.nodeName);
         
     //alert("inside expand:" + depth);
     while (true) {
@@ -565,8 +565,11 @@
 }
 
 // Utility function to report an error
-function reportError(msg)
+function reportNetUIError(msg)
 {
-    alert(msg);
+    var url = netUI.webAppName + "/netuiError" + 
NetUI.prototype.xmlHttpRequestMapping +
+       "?error=" + msg;
+    netUI.raiseCommand(url,null);
+    window.status = msg;
     return false;
 }

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java&r1=149087&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java
      (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/xmlhttprequest/XmlHttpRequestServlet.java
      Sat Jan 29 16:31:56 2005
@@ -19,9 +19,11 @@
 
 import 
org.apache.beehive.netui.pageflow.requeststate.ServletInterceptorContext;
 import org.apache.beehive.netui.pageflow.requeststate.IRequestInterceptor;
+import org.apache.beehive.netui.pageflow.requeststate.InterceptorContext;
 import org.apache.beehive.netui.util.config.ConfigUtil;
 import org.apache.beehive.netui.util.config.bean.NetuiConfigDocument;
 import org.apache.beehive.netui.util.config.bean.RequestInterceptors;
+import org.apache.beehive.netui.util.logging.Logger;
 
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletResponse;
@@ -32,6 +34,7 @@
 
 public class XmlHttpRequestServlet extends HttpServlet
 {
+    private static final Logger logger = 
Logger.getInstance(XmlHttpRequestServlet.class);
     private ArrayList<IRequestInterceptor> _interceptors;
 
     public void init()
@@ -46,21 +49,21 @@
             return;
 
         _interceptors = new ArrayList<IRequestInterceptor>(inter.length);
+        _interceptors.add(new ErrorCRI());
         for (String i : inter) {
             try {
                 Class cls = Class.forName(i);
                 IRequestInterceptor interceptor = (IRequestInterceptor) 
cls.newInstance();
                 _interceptors.add(interceptor);
             }
-            //@todo:need to log these errors
-            catch (ClassNotFoundException ignore) {
-                System.err.println("Class not found");
+            catch (ClassNotFoundException error) {
+                logger.error("Interceptor class not found:" + i,error);
             }
-            catch (InstantiationException ignore) {
-                System.err.println("Instantiation Error");
+            catch (InstantiationException error) {
+                logger.error("Unable to create intercptor class:" + i,error);
             }
-            catch (IllegalAccessException ignore) {
-                System.err.println("IllegalAccessException");
+            catch (IllegalAccessException error) {
+                logger.error("Illegal access of intercptor class:" + i,error);
             }
         }
     }
@@ -86,5 +89,36 @@
         throws IOException, ServletException
     {
         doGet(request, response);
+    }
+
+    class ErrorCRI implements IRequestInterceptor
+    {
+        public void interceptRequest(InterceptorContext ctxt)
+        {
+            // Create the command by striping off the context path and the 
extension
+            HttpServletRequest request = (HttpServletRequest) 
((ServletInterceptorContext) ctxt).getRequest();
+            String cmd = request.getRequestURI();
+            String ctxtPath = request.getContextPath();
+
+            // catch any runtime errors here and return.
+            try {
+                cmd = cmd.substring(ctxtPath.length() + 1);
+                int idx = cmd.lastIndexOf('.');
+                if (idx != -1) {
+                    cmd = cmd.substring(0, idx);
+                }
+
+                if ("netuiError".equals(cmd)) {
+                    String error = request.getParameter("error");
+                    logger.error("NetUI JavaScript Error:" + error);
+                    System.err.println("NetUI JavaScript Error:" + error);
+                }
+            }
+            catch (RuntimeException e) {
+                logger.error("Runtime Error creating XmlRequestServlet 
Command:" + e.getClass().getName(),e);
+            }
+
+
+        }
     }
 }

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ConfigurePopup.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ConfigurePopup.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ConfigurePopup.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ConfigurePopup.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ConfigurePopup.java
  (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/ConfigurePopup.java
  Sat Jan 29 16:31:56 2005
@@ -39,7 +39,6 @@
  * @netui:tag name="configurePopup" description="Configures popup window 
parameters for parent tags that can open popup windows."
  * @netui.tldx:tag requiredparent="anchor button form image imageAnchor 
data:anchorColumn";
  * requiredchild="#nothing"
- * renderer="TODO"
  * bodycontentpref="empty"
  * whitespace="indent"
  */

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RetrievePopupOutput.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RetrievePopupOutput.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RetrievePopupOutput.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RetrievePopupOutput.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RetrievePopupOutput.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/html/RetrievePopupOutput.java
     Sat Jan 29 16:31:56 2005
@@ -40,7 +40,6 @@
  * @netui:tag name="retrievePopupOutput" description="Causes a value to be 
retrieved when a popup window closes."
  * @netui.tldx:tag requiredparent="configurePopup"
  * requiredchild="#nothing"
- * renderer="TODO"
  * bodycontentpref="empty"
  * whitespace="indent"
  */

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/AttributeRenderer.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/AttributeRenderer.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/AttributeRenderer.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/AttributeRenderer.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/AttributeRenderer.java
       (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/AttributeRenderer.java
       Sat Jan 29 16:31:56 2005
@@ -320,10 +320,7 @@
 
         // remove the attributes from the array list -- this should never fail
         boolean removed = al.remove(attr);
-        if (!removed) {
-            // @todo: need to remove this...This should become an assert...
-            System.err.println("Unable to remove attribute:" + 
attr.getAttribute() + "=" + attr.getValue());
-        }
+        assert(removed) : "Unable to remove attribute:" + attr.getAttribute() 
+ "=" + attr.getValue();
 
         // if there was a list of removed attributes we need to possibly add 
one back
         // We do this by walking the removes list and when we find an 
attribute with the
@@ -361,26 +358,6 @@
             }
         }
     }
-
-    /**
-     * @param sb
-     * @param name
-     * @param value
-     */
-    private void writeAttribute(StringBuilder sb, String name, String value)
-    {
-        // @todo: this is duplicated from AbstractBaseTag.  Not sure if that 
shouldn't become a static
-        // method that could be shared.
-        if (value == null)
-            return;
-        assert(name != null);
-        sb.append(" ");
-        sb.append(name);
-        sb.append("=\"");
-        sb.append(value);
-        sb.append("\"");
-    }
-
 
     public static class RemoveInfo
     {

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/ServletTreeRenderer.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/ServletTreeRenderer.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/ServletTreeRenderer.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/ServletTreeRenderer.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/ServletTreeRenderer.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/ServletTreeRenderer.java
     Sat Jan 29 16:31:56 2005
@@ -19,6 +19,7 @@
 
 import org.apache.beehive.netui.tags.rendering.AbstractHtmlState;
 import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
+import org.apache.beehive.netui.util.logging.Logger;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -27,6 +28,7 @@
 
 public class ServletTreeRenderer extends TreeRenderer
 {
+    private static final Logger logger = 
Logger.getInstance(ServletTreeRenderer.class);
     AbstractRenderAppender _writer;
     StringBuilder _sb;
 
@@ -51,11 +53,18 @@
         _sb.setLength(0);
     }
 
+    /**
+     * Errors during rendering will call through this method.  During the 
XmlHttpRequest, these
+     * will just be logged and we will go on.
+     * @param message
+     * @param e
+     * @throws JspException
+     */
     protected void registerTagError(String message, Throwable e)
         throws JspException
     {
-        // @todo: add logging here
         System.err.println("Error in rendering tree:" + message);
+        logger.error(message,e);
     }
 
     protected String renderTagId(HttpServletRequest request, String tagId, 
AbstractHtmlState state)

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeCRI.java
 Sat Jan 29 16:31:56 2005
@@ -21,6 +21,7 @@
 import org.apache.beehive.netui.tags.rendering.AbstractRenderAppender;
 import org.apache.beehive.netui.tags.rendering.StringBuilderRenderAppender;
 import org.apache.beehive.netui.tags.TagConfig;
+import org.apache.beehive.netui.util.logging.Logger;
 
 import javax.servlet.ServletContext;
 import javax.servlet.ServletResponse;
@@ -35,6 +36,8 @@
     private static final String TREE_COLLAPSE = "treeCollapse";
     private static final String TREE_EXPAND = "treeExpand";
 
+    private static final Logger logger = Logger.getInstance(TreeCRI.class);
+
     // The elements we will create in the document
     private static final String TREE_EXPAND_ELEM = "treeExpand";
 
@@ -88,13 +91,11 @@
         // get the tree from the name service
         INameable n = ns.get(tree);
         if (n == null) {
-            // @todo: need to log there errors
-            System.err.println("Tree '" + tree + "' was not found in the 
NameService");
+            logger.error("Tree '" + tree + "' was not found in the 
NameService");
             return;
         }
         if (!(n instanceof ITreeRootElement)) {
-            // @todo: need to log there errors
-            System.err.println("Named Tree was not an instance of a 
ITreeRootElement");
+            logger.error("Named Tree was not an instance of a 
ITreeRootElement");
             return;
         }
 
@@ -134,14 +135,11 @@
                 }
             }
             catch (JspException se) {
-                // @todo: need to log this
-                se.printStackTrace();
+                logger.error("Received a JSP excpetion Rendering the Tree",se);
                 return;
             }
 
-
             // add the tree text
-
             writeEndElement(writer,TREE_EXPAND_ELEM);
             write(response,sb.toString());
         }

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeContent.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeContent.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeContent.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeContent.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeContent.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeContent.java
     Sat Jan 29 16:31:56 2005
@@ -18,6 +18,7 @@
 package org.apache.beehive.netui.tags.tree;
 
 import org.apache.beehive.netui.tags.AbstractSimpleTag;
+import org.apache.beehive.netui.util.logging.Logger;
 
 import javax.servlet.jsp.JspException;
 import java.io.IOException;
@@ -32,6 +33,7 @@
  */
 public class TreeContent extends AbstractSimpleTag
 {
+    private static final Logger logger = Logger.getInstance(TreeContent.class);
     private String _text;
 
     /**
@@ -56,8 +58,7 @@
         Object o = getParent();
         assert (o != null);
         if (!(o instanceof TreeItem)) {
-            // @todo: this needs to be logged....
-            System.err.println("Invalid Parent:" + o.getClass().getName());
+            logger.error("Invalid Parent (expected a TreeItem):" + 
o.getClass().getName());
             return;
         }
 

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
        (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeItem.java
        Sat Jan 29 16:31:56 2005
@@ -257,16 +257,6 @@
     }
 
     /**
-     * @netui:attribute required="false"
-     * description=""
-     */
-    // @TODO: this should be added back with an expression
-    //public void setNode(TreeElement node)
-    //{
-    //    _treeElement = node;
-    //}
-
-    /**
      * Sets the window target.
      * @param target - the window target.
      * @netui:attribute required="false"  rtexprvalue="true"

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeLabel.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeLabel.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeLabel.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeLabel.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeLabel.java
       (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreeLabel.java
       Sat Jan 29 16:31:56 2005
@@ -21,6 +21,7 @@
 
 import javax.servlet.jsp.JspException;
 import java.io.IOException;
+import org.apache.beehive.netui.util.logging.Logger;
 
 /**
  * @netui:tag name="treeLabel"  body-content="scriptless" description="Set the 
label for the parent TreeItem."
@@ -32,6 +33,8 @@
  */
 public class TreeLabel extends AbstractSimpleTag
 {
+    private static final Logger logger = Logger.getInstance(TreeLabel.class);
+
     private String _text;
 
     /**
@@ -56,8 +59,7 @@
         Object o = getParent();
         assert (o != null);
         if (!(o instanceof TreeItem)) {
-            // @todo: this needs to be logged.
-            System.err.println("Invalid Parent:" + o.getClass().getName());
+            logger.error("Invalid Parent (expected a TreeItem):" + 
o.getClass().getName());
             return;
         }
 

Modified: 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreePropertyOverride.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreePropertyOverride.java?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreePropertyOverride.java&r1=149087&p2=incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreePropertyOverride.java&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreePropertyOverride.java
    (original)
+++ 
incubator/beehive/trunk/netui/src/tags-html/org/apache/beehive/netui/tags/tree/TreePropertyOverride.java
    Sat Jan 29 16:31:56 2005
@@ -18,6 +18,7 @@
 package org.apache.beehive.netui.tags.tree;
 
 import org.apache.beehive.netui.tags.AbstractSimpleTag;
+import org.apache.beehive.netui.util.logging.Logger;
 
 import javax.servlet.jsp.JspException;
 
@@ -27,6 +28,7 @@
  */
 public class TreePropertyOverride extends AbstractSimpleTag
 {
+    private static final Logger logger = 
Logger.getInstance(TreePropertyOverride.class);
     private InheritableState _iState = new InheritableState();
 
     /**
@@ -193,8 +195,7 @@
         Object o = getParent();
         assert (o != null);
         if (!(o instanceof TreeItem)) {
-            // @todo: this needs to be logged.
-            System.err.println("Invalid Parent:" + o.getClass().getName());
+            logger.error("Invalid Parent (expected a TreeItem):" + 
o.getClass().getName());
             return;
         }
 

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/Controller.jpf
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/Controller.jpf?view=auto&rev=149088
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/Controller.jpf
      Sat Jan 29 16:31:56 2005
@@ -0,0 +1,39 @@
+package javascript.jsReportError;
+
+import javax.servlet.http.HttpSession;
+import org.apache.beehive.netui.pageflow.FormData;
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+/**
+ * This is the default controller for a blank web application.
+ */
[EMAIL PROTECTED]
+public class Controller extends PageFlowController
+{
+    @Jpf.Action(
+        forwards={
+           @Jpf.Forward(name="index", path="index.jsp")
+        }
+    )
+    protected Forward begin()
+    {
+        return new Forward("index");
+    }
+
+
+    /**
+     * Callback that is invoked when this controller instance is created.
+     */
+    protected void onCreate()
+    {
+    }
+
+    /**
+     * Callback that is invoked when this controller instance is destroyed.
+     */
+    protected void onDestroy(HttpSession session)
+    {
+    }
+}

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/index.jsp
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/index.jsp?view=auto&rev=149088
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/coreWeb/javascript/jsReportError/index.jsp
   Sat Jan 29 16:31:56 2005
@@ -0,0 +1,18 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<netui:html idScope="html">
+    <head>
+        <netui:base/>
+        <netui:scriptHeader />
+    </head>
+    <netui:body>
+        <p style="color:green">Basic test of reporting error from JavaScript 
to the server using
+       XmlHttpRequest.
+        </p>
+<netui:scriptBlock placement="after">
+reportNetUIError("BVT Test of ClientSide Error reporting");
+</netui:scriptBlock>
+    </netui:body>
+</netui:html>
+
+  
\ No newline at end of file

Modified: 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml?view=diff&rev=149088&p1=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r1=149087&p2=incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml&r2=149088
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
   (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/config/testRecorder-tests.xml
   Sat Jan 29 16:31:56 2005
@@ -3883,6 +3883,19 @@
          </features>
       </test>
       <test>
+         <name>JsReportError</name>
+         <description>Log Client errors on the server</description>
+         <webapp>coreWeb</webapp>
+         <categories>
+            <category>bvt</category>
+            <category>bvt.struts11</category>
+            <category>tags</category>
+         </categories>
+         <features>
+            <feature>JavaScript</feature>
+         </features>
+      </test>
+      <test>
          <name>jsScriptScopeId</name>
          <description>Test that scope id works</description>
          <webapp>coreWeb</webapp>

Added: 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/JsReportError.xml
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/JsReportError.xml?view=auto&rev=149088
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/drt/testRecorder/tests/JsReportError.xml
 Sat Jan 29 16:31:56 2005
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession 
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session";>
+   <ses:sessionName>JsReportError</ses:sessionName>
+   <ses:tester>Daryl</ses:tester>
+   <ses:startDate>29 Jan 2005, 04:40:33.997 PM MST</ses:startDate>
+   <ses:description>Basic verification of errors reported on the client being 
posted to the server.</ses:description>
+   <ses:tests>
+      <ses:test>
+         <ses:testNumber>1</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/javascript/jsReportError/Controller.jpf</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>88642386E8BA058E683432AB4863DA77</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  
<ses:value>JSESSIONID=88642386E8BA058E683432AB4863DA77</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 
4.01 Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd";>
+<html lang="en" netui:idScope="html">
+
+    <head>
+        <base 
href="http://localhost:8080/coreWeb/javascript/jsReportError/index.jsp";>
+        <script language="JavaScript" type="text/JavaScript" 
src="/coreWeb/resources/beehive/version1/javascript/netui-tree.js"></script>
+    </head>
+    <body>
+        <p style="color:green">Basic test of reporting error from JavaScript 
to the server using
+       XmlHttpRequest.
+        </p>
+
+    
+
+<script language="JavaScript" type="text/JavaScript">
+<!--
+
+// **** Start the NetUI Framework Generated JavaScript ****
+
+// write out the webapp name
+netUI.webAppName = "/coreWeb";
+-->
+</script>
+
+
+
+<script language="JavaScript" type="text/JavaScript">
+<!--
+
+reportNetUIError("BVT Test of ClientSide Error reporting");
+
+-->
+</script>
+
+</div>
+</body>
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>2</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/coreWeb/netuiError.xhr</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>error</ses:name>
+                  <ses:value>BVT Test of ClientSide Error reporting</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>88642386E8BA058E683432AB4863DA77</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cache-control</ses:name>
+                  <ses:value>no-cache</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  
<ses:value>JSESSIONID=88642386E8BA058E683432AB4863DA77</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>pragma</ses:name>
+                  <ses:value>no-cache</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody/>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>29 Jan 2005, 04:40:45.053 PM MST</ses:endDate>
+   <ses:testCount>2</ses:testCount>
+</ses:recorderSession>
\ No newline at end of file

Reply via email to