You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ek...@apache.org on 2005/12/13 01:30:34 UTC
svn commit: r356430 - in /beehive/trunk:
system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/
wsm/src/axis/org/apache/beehive/wsm/axis/
wsm/src/axis/org/apache/beehive/wsm/axis/databinding/
wsm/src/axis/org/apache/beehive...
Author: ekoneil
Date: Mon Dec 12 16:30:28 2005
New Revision: 356430
URL: http://svn.apache.org/viewcvs?rev=356430&view=rev
Log:
Incremental binding / type work.
- add a SchemaTypesLookupService that implements Class <> QName support for the core XSD / SOAP types
- add a BindingLookupServiceFactory. This isn't used yet, but it's the kind of thing that will support getting different singletons / chains of type providers
- remove the isBuiltInType methods from the TypeRegistrar and AxisTypeMappingMetaData classes. Makes things simpler...
BB: self
Test: WSM and web service control pass
Added:
beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupServiceFactory.java (with props)
beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/SchemaTypesLookupService.java (with props)
Modified:
beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/AxisTypeRegistrar.java
beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java
beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java
beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/AxisLookupService.java
beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/registration/AxisTypeMappingMetaData.java
beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/xmlbeans/XmlBeanLookupService.java
Modified: beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/AxisTypeRegistrar.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/AxisTypeRegistrar.java?rev=356430&r1=356429&r2=356430&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/AxisTypeRegistrar.java (original)
+++ beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/AxisTypeRegistrar.java Mon Dec 12 16:30:28 2005
@@ -55,10 +55,6 @@
return XMLType.AXIS_VOID;
}
- protected boolean isBuiltInType(Class cls) {
- return AxisTypeMappingMetaData.isBuiltInType(cls);
- }
-
protected void registerClassAsWithDefaultSearialization(Class cls, QName q, SOAPBinding.Style style, SOAPBinding.Use use) {
try {
LOGGER.debug("Assigned Default Serialization to class: " + cls.getCanonicalName() + " qname:" + q);
Modified: beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java?rev=356430&r1=356429&r2=356430&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java (original)
+++ beehive/trunk/system-controls/src/webservice/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java Mon Dec 12 16:30:28 2005
@@ -76,22 +76,21 @@
if(Void.TYPE.equals(cls))
return null;
- if(isBuiltInType(cls))
- return getBuiltInTypeQname(cls);
+ QName builtInQName = getBuiltInTypeQname(cls);
+ if(builtInQName != null)
+ return builtInQName;
+
if(q == null)
- throw new RuntimeException(
- "Invalid registeration requestion qname is null");
+ throw new RuntimeException("Invalid registeration requestion qname is null");
if(cls.isArray()) {
if (SOAPBinding.Use.ENCODED == use) {
- if(!classIsRegistered(cls, q)) {
+ if(!classIsRegistered(cls, q))
registerClassAsSoapEncodedArray(cls, q);
- }
} else {
- q = registerType(cls.getComponentType(), q, style, use);
- if (SOAPBinding.Style.RPC == style) {
+ if (SOAPBinding.Style.RPC == style)
q = XMLType.SOAP_ARRAY;
- }
+ else q = registerType(cls.getComponentType(), q, style, use);
}
}
else if(!classIsRegistered(cls, q)) {
@@ -111,10 +110,6 @@
registerClassAsDataHandler(cls, q);
}
catch(Exception e) {
- /*
- * FIXME jcolwell@bea.com 2004-Oct-08 -- log this
- * properly
- */
e.printStackTrace();
}
}
@@ -142,9 +137,8 @@
return q;
}
catch(RuntimeException e) {
- LOGGER.error("Failed to register class: " + cls.getCanonicalName()
- + " type: " + q.getNamespaceURI() + ":" + q.getLocalPart());
-
+ LOGGER.error("Failed to register class: " + cls.getCanonicalName() + " type: " +
+ q.getNamespaceURI() + ":" + q.getLocalPart());
e.printStackTrace();
throw e;
}
@@ -215,8 +209,6 @@
*/
protected abstract boolean classIsRegistered(Class cls, QName q);
- protected abstract boolean isBuiltInType(Class cls);
-
protected abstract QName getBuiltInTypeQname(Class cls);
private boolean isActivationEnabled() {
@@ -227,9 +219,8 @@
try {
return getClass().getClassLoader().loadClass("javax.activation.DataHandler");
}
- catch(ClassNotFoundException e) {
- /* ignore: datahandler support will be disabled */
- }
+ /* ignore: datahandler support will be disabled */
+ catch(ClassNotFoundException e) {}
return null;
}
@@ -237,9 +228,8 @@
try {
return getClass().getClassLoader().loadClass("javax.mail.internet.MimeMultipart");
}
- catch(ClassNotFoundException e) {
- /* ignore; multipart support will be disabled */
- }
+ /* ignore: datahandler support will be disabled */
+ catch(ClassNotFoundException e) {}
return null;
}
}
Modified: beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java?rev=356430&r1=356429&r2=356430&view=diff
==============================================================================
--- beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java (original)
+++ beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java Mon Dec 12 16:30:28 2005
@@ -373,8 +373,9 @@
// todo: need to replace this with delegation to the BindingLookupService's implementation
// for the built-in types
/* get built-in type QName */
- if(AxisTypeMappingMetaData.isBuiltInType(type))
- return AxisTypeMappingMetaData.getBuiltInTypeQname(type);
+ QName builtInQName = AxisTypeMappingMetaData.getBuiltInTypeQname(type);
+ if(builtInQName != null)
+ return builtInQName;
/* todo: may need to register the holder type also? */
if(Holder.class.isAssignableFrom(type))
Modified: beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/AxisLookupService.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/AxisLookupService.java?rev=356430&r1=356429&r2=356430&view=diff
==============================================================================
--- beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/AxisLookupService.java (original)
+++ beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/AxisLookupService.java Mon Dec 12 16:30:28 2005
@@ -40,28 +40,27 @@
TypeDesc td = TypeDesc.getTypeDescForClass(cls);
- if(null != td)
+ if(td != null)
return td.getXmlType();
else {
String namespace = Namespaces.makeNamespace(cls.getName());
if(namespace == null || namespace.endsWith("DefaultNamespace"))
namespace = "http://no.namespace.specified";
-
return class2qname(cls, namespace);
}
}
public QName class2qname(Class cls, String namespace) {
- if(AxisTypeMappingMetaData.isBuiltInType(cls))
- return AxisTypeMappingMetaData.getBuiltInTypeQname(cls);
- else return new QName(namespace, Types.getLocalNameFromFullName(cls.getName()));
+ QName qname = AxisTypeMappingMetaData.getBuiltInTypeQname(cls);
+
+ if(qname == null)
+ qname = new QName(namespace, Types.getLocalNameFromFullName(cls.getName()));
+ return qname;
}
public Class qname2class(QName qType) {
-
- if(qType == null) {
+ if(qType == null)
return null;
- }
/*
If the type has the rpc encoded namespace, lookup the class it maps
@@ -84,14 +83,13 @@
if (Constants.URI_1999_SCHEMA_XSD.equals(qType.getNamespaceURI())
|| Constants.URI_2000_SCHEMA_XSD.equals(qType.getNamespaceURI())
|| Constants.URI_2001_SCHEMA_XSD.equals(qType.getNamespaceURI())) {
-
qType = stripArrayDelimiters(qType);
TypeMappingRegistry tmr = new TypeMappingRegistryImpl(true);
TypeMapping tm = (TypeMapping)tmr.getTypeMapping(qType.getNamespaceURI());
return tm.getClassForQName(qType);
}
- // Special case for image attachments.
+ /* special case for Images */
if (Constants.NS_URI_XMLSOAP.equals(qType.getNamespaceURI())
&& ("Image".equals(qType.getLocalPart()) || "Image[]".equals(qType.getLocalPart()))) {
return java.awt.Image.class;
@@ -101,8 +99,7 @@
String className;
if(packageName != null && packageName.length() > 0)
className = packageName + "." + Utils.xmlNameToJavaClass(qType.getLocalPart());
- else
- className = Utils.xmlNameToJavaClass(qType.getLocalPart());
+ else className = Utils.xmlNameToJavaClass(qType.getLocalPart());
Class javaType = null;
try {
@@ -112,39 +109,36 @@
System.out.println("Unable to find the class \"" + className + "\". No Axis generated classes were found for qname \"" + qType + "\"");
}
- if(null != javaType)
+ if(javaType != null)
System.out.println("Found an Axis generated type for qname \"" + qType + "\" class \"" + javaType.getCanonicalName() + "\"");
return javaType;
}
private String getPackageNameFromQName(QName qType) {
- /*
- todo: keep a cache of previous conversions
- */
+ /* todo: caching */
String packageName = Utils.makePackageName(qType.getNamespaceURI());
return normalizePackageName(packageName, '.');
}
/**
- * If the type QName has been suffixed with '[]' strip the brackets
- * and return the new QName.
+ * If the type QName has been suffixed with '[]' strip the brackets and return the new QName.
* @param type QName to check.
* @return A new QName.
*/
private QName stripArrayDelimiters(QName type) {
if (type.getLocalPart().endsWith("[]")) {
- return new QName(type.getNamespaceURI(),
- type.getLocalPart().substring(0, type.getLocalPart().length()-2));
+ String namespaceUri = type.getNamespaceURI();
+ String localPart = type.getLocalPart().substring(0, type.getLocalPart().length()-2);
+
+ return new QName(namespaceUri, localPart);
}
- return type;
+ else return type;
}
private static String normalizePackageName(String pkg, char separator) {
-
for(int i = 0; i < PACKAGE_SEPARATORS.length; i++)
pkg = pkg.replace(PACKAGE_SEPARATORS[i], separator);
-
return pkg;
}
}
Modified: beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/registration/AxisTypeMappingMetaData.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/registration/AxisTypeMappingMetaData.java?rev=356430&r1=356429&r2=356430&view=diff
==============================================================================
--- beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/registration/AxisTypeMappingMetaData.java (original)
+++ beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/registration/AxisTypeMappingMetaData.java Mon Dec 12 16:30:28 2005
@@ -32,10 +32,6 @@
initBuildInTypes();
}
- public static boolean isBuiltInType(Class cls) {
- return (builtInTypes.containsKey(cls));
- }
-
public static QName getBuiltInTypeQname(Class cls) {
return builtInTypes.get(cls);
}
Added: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupServiceFactory.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupServiceFactory.java?rev=356430&view=auto
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupServiceFactory.java (added)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupServiceFactory.java Mon Dec 12 16:30:28 2005
@@ -0,0 +1,29 @@
+/**
+ Copyright 2004 The Apache Software Foundation.
+
+ Licensed 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.
+
+ $Header:$
+ */
+package org.apache.beehive.wsm.databinding;
+
+import org.apache.beehive.wsm.util.SchemaTypesLookupService;
+
+/**
+ *
+ */
+public class BindingLookupServiceFactory {
+ public static BindingLookupService builtInTypes() {
+ return new SchemaTypesLookupService();
+ }
+}
Propchange: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupServiceFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/xmlbeans/XmlBeanLookupService.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/xmlbeans/XmlBeanLookupService.java?rev=356430&r1=356429&r2=356430&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/xmlbeans/XmlBeanLookupService.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/xmlbeans/XmlBeanLookupService.java Mon Dec 12 16:30:28 2005
@@ -39,13 +39,6 @@
implements BindingLookupService {
private static Log LOGGER = LogFactory.getLog(XmlBeanLookupService.class);
- private static XmlBeanLookupService THE_LOOKUP = new XmlBeanLookupService();
-
-/*
- public static Class q2Class(QName q) {
- return THE_LOOKUP.qname2class(q);
- }
-*/
public QName class2qname(Class cls) {
if(XmlObject.class.isAssignableFrom(cls))
@@ -54,16 +47,12 @@
}
public QName class2qname(Class cls, String defaultnamespace) {
- QName res = class2qname(cls);
- // for xmlbeans we can ignore default name space.
- return res;
+ return class2qname(cls);
}
- /*
- * @see TypeLookUpServices#Qname2Class(javax.xml.namespace.QName)
- */
public Class qname2class(QName qname) {
LOGGER.debug("Get XMLBeans class for Qname: " + qname);
+
SchemaTypeLoader stl = XmlBeans.getContextTypeLoader();
SchemaType st = stl.findType(qname);
if(st == null) {
@@ -75,16 +64,12 @@
if(st != null) {
Class xmlClass = st.getJavaClass();
- //String clName = xmlClass.getName();
if(st.isBuiltinType()) {
Method[] declared = xmlClass.getDeclaredMethods();
Class natural = scanDeclaredMethodsForViableReturnType(declared);
if(natural != null)
return natural;
else {
- // NOTE jcolwell@bea.com 2004-Nov-12 --
- // XmlString declares no methods
-
if(xmlClass.isInterface()) {
for(Class cl : xmlClass.getInterfaces()) {
natural = scanDeclaredMethodsForViableReturnType(cl.getDeclaredMethods());
@@ -113,18 +98,16 @@
}
private Class scanDeclaredMethodsForViableReturnType(Method[] declared) {
- /* TODO: Does this make sense? IT looks as if the type of the class is determined based on the
- * method return types.
+ /*
+ todo: Does this make sense? IT looks as if the type of the class is determined based
+ on the method return types.
*/
for(Method meth : declared) {
Class returnType = meth.getReturnType();
if(!returnType.equals(Void.TYPE)) {
/*
- * NOTE jcolwell@bea.com 2004-Nov-12 --
- * built-in XmlBeans types may be of the following natural
- * types:
- * primitives, byte arrays, Strings, Calendars, BigIntegers
- * and BigDecimals
+ built-in XmlBeans types may be of the following natural types:
+ primitives, byte arrays, Strings, Calendars, BigIntegers and BigDecimals
*/
if(returnType.isArray()
|| returnType.isPrimitive()
Added: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/SchemaTypesLookupService.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/SchemaTypesLookupService.java?rev=356430&view=auto
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/SchemaTypesLookupService.java (added)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/SchemaTypesLookupService.java Mon Dec 12 16:30:28 2005
@@ -0,0 +1,261 @@
+/*
+ Copyright 2004 The Apache Software Foundation.
+
+ Licensed 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.
+
+ $Header:$
+ */
+package org.apache.beehive.wsm.util;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import javax.xml.namespace.QName;
+
+import org.apache.beehive.wsm.databinding.BindingLookupService;
+
+/**
+ *
+ */
+public class SchemaTypesLookupService
+ implements BindingLookupService {
+
+ private static HashMap<Class, QName> SCHEMA_TYPES = new HashMap<Class, QName>();
+
+ public QName class2qname(Class clazz) {
+ return SCHEMA_TYPES.get(clazz);
+ }
+
+ public QName class2qname(Class clazz, String namespace) {
+ return SCHEMA_TYPES.get(clazz);
+ }
+
+ public Class qname2class(QName qname) {
+ Iterator values = SCHEMA_TYPES.entrySet().iterator();
+ while(values.hasNext()) {
+ Map.Entry entry = (Map.Entry)values.next();
+ if(entry.getValue().equals(qname))
+ return (Class)entry.getKey();
+ }
+ return null;
+ }
+
+ private static final String NS_URI_XML = "http://www.w3.org/XML/1998/namespace";
+
+ private static final String URI_1999_SCHEMA_XSD = "http://www.w3.org/1999/XMLSchema";
+ private static final String URI_2000_SCHEMA_XSD = "http://www.w3.org/2000/10/XMLSchema";
+ private static final String URI_2001_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
+ private static final String URI_DEFAULT_SCHEMA_XSD = URI_2001_SCHEMA_XSD;
+
+ private static final String URI_SOAP11_ENC = "http://schemas.xmlsoap.org/soap/encoding/";
+ private static final String URI_SOAP12_ENC = "http://www.w3.org/2003/05/soap-encoding";
+ private static final String URI_DEFAULT_SOAP_ENC = URI_SOAP11_ENC;
+
+ public static final String NS_URI_XMLSOAP = "http://xml.apache.org/xml-soap";
+
+ private static final QName XSD_STRING = new QName(URI_DEFAULT_SCHEMA_XSD, "string");
+ private static final QName XSD_BOOLEAN = new QName(URI_DEFAULT_SCHEMA_XSD, "boolean");
+ private static final QName XSD_DOUBLE = new QName(URI_DEFAULT_SCHEMA_XSD, "double");
+ private static final QName XSD_FLOAT = new QName(URI_DEFAULT_SCHEMA_XSD, "float");
+ private static final QName XSD_INT = new QName(URI_DEFAULT_SCHEMA_XSD, "int");
+ private static final QName XSD_INTEGER = new QName(URI_DEFAULT_SCHEMA_XSD, "integer");
+ private static final QName XSD_LONG = new QName(URI_DEFAULT_SCHEMA_XSD, "long");
+ private static final QName XSD_SHORT = new QName(URI_DEFAULT_SCHEMA_XSD, "short");
+ private static final QName XSD_BYTE = new QName(URI_DEFAULT_SCHEMA_XSD, "byte");
+ private static final QName XSD_DECIMAL = new QName(URI_DEFAULT_SCHEMA_XSD, "decimal");
+ private static final QName XSD_BASE64 = new QName(URI_DEFAULT_SCHEMA_XSD, "base64Binary");
+ private static final QName XSD_HEXBIN = new QName(URI_DEFAULT_SCHEMA_XSD, "hexBinary");
+ private static final QName XSD_ANYSIMPLETYPE = new QName(URI_DEFAULT_SCHEMA_XSD, "anySimpleType");
+ private static final QName XSD_ANYTYPE = new QName(URI_DEFAULT_SCHEMA_XSD, "anyType");
+ private static final QName XSD_ANY = new QName(URI_DEFAULT_SCHEMA_XSD, "any");
+ private static final QName XSD_QNAME = new QName(URI_DEFAULT_SCHEMA_XSD, "QName");
+ private static final QName XSD_DATETIME = new QName(URI_DEFAULT_SCHEMA_XSD, "dateTime");
+ private static final QName XSD_DATE = new QName(URI_DEFAULT_SCHEMA_XSD, "date");
+ private static final QName XSD_TIME = new QName(URI_DEFAULT_SCHEMA_XSD, "time");
+ private static final QName XSD_TIMEINSTANT1999 = new QName(URI_1999_SCHEMA_XSD, "timeInstant");
+ private static final QName XSD_TIMEINSTANT2000 = new QName(URI_2000_SCHEMA_XSD, "timeInstant");
+
+ private static final QName XSD_NORMALIZEDSTRING = new QName(URI_2001_SCHEMA_XSD, "normalizedString");
+ private static final QName XSD_TOKEN = new QName(URI_2001_SCHEMA_XSD, "token");
+
+ private static final QName XSD_UNSIGNEDLONG = new QName(URI_2001_SCHEMA_XSD, "unsignedLong");
+ private static final QName XSD_UNSIGNEDINT = new QName(URI_2001_SCHEMA_XSD, "unsignedInt");
+ private static final QName XSD_UNSIGNEDSHORT = new QName(URI_2001_SCHEMA_XSD, "unsignedShort");
+ private static final QName XSD_UNSIGNEDBYTE = new QName(URI_2001_SCHEMA_XSD, "unsignedByte");
+ private static final QName XSD_POSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "positiveInteger");
+ private static final QName XSD_NEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "negativeInteger");
+ private static final QName XSD_NONNEGATIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonNegativeInteger");
+ private static final QName XSD_NONPOSITIVEINTEGER = new QName(URI_2001_SCHEMA_XSD, "nonPositiveInteger");
+
+ private static final QName XSD_YEARMONTH = new QName(URI_2001_SCHEMA_XSD, "gYearMonth");
+ private static final QName XSD_MONTHDAY = new QName(URI_2001_SCHEMA_XSD, "gMonthDay");
+ private static final QName XSD_YEAR = new QName(URI_2001_SCHEMA_XSD, "gYear");
+ private static final QName XSD_MONTH = new QName(URI_2001_SCHEMA_XSD, "gMonth");
+ private static final QName XSD_DAY = new QName(URI_2001_SCHEMA_XSD, "gDay");
+ private static final QName XSD_DURATION = new QName(URI_2001_SCHEMA_XSD, "duration");
+
+ private static final QName XSD_NAME = new QName(URI_2001_SCHEMA_XSD, "Name");
+ private static final QName XSD_NCNAME = new QName(URI_2001_SCHEMA_XSD, "NCName");
+ private static final QName XSD_NMTOKEN = new QName(URI_2001_SCHEMA_XSD, "NMTOKEN");
+ private static final QName XSD_NMTOKENS = new QName(URI_2001_SCHEMA_XSD, "NMTOKENS");
+ private static final QName XSD_NOTATION = new QName(URI_2001_SCHEMA_XSD, "NOTATION");
+ private static final QName XSD_ENTITY = new QName(URI_2001_SCHEMA_XSD, "ENTITY");
+ private static final QName XSD_ENTITIES = new QName(URI_2001_SCHEMA_XSD, "ENTITIES");
+ private static final QName XSD_IDREF = new QName(URI_2001_SCHEMA_XSD, "IDREF");
+ private static final QName XSD_IDREFS = new QName(URI_2001_SCHEMA_XSD, "IDREFS");
+ private static final QName XSD_ANYURI = new QName(URI_2001_SCHEMA_XSD, "anyURI");
+ private static final QName XSD_LANGUAGE = new QName(URI_2001_SCHEMA_XSD, "language");
+ private static final QName XSD_ID = new QName(URI_2001_SCHEMA_XSD, "ID");
+ private static final QName XSD_SCHEMA = new QName(URI_2001_SCHEMA_XSD, "schema");
+
+ private static final QName XML_LANG = new QName(NS_URI_XML, "lang");
+
+ private static final QName SOAP_BASE64 = new QName(URI_DEFAULT_SOAP_ENC, "base64");
+ private static final QName SOAP_BASE64BINARY = new QName(URI_DEFAULT_SOAP_ENC, "base64Binary");
+ private static final QName SOAP_STRING = new QName(URI_DEFAULT_SOAP_ENC, "string");
+ private static final QName SOAP_BOOLEAN = new QName(URI_DEFAULT_SOAP_ENC, "boolean");
+ private static final QName SOAP_DOUBLE = new QName(URI_DEFAULT_SOAP_ENC, "double");
+ private static final QName SOAP_FLOAT = new QName(URI_DEFAULT_SOAP_ENC, "float");
+ private static final QName SOAP_INT = new QName(URI_DEFAULT_SOAP_ENC, "int");
+ private static final QName SOAP_LONG = new QName(URI_DEFAULT_SOAP_ENC, "long");
+ private static final QName SOAP_SHORT = new QName(URI_DEFAULT_SOAP_ENC, "short");
+ private static final QName SOAP_BYTE = new QName(URI_DEFAULT_SOAP_ENC, "byte");
+ private static final QName SOAP_INTEGER = new QName(URI_DEFAULT_SOAP_ENC, "integer");
+ private static final QName SOAP_DECIMAL = new QName(URI_DEFAULT_SOAP_ENC, "decimal");
+ private static final QName SOAP_ARRAY = new QName(URI_DEFAULT_SOAP_ENC, "Array");
+ private static final QName SOAP_COMMON_ATTRS11 = new QName(URI_SOAP11_ENC, "commonAttributes");
+ private static final QName SOAP_COMMON_ATTRS12 = new QName(URI_SOAP12_ENC, "commonAttributes");
+ private static final QName SOAP_ARRAY_ATTRS11 = new QName(URI_SOAP11_ENC, "arrayAttributes");
+ private static final QName SOAP_ARRAY_ATTRS12 = new QName(URI_SOAP12_ENC, "arrayAttributes");
+ private static final QName SOAP_ARRAY12 = new QName(URI_SOAP12_ENC, "Array");
+
+ // unsupported since they're bound to Axis
+ /*
+ private static final QName SOAP_MAP = new QName(NS_URI_XMLSOAP, "Map");
+ private static final QName SOAP_ELEMENT = new QName(NS_URI_XMLSOAP, "Element");
+ private static final QName SOAP_DOCUMENT = new QName(NS_URI_XMLSOAP, "Document");
+ private static final QName SOAP_VECTOR = new QName(NS_URI_XMLSOAP, "Vector");
+ */
+
+ static {
+ addBuiltInType(XSD_HEXBIN, byte[].class);
+ addBuiltInType(XSD_BYTE, byte[].class);
+ addBuiltInType(XSD_BASE64, byte[].class);
+ // anySimpleType is mapped to java.lang.String according to JAX-RPC 1.1 spec.
+ addBuiltInType(XSD_ANYSIMPLETYPE, java.lang.String.class);
+ // If SOAP 1.1 over the wire, map wrapper classes to XSD primitives.
+ addBuiltInType(XSD_STRING, java.lang.String.class);
+ addBuiltInType(XSD_BOOLEAN, java.lang.Boolean.class);
+ addBuiltInType(XSD_DOUBLE, java.lang.Double.class);
+ addBuiltInType(XSD_FLOAT, java.lang.Float.class);
+ addBuiltInType(XSD_INT, java.lang.Integer.class);
+ addBuiltInType(XSD_INTEGER, java.math.BigInteger.class);
+ addBuiltInType(XSD_DECIMAL, java.math.BigDecimal.class);
+ addBuiltInType(XSD_LONG, java.lang.Long.class);
+ addBuiltInType(XSD_SHORT, java.lang.Short.class);
+ addBuiltInType(XSD_BYTE, java.lang.Byte.class);
+ // The XSD Primitives are mapped to java primitives.
+ addBuiltInType(XSD_BOOLEAN, boolean.class);
+ addBuiltInType(XSD_DOUBLE, double.class);
+ addBuiltInType(XSD_FLOAT, float.class);
+ addBuiltInType(XSD_INT, int.class);
+ addBuiltInType(XSD_LONG, long.class);
+ addBuiltInType(XSD_SHORT, short.class);
+ addBuiltInType(XSD_BYTE, byte.class);
+ // Map QNAME to the jax rpc QName class
+ addBuiltInType(XSD_QNAME, javax.xml.namespace.QName.class);
+ // The closest match for anytype is Object
+ addBuiltInType(XSD_ANYTYPE, java.lang.Object.class);
+ // See the SchemaVersion classes for where the registration of
+ // dateTime (for 2001) and timeInstant (for 1999 & 2000) happen.
+ addBuiltInType(XSD_DATE, java.sql.Date.class);
+ // See the SchemaVersion classes for where the registration of
+ // dateTime (for 2001) and timeInstant (for 1999 & 2000) happen.
+ addBuiltInType(XSD_DATETIME, java.util.Date.class);
+ addBuiltInType(XSD_DATETIME, java.util.Calendar.class);
+
+ addBuiltInType(SOAP_ARRAY, java.util.ArrayList.class);
+
+ /* Axis types */
+ /*
+ addBuiltInType(XSD_HEXBIN, HexBinary.class);
+ // Mapping for xsd:time. Map to Axis type Time
+ addBuiltInType(XSD_TIME, org.apache.axis.types.Time.class);
+ // These are the g* types (gYearMonth, etc) which map to Axis types
+ addBuiltInType(XSD_YEARMONTH, org.apache.axis.types.YearMonth.class);
+ addBuiltInType(XSD_YEAR, org.apache.axis.types.Year.class);
+ addBuiltInType(XSD_MONTH, org.apache.axis.types.Month.class);
+ addBuiltInType(XSD_DAY, org.apache.axis.types.Day.class);
+ addBuiltInType(XSD_MONTHDAY, org.apache.axis.types.MonthDay.class);
+ */
+
+ /* Axis custom types */
+ /*
+ // Serialize all extensions of Map to SOAP_MAP Order counts here, HashMap should be last.
+ addBuiltInType(SOAP_MAP, java.util.Hashtable.class);
+ addBuiltInType(SOAP_MAP, java.util.Map.class);
+ // The SOAP_MAP will be deserialized into a HashMap by default.
+ addBuiltInType(SOAP_MAP, java.util.HashMap.class);
+
+ // Use the Element Serializeration for elements
+ addBuiltInType(SOAP_ELEMENT, org.w3c.dom.Element.class);
+
+ // Use the Document Serializeration for Document's
+ addBuiltInType(SOAP_DOCUMENT, org.w3c.dom.Document.class);
+
+ addBuiltInType(SOAP_VECTOR, java.util.Vector.class);
+ */
+ /* attachment support */
+ /*
+ if (JavaUtils.isAttachmentSupported()) {
+ addBuiltInType(MIME_IMAGE, java.awt.Image.class);
+ addBuiltInType(MIME_MULTIPART, javax.mail.internet.MimeMultipart.class);
+ addBuiltInType(MIME_SOURCE, javax.xml.transform.Source.class);
+ addBuiltInType(MIME_OCTETSTREAM, OctetStream.class);
+ addBuiltInType(MIME_DATA_HANDLER, javax.activation.DataHandler.class);
+ }
+ */
+
+ /*
+ addBuiltInType(XSD_TOKEN, org.apache.axis.types.Token.class);
+ addBuiltInType(XSD_NORMALIZEDSTRING, org.apache.axis.types.NormalizedString.class);
+ addBuiltInType(XSD_UNSIGNEDLONG, org.apache.axis.types.UnsignedLong.class);
+ addBuiltInType(XSD_UNSIGNEDINT, org.apache.axis.types.UnsignedInt.class);
+ addBuiltInType(XSD_UNSIGNEDSHORT, org.apache.axis.types.UnsignedShort.class);
+ addBuiltInType(XSD_UNSIGNEDBYTE, org.apache.axis.types.UnsignedByte.class);
+ addBuiltInType(XSD_NONNEGATIVEINTEGER, org.apache.axis.types.NonNegativeInteger.class);
+ addBuiltInType(XSD_NEGATIVEINTEGER, org.apache.axis.types.NegativeInteger.class);
+ addBuiltInType(XSD_POSITIVEINTEGER, org.apache.axis.types.PositiveInteger.class);
+ addBuiltInType(XSD_NONPOSITIVEINTEGER, org.apache.axis.types.NonPositiveInteger.class);
+ addBuiltInType(XSD_NAME, org.apache.axis.types.Name.class);
+ addBuiltInType(XSD_NCNAME, org.apache.axis.types.NCName.class);
+ addBuiltInType(XSD_ID, org.apache.axis.types.Id.class);
+ addBuiltInType(XML_LANG, org.apache.axis.types.Language.class);
+ addBuiltInType(XSD_LANGUAGE, org.apache.axis.types.Language.class);
+ addBuiltInType(XSD_NMTOKEN, org.apache.axis.types.NMToken.class);
+ addBuiltInType(XSD_NMTOKENS, org.apache.axis.types.NMTokens.class);
+ addBuiltInType(XSD_NOTATION, org.apache.axis.types.Notation.class);
+ addBuiltInType(XSD_ENTITY, org.apache.axis.types.Entity.class);
+ addBuiltInType(XSD_ENTITIES, org.apache.axis.types.Entities.class);
+ addBuiltInType(XSD_IDREF, org.apache.axis.types.IDRef.class);
+ addBuiltInType(XSD_IDREFS, org.apache.axis.types.IDRefs.class);
+ addBuiltInType(XSD_DURATION, org.apache.axis.types.Duration.class);
+ addBuiltInType(XSD_ANYURI, org.apache.axis.types.URI.class);
+ addBuiltInType(XSD_SCHEMA, org.apache.axis.types.Schema.class);
+ */
+ }
+
+ private static void addBuiltInType(QName qname, Class clazz) {
+ SCHEMA_TYPES.put(clazz, qname);
+ }
+}
\ No newline at end of file
Propchange: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/SchemaTypesLookupService.java
------------------------------------------------------------------------------
svn:eol-style = native