You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ha...@apache.org on 2005/07/08 18:10:37 UTC

cvs commit: ws-axis/c/tests/utils/monitor/org/apache/test MockServerThread.java

hawkeye     2005/07/08 09:10:37

  Modified:    c/tests/utils/monitor/org/apache/test MockServerThread.java
  Log:
  Attempting to add in crlf's into unix response files
  
  Revision  Changes    Path
  1.5       +61 -19    ws-axis/c/tests/utils/monitor/org/apache/test/MockServerThread.java
  
  Index: MockServerThread.java
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/tests/utils/monitor/org/apache/test/MockServerThread.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MockServerThread.java	15 Jun 2005 13:16:44 -0000	1.4
  +++ MockServerThread.java	8 Jul 2005 16:10:37 -0000	1.5
  @@ -1,4 +1,4 @@
  -//Copyright 2003-2004 The Apache Software Foundation.
  +// Copyright 2003-2004 The Apache Software Foundation.
   //(c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
   //
   //Licensed under the Apache License, Version 2.0 (the "License");
  @@ -12,7 +12,7 @@
   //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.test;
   
   import java.io.BufferedReader;
  @@ -24,16 +24,17 @@
   import java.io.InputStreamReader;
   import java.io.OutputStreamWriter;
   import java.net.Socket;
  -
  +import java.util.regex.Matcher;
  +import java.util.regex.Pattern;
   
   /**
  - * @author hawkeye 
  + * @author hawkeye
    */
   public class MockServerThread implements Runnable
   {
       // NOTE: We read in this string plus two bytes (the end of the request)
       private static String   ENVELOPE_TAG    ="</SOAP-ENV:Envelope>";
  -    private static String   MIME_BOUNDARY    ="MIME_BOUNDARY";
  +    private static String   MIME_BOUNDARY   ="MIME_BOUNDARY";
   
       private static int      CHARBUFFER_SIZE =20000;
   
  @@ -164,12 +165,14 @@
                   if (bytesRead>ENVELOPE_TAG.length( )+2)
                   {
                       String envelopeString=new String(charBuffer, bytesRead
  -                            -(ENVELOPE_TAG.length( )+2), ENVELOPE_TAG.length( )+2);
  -                                        System.out
  -                                                .println("MockServerThread#run():EnvelopeString = "
  -                                                        +envelopeString);
  +                            -(ENVELOPE_TAG.length( )+2),
  +                            ENVELOPE_TAG.length( )+2);
  +                    System.out
  +                            .println("MockServerThread#run():EnvelopeString = "
  +                                    +envelopeString);
                       // Check whether this is an envelope or not
  -                    if (envelopeString.startsWith(ENVELOPE_TAG) || envelopeString.indexOf(MIME_BOUNDARY)!=-1)
  +                    if (envelopeString.startsWith(ENVELOPE_TAG)
  +                            ||envelopeString.indexOf(MIME_BOUNDARY)!=-1)
                       {
                           System.out
                                   .println("MockServerThread#run():Got an envelope");
  @@ -180,7 +183,8 @@
                                   .println("-------------------------------MockServer new request---------------------------------");
                       }
                   }
  -                System.out.println("MockServerThread#run(): Going round again "+inputStream);
  +                System.out.println("MockServerThread#run(): Going round again "
  +                        +inputStream);
               }
           }
           catch (IOException exception)
  @@ -203,8 +207,8 @@
           char[] responseMessage=getResponseMessage( );
           if (responseMessage!=null)
           {
  -            ResponseSender responseSender=new ResponseSender(
  -                    responseMessage, outputStream);
  +            ResponseSender responseSender=new ResponseSender(responseMessage,
  +                    outputStream);
               Thread responseSenderThread=new Thread(responseSender);
               responseSenderThread.start( );
           }
  @@ -260,16 +264,54 @@
           for(int i=1; i<responseStrings.length; i++)
           {
               String tmpString="HTTP"+responseStrings[i];
  -            int hash = tmpString.indexOf("###");
  -            if (-1 != hash) 
  +            int hash=tmpString.indexOf("###");
  +            if (-1!=hash)
               {
  -                String len = Integer.toHexString(tmpString.length() - hash - 3);
  -                if (3 != len.length()) 
  -                    throw new RuntimeException("Message length in hex was not 3 characters long "+len);
  -                tmpString = tmpString.substring(0,hash) + len + tmpString.substring(hash+3);
  +                String len=Integer.toHexString(tmpString.length( )-hash-3);
  +                if (3!=len.length( ))
  +                    throw new RuntimeException(
  +                            "Message length in hex was not 3 characters long "
  +                                    +len);
  +                tmpString=tmpString.substring(0, hash)+len
  +                        +tmpString.substring(hash+3);
               }
               responses[i-1]=tmpString.toCharArray( );
           }
  +
  +        setCRLF( );
  +    }
  +
  +    /**
  +     * Because the repositories we use accomodate the dos2unix conversion we
  +     * have a problem. On unix the response files have the crlf converted to
  +     * just cr. this method returns the crlf !
  +     */
  +    private static void setCRLF( )
  +    {
  +        if (System.getProperty("os.name").toLowerCase( ).startsWith("windows"))
  +        {
  +            System.out
  +                    .println("Windows operating system - not converting crlf's");
  +        }
  +        else
  +        {
  +            System.out.println("Converting oa to od oa");
  +            for(int i=0; i<responses.length; i++)
  +            {
  +                if (responses[i]!=null)
  +                {
  +                    String request=new String((char[]) responses[i]);
  +                    // check the last two digits for CRLF - if they are LFLF
  +                    // then this is wrong
  +                    // e.g. 0a 0a converts to 0d0a 0d0a
  +                    // I'm doing it using a matcher because this could get
  +                    // complicated !
  +                    Pattern pattern=Pattern.compile("[^\r]\n");
  +                    Matcher matcher=pattern.matcher(request);
  +                    responses[i]=matcher.replaceAll("\r\n").toCharArray( );
  +                }
  +            }
  +        }
       }
   
   }
  \ No newline at end of file