You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ki...@apache.org on 2003/09/16 19:46:44 UTC

cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Generator.java Node.java SmapStratum.java SmapUtil.java

kinman      2003/09/16 10:46:44

  Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
                        Node.java SmapStratum.java SmapUtil.java
  Log:
  - For template texts that generate multiple Java lines, addidtional mapping
    informantion are kept in the TemplateText node, to aide SMAP generation.
  
  Revision  Changes    Path
  1.208     +23 -14    jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
  
  Index: Generator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
  retrieving revision 1.207
  retrieving revision 1.208
  diff -u -r1.207 -r1.208
  --- Generator.java	15 Sep 2003 13:43:54 -0000	1.207
  +++ Generator.java	16 Sep 2003 17:46:43 -0000	1.208
  @@ -1867,21 +1867,25 @@
                   return;
               }
   
  -            if (ctxt.getOptions().genStringAsCharArray()) {
  -                if (textSize <= 3) {
  -                   // Spcial case small text strings
  -                   n.setBeginJavaLine(out.getJavaLine());
  -                   out.printil("out.write(" + quote(text.charAt(0)) + ");");
  -                   if (textSize > 1) {
  -                       out.printil("out.write(" + quote(text.charAt(1)) + ");");
  +            if (textSize <= 3) {
  +               // Special case small text strings
  +               n.setBeginJavaLine(out.getJavaLine());
  +               int lineInc = 0;
  +               for (int i = 0; i < textSize; i++) {
  +                   char ch = text.charAt(i);
  +                   out.printil("out.write(" + quote(ch) + ");");
  +                   if (i > 0) {
  +                       n.addSmap(lineInc);
                      }
  -                   if (textSize > 2) {
  -                       out.printil("out.write(" + quote(text.charAt(2)) + ");");
  +                   if (ch == '\n') {
  +                       lineInc++;
                      }
  -                   n.setEndJavaLine(out.getJavaLine());
  -                   return;
                  }
  +               n.setEndJavaLine(out.getJavaLine());
  +               return;
  +           }
   
  +            if (ctxt.getOptions().genStringAsCharArray()) {
                  // Generate Strings as char arrays, for performance
                   ServletWriter caOut;
                   if (charArrayBuffer == null) {
  @@ -1915,6 +1919,7 @@
               StringBuffer sb = new StringBuffer("out.write(\"");
               int initLength = sb.length();
               int count = JspUtil.CHUNKSIZE;
  +            int srcLine = 0;	// relative to starting srouce line
               for (int i = 0; i < text.length(); i++) {
                   char ch = text.charAt(i);
                   --count;
  @@ -1930,6 +1935,7 @@
                           break;
                       case '\n' :
                           sb.append('\\').append('n');
  +                        srcLine++;
   
                           if (breakAtLF || count < 0) {
                               // Generate an out.write() when see a '\n' in template
  @@ -1940,6 +1946,9 @@
                               }
                               sb.setLength(initLength);
                               count = JspUtil.CHUNKSIZE;
  +
  +                            // add a Smap for this line
  +                            n.addSmap(srcLine);
                           }
                           break;
                       case '\t' : // Not sure we need this
  
  
  
  1.77      +24 -4     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java
  
  Index: Node.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java,v
  retrieving revision 1.76
  retrieving revision 1.77
  diff -u -r1.76 -r1.77
  --- Node.java	2 Sep 2003 21:39:59 -0000	1.76
  +++ Node.java	16 Sep 2003 17:46:43 -0000	1.77
  @@ -63,6 +63,7 @@
   import java.util.Iterator;
   import java.util.List;
   import java.util.Vector;
  +import java.util.ArrayList;
   
   import javax.servlet.jsp.tagext.BodyTag;
   import javax.servlet.jsp.tagext.DynamicAttributes;
  @@ -1921,6 +1922,8 @@
        */
       public static class TemplateText extends Node {
   
  +        private ArrayList extraSmap = null;
  +
   	public TemplateText(String text, Mark start, Node parent) {
   	    super(null, null, text, start, parent);
   	}
  @@ -1957,13 +1960,30 @@
   	public boolean isAllSpace() {
   	    boolean isAllSpace = true;
   	    for (int i=0; i<text.length(); i++) {
  -		if (!Character.isSpace(text.charAt(i))) {
  +		if (!Character.isWhitespace(text.charAt(i))) {
   		    isAllSpace = false;
   		    break;
   		}
   	    }
   	    return isAllSpace;
   	}
  +
  +        /**
  +         * Add a source to Java line mapping
  +         * @param srcLine The postion of the source line, relative to the line
  +         *        at the start of this node.  The corresponding java line is
  +         *        assumed to be consecutive, i.e. one more than the last.
  +         */
  +        public void addSmap(int srcLine) {
  +            if (extraSmap == null) {
  +                extraSmap = new ArrayList();
  +            }
  +            extraSmap.add(new Integer(srcLine));
  +        }
  +
  +        public ArrayList getExtraSmap() {
  +            return extraSmap;
  +        }
       }
   
       /*********************************************************************
  
  
  
  1.11      +6 -0      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapStratum.java
  
  Index: SmapStratum.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapStratum.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SmapStratum.java	31 Aug 2003 03:46:29 -0000	1.10
  +++ SmapStratum.java	16 Sep 2003 17:46:43 -0000	1.11
  @@ -210,6 +210,12 @@
        */
       public void optimizeLineSection() {
   
  +/* Some debugging code
  +        for (int i = 0; i < lineData.size(); i++) {
  +            LineInfo li = (LineInfo)lineData.get(i);
  +            System.out.print(li.toString());
  +        }
  +*/
           //Incorporate each LineInfo into the previous LineInfo's 
           //outputLineIncrement, if possible
           int i = 0;
  
  
  
  1.19      +8 -16     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapUtil.java
  
  Index: SmapUtil.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapUtil.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- SmapUtil.java	25 Aug 2003 03:58:48 -0000	1.18
  +++ SmapUtil.java	16 Sep 2003 17:46:43 -0000	1.19
  @@ -77,6 +77,7 @@
    * @author Shawn Bayern
    * @author Robert Field (inner SDEInstaller class)
    * @author Mark Roth
  + * @author Kin-man Chung
    */
   public class SmapUtil {
   
  @@ -613,25 +614,16 @@
               int iOutputStartLine = n.getBeginJavaLine();
               smap.addLineData(iInputStartLine, fileName, 1, iOutputStartLine, 1);
   
  -            //Walk through the node text the same way Generator.java's 
  -            //visit(Node.TemplateText n) does.  Every time the 
  -            //line number advances in the input file or the output file, 
  -            //add a LineInfo with the new line numbers.
  -            String text = n.getText();
  -            int count = JspUtil.CHUNKSIZE;
  -            for (int i = 0; i < text.length() - 1; i++) {
  -                --count;
  -                if (text.charAt(i) == '\n') {
  -                    iInputStartLine++;
  -                    if (breakAtLF || count < 0) {
  -                        iOutputStartLine++;
  -                        count = JspUtil.CHUNKSIZE;
  -                    }
  +            // Output additional mappings in the text
  +            java.util.ArrayList extraSmap = n.getExtraSmap();
  +
  +            if (extraSmap != null) {
  +                for (int i = 0; i < extraSmap.size(); i++) {
                       smap.addLineData(
  -                        iInputStartLine,
  +                        iInputStartLine+((Integer)extraSmap.get(i)).intValue(),
                           fileName,
                           1,
  -                        iOutputStartLine,
  +                        ++iOutputStartLine,
                           1);
                   }
               }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Re: cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Generator.java Node.java SmapStratum.java SmapUtil.java

Posted by Eric Carmichael <ec...@alumni.rice.edu>.
cal/cal1.jsp from the jsp-examples webapp starts like this:

<HTML>
<!-- 
  Copyright (c) 1999 The Apache Software Foundation. All rights 
  reserved.
-->
<HEAD><TITLE> 

Before this commit, cal1.jsp's SMAP started like this:

*L
1,2:41
3:42
4:42
5:42
6:43,2

Now it starts like this:

*L
1,2:41
6:43,2

I think the reason lines 3, 4, and 5 aren't being SMAPped is that you only add LineInfos inside "if (breakAtLF || count < 0) {".  This adds LineInfos when the output line advances, but not when the input line alone advances.  To SMAP template text fully, you have to add a LineInfo every time the line number advances in the input file or the output file.

Eric


----- Original Message ----- 
From: <ki...@apache.org>
To: <ja...@apache.org>
Sent: Tuesday, September 16, 2003 10:46 AM
Subject: cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler Generator.java Node.java SmapStratum.java SmapUtil.java


> kinman      2003/09/16 10:46:44
> 
>   Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
>                         Node.java SmapStratum.java SmapUtil.java
>   Log:
>   - For template texts that generate multiple Java lines, addidtional mapping
>     informantion are kept in the TemplateText node, to aide SMAP generation.
>   
>   Revision  Changes    Path
>   1.208     +23 -14    jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java
>   
>   Index: Generator.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v
>   retrieving revision 1.207
>   retrieving revision 1.208
>   diff -u -r1.207 -r1.208
>   --- Generator.java 15 Sep 2003 13:43:54 -0000 1.207
>   +++ Generator.java 16 Sep 2003 17:46:43 -0000 1.208
>   @@ -1867,21 +1867,25 @@
>                    return;
>                }
>    
>   -            if (ctxt.getOptions().genStringAsCharArray()) {
>   -                if (textSize <= 3) {
>   -                   // Spcial case small text strings
>   -                   n.setBeginJavaLine(out.getJavaLine());
>   -                   out.printil("out.write(" + quote(text.charAt(0)) + ");");
>   -                   if (textSize > 1) {
>   -                       out.printil("out.write(" + quote(text.charAt(1)) + ");");
>   +            if (textSize <= 3) {
>   +               // Special case small text strings
>   +               n.setBeginJavaLine(out.getJavaLine());
>   +               int lineInc = 0;
>   +               for (int i = 0; i < textSize; i++) {
>   +                   char ch = text.charAt(i);
>   +                   out.printil("out.write(" + quote(ch) + ");");
>   +                   if (i > 0) {
>   +                       n.addSmap(lineInc);
>                       }
>   -                   if (textSize > 2) {
>   -                       out.printil("out.write(" + quote(text.charAt(2)) + ");");
>   +                   if (ch == '\n') {
>   +                       lineInc++;
>                       }
>   -                   n.setEndJavaLine(out.getJavaLine());
>   -                   return;
>                   }
>   +               n.setEndJavaLine(out.getJavaLine());
>   +               return;
>   +           }
>    
>   +            if (ctxt.getOptions().genStringAsCharArray()) {
>                   // Generate Strings as char arrays, for performance
>                    ServletWriter caOut;
>                    if (charArrayBuffer == null) {
>   @@ -1915,6 +1919,7 @@
>                StringBuffer sb = new StringBuffer("out.write(\"");
>                int initLength = sb.length();
>                int count = JspUtil.CHUNKSIZE;
>   +            int srcLine = 0; // relative to starting srouce line
>                for (int i = 0; i < text.length(); i++) {
>                    char ch = text.charAt(i);
>                    --count;
>   @@ -1930,6 +1935,7 @@
>                            break;
>                        case '\n' :
>                            sb.append('\\').append('n');
>   +                        srcLine++;
>    
>                            if (breakAtLF || count < 0) {
>                                // Generate an out.write() when see a '\n' in template
>   @@ -1940,6 +1946,9 @@
>                                }
>                                sb.setLength(initLength);
>                                count = JspUtil.CHUNKSIZE;
>   +
>   +                            // add a Smap for this line
>   +                            n.addSmap(srcLine);
>                            }
>                            break;
>                        case '\t' : // Not sure we need this
>   
>   
>   
>   1.77      +24 -4     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java
>   
>   Index: Node.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java,v
>   retrieving revision 1.76
>   retrieving revision 1.77
>   diff -u -r1.76 -r1.77
>   --- Node.java 2 Sep 2003 21:39:59 -0000 1.76
>   +++ Node.java 16 Sep 2003 17:46:43 -0000 1.77
>   @@ -63,6 +63,7 @@
>    import java.util.Iterator;
>    import java.util.List;
>    import java.util.Vector;
>   +import java.util.ArrayList;
>    
>    import javax.servlet.jsp.tagext.BodyTag;
>    import javax.servlet.jsp.tagext.DynamicAttributes;
>   @@ -1921,6 +1922,8 @@
>         */
>        public static class TemplateText extends Node {
>    
>   +        private ArrayList extraSmap = null;
>   +
>    public TemplateText(String text, Mark start, Node parent) {
>        super(null, null, text, start, parent);
>    }
>   @@ -1957,13 +1960,30 @@
>    public boolean isAllSpace() {
>        boolean isAllSpace = true;
>        for (int i=0; i<text.length(); i++) {
>   - if (!Character.isSpace(text.charAt(i))) {
>   + if (!Character.isWhitespace(text.charAt(i))) {
>        isAllSpace = false;
>        break;
>    }
>        }
>        return isAllSpace;
>    }
>   +
>   +        /**
>   +         * Add a source to Java line mapping
>   +         * @param srcLine The postion of the source line, relative to the line
>   +         *        at the start of this node.  The corresponding java line is
>   +         *        assumed to be consecutive, i.e. one more than the last.
>   +         */
>   +        public void addSmap(int srcLine) {
>   +            if (extraSmap == null) {
>   +                extraSmap = new ArrayList();
>   +            }
>   +            extraSmap.add(new Integer(srcLine));
>   +        }
>   +
>   +        public ArrayList getExtraSmap() {
>   +            return extraSmap;
>   +        }
>        }
>    
>        /*********************************************************************
>   
>   
>   
>   1.11      +6 -0      jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapStratum.java
>   
>   Index: SmapStratum.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapStratum.java,v
>   retrieving revision 1.10
>   retrieving revision 1.11
>   diff -u -r1.10 -r1.11
>   --- SmapStratum.java 31 Aug 2003 03:46:29 -0000 1.10
>   +++ SmapStratum.java 16 Sep 2003 17:46:43 -0000 1.11
>   @@ -210,6 +210,12 @@
>         */
>        public void optimizeLineSection() {
>    
>   +/* Some debugging code
>   +        for (int i = 0; i < lineData.size(); i++) {
>   +            LineInfo li = (LineInfo)lineData.get(i);
>   +            System.out.print(li.toString());
>   +        }
>   +*/
>            //Incorporate each LineInfo into the previous LineInfo's 
>            //outputLineIncrement, if possible
>            int i = 0;
>   
>   
>   
>   1.19      +8 -16     jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapUtil.java
>   
>   Index: SmapUtil.java
>   ===================================================================
>   RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapUtil.java,v
>   retrieving revision 1.18
>   retrieving revision 1.19
>   diff -u -r1.18 -r1.19
>   --- SmapUtil.java 25 Aug 2003 03:58:48 -0000 1.18
>   +++ SmapUtil.java 16 Sep 2003 17:46:43 -0000 1.19
>   @@ -77,6 +77,7 @@
>     * @author Shawn Bayern
>     * @author Robert Field (inner SDEInstaller class)
>     * @author Mark Roth
>   + * @author Kin-man Chung
>     */
>    public class SmapUtil {
>    
>   @@ -613,25 +614,16 @@
>                int iOutputStartLine = n.getBeginJavaLine();
>                smap.addLineData(iInputStartLine, fileName, 1, iOutputStartLine, 1);
>    
>   -            //Walk through the node text the same way Generator.java's 
>   -            //visit(Node.TemplateText n) does.  Every time the 
>   -            //line number advances in the input file or the output file, 
>   -            //add a LineInfo with the new line numbers.
>   -            String text = n.getText();
>   -            int count = JspUtil.CHUNKSIZE;
>   -            for (int i = 0; i < text.length() - 1; i++) {
>   -                --count;
>   -                if (text.charAt(i) == '\n') {
>   -                    iInputStartLine++;
>   -                    if (breakAtLF || count < 0) {
>   -                        iOutputStartLine++;
>   -                        count = JspUtil.CHUNKSIZE;
>   -                    }
>   +            // Output additional mappings in the text
>   +            java.util.ArrayList extraSmap = n.getExtraSmap();
>   +
>   +            if (extraSmap != null) {
>   +                for (int i = 0; i < extraSmap.size(); i++) {
>                        smap.addLineData(
>   -                        iInputStartLine,
>   +                        iInputStartLine+((Integer)extraSmap.get(i)).intValue(),
>                            fileName,
>                            1,
>   -                        iOutputStartLine,
>   +                        ++iOutputStartLine,
>                            1);
>                    }
>                }
>   
>   
>   
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
> 
> 

Do not email me. Remove me.

Posted by "www.cmttrading.com" <sa...@cmttrading.com>.
Do not email me. Remove me from your mail list.

IMPORTANT:
Please make sure to provide previous correspondences with www.cmttrading.com
so we may better assist you with your inquiries.

Be sure to check out our new Car Audio Superstore at www.gotcmt.com.

----- Original Message ----- 
From: <ki...@apache.org>
To: <ja...@apache.org>
Sent: Tuesday, September 16, 2003 10:46 AM
Subject: cvs commit:
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
Generator.java Node.java SmapStratum.java SmapUtil.java


> kinman      2003/09/16 10:46:44
>
>   Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
>                         Node.java SmapStratum.java SmapUtil.java
>   Log:
>   - For template texts that generate multiple Java lines, addidtional
mapping
>     informantion are kept in the TemplateText node, to aide SMAP
generation.
>
>   Revision  Changes    Path
>   1.208     +23 -14
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator
.java
>
>   Index: Generator.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/Generator.java,v
>   retrieving revision 1.207
>   retrieving revision 1.208
>   diff -u -r1.207 -r1.208
>   --- Generator.java 15 Sep 2003 13:43:54 -0000 1.207
>   +++ Generator.java 16 Sep 2003 17:46:43 -0000 1.208
>   @@ -1867,21 +1867,25 @@
>                    return;
>                }
>
>   -            if (ctxt.getOptions().genStringAsCharArray()) {
>   -                if (textSize <= 3) {
>   -                   // Spcial case small text strings
>   -                   n.setBeginJavaLine(out.getJavaLine());
>   -                   out.printil("out.write(" + quote(text.charAt(0)) +
");");
>   -                   if (textSize > 1) {
>   -                       out.printil("out.write(" + quote(text.charAt(1))
+ ");");
>   +            if (textSize <= 3) {
>   +               // Special case small text strings
>   +               n.setBeginJavaLine(out.getJavaLine());
>   +               int lineInc = 0;
>   +               for (int i = 0; i < textSize; i++) {
>   +                   char ch = text.charAt(i);
>   +                   out.printil("out.write(" + quote(ch) + ");");
>   +                   if (i > 0) {
>   +                       n.addSmap(lineInc);
>                       }
>   -                   if (textSize > 2) {
>   -                       out.printil("out.write(" + quote(text.charAt(2))
+ ");");
>   +                   if (ch == '\n') {
>   +                       lineInc++;
>                       }
>   -                   n.setEndJavaLine(out.getJavaLine());
>   -                   return;
>                   }
>   +               n.setEndJavaLine(out.getJavaLine());
>   +               return;
>   +           }
>
>   +            if (ctxt.getOptions().genStringAsCharArray()) {
>                   // Generate Strings as char arrays, for performance
>                    ServletWriter caOut;
>                    if (charArrayBuffer == null) {
>   @@ -1915,6 +1919,7 @@
>                StringBuffer sb = new StringBuffer("out.write(\"");
>                int initLength = sb.length();
>                int count = JspUtil.CHUNKSIZE;
>   +            int srcLine = 0; // relative to starting srouce line
>                for (int i = 0; i < text.length(); i++) {
>                    char ch = text.charAt(i);
>                    --count;
>   @@ -1930,6 +1935,7 @@
>                            break;
>                        case '\n' :
>                            sb.append('\\').append('n');
>   +                        srcLine++;
>
>                            if (breakAtLF || count < 0) {
>                                // Generate an out.write() when see a '\n'
in template
>   @@ -1940,6 +1946,9 @@
>                                }
>                                sb.setLength(initLength);
>                                count = JspUtil.CHUNKSIZE;
>   +
>   +                            // add a Smap for this line
>   +                            n.addSmap(srcLine);
>                            }
>                            break;
>                        case '\t' : // Not sure we need this
>
>
>
>   1.77      +24 -4
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java
>
>   Index: Node.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/Node.java,v
>   retrieving revision 1.76
>   retrieving revision 1.77
>   diff -u -r1.76 -r1.77
>   --- Node.java 2 Sep 2003 21:39:59 -0000 1.76
>   +++ Node.java 16 Sep 2003 17:46:43 -0000 1.77
>   @@ -63,6 +63,7 @@
>    import java.util.Iterator;
>    import java.util.List;
>    import java.util.Vector;
>   +import java.util.ArrayList;
>
>    import javax.servlet.jsp.tagext.BodyTag;
>    import javax.servlet.jsp.tagext.DynamicAttributes;
>   @@ -1921,6 +1922,8 @@
>         */
>        public static class TemplateText extends Node {
>
>   +        private ArrayList extraSmap = null;
>   +
>    public TemplateText(String text, Mark start, Node parent) {
>        super(null, null, text, start, parent);
>    }
>   @@ -1957,13 +1960,30 @@
>    public boolean isAllSpace() {
>        boolean isAllSpace = true;
>        for (int i=0; i<text.length(); i++) {
>   - if (!Character.isSpace(text.charAt(i))) {
>   + if (!Character.isWhitespace(text.charAt(i))) {
>        isAllSpace = false;
>        break;
>    }
>        }
>        return isAllSpace;
>    }
>   +
>   +        /**
>   +         * Add a source to Java line mapping
>   +         * @param srcLine The postion of the source line, relative to
the line
>   +         *        at the start of this node.  The corresponding java
line is
>   +         *        assumed to be consecutive, i.e. one more than the
last.
>   +         */
>   +        public void addSmap(int srcLine) {
>   +            if (extraSmap == null) {
>   +                extraSmap = new ArrayList();
>   +            }
>   +            extraSmap.add(new Integer(srcLine));
>   +        }
>   +
>   +        public ArrayList getExtraSmap() {
>   +            return extraSmap;
>   +        }
>        }
>
>
/*********************************************************************
>
>
>
>   1.11      +6 -0
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapStrat
um.java
>
>   Index: SmapStratum.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/SmapStratum.java,v
>   retrieving revision 1.10
>   retrieving revision 1.11
>   diff -u -r1.10 -r1.11
>   --- SmapStratum.java 31 Aug 2003 03:46:29 -0000 1.10
>   +++ SmapStratum.java 16 Sep 2003 17:46:43 -0000 1.11
>   @@ -210,6 +210,12 @@
>         */
>        public void optimizeLineSection() {
>
>   +/* Some debugging code
>   +        for (int i = 0; i < lineData.size(); i++) {
>   +            LineInfo li = (LineInfo)lineData.get(i);
>   +            System.out.print(li.toString());
>   +        }
>   +*/
>            //Incorporate each LineInfo into the previous LineInfo's
>            //outputLineIncrement, if possible
>            int i = 0;
>
>
>
>   1.19      +8 -16
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapUtil.
java
>
>   Index: SmapUtil.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/SmapUtil.java,v
>   retrieving revision 1.18
>   retrieving revision 1.19
>   diff -u -r1.18 -r1.19
>   --- SmapUtil.java 25 Aug 2003 03:58:48 -0000 1.18
>   +++ SmapUtil.java 16 Sep 2003 17:46:43 -0000 1.19
>   @@ -77,6 +77,7 @@
>     * @author Shawn Bayern
>     * @author Robert Field (inner SDEInstaller class)
>     * @author Mark Roth
>   + * @author Kin-man Chung
>     */
>    public class SmapUtil {
>
>   @@ -613,25 +614,16 @@
>                int iOutputStartLine = n.getBeginJavaLine();
>                smap.addLineData(iInputStartLine, fileName, 1,
iOutputStartLine, 1);
>
>   -            //Walk through the node text the same way Generator.java's
>   -            //visit(Node.TemplateText n) does.  Every time the
>   -            //line number advances in the input file or the output
file,
>   -            //add a LineInfo with the new line numbers.
>   -            String text = n.getText();
>   -            int count = JspUtil.CHUNKSIZE;
>   -            for (int i = 0; i < text.length() - 1; i++) {
>   -                --count;
>   -                if (text.charAt(i) == '\n') {
>   -                    iInputStartLine++;
>   -                    if (breakAtLF || count < 0) {
>   -                        iOutputStartLine++;
>   -                        count = JspUtil.CHUNKSIZE;
>   -                    }
>   +            // Output additional mappings in the text
>   +            java.util.ArrayList extraSmap = n.getExtraSmap();
>   +
>   +            if (extraSmap != null) {
>   +                for (int i = 0; i < extraSmap.size(); i++) {
>                        smap.addLineData(
>   -                        iInputStartLine,
>   +
iInputStartLine+((Integer)extraSmap.get(i)).intValue(),
>                            fileName,
>                            1,
>   -                        iOutputStartLine,
>   +                        ++iOutputStartLine,
>                            1);
>                    }
>                }
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Do not email me. Remove me.

Posted by "www.cmttrading.com" <sa...@cmttrading.com>.
Do not email me. Remove me from your mail list.

IMPORTANT:
Please make sure to provide previous correspondences with www.cmttrading.com
so we may better assist you with your inquiries.

Be sure to check out our new Car Audio Superstore at www.gotcmt.com.

----- Original Message ----- 
From: <ki...@apache.org>
To: <ja...@apache.org>
Sent: Tuesday, September 16, 2003 10:46 AM
Subject: cvs commit:
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
Generator.java Node.java SmapStratum.java SmapUtil.java


> kinman      2003/09/16 10:46:44
>
>   Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
>                         Node.java SmapStratum.java SmapUtil.java
>   Log:
>   - For template texts that generate multiple Java lines, addidtional
mapping
>     informantion are kept in the TemplateText node, to aide SMAP
generation.
>
>   Revision  Changes    Path
>   1.208     +23 -14
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator
.java
>
>   Index: Generator.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/Generator.java,v
>   retrieving revision 1.207
>   retrieving revision 1.208
>   diff -u -r1.207 -r1.208
>   --- Generator.java 15 Sep 2003 13:43:54 -0000 1.207
>   +++ Generator.java 16 Sep 2003 17:46:43 -0000 1.208
>   @@ -1867,21 +1867,25 @@
>                    return;
>                }
>
>   -            if (ctxt.getOptions().genStringAsCharArray()) {
>   -                if (textSize <= 3) {
>   -                   // Spcial case small text strings
>   -                   n.setBeginJavaLine(out.getJavaLine());
>   -                   out.printil("out.write(" + quote(text.charAt(0)) +
");");
>   -                   if (textSize > 1) {
>   -                       out.printil("out.write(" + quote(text.charAt(1))
+ ");");
>   +            if (textSize <= 3) {
>   +               // Special case small text strings
>   +               n.setBeginJavaLine(out.getJavaLine());
>   +               int lineInc = 0;
>   +               for (int i = 0; i < textSize; i++) {
>   +                   char ch = text.charAt(i);
>   +                   out.printil("out.write(" + quote(ch) + ");");
>   +                   if (i > 0) {
>   +                       n.addSmap(lineInc);
>                       }
>   -                   if (textSize > 2) {
>   -                       out.printil("out.write(" + quote(text.charAt(2))
+ ");");
>   +                   if (ch == '\n') {
>   +                       lineInc++;
>                       }
>   -                   n.setEndJavaLine(out.getJavaLine());
>   -                   return;
>                   }
>   +               n.setEndJavaLine(out.getJavaLine());
>   +               return;
>   +           }
>
>   +            if (ctxt.getOptions().genStringAsCharArray()) {
>                   // Generate Strings as char arrays, for performance
>                    ServletWriter caOut;
>                    if (charArrayBuffer == null) {
>   @@ -1915,6 +1919,7 @@
>                StringBuffer sb = new StringBuffer("out.write(\"");
>                int initLength = sb.length();
>                int count = JspUtil.CHUNKSIZE;
>   +            int srcLine = 0; // relative to starting srouce line
>                for (int i = 0; i < text.length(); i++) {
>                    char ch = text.charAt(i);
>                    --count;
>   @@ -1930,6 +1935,7 @@
>                            break;
>                        case '\n' :
>                            sb.append('\\').append('n');
>   +                        srcLine++;
>
>                            if (breakAtLF || count < 0) {
>                                // Generate an out.write() when see a '\n'
in template
>   @@ -1940,6 +1946,9 @@
>                                }
>                                sb.setLength(initLength);
>                                count = JspUtil.CHUNKSIZE;
>   +
>   +                            // add a Smap for this line
>   +                            n.addSmap(srcLine);
>                            }
>                            break;
>                        case '\t' : // Not sure we need this
>
>
>
>   1.77      +24 -4
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Node.java
>
>   Index: Node.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/Node.java,v
>   retrieving revision 1.76
>   retrieving revision 1.77
>   diff -u -r1.76 -r1.77
>   --- Node.java 2 Sep 2003 21:39:59 -0000 1.76
>   +++ Node.java 16 Sep 2003 17:46:43 -0000 1.77
>   @@ -63,6 +63,7 @@
>    import java.util.Iterator;
>    import java.util.List;
>    import java.util.Vector;
>   +import java.util.ArrayList;
>
>    import javax.servlet.jsp.tagext.BodyTag;
>    import javax.servlet.jsp.tagext.DynamicAttributes;
>   @@ -1921,6 +1922,8 @@
>         */
>        public static class TemplateText extends Node {
>
>   +        private ArrayList extraSmap = null;
>   +
>    public TemplateText(String text, Mark start, Node parent) {
>        super(null, null, text, start, parent);
>    }
>   @@ -1957,13 +1960,30 @@
>    public boolean isAllSpace() {
>        boolean isAllSpace = true;
>        for (int i=0; i<text.length(); i++) {
>   - if (!Character.isSpace(text.charAt(i))) {
>   + if (!Character.isWhitespace(text.charAt(i))) {
>        isAllSpace = false;
>        break;
>    }
>        }
>        return isAllSpace;
>    }
>   +
>   +        /**
>   +         * Add a source to Java line mapping
>   +         * @param srcLine The postion of the source line, relative to
the line
>   +         *        at the start of this node.  The corresponding java
line is
>   +         *        assumed to be consecutive, i.e. one more than the
last.
>   +         */
>   +        public void addSmap(int srcLine) {
>   +            if (extraSmap == null) {
>   +                extraSmap = new ArrayList();
>   +            }
>   +            extraSmap.add(new Integer(srcLine));
>   +        }
>   +
>   +        public ArrayList getExtraSmap() {
>   +            return extraSmap;
>   +        }
>        }
>
>
/*********************************************************************
>
>
>
>   1.11      +6 -0
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapStrat
um.java
>
>   Index: SmapStratum.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/SmapStratum.java,v
>   retrieving revision 1.10
>   retrieving revision 1.11
>   diff -u -r1.10 -r1.11
>   --- SmapStratum.java 31 Aug 2003 03:46:29 -0000 1.10
>   +++ SmapStratum.java 16 Sep 2003 17:46:43 -0000 1.11
>   @@ -210,6 +210,12 @@
>         */
>        public void optimizeLineSection() {
>
>   +/* Some debugging code
>   +        for (int i = 0; i < lineData.size(); i++) {
>   +            LineInfo li = (LineInfo)lineData.get(i);
>   +            System.out.print(li.toString());
>   +        }
>   +*/
>            //Incorporate each LineInfo into the previous LineInfo's
>            //outputLineIncrement, if possible
>            int i = 0;
>
>
>
>   1.19      +8 -16
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/SmapUtil.
java
>
>   Index: SmapUtil.java
>   ===================================================================
>   RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler
/SmapUtil.java,v
>   retrieving revision 1.18
>   retrieving revision 1.19
>   diff -u -r1.18 -r1.19
>   --- SmapUtil.java 25 Aug 2003 03:58:48 -0000 1.18
>   +++ SmapUtil.java 16 Sep 2003 17:46:43 -0000 1.19
>   @@ -77,6 +77,7 @@
>     * @author Shawn Bayern
>     * @author Robert Field (inner SDEInstaller class)
>     * @author Mark Roth
>   + * @author Kin-man Chung
>     */
>    public class SmapUtil {
>
>   @@ -613,25 +614,16 @@
>                int iOutputStartLine = n.getBeginJavaLine();
>                smap.addLineData(iInputStartLine, fileName, 1,
iOutputStartLine, 1);
>
>   -            //Walk through the node text the same way Generator.java's
>   -            //visit(Node.TemplateText n) does.  Every time the
>   -            //line number advances in the input file or the output
file,
>   -            //add a LineInfo with the new line numbers.
>   -            String text = n.getText();
>   -            int count = JspUtil.CHUNKSIZE;
>   -            for (int i = 0; i < text.length() - 1; i++) {
>   -                --count;
>   -                if (text.charAt(i) == '\n') {
>   -                    iInputStartLine++;
>   -                    if (breakAtLF || count < 0) {
>   -                        iOutputStartLine++;
>   -                        count = JspUtil.CHUNKSIZE;
>   -                    }
>   +            // Output additional mappings in the text
>   +            java.util.ArrayList extraSmap = n.getExtraSmap();
>   +
>   +            if (extraSmap != null) {
>   +                for (int i = 0; i < extraSmap.size(); i++) {
>                        smap.addLineData(
>   -                        iInputStartLine,
>   +
iInputStartLine+((Integer)extraSmap.get(i)).intValue(),
>                            fileName,
>                            1,
>   -                        iOutputStartLine,
>   +                        ++iOutputStartLine,
>                            1);
>                    }
>                }
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>
>