sanjiva     2002/10/28 08:50:53

  Modified:    java/src/org/apache/soap/encoding SOAPMappingRegistry.java
               java/src/org/apache/soap/encoding/soapenc
                        BeanSerializer.java SoapEncUtils.java
               java/src/org/apache/soap/rpc RPCMessage.java
  Log:
  changed write(s1+s2+..+sn) to
          write (s1)
          write (s2)
          ...
          write (sn)
  
  Revision  Changes    Path
  1.32      +4 -1      
xml-soap/java/src/org/apache/soap/encoding/SOAPMappingRegistry.java
  
  Index: SOAPMappingRegistry.java
  ===================================================================
  RCS file: 
/home/cvs/xml-soap/java/src/org/apache/soap/encoding/SOAPMappingRegistry.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- SOAPMappingRegistry.java  9 Sep 2002 21:15:27 -0000       1.31
  +++ SOAPMappingRegistry.java  28 Oct 2002 16:50:53 -0000      1.32
  @@ -302,7 +302,10 @@
                                                xjmr,
                                                ctx);
   
  -        sink.write(src + "</" + context + '>');
  +        sink.write(src.toString ());
  +        sink.write("</");
  +        sink.write(context.toString ());
  +        sink.write(">");
         }
         nsStack.popScope();
       }
  
  
  
  1.9       +17 -8     
xml-soap/java/src/org/apache/soap/encoding/soapenc/BeanSerializer.java
  
  Index: BeanSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-soap/java/src/org/apache/soap/encoding/soapenc/BeanSerializer.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- BeanSerializer.java       30 Aug 2002 21:39:00 -0000      1.8
  +++ BeanSerializer.java       28 Oct 2002 16:50:53 -0000      1.9
  @@ -77,6 +77,8 @@
    */
   public class BeanSerializer implements Serializer, Deserializer
   {
  +  private static HashMap beanInfoCache = new HashMap ();
  +
     public void marshall(String inScopeEncStyle, Class javaType, Object src,
                          Object context, Writer sink, NSStack nsStack,
                          XMLJavaMappingRegistry xjmr, SOAPContext ctx)
  @@ -138,7 +140,9 @@
         }
       }
   
  -    sink.write("</" + context + '>');
  +    sink.write("</");
  +    sink.write(context.toString ());
  +    sink.write(">");
   
       nsStack.popScope();
     }
  @@ -192,17 +196,22 @@
       return new Bean(javaType, bean);
     }
   
  -  private PropertyDescriptor[] getPropertyDescriptors(Class javaType)
  +  private static PropertyDescriptor[] getPropertyDescriptors(Class javaType)
       throws IllegalArgumentException
     {
       BeanInfo beanInfo = null;
   
  -    try
  -    {
  -      beanInfo = Introspector.getBeanInfo(javaType);
  -    }
  -    catch (IntrospectionException e)
  -    {
  +    beanInfo = (BeanInfo) beanInfoCache.get (javaType);
  +    if (beanInfo == null) {
  +      try
  +        {
  +          beanInfo = Introspector.getBeanInfo(javaType);
  +          beanInfoCache.put (javaType, beanInfo);
  +        }
  +      catch (IntrospectionException e)
  +        {
  +          // caught below via beanInfo == null
  +        }
       }
   
       if (beanInfo != null)
  
  
  
  1.17      +42 -14    
xml-soap/java/src/org/apache/soap/encoding/soapenc/SoapEncUtils.java
  
  Index: SoapEncUtils.java
  ===================================================================
  RCS file: 
/home/cvs/xml-soap/java/src/org/apache/soap/encoding/soapenc/SoapEncUtils.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- SoapEncUtils.java 30 Aug 2002 21:39:00 -0000      1.16
  +++ SoapEncUtils.java 28 Oct 2002 16:50:53 -0000      1.17
  @@ -164,11 +164,19 @@
         }
       }
   
  -    sink.write('<' + context.toString() + namespaceDecl);
  +    sink.write("<");
  +    sink.write(context.toString());
  +    sink.write(namespaceDecl);
   
       // Write the id for a multiRef element
  -    if (context instanceof MultiRefContext)
  -      sink.write(' ' + Constants.ATTR_ID + "=\"" + 
Constants.ATTRVAL_MULTIREF_ID_PREFIX + ((MultiRefContext) context).getId() + "\"");
  +    if (context instanceof MultiRefContext) {
  +      sink.write(" ");
  +      sink.write(Constants.ATTR_ID);
  +      sink.write("=\"");
  +      sink.write(Constants.ATTRVAL_MULTIREF_ID_PREFIX);
  +      sink.write(((MultiRefContext) context).getId() + "");
  +      sink.write( "\"");
  +    }
   
       // Get prefixes for the needed namespaces.
       String elementTypeNS = elementType.getNamespaceURI();
  @@ -184,9 +192,15 @@
       String elementTypeNSPrefix = nsStack.getPrefixFromURI(elementTypeNS, sink);
   
       if (ctx == null || !ctx.getDocLitSerialization()) {
  -      sink.write(' ' + xsiNSPrefix + ':' + Constants.ATTR_TYPE + "=\"" +
  -                 elementTypeNSPrefix + ':' +
  -                 elementType.getLocalPart() + '\"');
  +      sink.write(" ");
  +      sink.write(xsiNSPrefix);
  +      sink.write(":");
  +      sink.write(Constants.ATTR_TYPE);
  +      sink.write("=\"");
  +      sink.write(elementTypeNSPrefix);
  +      sink.write(":");
  +      sink.write(elementType.getLocalPart());
  +      sink.write("\"");
       }
   
       if (inScopeEncStyle == null
  @@ -197,9 +211,13 @@
         String soapEnvNSPrefix = nsStack.getPrefixFromURI(
           Constants.NS_URI_SOAP_ENV, sink);
   
  -      sink.write(' ' + soapEnvNSPrefix + ':' +
  -                 Constants.ATTR_ENCODING_STYLE + "=\"" +
  -                 Constants.NS_URI_SOAP_ENC + '\"');
  +      sink.write(" ");
  +      sink.write(soapEnvNSPrefix);
  +      sink.write(":");
  +      sink.write(Constants.ATTR_ENCODING_STYLE);
  +      sink.write("=\"");
  +      sink.write(Constants.NS_URI_SOAP_ENC);
  +      sink.write("\"");
       }
   
       if (arrayElementType != null)
  @@ -212,17 +230,27 @@
         String soapEncNSPrefix = nsStack.getPrefixFromURI(
           Constants.NS_URI_SOAP_ENC, sink);
   
  -      sink.write(' ' + soapEncNSPrefix + ':' +
  -                 Constants.ATTR_ARRAY_TYPE + "=\"" + arrayTypeValue + '\"');
  +      sink.write(" ");
  +      sink.write(soapEncNSPrefix);
  +      sink.write(":");
  +      sink.write(Constants.ATTR_ARRAY_TYPE);
  +      sink.write("=\"");
  +      sink.write(arrayTypeValue);
  +      sink.write("\"");
       }
   
       if (isNull)
       {
  -      sink.write(' ' + xsiNSPrefix + ':' + nilName(xsiNamespaceURI) + "=\"" +
  -                 Constants.ATTRVAL_TRUE + "\"/");
  +      sink.write(" ");
  +      sink.write(xsiNSPrefix);
  +      sink.write(":");
  +      sink.write(nilName(xsiNamespaceURI));
  +      sink.write("=\"");
  +      sink.write(Constants.ATTRVAL_TRUE);
  +      sink.write("\"/");
       }
   
  -    sink.write('>');
  +    sink.write(">");
     }
   
     public static void generateNullStructure(String inScopeEncStyle,
  
  
  
  1.19      +62 -24    xml-soap/java/src/org/apache/soap/rpc/RPCMessage.java
  
  Index: RPCMessage.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/rpc/RPCMessage.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- RPCMessage.java   2 Oct 2002 14:05:52 -0000       1.18
  +++ RPCMessage.java   28 Oct 2002 16:50:53 -0000      1.19
  @@ -237,11 +237,20 @@
           String targetObjectNSPrefix = nsStack.getPrefixFromURI(
             targetObjectURI, nsDeclSW);
   
  -        sink.write('<' + 
  -                   (!ctx.getDocLitSerialization() ? targetObjectNSPrefix + ':' : 
"") +
  -                   methodName + suffix +
  -                   (!ctx.getDocLitSerialization() ? nsDeclSW.toString() : " 
xmlns=\"" + targetObjectURI + "\"")
  -                   );
  +        sink.write("<");
  +        if (!ctx.getDocLitSerialization ()) {
  +          sink.write(targetObjectNSPrefix);
  +          sink.write(":");
  +        }
  +        sink.write(methodName);
  +        sink.write(suffix);
  +        if (!ctx.getDocLitSerialization ()) {
  +          sink.write(nsDeclSW.toString ());
  +        } else {
  +          sink.write(" xmlns=\"");
  +          sink.write(targetObjectURI);
  +          sink.write("\"");
  +        }
   
           // Determine the prefix associated with the NS_URI_SOAP_ENV
           // namespace URI.
  @@ -251,12 +260,17 @@
           if (declMsgEncStyle != null
               && (!declMsgEncStyle.equals(inScopeEncStyle))
               && (!ctx.getDocLitSerialization())) {
  -          sink.write(' ' + soapEnvNSPrefix + ':' +
  -                     Constants.ATTR_ENCODING_STYLE + "=\"" +
  -                     declMsgEncStyle + '\"');
  +          sink.write(" ");
  +          sink.write(soapEnvNSPrefix);
  +          sink.write(":");
  +          sink.write(Constants.ATTR_ENCODING_STYLE);
  +          sink.write("=\"");
  +          sink.write(declMsgEncStyle);
  +          sink.write("\"");
           }
   
  -        sink.write('>' + StringUtils.lineSeparator);
  +        sink.write(">");
  +        sink.write(StringUtils.lineSeparator);
   
           // Get the returnValue.
           Parameter ret = resp.getReturnValue();
  @@ -277,9 +291,14 @@
   
           serializeParams(params, actualMsgEncStyle, sink, nsStack, xjmr, ctx);
   
  -        sink.write("</" + 
  -                   (!ctx.getDocLitSerialization() ? targetObjectNSPrefix + ':' : 
"") +
  -                   methodName + suffix + '>');
  +        sink.write("</");
  +        if (!ctx.getDocLitSerialization ()) {
  +          sink.write(targetObjectNSPrefix);
  +          sink.write(":");
  +        }
  +        sink.write(methodName);
  +        sink.write(suffix);
  +        sink.write(">");
         } else {
           // Get the fault information.
           Fault fault = resp.getFault();
  @@ -292,11 +311,20 @@
         String targetObjectNSPrefix = nsStack.getPrefixFromURI(targetObjectURI,
                                                                nsDeclSW);
   
  -      sink.write('<' +
  -                 (!ctx.getDocLitSerialization() ? targetObjectNSPrefix + ':' : "") +
  -                 methodName + suffix +
  -                 (!ctx.getDocLitSerialization() ? nsDeclSW.toString() : " xmlns=\"" 
+ targetObjectURI + "\"")
  -                 );
  +      sink.write("<");
  +      if (!ctx.getDocLitSerialization ()) {
  +        sink.write(targetObjectNSPrefix);
  +        sink.write(":");
  +      }
  +      sink.write(methodName);
  +      sink.write(suffix);
  +      if (!ctx.getDocLitSerialization ()) {
  +        sink.write(nsDeclSW.toString ());
  +      } else {
  +        sink.write(" xmlns=\"");
  +        sink.write(targetObjectURI);
  +        sink.write("\"");
  +      }
   
         // Determine the prefix associated with the NS_URI_SOAP_ENV
         // namespace URI.
  @@ -306,18 +334,28 @@
         if (declMsgEncStyle != null
             && (!declMsgEncStyle.equals(inScopeEncStyle))
             && (!ctx.getDocLitSerialization())) {
  -        sink.write(' ' + soapEnvNSPrefix + ':' +
  -                   Constants.ATTR_ENCODING_STYLE + "=\"" +
  -                   declMsgEncStyle + '\"');
  +        sink.write(" ");
  +        sink.write(soapEnvNSPrefix);
  +        sink.write(":");
  +        sink.write(Constants.ATTR_ENCODING_STYLE);
  +        sink.write("=\"");
  +        sink.write(declMsgEncStyle);
  +        sink.write("\"");
         }
   
  -      sink.write('>' + StringUtils.lineSeparator);
  +      sink.write(">");
  +      sink.write(StringUtils.lineSeparator);
   
         serializeParams(params, actualMsgEncStyle, sink, nsStack, xjmr, ctx);
   
  -      sink.write("</" +
  -                 (!ctx.getDocLitSerialization() ? targetObjectNSPrefix + ':' : "") +
  -                 methodName + suffix + '>');
  +      sink.write("</");
  +      if (!ctx.getDocLitSerialization()) {
  +        sink.write(targetObjectNSPrefix);
  +        sink.write(":");
  +      }
  +      sink.write(methodName);
  +      sink.write(suffix);
  +      sink.write(">");
       }
   
       nsStack.popScope();
  
  
  

--
To unsubscribe, e-mail:   <mailto:soap-dev-unsubscribe@;xml.apache.org>
For additional commands, e-mail: <mailto:soap-dev-help@;xml.apache.org>

Reply via email to