You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/11/09 22:06:33 UTC

svn commit: r834232 - in /cxf/trunk: api/ api/src/main/build-resources/ common/schemas/src/main/resources/META-INF/ common/schemas/src/main/resources/schemas/configuration/ common/xjc/dv/src/main/java/org/apache/cxf/xjc/dv/ rt/transports/http-jetty/src...

Author: dkulp
Date: Mon Nov  9 21:06:33 2009
New Revision: 834232

URL: http://svn.apache.org/viewvc?rev=834232&view=rev
Log:
[CXF-1647, CXF-2324, CXF-2039, CXF-2113] Introduce "ParameterizedXXXX"
types for use in the schema derived configuration things to allow
the primitive things to be properly schema validated, but also allow
some level of schema validation.

Added:
    cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd   (with props)
    cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties   (with props)
    cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml   (with props)
Modified:
    cxf/trunk/api/pom.xml
    cxf/trunk/api/src/main/build-resources/catalog.cat
    cxf/trunk/common/schemas/src/main/resources/META-INF/spring.schemas
    cxf/trunk/common/schemas/src/main/resources/schemas/configuration/security.xsd
    cxf/trunk/common/xjc/dv/src/main/java/org/apache/cxf/xjc/dv/DefaultValuePlugin.java
    cxf/trunk/rt/transports/http-jetty/src/main/build-resources/catalog.cat
    cxf/trunk/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd
    cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
    cxf/trunk/rt/transports/http/pom.xml
    cxf/trunk/rt/transports/http/src/main/build-resources/catalog.cat
    cxf/trunk/rt/transports/http/src/main/resources/schemas/wsdl/http-conf.xsd
    cxf/trunk/rt/transports/jms/pom.xml
    cxf/trunk/rt/transports/jms/src/main/build-resources/catalog.cat
    cxf/trunk/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd
    cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDL11Validator.java

Modified: cxf/trunk/api/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/api/pom.xml?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/api/pom.xml (original)
+++ cxf/trunk/api/pom.xml Mon Nov  9 21:06:33 2009
@@ -154,6 +154,10 @@
                                 <xsdOption>
                                     <xsd>${basedir}/target/schemas/schemas/configuration/security.xsd</xsd>
                                     <bindingFile>${basedir}/target/schemas/schemas/configuration/security.xjb</bindingFile>
+                                    <catalog>${basedir}/src/main/build-resources/catalog.cat</catalog>
+                                    <extensionArgs>
+                                         <extensionArg>-Xdv</extensionArg>
+                                     </extensionArgs>
                                 </xsdOption>
                                 <xsdOption>
                                     <xsd>${basedir}/target/schemas/schemas/wsdl/ws-addr-wsdl.xsd</xsd>

Modified: cxf/trunk/api/src/main/build-resources/catalog.cat
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/build-resources/catalog.cat?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/api/src/main/build-resources/catalog.cat (original)
+++ cxf/trunk/api/src/main/build-resources/catalog.cat Mon Nov  9 21:06:33 2009
@@ -20,4 +20,5 @@
 
 SYSTEM "http://schemas.xmlsoap.org/wsdl/" "../../../target/schemas/schemas/wsdl/wsdl.xsd"
 SYSTEM "http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd" "../../../target/schemas/schemas/wsdl/wsdl.xsd"
+SYSTEM "http://cxf.apache.org/schemas/configuration/parameterized-types.xsd" "../../../target/schemas/schemas/configuration/parameterized-types.xsd"
 

Modified: cxf/trunk/common/schemas/src/main/resources/META-INF/spring.schemas
URL: http://svn.apache.org/viewvc/cxf/trunk/common/schemas/src/main/resources/META-INF/spring.schemas?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/common/schemas/src/main/resources/META-INF/spring.schemas (original)
+++ cxf/trunk/common/schemas/src/main/resources/META-INF/spring.schemas Mon Nov  9 21:06:33 2009
@@ -24,4 +24,5 @@
 http\://schemas.xmlsoap.org/ws/2004/08/addressing=schemas/wsdl/addressing.xsd
 
 http\://cxf.apache.org/schemas/configuration/security.xsd=schemas/configuration/security.xsd
+http\://cxf.apache.org/schemas/configuration/parameterized-types.xsd=schemas/configuration/parameterized-types.xsd
 

Added: cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd?rev=834232&view=auto
==============================================================================
--- cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd (added)
+++ cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd Mon Nov  9 21:06:33 2009
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<xs:schema targetNamespace="http://cxf.apache.org/configuration/parameterized-types" 
+           xmlns:tns="http://cxf.apache.org/configuration/parameterized-types" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+  		   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           elementFormDefault="qualified" 
+           attributeFormDefault="unqualified"
+           xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+           jaxb:version="2.0">
+
+    
+    <xs:simpleType name="ParameterizedValue">
+    	<xs:restriction base="xs:string">
+    		<xs:pattern value="[$#](\{.*\}|\(.*\)|\[.*\])"/>
+    	</xs:restriction>
+    </xs:simpleType>
+    
+    <xs:simpleType name="ParameterizedUShort">
+    	<xs:annotation>
+	        <xs:appinfo>
+    	        <jaxb:class ref="java.lang.Integer"/>
+        	</xs:appinfo>
+        </xs:annotation>
+        <xs:union memberTypes="xs:unsignedShort tns:ParameterizedValue"/>
+    </xs:simpleType>
+    <xs:simpleType name="ParameterizedInt">
+    	<xs:annotation>
+	        <xs:appinfo>
+    	        <jaxb:class ref="java.lang.Integer"/>
+        	</xs:appinfo>
+        </xs:annotation>
+        <xs:union memberTypes="xs:int tns:ParameterizedValue"/>
+    </xs:simpleType>
+    <xs:simpleType name="ParameterizedUInt">
+    	<xs:annotation>
+	        <xs:appinfo>
+    	        <jaxb:class ref="java.lang.Long"/>
+        	</xs:appinfo>
+        </xs:annotation>
+        <xs:union memberTypes="xs:unsignedInt tns:ParameterizedValue"/>
+    </xs:simpleType>
+    <xs:simpleType name="ParameterizedLong">
+    	<xs:annotation>
+	        <xs:appinfo>
+    	        <jaxb:class ref="java.lang.Long"/>
+        	</xs:appinfo>
+        </xs:annotation>
+        <xs:union memberTypes="xs:long tns:ParameterizedValue"/>
+    </xs:simpleType>
+    <xs:simpleType name="ParameterizedBoolean">
+    	<xs:annotation>
+	        <xs:appinfo>
+    	        <jaxb:class ref="java.lang.Boolean"/>
+        	</xs:appinfo>
+        </xs:annotation>
+        <xs:union memberTypes="xs:boolean tns:ParameterizedValue"/>
+    </xs:simpleType>
+    
+    
+ </xs:schema>

Propchange: cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/common/schemas/src/main/resources/schemas/configuration/security.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/common/schemas/src/main/resources/schemas/configuration/security.xsd?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/common/schemas/src/main/resources/schemas/configuration/security.xsd (original)
+++ cxf/trunk/common/schemas/src/main/resources/schemas/configuration/security.xsd Mon Nov  9 21:06:33 2009
@@ -26,6 +26,7 @@
            xmlns:tns="http://cxf.apache.org/configuration/security"
            xmlns:beans="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xmlns:pt="http://cxf.apache.org/configuration/parameterized-types" 
            xsi:schemaLocation="
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd"
@@ -33,6 +34,9 @@
 
     <xs:import namespace="http://www.springframework.org/schema/beans"/>
     
+    <xs:import namespace="http://cxf.apache.org/configuration/parameterized-types"
+               schemaLocation="http://cxf.apache.org/schemas/configuration/parameterized-types.xsd"/>
+    
     <xs:complexType name="AuthorizationPolicy">
         <xs:annotation>
             <xs:documentation>
@@ -99,14 +103,14 @@
     </xs:complexType>
     
     <xs:complexType name="ClientAuthentication">
-        <xs:attribute name="want"     type="xs:boolean">
+        <xs:attribute name="want"     type="pt:ParameterizedBoolean">
           <xs:annotation>
             <xs:documentation>
             This attribute specifies if client authentication should be requested.
             </xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="required" type="xs:boolean">
+        <xs:attribute name="required" type="pt:ParameterizedBoolean">
           <xs:annotation>
             <xs:documentation>
             This attribute specifies if client authentication should be required.
@@ -429,7 +433,7 @@
               </xs:annotation>
            </xs:element>
         </xs:all>
-           <xs:attribute name="disableCNCheck" type="xs:boolean" default="false">
+           <xs:attribute name="disableCNCheck" type="pt:ParameterizedBoolean" default="false">
              <xs:annotation>
                 <xs:documentation>
                 This attribute specifies if JSSE should omit checking if the

Modified: cxf/trunk/common/xjc/dv/src/main/java/org/apache/cxf/xjc/dv/DefaultValuePlugin.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/xjc/dv/src/main/java/org/apache/cxf/xjc/dv/DefaultValuePlugin.java?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/common/xjc/dv/src/main/java/org/apache/cxf/xjc/dv/DefaultValuePlugin.java (original)
+++ cxf/trunk/common/xjc/dv/src/main/java/org/apache/cxf/xjc/dv/DefaultValuePlugin.java Mon Nov  9 21:06:33 2009
@@ -56,7 +56,7 @@
 import org.apache.cxf.common.logging.LogUtils;
 
 /**
- * Modifies the JAXB code model to initialise fields mapped from schema elements 
+ * Modifies the JAXB code model to initialize fields mapped from schema elements 
  * with their default value.
  */
 public class DefaultValuePlugin {
@@ -105,11 +105,10 @@
                 // Use XML schema object model to determine if field is mapped
                 // from an element (attributes default values are handled
                 // natively) and get its default value.
-
                 XmlString xmlDefaultValue = null;
                 XSType xsType = null;
                 boolean isElement = false;
-
+                boolean isRequiredAttr = true;
                 if (f.getPropertyInfo().getSchemaComponent() instanceof XSParticle) {
                     XSParticle particle = (XSParticle)f.getPropertyInfo().getSchemaComponent();
                     XSTerm term = particle.getTerm();
@@ -126,6 +125,7 @@
                     XSAttributeDecl decl = attributeUse.getDecl();
                     xmlDefaultValue = decl.getDefaultValue();                        
                     xsType = decl.getType();
+                    isRequiredAttr = attributeUse.isRequired();
                 }
 
                 
@@ -143,19 +143,30 @@
                     }
                 }
 
-                if (null == xmlDefaultValue || null == xmlDefaultValue.value) {
-                    continue;
+                JExpression dvExpr = null;
+                if (null != xmlDefaultValue && null != xmlDefaultValue.value) {
+                    dvExpr = getDefaultValueExpression(f, co, outline, xsType, isElement,
+                                                       xmlDefaultValue, false);
                 }
-                
-                JExpression dvExpr = 
-                    getDefaultValueExpression(f, co, outline, xsType, isElement, xmlDefaultValue);
-                
-                if (null == dvExpr) {
+                 
+                if (null == dvExpr
+                    && !isElement && !isRequiredAttr
+                    && xsType != null && xsType.getOwnerSchema() != null
+                    && !"http://www.w3.org/2001/XMLSchema"
+                        .equals(xsType.getOwnerSchema().getTargetNamespace())) {
+                    //non-primitive attribute, may still be able to convert it, but need to do
+                    //a bunch more checks and changes to setters and isSet and such
+                    dvExpr = 
+                        getDefaultValueExpression(f, co, outline, xsType, isElement, xmlDefaultValue, true);
+                    
+                    updateSetter(co, f, co.implClass);
+                    updateGetter(co, f, co.implClass, dvExpr, true);                    
+                    
+                } else if (null == dvExpr) {
                     continue;
+                } else {
+                    updateGetter(co, f, co.implClass, dvExpr, false);                    
                 }
-                
-                updateGetter(co, f, co.implClass, dvExpr);               
-                
             }
         }
 
@@ -168,11 +179,14 @@
                                           Outline outline,
                                           XSType xsType,
                                           boolean isElement,
-                                          XmlString xmlDefaultValue
-                                          ) {
+                                          XmlString xmlDefaultValue,
+                                          boolean unbox) {
         JType type = f.getRawType();
         String typeName = type.fullName();
-        String defaultValue = xmlDefaultValue.value;
+        String defaultValue = xmlDefaultValue == null ? null : xmlDefaultValue.value;
+        if (defaultValue == null) {
+            return null;
+        }
 
         JExpression dv = null;
         
@@ -230,12 +244,39 @@
             if (cls.getClassType() == ClassType.ENUM) {
                 dv = cls.staticInvoke("fromValue").arg(defaultValue);
             }
+        } else if (unbox) {
+            typeName = type.unboxify().fullName();
+            if ("int".equals(typeName)) {
+                dv = JExpr.lit(Integer.valueOf(defaultValue).intValue());
+            } else if ("long".equals(typeName)) {
+                dv = JExpr.lit(Long.valueOf(defaultValue).longValue());
+            } else if ("short".equals(typeName)) {
+                dv = JExpr.lit(Short.valueOf(defaultValue).shortValue());
+            } else if ("boolean".equals(typeName)) {
+                dv = JExpr.lit(Boolean.valueOf(defaultValue).booleanValue());
+            } else if ("double".equals(typeName)) {
+                dv = JExpr.lit(Double.valueOf(defaultValue).doubleValue());
+            } else if ("float".equals(typeName)) {
+                dv = JExpr.lit(Float.valueOf(defaultValue).floatValue());
+            } else if ("byte".equals(typeName)) {
+                dv = JExpr.lit(Byte.valueOf(defaultValue).byteValue());
+            } else {
+                dv = getDefaultValueExpression(f,
+                                               co,
+                                               outline,
+                                               xsType,
+                                               true,
+                                               xmlDefaultValue,
+                                               false);
+            }
         }
         // TODO: GregorianCalendar, ...
         return dv;
     }
     
-    private void updateGetter(ClassOutline co, FieldOutline fo, JDefinedClass dc, JExpression dvExpr) {
+    private void updateGetter(ClassOutline co, FieldOutline fo, 
+                              JDefinedClass dc, JExpression dvExpr,
+                              boolean remapRet) {
 
         String fieldName = fo.getPropertyInfo().getName(false);
         JType type = fo.getRawType();
@@ -248,6 +289,9 @@
         JDocComment doc = method.javadoc();
         int mods = method.mods().getValue();
         JType mtype = method.type();
+        if (remapRet) {
+            mtype = mtype.unboxify();
+        }
 
         if (LOG.isLoggable(Level.FINE)) {
             LOG.fine("Updating getter: " + getterName);
@@ -260,11 +304,55 @@
         method.javadoc().append(doc);
 
         JFieldRef fr = JExpr.ref(fieldName);
+        if (dvExpr != null) {
+            JExpression test = JOp.eq(JExpr._null(), fr);
+            JConditional jc =  method.body()._if(test);
+            jc._then()._return(dvExpr);
+            jc._else()._return(fr);
+        } else {
+            method.body()._return(fr);
+        }
+    }
+    private void updateSetter(ClassOutline co, FieldOutline fo, 
+                              JDefinedClass dc) {
 
-        JExpression test = JOp.eq(JExpr._null(), fr);
-        JConditional jc =  method.body()._if(test);
-        jc._then()._return(dvExpr);
-        jc._else()._return(fr);
+        String fieldName = fo.getPropertyInfo().getName(false);
+        JType type = fo.getRawType();
+        String typeName = type.fullName();
+
+        String getterName = ("java.lang.Boolean".equals(typeName) ? "is" : "get")
+                            + fo.getPropertyInfo().getName(true);
+        JMethod method = dc.getMethod(getterName, new JType[0]);
+        JType mtype = method.type();
+        String setterName = "set" + fo.getPropertyInfo().getName(true);
+        method = dc.getMethod(setterName, new JType[] {mtype});
+        if (LOG.isLoggable(Level.FINE)) {
+            LOG.fine("Updating setter: " + setterName);
+        }
+        JDocComment doc = method.javadoc();
+        // remove existing method and define new one
+        dc.methods().remove(method);
+
+        int mods = method.mods().getValue();
+        mtype = mtype.unboxify();
+        method = dc.method(mods, method.type(), setterName);
+        
+        method.javadoc().append(doc);
+        method.param(mtype, "value");
+
+        JFieldRef fr = JExpr.ref(fieldName);
+        method.body().assign(fr, JExpr.ref("value"));
+        
+        method = dc.method(mods, method.type(), "unset" + fo.getPropertyInfo().getName(true));
+        method.body().assign(fr, JExpr._null());
+        
+        method = dc.getMethod("isSet" + fo.getPropertyInfo().getName(true), new JType[0]);
+        if (method != null) {
+            //move to end
+            dc.methods().remove(method);
+            dc.methods().add(method);
+        }
+        
     }
 
 }

Modified: cxf/trunk/rt/transports/http-jetty/src/main/build-resources/catalog.cat
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/build-resources/catalog.cat?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/build-resources/catalog.cat (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/build-resources/catalog.cat Mon Nov  9 21:06:33 2009
@@ -20,5 +20,6 @@
 
 SYSTEM "http://schemas.xmlsoap.org/wsdl/" "../../../../../../common/schemas/src/main/resources/schemas/wsdl/wsdl.xsd"
 SYSTEM "http://cxf.apache.org/schemas/configuration/security.xsd" "../../../../../../common/schemas/src/main/resources/schemas/configuration/security.xsd"
+SYSTEM "http://cxf.apache.org/schemas/configuration/parameterized-types.xsd" "../../../../../../common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd"
 SYSTEM "http://cxf.apache.org/schemas/wsdl/http-conf.xsd"         "../../../../../../rt/transports/http/src/main/resources/schemas/wsdl/http-conf.xsd"
 SYSTEM "http://cxf.apache.org/schemas/configuration/http-jetty.xsd" "schemas/configuration/http-jetty.xsd"

Modified: cxf/trunk/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd (original)
+++ cxf/trunk/rt/transports/http-jetty/src/main/resources/schemas/configuration/http-jetty.xsd Mon Nov  9 21:06:33 2009
@@ -26,6 +26,7 @@
            xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
            xmlns:sec="http://cxf.apache.org/configuration/security"
   		   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  		   xmlns:ptp="http://cxf.apache.org/configuration/parameterized-types" 
   		   xsi:schemaLocation="
   		     http://www.springframework.org/schema/beans
   		       http://www.springframework.org/schema/beans/spring-beans.xsd"
@@ -36,17 +37,18 @@
 
     <xs:import namespace="http://cxf.apache.org/configuration/security"
                schemaLocation="http://cxf.apache.org/schemas/configuration/security.xsd"/>
-    
+    <xs:import namespace="http://cxf.apache.org/configuration/parameterized-types"
+               schemaLocation="http://cxf.apache.org/schemas/configuration/parameterized-types.xsd"/>
     
     <!-- Is this really supposed to be supperceeded by http-conf:HTTPListenerPolicy? -->
     <xs:complexType name="ThreadingParametersType">
-       <xs:attribute name="minThreads" type="xs:unsignedShort">
+       <xs:attribute name="minThreads" type="ptp:ParameterizedUShort">
           <xs:annotation>
              <xs:documentation>Specifies the minimum number of threads available to the Jetty instance for processing requests.</xs:documentation>
           </xs:annotation>
        </xs:attribute>
-       <xs:attribute name="maxThreads" type="xs:unsignedShort">
-                    <xs:annotation>
+       <xs:attribute name="maxThreads" type="ptp:ParameterizedUShort">
+       <xs:annotation>
              <xs:documentation>Specifies the maximum number of threads available to the Jetty instance for processing requests.</xs:documentation>
           </xs:annotation>
        </xs:attribute>
@@ -118,11 +120,11 @@
          </xs:choice>         
          <xs:element name="connector" type="xsd:anyType" minOccurs="0"/>
          <xs:element name="handlers" type="xsd:anyType" minOccurs="0"/>
-         <xs:element name="sessionSupport" type="xsd:boolean" minOccurs="0"/>
-         <xs:element name="reuseAddress" type="xsd:boolean" minOccurs="0" />          
+         <xs:element name="sessionSupport" type="ptp:ParameterizedBoolean" minOccurs="0"/>
+         <xs:element name="reuseAddress" type="ptp:ParameterizedBoolean" minOccurs="0" />          
        </xs:sequence>
        
-       <xs:attribute name="port" type="xs:int" use="required">
+       <xs:attribute name="port" type="ptp:ParameterizedInt" use="required">
              <xs:annotation>
                 <xs:documentation>Specifies the port used by the Jetty instance.
                 You can specify a value of 0 for the port attribute. Any threading 
@@ -139,7 +141,7 @@
                 </xs:documentation>
              </xs:annotation>
        </xs:attribute>
-       <xs:attribute name="continuationsEnabled" type="xs:boolean">
+       <xs:attribute name="continuationsEnabled" type="ptp:ParameterizedBoolean">
            <xs:annotation>
                 <xs:documentation>Specifies if Jetty Continuations will be explicitly supported
                 by Jetty destinations. Continuations will be checked if this attribute is set to true or                            omitted, ignored otherwise</xs:documentation>

Modified: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java (original)
+++ cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/ApplicationContextTest.java Mon Nov  9 21:06:33 2009
@@ -77,10 +77,6 @@
         }
     }
     
-    // This test fails because I think it is trying to read the http-conf.xsd
-    // twice, failing on a duplicate name for 
-    //http://cxf.apache.org/transports/http/configuration,authorization
-    
     @Test
     public void testContext() throws Exception {
         String s4 = getClass()
@@ -90,7 +86,18 @@
             new String[] {S1, S2, S3, s4});
         
         //ctx.refresh();
+        checkContext(ctx);
+    }
+    @Test
+    public void testContextWithProperties() throws Exception {
+        String s4 = getClass()
+            .getResource("/org/apache/cxf/transport/http_jetty/spring/beans-props.xml").toString();
         
+        TestApplicationContext ctx = new TestApplicationContext(
+            new String[] {S1, S2, S3, s4});
+        checkContext(ctx);
+    }
+    private void checkContext(TestApplicationContext ctx) throws Exception {
         ConfigurerImpl cfg = new ConfigurerImpl(ctx);
         
         EndpointInfo info = getEndpointInfo("bla", "Foo", "http://localhost:9000");
@@ -170,4 +177,6 @@
         info2.setAddress(address);
         return info2;
     }
+    
+
 }

Added: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties?rev=834232&view=auto
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties (added)
+++ cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties Mon Nov  9 21:06:33 2009
@@ -0,0 +1,28 @@
+#  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.
+bar.connection.timeout=79
+foo.connection.timeout=97
+engine.port.zero=0
+engine.port.nine.zero=9000
+engine.port.nine.one=9001
+engine.port.nine.two=9002
+engine.port.nine.three=9003
+
+engine.port.zero.minThreads=21
+engine.port.zero.maxThreads=389
+engine.port.nine.one.minThreads=99
+engine.port.nine.one.maxThreads=777

Propchange: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/bean.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml?rev=834232&view=auto
==============================================================================
--- cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml (added)
+++ cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml Mon Nov  9 21:06:33 2009
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:beans="http://www.springframework.org/schema/beans"    
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:h="http://cxf.apache.org/transports/http/configuration"
+       xmlns:hj="http://cxf.apache.org/transports/http-jetty/configuration"
+       xmlns:sec="http://cxf.apache.org/configuration/security"
+       xsi:schemaLocation="
+		http://www.springframework.org/schema/beans 
+		    http://www.springframework.org/schema/beans/spring-beans.xsd
+		http://cxf.apache.org/configuration/security 
+		    http://cxf.apache.org/schemas/configuration/security.xsd
+		http://cxf.apache.org/transports/http/configuration 
+		    http://cxf.apache.org/schemas/configuration/http-conf.xsd
+		http://cxf.apache.org/transports/http-jetty/configuration 
+		    http://cxf.apache.org/schemas/configuration/http-jetty.xsd"
+>
+	<bean id="placeholderConfig"
+	      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+	  <property name="location" value="org/apache/cxf/transport/http_jetty/spring/bean.properties"/>
+	</bean>
+	<bean id="placeholderConfig2"
+	      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+	  <property name="location" value="org/apache/cxf/transport/http_jetty/spring/bean.properties"/>
+	  <property name="placeholderPrefix" value="$("/>
+	  <property name="placeholderSuffix" value=")"/>
+	</bean>
+	<bean id="placeholderConfig3"
+	      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+	  <property name="location" value="org/apache/cxf/transport/http_jetty/spring/bean.properties"/>
+	  <property name="placeholderPrefix" value="#["/>
+	  <property name="placeholderSuffix" value="]"/>
+	</bean>
+    <h:destination name="{urn:test:ns}Foo.http-destination">
+      <h:server ContentEncoding="foobar"/>
+    </h:destination>
+    
+    <h:conduit name="{urn:test:ns}Foo.http-conduit">
+      <h:client ConnectionTimeout="${foo.connection.timeout}"/>
+    </h:conduit>
+
+    <h:conduit name="*Bar.http-conduit">
+      <h:client ConnectionTimeout="${bar.connection.timeout}"/>
+    </h:conduit>
+
+    <hj:engine-factory bus="cxf">
+       <hj:identifiedTLSServerParameters id="sample1">
+         <hj:tlsServerParameters jsseProvider="SUN" secureSocketProtocol="TLS">
+            <sec:clientAuthentication want="false" required="false"/>
+        </hj:tlsServerParameters>
+       </hj:identifiedTLSServerParameters>
+       
+	   <hj:identifiedThreadingParameters id="sampleThreading1">
+	      <hj:threadingParameters minThreads="111" maxThreads="120"/>
+	   </hj:identifiedThreadingParameters>
+       
+	   <hj:engine port="${engine.port.nine.zero}">
+	      <hj:threadingParametersRef id="sampleThreading1"/>	      
+	   </hj:engine>
+	   
+	   <hj:engine port="#[engine.port.zero]">
+	      <hj:threadingParameters minThreads="${engine.port.zero.minThreads}" maxThreads="${engine.port.zero.maxThreads}"/>
+	   </hj:engine>
+	   
+	   <hj:engine port="$(engine.port.nine.one)">
+	       <hj:threadingParameters minThreads="${engine.port.nine.one.minThreads}"
+	        maxThreads="${engine.port.nine.one.maxThreads}"/>	      
+	     <hj:connector>
+           <beans:bean class="org.mortbay.jetty.bio.SocketConnector">
+              <beans:property name = "port" value="${engine.port.nine.one}" />
+           </beans:bean>
+         </hj:connector>
+         <hj:handlers>
+           <beans:bean class="org.mortbay.jetty.handler.DefaultHandler"/>         
+         </hj:handlers>
+         <hj:sessionSupport>true</hj:sessionSupport>
+	  </hj:engine> 
+	  
+	  <hj:engine port="${engine.port.nine.two}">
+        <hj:tlsServerParameters>
+           <sec:clientAuthentication want="true" required="true"/>
+        </hj:tlsServerParameters>
+           <hj:threadingParametersRef id="sampleThreading1"/>
+      </hj:engine>
+      
+      <hj:engine port="${engine.port.nine.three}">
+         <hj:tlsServerParametersRef id="sample1"/>
+      </hj:engine>
+      
+	</hj:engine-factory>
+</beans>

Propchange: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/spring/beans-props.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/rt/transports/http/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/pom.xml?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/pom.xml (original)
+++ cxf/trunk/rt/transports/http/pom.xml Mon Nov  9 21:06:33 2009
@@ -87,6 +87,9 @@
                                     <xsd>${basedir}/src/main/resources/schemas/wsdl/http-conf.xsd</xsd>
                                     <bindingFile>${basedir}/src/main/resources/schemas/wsdl/http-conf.xjb</bindingFile>
                                     <catalog>${basedir}/src/main/build-resources/catalog.cat</catalog>
+                                    <extensionArgs>
+                                        <extensionArg>-Xdv</extensionArg>
+                                    </extensionArgs>
                                     <deleteDirs>
                                         <deleteDir>${basedir}/target/generated/src/main/java/org/apache/cxf/wsdl</deleteDir>
                                     </deleteDirs>

Modified: cxf/trunk/rt/transports/http/src/main/build-resources/catalog.cat
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/build-resources/catalog.cat?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/build-resources/catalog.cat (original)
+++ cxf/trunk/rt/transports/http/src/main/build-resources/catalog.cat Mon Nov  9 21:06:33 2009
@@ -20,5 +20,6 @@
 
 SYSTEM "http://schemas.xmlsoap.org/wsdl/" "../../../../../../common/schemas/src/main/resources/schemas/wsdl/wsdl.xsd"
 SYSTEM "http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd" "../../../../../../common/schemas/src/main/resources/schemas/wsdl/wsdl.xsd"
+SYSTEM "http://cxf.apache.org/schemas/configuration/parameterized-types.xsd" "../../../../../../common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd"
 SYSTEM "http://cxf.apache.org/schemas/configuration/security.xsd" "../../../../../../common/schemas/src/main/resources/schemas/configuration/security.xsd"
 SYSTEM "http://cxf.apache.org/schemas/wsdl/http-conf.xsd" "schemas/wsdl/http-conf.xsd"

Modified: cxf/trunk/rt/transports/http/src/main/resources/schemas/wsdl/http-conf.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http/src/main/resources/schemas/wsdl/http-conf.xsd?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http/src/main/resources/schemas/wsdl/http-conf.xsd (original)
+++ cxf/trunk/rt/transports/http/src/main/resources/schemas/wsdl/http-conf.xsd Mon Nov  9 21:06:33 2009
@@ -20,6 +20,7 @@
 
 <xs:schema targetNamespace="http://cxf.apache.org/transports/http/configuration" 
            xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" 
+           xmlns:ptp="http://cxf.apache.org/configuration/parameterized-types" 
            xmlns:xs="http://www.w3.org/2001/XMLSchema" 
            xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -30,9 +31,12 @@
 
     <xs:import namespace="http://schemas.xmlsoap.org/wsdl/" 
         schemaLocation="http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd"/>
+    <xs:import namespace="http://cxf.apache.org/configuration/parameterized-types"
+        schemaLocation="http://cxf.apache.org/schemas/configuration/parameterized-types.xsd"/>
     
     <xs:element name="server" type="http-conf:HTTPServerPolicy"/>
     <xs:element name="client" type="http-conf:HTTPClientPolicy"/>
+    
     <xs:element name="contextMatchStrategy" type="xs:string" default="stem"/>
     <xs:element name="fixedParameterOrder"  type="xs:boolean" default="false"/>
     
@@ -163,7 +167,7 @@
         <xs:complexContent>
             <xs:extension base="wsdl:tExtensibilityElement">
 
-                <xs:attribute name="ConnectionTimeout" type="xs:unsignedInt" use="optional" default="30000">
+                <xs:attribute name="ConnectionTimeout" type="ptp:ParameterizedUInt" use="optional" default="30000">
                     <xs:annotation>
                         <xs:documentation>
                         Specifies the amount of time, in milliseconds, that the consumer will attempt to establish a connection before it times out. 0 is infinite.
@@ -171,7 +175,7 @@
                     </xs:annotation>      
                 </xs:attribute>
 
-                <xs:attribute name="ReceiveTimeout" type="xs:unsignedInt" use="optional" default="60000">
+                <xs:attribute name="ReceiveTimeout" type="ptp:ParameterizedUInt" use="optional" default="60000">
                     <xs:annotation>
                         <xs:documentation>
                         Specifies the amount of time, in milliseconds, that the consumer will wait for a response before it times out. 0 is infinite.
@@ -179,7 +183,7 @@
                     </xs:annotation>      
                 </xs:attribute>
 
-                <xs:attribute name="AutoRedirect" type="xs:boolean" use="optional" default="false">
+                <xs:attribute name="AutoRedirect" type="ptp:ParameterizedBoolean" use="optional" default="false">
                     <xs:annotation>
                         <xs:documentation>
                        Specifies if the consumer will automatically follow a server issued redirection.
@@ -188,7 +192,7 @@
                     </xs:annotation>      
                 </xs:attribute>
 
-                <xs:attribute name="MaxRetransmits" type="xs:int" use="optional" default="-1">
+                <xs:attribute name="MaxRetransmits" type="ptp:ParameterizedInt" use="optional" default="-1">
                     <xs:annotation>
                         <xs:documentation>
                         Specifies the maximum amount of retransmits that are allowed for redirects. Retransmits for 
@@ -202,7 +206,7 @@
                     </xs:annotation>      
                 </xs:attribute>
 
-                <xs:attribute name="AllowChunking" type="xs:boolean" use="optional" default="true">
+                <xs:attribute name="AllowChunking" type="ptp:ParameterizedBoolean" use="optional" default="true">
                     <xs:annotation>
                         <xs:documentation>
                         If true, the client is free to use chunking streams if it wants, but it is not 
@@ -211,7 +215,7 @@
                         </xs:documentation>
                     </xs:annotation>      
                 </xs:attribute>
-                <xs:attribute name="ChunkingThreshold" type="xs:int" use="optional" default="4096">
+                <xs:attribute name="ChunkingThreshold" type="ptp:ParameterizedInt" use="optional" default="4096">
                     <xs:annotation>
                         <xs:documentation>
                         If AllowChunking is true, this sets the threshold at which messages start
@@ -338,7 +342,7 @@
                         </xs:documentation>
                     </xs:annotation>      
                 </xs:attribute>
-                <xs:attribute name="ProxyServerPort" type="xs:int" use="optional">
+                <xs:attribute name="ProxyServerPort" type="ptp:ParameterizedInt" use="optional">
                     <xs:annotation>
                         <xs:documentation>
                         Specifies the port number used by the proxy server.

Modified: cxf/trunk/rt/transports/jms/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/pom.xml?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/pom.xml (original)
+++ cxf/trunk/rt/transports/jms/pom.xml Mon Nov  9 21:06:33 2009
@@ -145,6 +145,9 @@
                                     <deleteDirs>
                                         <deleteDir>${basedir}/target/generated/src/main/java/org/apache/cxf/wsdl</deleteDir>
                                     </deleteDirs>
+                                    <extensionArgs>
+                                         <extensionArg>-Xdv</extensionArg>
+                                     </extensionArgs>
                                 </xsdOption>
                                 <xsdOption>
                                     <xsd>${basedir}/src/main/resources/schemas/wsdl/jms-uri.xsd</xsd>
@@ -161,6 +164,18 @@
                         </goals>
                     </execution>
                 </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.cxf</groupId>
+                        <artifactId>cxf-xjc-dv</artifactId>
+                        <version>${project.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.apache.cxf</groupId>
+                        <artifactId>cxf-common-utilities</artifactId>
+                        <version>${project.version}</version>
+                    </dependency>
+                </dependencies>
             </plugin>
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>

Modified: cxf/trunk/rt/transports/jms/src/main/build-resources/catalog.cat
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/build-resources/catalog.cat?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/build-resources/catalog.cat (original)
+++ cxf/trunk/rt/transports/jms/src/main/build-resources/catalog.cat Mon Nov  9 21:06:33 2009
@@ -20,4 +20,6 @@
 
 SYSTEM "http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd" "../../../../../../common/schemas/src/main/resources/schemas/wsdl/wsdl.xsd"
 SYSTEM "http://schemas.xmlsoap.org/wsdl/" "../../../../../../common/schemas/src/main/resources/schemas/wsdl/wsdl.xsd"
+SYSTEM "http://cxf.apache.org/schemas/configuration/parameterized-types.xsd" "../../../../../../common/schemas/src/main/resources/schemas/configuration/parameterized-types.xsd"
+
 

Modified: cxf/trunk/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd (original)
+++ cxf/trunk/rt/transports/jms/src/main/resources/schemas/wsdl/jms.xsd Mon Nov  9 21:06:33 2009
@@ -21,11 +21,14 @@
   xmlns:jms="http://cxf.apache.org/transports/jms" 
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
   xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
-  targetNamespace="http://cxf.apache.org/transports/jms" 
+  targetNamespace="http://cxf.apache.org/transports/jms"
+  xmlns:pt="http://cxf.apache.org/configuration/parameterized-types" 
   elementFormDefault="qualified" jaxb:version="2.0">
   
     <xs:import namespace="http://schemas.xmlsoap.org/wsdl/"
         schemaLocation="http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd"/>
+    <xs:import namespace="http://cxf.apache.org/configuration/parameterized-types"
+        schemaLocation="http://cxf.apache.org/schemas/configuration/parameterized-types.xsd"/>
     
     <!-- Valid wsdl elements -->
     <xs:element name="client" type="jms:ClientBehaviorPolicyType"/>
@@ -41,8 +44,8 @@
         </xs:annotation>
         <xs:complexContent>
             <xs:extension base="wsdl:tExtensibilityElement">
-        		<xs:attribute name="lowWaterMark" type="xs:int" default="20"/>
-        		<xs:attribute name="highWaterMark" type="xs:int" default="500" />
+        		<xs:attribute name="lowWaterMark" type="pt:ParameterizedInt" default="20"/>
+        		<xs:attribute name="highWaterMark" type="pt:ParameterizedInt" default="500" />
         	</xs:extension>
 		</xs:complexContent>
     </xs:complexType>
@@ -50,13 +53,13 @@
     <xs:complexType name="ClientConfig">
     	<xs:complexContent>
     		<xs:extension base="wsdl:tExtensibilityElement">
-    			<xs:attribute name="clientReceiveTimeout" type="xs:long"
+    			<xs:attribute name="clientReceiveTimeout" type="pt:ParameterizedLong"
     				default="60000" />
-    			<xs:attribute name="messageTimeToLive" type="xs:long"
+    			<xs:attribute name="messageTimeToLive" type="pt:ParameterizedLong"
     				default="0" />
                 <xs:attribute name="conduitSelectorPrefix" type="xs:string" use="optional"/>    				
-                <xs:attribute name="useConduitIdSelector" type="xs:boolean" use="optional"/>
-                <xs:attribute name="enforceSpec" type="xs:boolean" use="optional" default="true"/>
+                <xs:attribute name="useConduitIdSelector" type="pt:ParameterizedBoolean" use="optional"/>
+                <xs:attribute name="enforceSpec" type="pt:ParameterizedBoolean" use="optional" default="true"/>
     		</xs:extension>
     	</xs:complexContent>
     </xs:complexType>
@@ -64,7 +67,7 @@
     <xs:complexType name="ServerConfig">
 		<xs:complexContent>
             <xs:extension base="wsdl:tExtensibilityElement">
-        		<xs:attribute name="messageTimeToLive" type="xs:long" default="0" />
+        		<xs:attribute name="messageTimeToLive" type="pt:ParameterizedLong" default="0" />
         		<xs:attribute name="durableSubscriptionClientId" type="xs:string" />
 			</xs:extension>
 		</xs:complexContent>        	
@@ -87,22 +90,22 @@
         
         <!-- JMS Header properties -->
         <xs:attribute name="JMSCorrelationID" type="xs:string"/>
-        <xs:attribute name="JMSDeliveryMode" type="xs:int"/>
-        <xs:attribute name="JMSExpiration" type="xs:long"/>
+        <xs:attribute name="JMSDeliveryMode" type="pt:ParameterizedInt"/>
+        <xs:attribute name="JMSExpiration" type="pt:ParameterizedLong"/>
         <xs:attribute name="JMSMessageID" type="xs:string"/>
-        <xs:attribute name="JMSPriority" type="xs:int"/>
-        <xs:attribute name="JMSRedelivered" type="xs:boolean"/>
+        <xs:attribute name="JMSPriority" type="pt:ParameterizedInt"/>
+        <xs:attribute name="JMSRedelivered" type="pt:ParameterizedBoolean"/>
         <xs:attribute name="JMSReplyTo" type="xs:string"/>
-        <xs:attribute name="JMSTimeStamp" type="xs:long"/>
+        <xs:attribute name="JMSTimeStamp" type="pt:ParameterizedLong"/>
         <xs:attribute name="JMSType" type="xs:string"/>
-        <xs:attribute name="TimeToLive" type="xs:long"/>
+        <xs:attribute name="TimeToLive" type="pt:ParameterizedLong"/>
         
         <!-- JMS Message properties for SOAP over JMS specification  -->
         <xs:attribute name="SOAPJMSTargetService" type="xs:string"/>
     	<xs:attribute name="SOAPJMSBindingVersion" type="xs:string"/>
     	<xs:attribute name="SOAPJMSContentType" type="xs:string"/>
     	<xs:attribute name="SOAPJMSSOAPAction" type="xs:anyURI"/>
-    	<xs:attribute name="SOAPJMSIsFault" type="xs:boolean"/>
+    	<xs:attribute name="SOAPJMSIsFault" type="pt:ParameterizedBoolean"/>
     	<xs:attribute name="SOAPJMSRequestURI" type="xs:string"/>
     </xs:complexType>
     
@@ -124,7 +127,7 @@
      -->
     
     <xs:simpleType name="JMSClientReceiveTimeOut">
-        <xs:restriction base="xs:long"/>
+        <xs:restriction base="pt:ParameterizedLong"/>
     </xs:simpleType>
     
     <xs:simpleType name="DestinationStyleType">
@@ -248,8 +251,8 @@
     					</xs:documentation>
     				</xs:annotation>
     			</xs:attribute>
-    			<xs:attribute name="useJms11" type="xs:boolean" use="optional"/>
-    			<xs:attribute name="reconnectOnException" type="xs:boolean" use="optional"/>
+    			<xs:attribute name="useJms11" type="pt:ParameterizedBoolean" use="optional"/>
+    			<xs:attribute name="reconnectOnException" type="pt:ParameterizedBoolean" use="optional"/>
     		</xs:extension>
     	</xs:complexContent>
     </xs:complexType>
@@ -284,14 +287,14 @@
                         </xs:documentation>
                     </xs:annotation>
                 </xs:attribute>
-                <xs:attribute name="useMessageIDAsCorrelationID" type="xs:boolean" default="false">
+                <xs:attribute name="useMessageIDAsCorrelationID" type="pt:ParameterizedBoolean" default="false">
                     <xs:annotation>
                         <xs:documentation>
                           Flag to indicate whether to use JMS Message Id as correlation ID. It is serverside only so should go in ServerPolicy
                         </xs:documentation>
                     </xs:annotation>
                 </xs:attribute>
-                <xs:attribute name="transactional" type="xs:boolean" default="false">
+                <xs:attribute name="transactional" type="pt:ParameterizedBoolean" default="false">
                     <xs:annotation>
                         <xs:documentation>
                           Flag to specify whether to use JMS transaction support on server side.

Modified: cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDL11Validator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDL11Validator.java?rev=834232&r1=834231&r2=834232&view=diff
==============================================================================
--- cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDL11Validator.java (original)
+++ cxf/trunk/tools/validator/src/main/java/org/apache/cxf/tools/validator/internal/WSDL11Validator.java Mon Nov  9 21:06:33 2009
@@ -45,6 +45,7 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.catalog.OASISCatalogManager;
+import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.StringUtils;
@@ -174,10 +175,23 @@
         return dir;
     }
 
+        
     protected List<InputSource> getDefaultSchemas() throws IOException {
         List<InputSource> xsdList = new ArrayList<InputSource>();
+        URL url = ClassLoaderUtils.getResource("/schemas/configuration/parameterized-types.xsd",
+                                               this.getClass());
+        if (url != null) {
+            InputSource is = new InputSource(url.openStream());
+            is.setSystemId(url.toString());
+            xsdList.add(is);
+        }
+        addDefaultSchemas(ToolConstants.CXF_SCHEMAS_DIR_INJAR, xsdList);
+        
+        return xsdList;
+    }
+    private void addDefaultSchemas(String location, List<InputSource> xsdList) throws IOException {
         ClassLoader clzLoader = Thread.currentThread().getContextClassLoader();
-        Enumeration<URL> urls = clzLoader.getResources(ToolConstants.CXF_SCHEMAS_DIR_INJAR);
+        Enumeration<URL> urls = clzLoader.getResources(location);
         while (urls.hasMoreElements()) {
             URL url = urls.nextElement();
             //from jar files 
@@ -238,7 +252,6 @@
         }
         
         sort(xsdList);
-        return xsdList;
     }
 
     private void sort(List<InputSource> list) {