butek       2002/06/21 06:00:30

  Modified:    java     TODO.txt
               java/src/org/apache/axis/encoding
                        DefaultTypeMappingImpl.java
               java/src/org/apache/axis/encoding/ser
                        CalendarDeserializer.java CalendarSerializer.java
               java/src/org/apache/axis/utils JavaUtils.java
               java/test/wsdl/roundtrip RoundtripPortType.java
                        RoundtripTestServiceTestCase.java
                        RoundtripTestSoapBindingImpl.java
  Log:
  TCK/JAX-RPC:  according to the spec, both Date and Calendar should map
  to xsd:dateTime.
  
  This also fixes http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9767.
  
  Revision  Changes    Path
  1.61      +2 -2      xml-axis/java/TODO.txt
  
  Index: TODO.txt
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/TODO.txt,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- TODO.txt  19 Jun 2002 20:13:55 -0000      1.60
  +++ TODO.txt  21 Jun 2002 13:00:30 -0000      1.61
  @@ -31,12 +31,12 @@
   M 9405 - must - Tom
   _ 9452 - post
   _ 9473 - post
  -_ 9642 - nice - Russell
  +* 9642 - nice - Russell
   _ 9659 - pend - Glen
   _ 9665 - nice - Rich
   _ 9667 - dup of 9665
   M 9717 - must - Tom
  -M 9767 - must - Russell
  +* 9767 - must - Russell
   _ 9773 - post
   M 9780 - must - Rick
   _ 9815 - nice - ?
  
  
  
  1.33      +6 -0      
xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java
  
  Index: DefaultTypeMappingImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- DefaultTypeMappingImpl.java       19 Jun 2002 16:13:17 -0000      1.32
  +++ DefaultTypeMappingImpl.java       21 Jun 2002 13:00:30 -0000      1.33
  @@ -280,6 +280,12 @@
                      new DateDeserializerFactory(java.util.Date.class,
                                                  Constants.XSD_DATE1),
                      true);
  +        myRegister(Constants.XSD_DATE,       java.util.Date.class,
  +                   new CalendarSerializerFactory(java.util.Date.class,
  +                                             Constants.XSD_DATE),
  +                   new CalendarDeserializerFactory(java.util.Date.class,
  +                                               Constants.XSD_DATE),
  +                   true);
           myRegister(Constants.XSD_DATE,       java.util.Calendar.class,
                      new CalendarSerializerFactory(java.util.Calendar.class,
                                                Constants.XSD_DATE),
  
  
  
  1.3       +7 -2      
xml-axis/java/src/org/apache/axis/encoding/ser/CalendarDeserializer.java
  
  Index: CalendarDeserializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/CalendarDeserializer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CalendarDeserializer.java 11 Jun 2002 14:53:55 -0000      1.2
  +++ CalendarDeserializer.java 21 Jun 2002 13:00:30 -0000      1.3
  @@ -196,7 +196,12 @@
           if (bc) {
               calendar.set(Calendar.ERA, GregorianCalendar.BC);
           }
  -        
  -        return calendar;
  +
  +        if (super.javaType == Date.class) {
  +            return date;
  +        }
  +        else {
  +            return calendar;
  +        }
       }
   }
  
  
  
  1.5       +2 -2      
xml-axis/java/src/org/apache/axis/encoding/ser/CalendarSerializer.java
  
  Index: CalendarSerializer.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/CalendarSerializer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CalendarSerializer.java   19 Jun 2002 15:39:20 -0000      1.4
  +++ CalendarSerializer.java   21 Jun 2002 13:00:30 -0000      1.5
  @@ -97,8 +97,8 @@
       {
           context.startElement(name, attributes);
   
  -        Calendar calendar = (Calendar) value;
  -        Date date = calendar.getTime();
  +        Date date = value instanceof Date ? (Date) value : ((Calendar) 
value).getTime();
  +
           // Sun JDK bug 
http://developer.java.sun.com/developer/bugParade/bugs/4229798.html
           String format = null;
           synchronized (zulu) {
  
  
  
  1.50      +7 -0      xml-axis/java/src/org/apache/axis/utils/JavaUtils.java
  
  Index: JavaUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/JavaUtils.java,v
  retrieving revision 1.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- JavaUtils.java    19 Jun 2002 16:13:18 -0000      1.49
  +++ JavaUtils.java    21 Jun 2002 13:00:30 -0000      1.50
  @@ -64,6 +64,8 @@
   import java.text.Collator;
   import java.text.MessageFormat;
   import java.util.Arrays;
  +import java.util.Calendar;
  +import java.util.Date;
   import java.util.Locale;
   import java.util.MissingResourceException;
   import java.util.ResourceBundle;
  @@ -216,6 +218,11 @@
           } else if (arg instanceof byte[] &&
                      destClass == Hex.class) {
               return new Hex((byte[]) arg);
  +        }
  +
  +        // Convert between Calendar and Date
  +        if (arg instanceof Calendar && destClass == Date.class) {
  +            return ((Calendar) arg).getTime();
           }
   
   
  
  
  
  1.7       +3 -0      xml-axis/java/test/wsdl/roundtrip/RoundtripPortType.java
  
  Index: RoundtripPortType.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/wsdl/roundtrip/RoundtripPortType.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- RoundtripPortType.java    18 Jun 2002 15:33:21 -0000      1.6
  +++ RoundtripPortType.java    21 Jun 2002 13:00:30 -0000      1.7
  @@ -95,12 +95,15 @@
           throws java.rmi.RemoteException;
       public java.util.Calendar methodDateTime(java.util.Calendar inDateTime)
           throws java.rmi.RemoteException;
  +    public java.util.Date methodDate(java.util.Date inDateTime)
  +        throws java.rmi.RemoteException;
       public byte[] methodByteArray(byte[] inByteArray)
           throws java.rmi.RemoteException;
       public void methodAllTypesIn(java.lang.String string,
                                    java.math.BigInteger integer,
                                    java.math.BigDecimal decimal,
                                    java.util.Calendar dateTime,
  +                                 java.util.Date date,
                                    boolean _boolean,
                                    byte _byte,
                                    short _short,
  
  
  
  1.13      +28 -0     
xml-axis/java/test/wsdl/roundtrip/RoundtripTestServiceTestCase.java
  
  Index: RoundtripTestServiceTestCase.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/test/wsdl/roundtrip/RoundtripTestServiceTestCase.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- RoundtripTestServiceTestCase.java 18 Jun 2002 15:33:21 -0000      1.12
  +++ RoundtripTestServiceTestCase.java 21 Jun 2002 13:00:30 -0000      1.13
  @@ -756,6 +756,7 @@
                                        new BigInteger("545"),
                                        new BigDecimal("546.545"),
                                        dateTime,
  +                                     dateTime,
                                        true,
                                        (byte) 2,
                                        (short) 14,
  @@ -823,6 +824,33 @@
           }
   
       } // testMethodDateTime
  +
  +    /**
  +     * Just do the same thing that testMethodDateTime does.  The REAL
  +     * test here is a compile test.  Both Calendar and Date map to
  +     * xsd:dateTime.  The original SEI in this roundtrip test contained
  +     * method:  "Date methodDate(Date)".  But taking that Java -> WSDL ->
  +     * Java should result in:  "Calendar methodDate(Calendar)".  If that
  +     * didn't happen, then the compile would fail.
  +     */
  +    public void testMethodDate() {
  +
  +        try {
  +            Calendar expected = Calendar.getInstance();
  +            TimeZone gmt = TimeZone.getTimeZone("GMT");
  +            expected.setTimeZone(gmt);
  +            expected.setTime(new Date(1012937861800L));
  +            Calendar parameter = Calendar.getInstance();
  +            parameter.setTimeZone(gmt);
  +            parameter.setTime(new Date(1012937861996L));
  +            Calendar actual = binding.methodDate(parameter);
  +            assertEquals("The expected and actual values did not match.",
  +                         expected,
  +                         actual);
  +        } catch (RemoteException re) {
  +            fail("Remote Exception caught: " + re);
  +        }
  +    } // testMethodDate
   
       /**
        *  Test to insure that a BigDecimal matches the expected values on 
  
  
  
  1.12      +5 -0      
xml-axis/java/test/wsdl/roundtrip/RoundtripTestSoapBindingImpl.java
  
  Index: RoundtripTestSoapBindingImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/test/wsdl/roundtrip/RoundtripTestSoapBindingImpl.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- RoundtripTestSoapBindingImpl.java 18 Jun 2002 15:33:21 -0000      1.11
  +++ RoundtripTestSoapBindingImpl.java 21 Jun 2002 13:00:30 -0000      1.12
  @@ -392,6 +392,7 @@
                                    BigInteger in1,
                                    BigDecimal in2,
                                    Calendar in35,
  +                                 Calendar in36,
                                    boolean in4,
                                    byte in5,
                                    short in6,
  @@ -469,6 +470,10 @@
           }
   
       } // methodDateTime
  +
  +    public Calendar methodDate(Calendar in0) throws RemoteException {
  +        return methodDateTime(in0);
  +    } // methodDate
   
       public BigDecimal methodBigDecimal(BigDecimal in0) throws RemoteException {
   
  
  
  


Reply via email to