You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2008/08/22 02:08:06 UTC

svn commit: r687910 - in /cxf/trunk/rt: databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ databinding/aegis/src/main/java/org/apache/cxf/aegis/type/ databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ frontend/simple/src/ma...

Author: bimargulies
Date: Thu Aug 21 17:08:06 2008
New Revision: 687910

URL: http://svn.apache.org/viewvc?rev=687910&view=rev
Log:
Add some test code to try to make Generics lose in Javascript.

Make Aegis push minOccurs and maxOccurs out to the MPI.


Added:
    cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericGenericClass.java   (with props)
    cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericInterface.java   (with props)
    cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SpecificGenericClass.java   (with props)
Modified:
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/Type.java
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ArrayType.java
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java
    cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java
    cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java
    cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java

Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java Thu Aug 21 17:08:06 2008
@@ -383,6 +383,14 @@
                     part.setElementQName(type.getSchemaType());
                 }
             }
+            
+            part.setProperty("nillable", Boolean.valueOf(type.isNillable()));
+            if (type.hasMinOccurs()) {
+                part.setProperty("minOccurs", Long.valueOf(type.getMinOccurs()).toString());
+            }
+            if (type.hasMaxOccurs()) {
+                part.setProperty("maxOccurs", Long.valueOf(type.getMaxOccurs()).toString());
+            }
 
             part2Type.put(part, type);
 

Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/Type.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/Type.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/Type.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/Type.java Thu Aug 21 17:08:06 2008
@@ -212,6 +212,22 @@
     public boolean usesXmime() {
         return false;
     }
+    
+    public boolean hasMinOccurs() {
+        return false;
+    }
+    
+    public boolean hasMaxOccurs() {
+        return false;
+    }
+    
+    public long getMinOccurs() {
+        return 0; // not valid in general
+    }
+    
+    public long getMaxOccurs() {
+        return 0;
+    }
 
     @Override
     public String toString() {

Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ArrayType.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ArrayType.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ArrayType.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ArrayType.java Thu Aug 21 17:08:06 2008
@@ -416,4 +416,14 @@
         setWriteOuter(!flat);
         this.flat = flat;
     }
+    
+    @Override
+    public boolean hasMaxOccurs() {
+        return true;
+    }
+
+    @Override
+    public boolean hasMinOccurs() {
+        return true;
+    }
 }

Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanType.java Thu Aug 21 17:08:06 2008
@@ -753,4 +753,14 @@
         element.setAttribute("namespace", AbstractXOPType.XML_MIME_NS);
         root.addNamespaceDeclaration(Namespace.getNamespace("xmime", AbstractXOPType.XML_MIME_NS));
     }
+
+    @Override
+    public long getMinOccurs() {
+        return info.getMinOccurs();
+    }
+
+    @Override
+    public boolean hasMinOccurs() {
+        return true;
+    }
 }

Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java Thu Aug 21 17:08:06 2008
@@ -382,6 +382,10 @@
     public int getMinOccurs(QName name) {
         return minOccurs;
     }
+    
+    public long getMinOccurs() {
+        return minOccurs;
+    }
 
     public void setDefaultMinOccurs(int m) {
         this.minOccurs = m;

Modified: cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java (original)
+++ cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/DefaultServiceConfiguration.java Thu Aug 21 17:08:06 2008
@@ -304,7 +304,13 @@
     }
     public Long getWrapperPartMinOccurs(MessagePartInfo mpi) {
         String min = (String)mpi.getProperty("minOccurs");
+        
         long mini = 1;
+        
+        if (min != null) {
+            mini = Long.parseLong(min);
+        }
+        
         if (min == null && mpi.getTypeClass() != null && !mpi.getTypeClass().isPrimitive()) {
             mini = 0;
         }

Added: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericGenericClass.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericGenericClass.java?rev=687910&view=auto
==============================================================================
--- cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericGenericClass.java (added)
+++ cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericGenericClass.java Thu Aug 21 17:08:06 2008
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, 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.cxf.javascript.fortest;
+
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * 
+ */
+@XmlType(namespace = "uri:org.apache.cxf.javascript.testns")
+public class GenericGenericClass<T> implements GenericInterface<T> {
+    private T value;
+    
+    public void doSomethingGeneric(T t) {
+        value = t;
+    }
+
+    public T getValue() {
+        return value;
+    }
+
+    public void setValue(T value) {
+        this.value = value;
+    }
+
+}

Propchange: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericGenericClass.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericGenericClass.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericInterface.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericInterface.java?rev=687910&view=auto
==============================================================================
--- cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericInterface.java (added)
+++ cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericInterface.java Thu Aug 21 17:08:06 2008
@@ -0,0 +1,27 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, 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.cxf.javascript.fortest;
+
+/**
+ * Test interface of generic interface.
+ */
+public interface GenericInterface<T> {
+    void doSomethingGeneric(T t);
+}

Propchange: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericInterface.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/GenericInterface.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java (original)
+++ cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrapped.java Thu Aug 21 17:08:06 2008
@@ -66,4 +66,8 @@
     @WebMethod
     void beanFunction(@WebParam(name = "bean1") TestBean1 bean, 
                       @WebParam(name = "beanArray") TestBean1[] beans);
+    
+    @WebMethod
+    void genericTestFunction(@WebParam(name = "g1") SpecificGenericClass sgc,
+                             @WebParam(name = "g2") GenericGenericClass<Double> ggc);
 }

Modified: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java?rev=687910&r1=687909&r2=687910&view=diff
==============================================================================
--- cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java (original)
+++ cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SimpleDocLitWrappedImpl.java Thu Aug 21 17:08:06 2008
@@ -21,14 +21,11 @@
 
 import javax.jws.WebService;
 
-//import org.apache.cxf.feature.Features;
-
 /**
  * 
  */
 @WebService(endpointInterface = "org.apache.cxf.javascript.fortest.SimpleDocLitWrapped",
             targetNamespace = "uri:org.apache.cxf.javascript.fortest")
-//@org.apache.cxf.feature.Features(features = "org.apache.cxf.feature.LoggingFeature") 
 public class SimpleDocLitWrappedImpl implements SimpleDocLitWrapped {
     
     private String lastString;
@@ -38,6 +35,8 @@
     private double lastDouble;
     private TestBean1 lastBean1;
     private TestBean1[] lastBean1Array;
+    private SpecificGenericClass lastSpecificGeneric;
+    private GenericGenericClass<Double> lastGenericGeneric;
 
     /** {@inheritDoc}*/
     public int basicTypeFunctionReturnInt(String s, int i, long l, float f, double d) {
@@ -115,4 +114,17 @@
     public TestBean1[] getLastBean1Array() {
         return lastBean1Array;
     }
+
+    public void genericTestFunction(SpecificGenericClass sgc, GenericGenericClass<Double> ggc) {
+        lastSpecificGeneric = sgc;
+        lastGenericGeneric = ggc;
+    }
+
+    public SpecificGenericClass getLastSpecificGeneric() {
+        return lastSpecificGeneric;
+    }
+
+    public GenericGenericClass<Double> getLastGenericGeneric() {
+        return lastGenericGeneric;
+    }
 }

Added: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SpecificGenericClass.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SpecificGenericClass.java?rev=687910&view=auto
==============================================================================
--- cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SpecificGenericClass.java (added)
+++ cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SpecificGenericClass.java Thu Aug 21 17:08:06 2008
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, 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.cxf.javascript.fortest;
+
+import javax.xml.bind.annotation.XmlType;
+
+@XmlType(namespace = "uri:org.apache.cxf.javascript.testns")
+public class SpecificGenericClass implements GenericInterface<String> {
+    
+    private String value;
+
+    public void doSomethingGeneric(String t) {
+        
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+}

Propchange: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SpecificGenericClass.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/SpecificGenericClass.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date