[jbossws-commits] JBossWS SVN: r2256 - in branches/jbossws-1.2.0: jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc and 16 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Fri Feb 2 12:53:40 EST 2007


Author: heiko.braun at jboss.com
Date: 2007-02-02 12:53:40 -0500 (Fri, 02 Feb 2007)
New Revision: 2256

Added:
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointDTO.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/HashCodeUtil.java
   branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/eventing.xsd
Removed:
   branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/ws-eventing.xsd
Modified:
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonContextServlet.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/EncodedTypeMapping.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/LiteralTypeMapping.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/TypeMappingImpl.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBContextCache.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBSerializer.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointManager.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointMetrics.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/WSDLRequestHandler.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/NodeImpl.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPContentElement.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementWriter.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/DOMWriter.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/acessor/JAXBAccessor.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java
   branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/tools/JavaToXSD.java
   branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/index.html
   branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/styles.css
   branches/jbossws-1.2.0/jbossws-docs/user-guide/project/en/master.template
   branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java
   branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/marshall/MarshallDocLitTestCase.java
   branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/wseventing/EventingSupport.java
   branches/jbossws-1.2.0/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl
Log:
Use internalized String when calling private JAXB API. Resolved HotSpots: DOMWriter.normalize() and TypeMappingImpl.getKeyPairs()

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonContextServlet.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonContextServlet.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/CommonContextServlet.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -26,6 +26,7 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.URL;
+import java.util.List;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
@@ -35,6 +36,7 @@
 
 import org.jboss.logging.Logger;
 import org.jboss.ws.core.server.ServiceEndpointManager;
+import org.jboss.ws.core.server.ServiceEndpointDTO;
 
 /**
  * The servlet that that is associated with context /jbossws
@@ -67,9 +69,90 @@
       writer.print("<html>");
       setupHTMLResponseHeader(writer);
 
+      URL requestURL = new URL(req.getRequestURL().toString());
+
       writer.print("<body>");
-      //writer.print(epManager.showServiceEndpointTable());
-      writer.print(epManager.showServiceEndpointTable(new URL(req.getRequestURL().toString())));
+
+      writer.print("<div class='pageHeader'>JBossWS/Services</div>");
+      writer.print("<div class='pageSection'>");
+      writer.print("<fieldset>");
+      writer.print("<legend><b>Registered Service Endpoints</b></legend>");
+      writer.print("<table>");
+
+      // begin iteration
+      List<ServiceEndpointDTO> endpoints = epManager.getRegisteredEndpoints(requestURL);
+
+      if(endpoints.isEmpty())
+      {
+         writer.print("<tr>");
+         writer.print("	<td><h3>There currently no endpoints deployed</h3></td>");                           
+         writer.print("</tr>");
+      }
+
+      for(ServiceEndpointDTO ep : endpoints)
+      {
+         writer.print("<tr>");
+         writer.print("	<td>ServiceEndpointID</td>");
+         writer.print("	<td>"+ep.getSepID()+"</td>");
+         writer.print("</tr>");
+         writer.print("<tr>");
+         writer.print("	<td>ServiceEndpointAddress</td>");
+         writer.print("	<td><a href='"+ep.getAddress()+"?wsdl'>"+ep.getAddress()+"?wsdl</a></td>");
+         writer.print("</tr>");
+         writer.print("<tr>");
+         writer.print("	<td colspan=2>");
+         writer.print("	");
+         writer.print("");
+         writer.print("<table class='metrics'>");
+         writer.print("<tr>");
+         writer.print("	<td>StartTime</td>");
+         writer.print("	<td>StopTime</td>");
+         writer.print("	<td></td>");
+         writer.print("</tr>");
+         writer.print("<tr>");
+         writer.print("	<td>"+ep.getSeMetrics().getStartTime()+"</td>");
+
+         String stopTime = ep.getSeMetrics().getStopTime() != null ? ep.getSeMetrics().getStopTime().toString() : "";
+         writer.print("	<td>"+stopTime+"</td>");
+         writer.print("	<td></td>");
+         writer.print("</tr>");
+         writer.print("<tr>");
+
+         writer.print("	<td>RequestCount</td>");
+         writer.print("	<td>ResponseCount</td>");
+         writer.print("	<td>FaultCount</td>");
+         writer.print("</tr>");
+         writer.print("<tr>");
+         writer.print("	<td>"+ep.getSeMetrics().getRequestCount()+"</td>");
+         writer.print("	<td>"+ep.getSeMetrics().getResponseCount()+"</td>");
+         writer.print("	<td>"+ep.getSeMetrics().getFaultCount()+"</td>");
+         writer.print("</tr>");
+         writer.print("<tr>");
+         writer.print("	<td>MinProcessingTime</td>");
+         writer.print("	<td>MaxProcessingTime</td>");
+         writer.print("	<td>AvgProcessingTime</td>");
+         writer.print("</tr>");
+         writer.print("<tr>");
+         writer.print("	<td>"+ep.getSeMetrics().getMinProcessingTime()+"</td>");
+         writer.print("	<td>"+ep.getSeMetrics().getMaxProcessingTime()+"</td>");
+         writer.print("	<td>"+ep.getSeMetrics().getAverageProcessingTime()+"</td>");
+         writer.print("</tr>");
+         writer.print("");
+         writer.print("");
+         writer.print("</table>");
+         writer.print("");
+         writer.print("	</td>");
+         writer.print("</tr>");
+
+         writer.print("<tr><td colspan='3'>&nbsp;</td></tr>");
+      }
+      // end iteration
+      writer.print("</table>");
+      writer.print("");
+      writer.print("</fieldset>");
+      writer.print("</div>");
+
+
       writer.print("</body>");
       writer.print("</html>");
       writer.close();

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/EncodedTypeMapping.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/EncodedTypeMapping.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/EncodedTypeMapping.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -79,82 +79,82 @@
       registerStandardSOAP11EncodedTypes();
 
       // register mapping for xsd:anyType
-      registerInternal(SOAPElement.class, Constants.TYPE_SOAP11_ANYTYPE, new SOAPElementSerializerFactory(), new SOAPElementDeserializerFactory());
-      registerInternal(Element.class, Constants.TYPE_SOAP11_ANYTYPE, new ElementSerializerFactory(), new ElementDeserializerFactory());
+      register(SOAPElement.class, Constants.TYPE_SOAP11_ANYTYPE, new SOAPElementSerializerFactory(), new SOAPElementDeserializerFactory());
+      register(Element.class, Constants.TYPE_SOAP11_ANYTYPE, new ElementSerializerFactory(), new ElementDeserializerFactory());
    }
 
    private void registerStandardSOAP11EncodedTypes()
    {
-      registerInternal(BigDecimal.class, Constants.TYPE_SOAP11_DECIMAL, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigDecimal.class, Constants.TYPE_SOAP11_DECIMAL, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(BigInteger.class, Constants.TYPE_SOAP11_POSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_SOAP11_NEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_SOAP11_NONPOSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_SOAP11_NONNEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_SOAP11_UNSIGNEDLONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_SOAP11_INTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_SOAP11_POSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_SOAP11_NEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_SOAP11_NONPOSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_SOAP11_NONNEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_SOAP11_UNSIGNEDLONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_SOAP11_INTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(Date.class, Constants.TYPE_SOAP11_DATETIME, new DateSerializerFactory(), new DateDeserializerFactory());
+      register(Date.class, Constants.TYPE_SOAP11_DATETIME, new DateSerializerFactory(), new DateDeserializerFactory());
 
-      registerInternal(Calendar.class, Constants.TYPE_SOAP11_DATE, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
-      registerInternal(Calendar.class, Constants.TYPE_SOAP11_TIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
-      registerInternal(Calendar.class, Constants.TYPE_SOAP11_DATETIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
+      register(Calendar.class, Constants.TYPE_SOAP11_DATE, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
+      register(Calendar.class, Constants.TYPE_SOAP11_TIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
+      register(Calendar.class, Constants.TYPE_SOAP11_DATETIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
 
-      registerInternal(QName.class, Constants.TYPE_SOAP11_QNAME, new QNameSerializerFactory(), new QNameDeserializerFactory());
+      register(QName.class, Constants.TYPE_SOAP11_QNAME, new QNameSerializerFactory(), new QNameDeserializerFactory());
 
-      registerInternal(String.class, Constants.TYPE_SOAP11_ANYSIMPLETYPE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_DURATION, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_GDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_GMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_GMONTHDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_GYEAR, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_GYEARMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_ID, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_LANGUAGE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_NAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_NCNAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_NMTOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_NORMALIZEDSTRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_TOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_SOAP11_STRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_ANYSIMPLETYPE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_DURATION, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_GDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_GMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_GMONTHDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_GYEAR, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_GYEARMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_ID, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_LANGUAGE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_NAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_NCNAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_NMTOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_NORMALIZEDSTRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_TOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_SOAP11_STRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(String[].class, Constants.TYPE_SOAP11_NMTOKENS, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String[].class, Constants.TYPE_SOAP11_NMTOKENS, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(URI.class, Constants.TYPE_SOAP11_ANYURI, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(URI.class, Constants.TYPE_SOAP11_ANYURI, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(boolean.class, Constants.TYPE_SOAP11_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Boolean.class, Constants.TYPE_SOAP11_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(boolean.class, Constants.TYPE_SOAP11_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Boolean.class, Constants.TYPE_SOAP11_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(byte.class, Constants.TYPE_SOAP11_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Byte.class, Constants.TYPE_SOAP11_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(byte.class, Constants.TYPE_SOAP11_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Byte.class, Constants.TYPE_SOAP11_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(byte[].class, Constants.TYPE_SOAP11_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
-      registerInternal(Byte[].class, Constants.TYPE_SOAP11_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
-      registerInternal(byte[].class, Constants.TYPE_SOAP11_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
-      registerInternal(Byte[].class, Constants.TYPE_SOAP11_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
-      registerInternal(byte[].class, Constants.TYPE_SOAP11_BASE64, new Base64SerializerFactory(), new Base64DeserializerFactory());
-      registerInternal(Byte[].class, Constants.TYPE_SOAP11_BASE64, new Base64SerializerFactory(), new Base64DeserializerFactory());
+      register(byte[].class, Constants.TYPE_SOAP11_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
+      register(Byte[].class, Constants.TYPE_SOAP11_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
+      register(byte[].class, Constants.TYPE_SOAP11_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
+      register(Byte[].class, Constants.TYPE_SOAP11_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
+      register(byte[].class, Constants.TYPE_SOAP11_BASE64, new Base64SerializerFactory(), new Base64DeserializerFactory());
+      register(Byte[].class, Constants.TYPE_SOAP11_BASE64, new Base64SerializerFactory(), new Base64DeserializerFactory());
 
-      registerInternal(double.class, Constants.TYPE_SOAP11_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Double.class, Constants.TYPE_SOAP11_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(double.class, Constants.TYPE_SOAP11_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Double.class, Constants.TYPE_SOAP11_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(float.class, Constants.TYPE_SOAP11_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Float.class, Constants.TYPE_SOAP11_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(float.class, Constants.TYPE_SOAP11_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Float.class, Constants.TYPE_SOAP11_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(int.class, Constants.TYPE_SOAP11_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Integer.class, Constants.TYPE_SOAP11_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(int.class, Constants.TYPE_SOAP11_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Integer.class, Constants.TYPE_SOAP11_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(int.class, Constants.TYPE_SOAP11_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Integer.class, Constants.TYPE_SOAP11_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(int.class, Constants.TYPE_SOAP11_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Integer.class, Constants.TYPE_SOAP11_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(long.class, Constants.TYPE_SOAP11_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Long.class, Constants.TYPE_SOAP11_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(long.class, Constants.TYPE_SOAP11_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Long.class, Constants.TYPE_SOAP11_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(long.class, Constants.TYPE_SOAP11_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Long.class, Constants.TYPE_SOAP11_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(long.class, Constants.TYPE_SOAP11_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Long.class, Constants.TYPE_SOAP11_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(short.class, Constants.TYPE_SOAP11_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Short.class, Constants.TYPE_SOAP11_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(short.class, Constants.TYPE_SOAP11_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Short.class, Constants.TYPE_SOAP11_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(short.class, Constants.TYPE_SOAP11_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Short.class, Constants.TYPE_SOAP11_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(short.class, Constants.TYPE_SOAP11_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Short.class, Constants.TYPE_SOAP11_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
    }
 
    /**

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/LiteralTypeMapping.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/LiteralTypeMapping.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/LiteralTypeMapping.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -67,30 +67,30 @@
       JBossXBSerializerFactory jbxbSF = new JBossXBSerializerFactory();
       JBossXBDeserializerFactory jbxbDF = new JBossXBDeserializerFactory();
 
-      registerInternal(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
-      registerInternal(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
-      registerInternal(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
-      registerInternal(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
-      registerInternal(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(DataHandler.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
 
-      registerInternal(String.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
-      registerInternal(Image.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
-      registerInternal(Source.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
-      registerInternal(MimeMultipart.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(String.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(Image.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(Source.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
+      register(MimeMultipart.class, Constants.TYPE_XMIME_DEFAULT, jbxbSF, jbxbDF);
       
       registerStandardLiteralTypes();
 
       // register default mime mappings
-      registerInternal(DataHandler.class, Constants.TYPE_MIME_APPLICATION_XML, null, null);
-      registerInternal(DataHandler.class, Constants.TYPE_MIME_IMAGE_GIF, null, null);
-      registerInternal(DataHandler.class, Constants.TYPE_MIME_IMAGE_JPEG, null, null);
-      registerInternal(DataHandler.class, Constants.TYPE_MIME_TEXT_PLAIN, null, null);
-      registerInternal(DataHandler.class, Constants.TYPE_MIME_TEXT_XML, null, null);
-      registerInternal(MimeMultipart.class, Constants.TYPE_MIME_MULTIPART_MIXED, null, null);
+      register(DataHandler.class, Constants.TYPE_MIME_APPLICATION_XML, null, null);
+      register(DataHandler.class, Constants.TYPE_MIME_IMAGE_GIF, null, null);
+      register(DataHandler.class, Constants.TYPE_MIME_IMAGE_JPEG, null, null);
+      register(DataHandler.class, Constants.TYPE_MIME_TEXT_PLAIN, null, null);
+      register(DataHandler.class, Constants.TYPE_MIME_TEXT_XML, null, null);
+      register(MimeMultipart.class, Constants.TYPE_MIME_MULTIPART_MIXED, null, null);
 
       // register mapping for xsd:anyType
-      registerInternal(SOAPElement.class, Constants.TYPE_LITERAL_ANYTYPE, new SOAPElementSerializerFactory(), new SOAPElementDeserializerFactory());
-      registerInternal(Element.class, Constants.TYPE_LITERAL_ANYTYPE, new ElementSerializerFactory(), new ElementDeserializerFactory());
+      register(SOAPElement.class, Constants.TYPE_LITERAL_ANYTYPE, new SOAPElementSerializerFactory(), new SOAPElementDeserializerFactory());
+      register(Element.class, Constants.TYPE_LITERAL_ANYTYPE, new ElementSerializerFactory(), new ElementDeserializerFactory());
    }
 
    /**

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/TypeMappingImpl.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/TypeMappingImpl.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxrpc/TypeMappingImpl.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -23,37 +23,22 @@
 
 // $Id$
 
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import org.jboss.logging.Logger;
+import org.jboss.ws.Constants;
+import org.jboss.ws.core.jaxrpc.binding.*;
+import org.jboss.ws.core.utils.JavaUtils;
+import org.jboss.ws.core.utils.HashCodeUtil;
 
 import javax.xml.namespace.QName;
 import javax.xml.rpc.encoding.DeserializerFactory;
 import javax.xml.rpc.encoding.SerializerFactory;
 import javax.xml.rpc.encoding.TypeMapping;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.net.URI;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 
-import org.jboss.logging.Logger;
-import org.jboss.ws.Constants;
-import org.jboss.ws.core.jaxrpc.binding.Base64DeserializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.Base64SerializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.CalendarDeserializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.CalendarSerializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.DateDeserializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.DateSerializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.HexDeserializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.HexSerializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.QNameDeserializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.QNameSerializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.SimpleDeserializerFactory;
-import org.jboss.ws.core.jaxrpc.binding.SimpleSerializerFactory;
-import org.jboss.ws.core.utils.JavaUtils;
-
 /**
  * This is the representation of a type mapping.
  * This TypeMapping implementation supports the literal encoding style.
@@ -72,6 +57,8 @@
    // Map<KeyPair,FactoryPair>
    private Map<KeyPair, FactoryPair> tupleMap = new LinkedHashMap<KeyPair, FactoryPair>();
 
+   private Map<Integer, List<KeyPair>> keyPairCache = new ConcurrentHashMap<Integer, List<KeyPair>>();
+
    /**
     * Gets the DeserializerFactory registered for the specified pair of Java type and XML data type.
     * @param javaType Class of the Java type
@@ -80,7 +67,7 @@
     */
    public DeserializerFactory getDeserializer(Class javaType, QName xmlType)
    {
-      FactoryPair fPair = getFactoryPair(xmlType, javaType);
+      FactoryPair fPair = getFactoryPair(new IQName(xmlType), javaType);
       return (fPair != null ? fPair.getDeserializerFactory() : null);
    }
 
@@ -92,7 +79,7 @@
     */
    public SerializerFactory getSerializer(Class javaType, QName xmlType)
    {
-      FactoryPair fPair = getFactoryPair(xmlType, javaType);
+      FactoryPair fPair = getFactoryPair(new IQName(xmlType), javaType);
       return (fPair != null ? fPair.getSerializerFactory() : null);
    }
 
@@ -121,7 +108,7 @@
     */
    public boolean isRegistered(Class javaType, QName xmlType)
    {
-      return getFactoryPair(xmlType, javaType) != null;
+      return getFactoryPair(new IQName(xmlType), javaType) != null;
    }
 
    /**
@@ -136,10 +123,11 @@
    public void register(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df)
    {
       log.debug("register: TypeMappingImpl@"  + hashCode() + " [xmlType=" + xmlType + ",javaType=" + javaType.getName() + ",sf=" + sf + ",df=" + df + "]");
-      registerInternal(javaType, xmlType, sf, df);
+      registerInternal(javaType, new IQName(xmlType), sf, df);
+      keyPairCache.clear();
    }
 
-   void registerInternal(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory df)
+   private void registerInternal(Class javaType, IQName xmlType, SerializerFactory sf, DeserializerFactory df)
    {
       if (javaType == null)
          throw new IllegalArgumentException("javaType cannot be null for: " + xmlType);
@@ -159,7 +147,7 @@
     */
    public void removeDeserializer(Class javaType, QName xmlType)
    {
-      FactoryPair fPair = getFactoryPair(xmlType, javaType);
+      FactoryPair fPair = getFactoryPair(new IQName(xmlType), javaType);
       if (fPair != null)
          fPair.setDeserializerFactory(null);
    }
@@ -172,7 +160,7 @@
     */
    public void removeSerializer(Class javaType, QName xmlType)
    {
-      FactoryPair fPair = getFactoryPair(xmlType, javaType);
+      FactoryPair fPair = getFactoryPair(new IQName(xmlType), javaType);
       if (fPair != null)
          fPair.setSerializerFactory(null);
    }
@@ -183,7 +171,7 @@
       List<QName> types = new ArrayList<QName>();
       for (KeyPair keyPair : getKeyPairs(null, null))
       {
-         types.add(keyPair.getXmlType());
+         types.add(keyPair.getXmlType().toQName());
       }
       return types;
    }
@@ -204,7 +192,7 @@
    {
       Class javaType = null;
 
-      List keyPairList = getKeyPairs(xmlType, null);
+      List keyPairList = getKeyPairs(new IQName(xmlType), null);
       int size = keyPairList.size();
       if (size > 0)
       {
@@ -220,17 +208,17 @@
     */
    public List<Class> getJavaTypes(QName xmlType)
    {
-      List<KeyPair> keyPairList = getKeyPairs(xmlType, null);
+      List<KeyPair> keyPairList = getKeyPairs( new IQName(xmlType), null);
       List<Class> classes = new ArrayList<Class>(keyPairList.size());
-      
+
       for (KeyPair current : keyPairList)
       {
          classes.add(current.getJavaType());
       }
-      
+
       return classes;
    }
-   
+
    /**
     * Get the Class that was registered last for this xmlType
     * If there are two Java Types registered for the xmlType
@@ -242,7 +230,7 @@
       //Lets get the primitive type if available
       Class javaType = null;
 
-      List keyPairList = getKeyPairs(xmlType, null);
+      List keyPairList = getKeyPairs(new IQName(xmlType), null);
       int size = keyPairList.size();
       if (size == 2 && getPrimitive)
       {
@@ -253,10 +241,10 @@
          if(javaType2.isPrimitive() && !javaType1.isPrimitive())
             javaType =  javaType2;
          else
-            if(javaType1.isPrimitive() && !javaType2.isPrimitive())
-               javaType =  javaType1;
+         if(javaType1.isPrimitive() && !javaType2.isPrimitive())
+            javaType =  javaType1;
          else
-               javaType = javaType2; //Fallback on the most latest
+            javaType = javaType2; //Fallback on the most latest
       }
       else
          return getJavaType(xmlType);
@@ -281,7 +269,7 @@
       if (size > 0)
       {
          KeyPair kPair = (KeyPair)keyPairList.get(size - 1);
-         xmlType = kPair.getXmlType();
+         xmlType = kPair.getXmlType().toQName();
       }
 
       return xmlType;
@@ -305,7 +293,7 @@
       if (size > 0)
       {
          KeyPair kPair = (KeyPair)keyPairList.get(size - 1);
-         xmlType = kPair.getXmlType();
+         xmlType = kPair.getXmlType().toQName();
       }
 
       return xmlType;
@@ -315,9 +303,34 @@
     * Get the serializer/deserializer factory pair for the given xmlType, javaType
     * Both xmlType, javaType may be null. In that case, this implementation still
     * returns a FactoryPair if there is only one possible match.
+    *
+    * @param xmlType can be null
+    * @param javaType can be null
     */
-   List<KeyPair> getKeyPairs(QName xmlType, Class javaType)
+   private List<KeyPair> getKeyPairs(IQName xmlType, Class javaType)
    {
+      Integer cacheId = cacheIdFor(javaType, xmlType);
+
+      List<KeyPair> keyPairList = keyPairCache.get(cacheId);
+      if(null == keyPairList)
+      {
+         keyPairList = getKeyPairsInternal(xmlType, javaType);
+         keyPairCache.put(cacheId, keyPairList);
+      }
+
+      return keyPairList;
+   }
+
+   private Integer cacheIdFor(Class javaType, IQName xmlType) {
+      int result = HashCodeUtil.SEED;
+      int nullHash = HashCodeUtil.hash(result, "null");
+      result = javaType!= null ? HashCodeUtil.hash(result, javaType.getName()) : HashCodeUtil.hash(result, nullHash);
+      result = xmlType!= null ? HashCodeUtil.hash(result, xmlType.hashCode()): HashCodeUtil.hash(result, nullHash);
+      return new Integer(result);
+   }
+
+   private List<KeyPair> getKeyPairsInternal(IQName xmlType, Class javaType)
+   {
       List<KeyPair> keyPairList = new ArrayList<KeyPair>();
 
       // Getting the exact matching pair
@@ -387,6 +400,20 @@
       return keyPairList;
    }
 
+    private List<KeyPair> getKeyPairs(IQName xmlType, Class javaType, boolean tryAssignable)
+    {
+      Integer cacheId = cacheIdFor(javaType, xmlType);
+
+      List<KeyPair> keyPairList = keyPairCache.get(cacheId);
+      if(null == keyPairList)
+      {
+         keyPairList = getKeyPairsInternal(xmlType, javaType, tryAssignable);
+         keyPairCache.put(cacheId, keyPairList);
+      }
+
+      return keyPairList;
+    }
+
    /**
     * Get the serializer/deserializer factory pair for the given xmlType, javaType
     * Both xmlType, javaType may be null. In that case, this implementation still
@@ -394,9 +421,9 @@
     * <br>Note: This method does not try for the base class, if no keypair exists for the
     * javaType in question.
     */
-   List<KeyPair> getKeyPairs(QName xmlType, Class javaType, boolean tryAssignable)
+   private List<KeyPair> getKeyPairsInternal(IQName xmlType, Class javaType, boolean tryAssignable)
    {
-      if(tryAssignable) return getKeyPairs(  xmlType,   javaType);
+      if(tryAssignable) return getKeyPairs( xmlType, javaType );
 
       List<KeyPair> keyPairList = new ArrayList<KeyPair>();
 
@@ -450,7 +477,7 @@
     * Both xmlType, javaType may be null. In that case, this implementation still
     * returns a FactoryPair that was last registered
     */
-   FactoryPair getFactoryPair(QName xmlType, Class javaType)
+   private FactoryPair getFactoryPair(IQName xmlType, Class javaType)
    {
       FactoryPair fPair = null;
 
@@ -467,85 +494,85 @@
 
    protected void registerStandardLiteralTypes()
    {
-      registerInternal(BigDecimal.class, Constants.TYPE_LITERAL_DECIMAL, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigDecimal.class, Constants.TYPE_LITERAL_DECIMAL, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(BigInteger.class, Constants.TYPE_LITERAL_POSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_LITERAL_NEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_LITERAL_NONPOSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_LITERAL_NONNEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_LITERAL_UNSIGNEDLONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(BigInteger.class, Constants.TYPE_LITERAL_INTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_LITERAL_POSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_LITERAL_NEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_LITERAL_NONPOSITIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_LITERAL_NONNEGATIVEINTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_LITERAL_UNSIGNEDLONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(BigInteger.class, Constants.TYPE_LITERAL_INTEGER, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(Date.class, Constants.TYPE_LITERAL_DATETIME, new DateSerializerFactory(), new DateDeserializerFactory());
+      register(Date.class, Constants.TYPE_LITERAL_DATETIME, new DateSerializerFactory(), new DateDeserializerFactory());
 
-      registerInternal(Calendar.class, Constants.TYPE_LITERAL_DATE, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
-      registerInternal(Calendar.class, Constants.TYPE_LITERAL_TIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
-      registerInternal(Calendar.class, Constants.TYPE_LITERAL_DATETIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
+      register(Calendar.class, Constants.TYPE_LITERAL_DATE, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
+      register(Calendar.class, Constants.TYPE_LITERAL_TIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
+      register(Calendar.class, Constants.TYPE_LITERAL_DATETIME, new CalendarSerializerFactory(), new CalendarDeserializerFactory());
 
-      registerInternal(QName.class, Constants.TYPE_LITERAL_QNAME, new QNameSerializerFactory(), new QNameDeserializerFactory());
+      register(QName.class, Constants.TYPE_LITERAL_QNAME, new QNameSerializerFactory(), new QNameDeserializerFactory());
 
-      registerInternal(String.class, Constants.TYPE_LITERAL_ANYSIMPLETYPE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_DURATION, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_GDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_GMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_GMONTHDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_GYEAR, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_GYEARMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_ID, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_LANGUAGE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_NAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_NCNAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_NMTOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_NORMALIZEDSTRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_TOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(String.class, Constants.TYPE_LITERAL_STRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_ANYSIMPLETYPE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_DURATION, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_GDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_GMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_GMONTHDAY, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_GYEAR, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_GYEARMONTH, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_ID, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_LANGUAGE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_NAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_NCNAME, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_NMTOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_NORMALIZEDSTRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_TOKEN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String.class, Constants.TYPE_LITERAL_STRING, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(String[].class, Constants.TYPE_LITERAL_NMTOKENS, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(String[].class, Constants.TYPE_LITERAL_NMTOKENS, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(URI.class, Constants.TYPE_LITERAL_ANYURI, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(URI.class, Constants.TYPE_LITERAL_ANYURI, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(boolean.class, Constants.TYPE_LITERAL_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Boolean.class, Constants.TYPE_LITERAL_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(boolean.class, Constants.TYPE_LITERAL_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Boolean.class, Constants.TYPE_LITERAL_BOOLEAN, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(byte.class, Constants.TYPE_LITERAL_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Byte.class, Constants.TYPE_LITERAL_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(byte.class, Constants.TYPE_LITERAL_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Byte.class, Constants.TYPE_LITERAL_BYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(Byte[].class, Constants.TYPE_LITERAL_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
-      registerInternal(byte[].class, Constants.TYPE_LITERAL_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
+      register(Byte[].class, Constants.TYPE_LITERAL_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
+      register(byte[].class, Constants.TYPE_LITERAL_HEXBINARY, new HexSerializerFactory(), new HexDeserializerFactory());
 
-      registerInternal(Byte[].class, Constants.TYPE_LITERAL_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
-      registerInternal(byte[].class, Constants.TYPE_LITERAL_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
+      register(Byte[].class, Constants.TYPE_LITERAL_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
+      register(byte[].class, Constants.TYPE_LITERAL_BASE64BINARY, new Base64SerializerFactory(), new Base64DeserializerFactory());
 
-      registerInternal(double.class, Constants.TYPE_LITERAL_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Double.class, Constants.TYPE_LITERAL_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(double.class, Constants.TYPE_LITERAL_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Double.class, Constants.TYPE_LITERAL_DOUBLE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(float.class, Constants.TYPE_LITERAL_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Float.class, Constants.TYPE_LITERAL_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(float.class, Constants.TYPE_LITERAL_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Float.class, Constants.TYPE_LITERAL_FLOAT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(int.class, Constants.TYPE_LITERAL_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Integer.class, Constants.TYPE_LITERAL_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(int.class, Constants.TYPE_LITERAL_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Integer.class, Constants.TYPE_LITERAL_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(int.class, Constants.TYPE_LITERAL_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Integer.class, Constants.TYPE_LITERAL_UNSIGNEDSHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(int.class, Constants.TYPE_LITERAL_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Integer.class, Constants.TYPE_LITERAL_INT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(long.class, Constants.TYPE_LITERAL_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Long.class, Constants.TYPE_LITERAL_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(long.class, Constants.TYPE_LITERAL_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Long.class, Constants.TYPE_LITERAL_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(long.class, Constants.TYPE_LITERAL_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Long.class, Constants.TYPE_LITERAL_UNSIGNEDINT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(long.class, Constants.TYPE_LITERAL_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Long.class, Constants.TYPE_LITERAL_LONG, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
 
-      registerInternal(short.class, Constants.TYPE_LITERAL_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Short.class, Constants.TYPE_LITERAL_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(short.class, Constants.TYPE_LITERAL_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
-      registerInternal(Short.class, Constants.TYPE_LITERAL_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(short.class, Constants.TYPE_LITERAL_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Short.class, Constants.TYPE_LITERAL_UNSIGNEDBYTE, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(short.class, Constants.TYPE_LITERAL_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
+      register(Short.class, Constants.TYPE_LITERAL_SHORT, new SimpleSerializerFactory(), new SimpleDeserializerFactory());
    }
 
    /** A tuple of the type {XML typeQName, Java Class, SerializerFactory, DeserializerFactory}.
     */
-   public static class KeyPair
+   private static class KeyPair
    {
-      private QName xmlType;
+      private IQName xmlType;
       private Class javaType;
 
-      public KeyPair(QName xmlType, Class javaType)
+      public KeyPair(IQName xmlType, Class javaType)
       {
          this.javaType = javaType;
          this.xmlType = xmlType;
@@ -556,7 +583,7 @@
          return javaType;
       }
 
-      public QName getXmlType()
+      public IQName getXmlType()
       {
          return xmlType;
       }
@@ -621,4 +648,66 @@
          this.serializerFactory = sf;
       }
    }
+
+   /**
+    * A duck typed QName that relies on internalized Strings.<p>
+    * Taken from the {@link javax.xml.namespace.QName} docs:<br>
+    * The value of a QName contains a Namespace URI, local part and prefix.
+    * The prefix is included in QName to retain lexical information when present in an XML input source.
+    * The prefix is NOT used in QName.equals(Object) or to compute the QName.hashCode().
+    * Equality and the hash code are defined using only the Namespace URI and local part.
+    * If not specified, the Namespace URI is set to "" (the empty string).
+    * If not specified, the prefix is set to "" (the empty string).
+    */
+   private final class IQName
+   {
+      public String namespace;
+      public String localPart;
+      public String prefix;
+      public int hash;
+
+      public IQName(QName name)
+      {
+         namespace = name.getNamespaceURI() != null ? name.getNamespaceURI().intern() : "".intern();
+         localPart = name.getLocalPart() != null ? name.getLocalPart().intern() : "".intern();
+         prefix = name.getPrefix() != null ? name.getPrefix().intern() : "".intern();
+         hash = name.hashCode();
+      }
+
+      public boolean equals(Object object) {
+         if(!(object instanceof IQName))
+            throw new IllegalArgumentException("Cannot compare IQName to " + object);
+
+         IQName iqn = (IQName)object;
+         return (iqn.namespace == this.namespace && iqn.localPart == this.localPart);
+      }
+
+      public QName toQName()
+      {
+         QName qname;
+
+         if(null == namespace)
+            qname = new QName(localPart);
+         else if(null == prefix)
+            qname = new QName(namespace, localPart);
+         else
+            qname = new QName(namespace, localPart, prefix);
+
+         return qname;
+      }
+
+      /**
+       * This implementation currently represents a QName as: "{" + Namespace URI + "}" + local part.
+       * If the Namespace URI .equals(""), only the local part is returned.
+       */
+      public String toString() {
+         String ns = "".equals(namespace) ? namespace : "{"+namespace+"}";
+         return ns+localPart;
+      }
+
+      public int hashCode()
+      {
+         return this.hash;
+      }
+   }
 }

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBContextCache.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBContextCache.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBContextCache.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -30,6 +30,7 @@
 import javax.xml.bind.JAXBException;
 
 import org.jboss.ws.core.CommonMessageContext;
+import org.jboss.ws.core.utils.HashCodeUtil;
 import org.jboss.ws.core.soap.MessageContextAssociation;
 import org.jboss.ws.metadata.umdm.EndpointMetaData;
 
@@ -107,11 +108,11 @@
 
    private static Integer buildId(Class[] classes)
    {
-      int sum = 0;
+      int sum = HashCodeUtil.SEED;
       for (Class cls : classes)
       {
-         sum += cls.hashCode();
-      }
+         sum = HashCodeUtil.hash(sum, cls.getName());
+      }      
       return new Integer(sum);
    }
 

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBSerializer.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBSerializer.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/JAXBSerializer.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -64,30 +64,10 @@
       String xmlFragment = null;
       try
       {
-         TypeMappingImpl typeMapping = serContext.getTypeMapping();
+         // It needs to be a valid JAXB type
+         // Therefore we don't need to look into our TypeMapping
+         Class javaType = value.getClass();
 
-         Class javaType = null;
-         List<Class> possibleJavaTypes = typeMapping.getJavaTypes(xmlType);
-         if(possibleJavaTypes.size()>1)
-         {
-             // resolve java type by assignability
-            for(Class type : possibleJavaTypes)
-            {
-               if(JavaUtils.isAssignableFrom(type, value.getClass()))
-               {
-                  javaType = type;
-                  break;
-               }
-            }
-         }
-         else
-         {
-            javaType = typeMapping.getJavaType(xmlType);
-         }
-
-         if(null == javaType)
-            throw new Exception("Unable to resolve target java type");
-
          JAXBContextCache contextCache = JAXBContextCache.getContextCache();
          JAXBContext jaxbContext = contextCache.getInstance(javaType);
                   

Copied: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointDTO.java (from rev 2253, trunk/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointDTO.java)
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointDTO.java	                        (rev 0)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointDTO.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ws.core.server;
+
+import javax.management.ObjectName;
+
+/**
+ * @author Heiko.Braun at jboss.org
+ * @version $Id:$
+ * @since 02.02.2007
+ */
+public class ServiceEndpointDTO {
+
+   private ServiceEndpointMetrics seMetrics;
+   private ServiceEndpoint.State state;
+   private ObjectName sepID;
+   private String address;
+
+   public ServiceEndpointMetrics getSeMetrics() {
+      return seMetrics;
+   }
+
+   public void setSeMetrics(ServiceEndpointMetrics seMetrics) {
+      this.seMetrics = seMetrics;
+   }
+
+   public ServiceEndpoint.State getState() {
+      return state;
+   }
+
+   public void setState(ServiceEndpoint.State state) {
+      this.state = state;
+   }
+
+   public ObjectName getSepID() {
+      return sepID;
+   }
+
+   public void setSepID(ObjectName sepID) {
+      this.sepID = sepID;
+   }
+
+   public String getAddress() {
+      return address;
+   }
+
+   public void setAddress(String address) {
+      this.address = address;
+   }
+
+}

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointManager.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointManager.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointManager.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -34,6 +34,7 @@
 import java.net.InetAddress;
 import java.net.URL;
 import java.net.UnknownHostException;
+import java.net.MalformedURLException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -285,15 +286,7 @@
          ObjectName sepID = (ObjectName)entry.getKey();
          ServiceEndpoint wsEndpoint = (ServiceEndpoint)entry.getValue();
          ServiceEndpointInfo seInfo = wsEndpoint.getServiceEndpointInfo();
-         String endpointAddress = seInfo.getServerEndpointMetaData().getEndpointAddress();
-         //pw.println("<tr><td>" + sepID.getCanonicalName() + "</td><td><a href='" + endpointAddress + "?wsdl'>" + endpointAddress + "?wsdl</a></td></tr>");
-         URL displayURL = new URL(endpointAddress);
-         String endPointPath = displayURL.getPath();
-         if (this.getWebServiceHost().equals(ServiceEndpointManager.UNDEFINED_HOSTNAME) == true)
-         {
-        	 displayURL = requestURL;
-         }
-         String displayAddress = displayURL.getProtocol() + "://" + displayURL.getHost() + ":" + displayURL.getPort() + endPointPath;
+         String displayAddress = getDisplayAddress(seInfo, requestURL);
          pw.println("<tr><td>" + sepID.getCanonicalName() + "</td><td><a href='" + displayAddress + "?wsdl'>" + displayAddress + "?wsdl</a></td></tr>");
       }
       pw.println("</table>");
@@ -302,6 +295,43 @@
       return sw.toString();
    }
 
+   public List<ServiceEndpointDTO> getRegisteredEndpoints(URL requestURL) throws java.net.MalformedURLException
+   {
+      List<ServiceEndpointDTO> registered = new ArrayList<ServiceEndpointDTO>();
+      Iterator it = registry.entrySet().iterator();
+      while (it.hasNext())
+      {
+         Map.Entry entry = (Map.Entry)it.next();
+         ObjectName sepID = (ObjectName)entry.getKey();
+         ServiceEndpoint wsEndpoint = (ServiceEndpoint)entry.getValue();
+         ServiceEndpointInfo seInfo = wsEndpoint.getServiceEndpointInfo();
+         String displayAddress = getDisplayAddress(seInfo, requestURL);
+
+         try {
+            ServiceEndpointDTO dto = new ServiceEndpointDTO();
+            dto.setSepID(sepID);
+            dto.setAddress(displayAddress);
+            dto.setSeMetrics((ServiceEndpointMetrics)wsEndpoint.getServiceEndpointMetrics().clone());
+            dto.setState(wsEndpoint.getState());
+            registered.add(dto);
+         } catch (CloneNotSupportedException e) { }
+      }
+
+      return registered;
+   }
+
+   private String getDisplayAddress(ServiceEndpointInfo seInfo, URL requestURL) throws MalformedURLException {
+      String endpointAddress = seInfo.getServerEndpointMetaData().getEndpointAddress();
+      URL displayURL = new URL(endpointAddress);
+      String endPointPath = displayURL.getPath();
+      if (this.getWebServiceHost().equals(ServiceEndpointManager.UNDEFINED_HOSTNAME) == true)
+      {
+         displayURL = requestURL;
+      }
+      String displayAddress = displayURL.getProtocol() + "://" + displayURL.getHost() + ":" + displayURL.getPort() + endPointPath;
+      return displayAddress;
+   }
+
    /** Get the endpoint metrics
     */
    public ServiceEndpointMetrics getServiceEndpointMetrics(ObjectName sepID)

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointMetrics.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointMetrics.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/ServiceEndpointMetrics.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -34,7 +34,7 @@
  * @author Thomas.Diesler at jboss.org
  * @since 14-Dec-2005
  */
-public class ServiceEndpointMetrics implements Serializable
+public class ServiceEndpointMetrics implements Serializable, Cloneable
 {
    private static final long serialVersionUID = -7730514070812711512L;
 
@@ -172,4 +172,22 @@
       buffer.append("\n  totalProcessingTime=" + totalProcessingTime);
       return buffer.toString();
    }
+
+   protected Object clone() throws CloneNotSupportedException {
+      ServiceEndpointMetrics sem = new ServiceEndpointMetrics(this.endpointID);
+
+      sem.avgProcessingTime = this.avgProcessingTime;
+      sem.maxProcessingTime = this.maxProcessingTime;
+      sem.minProcessingTime = this.minProcessingTime;
+
+      sem.faultCount = this.faultCount;
+      sem.requestCount = this.requestCount;
+      sem.responseCount = this.responseCount;
+
+      sem.startTime = this.startTime;
+      sem.stopTime = this.stopTime;
+      sem.totalProcessingTime = this.totalProcessingTime;
+
+      return sem;
+   }
 }

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/WSDLRequestHandler.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/WSDLRequestHandler.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/server/WSDLRequestHandler.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -140,7 +140,7 @@
 	                     completeHost = reqProtocol + "://" + hostAndPort;
                      }
 
-                     String newLocation = completeHost + reqPath + "?wsdl&resource=" + newResourcePath;
+                     String newLocation = completeHost + reqPath + "?wsdl&amp;resource=" + newResourcePath;
                      locationAttr.setNodeValue(newLocation);
                      
                      log.trace("Mapping import from '" + orgLocation + "' to '" + newLocation + "'");

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/EnvelopeBuilderDOM.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -68,6 +68,7 @@
       Element domEnv = null;
       try
       {
+         // TODO: The parser unescapes special characters, which we need to escape later on again         
          domEnv = DOMUtils.parse(ins);
       }
       catch (IOException ex)
@@ -107,7 +108,7 @@
          {
             Element srcElement = (Element)it.next();
             //registerNamespacesLocally(srcElement);
-            String xmlFragment = DOMWriter.printNode(srcElement, false);
+            String xmlFragment = DOMWriter.printNode(srcElement, false, true);
 
             Name name = new NameImpl(srcElement.getLocalName(), srcElement.getPrefix(), srcElement.getNamespaceURI());
             SOAPContentElement destElement = new SOAPHeaderElementImpl(name);
@@ -201,7 +202,7 @@
 
                   DOMUtils.copyAttributes(destElement, srcElement);
                   
-                  String xmlFragment = DOMWriter.printNode(srcElement, false);
+                  String xmlFragment = DOMWriter.printNode(srcElement, false, true);
                   destElement.setXMLFragment(xmlFragment);
                }
             }
@@ -214,7 +215,7 @@
 
                DOMUtils.copyAttributes(destElement, srcElement);
                
-               String xmlFragment = DOMWriter.printNode(srcElement, false);
+               String xmlFragment = DOMWriter.printNode(srcElement, false, true);
                destElement.setXMLFragment(xmlFragment);
             }
             else if (style == null)

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/NodeImpl.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/NodeImpl.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/NodeImpl.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -186,6 +186,9 @@
          throw new WSException("javax.xml.soap.Text should take care of this");
 
       org.w3c.dom.Node child = (org.w3c.dom.Node)getFirstChild();
+
+      value = DOMWriter.normalize(value, false);
+      
       if (child instanceof org.w3c.dom.Text)
          ((org.w3c.dom.Text)child).setNodeValue(value);
 

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPContentElement.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPContentElement.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPContentElement.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -207,6 +207,8 @@
 
          QName xmlType = getXmlType();
          Class javaType = getJavaType();
+         QName xmlName = getElementQName();
+
          log.debug("getXMLFragment from Object [xmlType=" + xmlType + ",javaType=" + javaType + "]");
 
          CommonMessageContext msgContext = MessageContextAssociation.peekMessageContext();
@@ -218,7 +220,6 @@
 
          TypeMappingImpl typeMapping = serContext.getTypeMapping();
 
-         QName xmlName = getElementQName();
          try
          {
             SerializerSupport ser;
@@ -232,9 +233,10 @@
                ser = new NullValueSerializer();
             }
 
-            xmlFragment = ser.serialize(xmlName, xmlType, getObjectValue(), serContext, null);
-            log.debug("xmlFragment: " + xmlFragment);
-            invalidateObjectContent();
+            String tmpFragment = ser.serialize(xmlName, xmlType, getObjectValue(), serContext, null);
+            log.debug("xmlFragment: " + tmpFragment);
+
+            setXMLFragment(tmpFragment);
          }
          catch (BindingException e)
          {

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementWriter.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementWriter.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/soap/SOAPElementWriter.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -112,6 +112,8 @@
          // This is expensive. Make sure it only happens for debugging
          try
          {
+            // TODO: this unescapes sepcial chars, which might be quiet confusing
+            // but they are actually send escaped.
             xmlStr = DOMWriter.printNode(DOMUtils.parse(xmlStr), true);
          }
          catch (IOException ex)

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/DOMWriter.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/DOMWriter.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/DOMWriter.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -57,23 +57,14 @@
 
 // $Id$
 
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
+import org.jboss.logging.Logger;
+import org.w3c.dom.*;
+
+import java.io.*;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import org.jboss.logging.Logger;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
 /**
  * Traverse a DOM tree in order to print a document that is parsed.
  *
@@ -103,6 +94,8 @@
    // True if we want namespace completion
    private boolean completeNamespaces = true;
 
+   private boolean escapeCharacters = false;
+
    public DOMWriter(Writer w)
    {
       this.out = new PrintWriter(w);
@@ -144,7 +137,7 @@
    /** 
     * Print a node with explicit prettyprinting.
     * The defaults for all other DOMWriter properties apply. 
-    *  
+    * Special characters will not be escaped.
     */
    public static String printNode(Node node, boolean prettyprint)
    {
@@ -153,6 +146,19 @@
       return strw.toString();
    }
 
+   /**
+    * Print a node with explicit prettyprinting.
+    * Special characters can be escaped. This is idiot proof
+    * but can be very expensive.
+    *
+    */
+   public static String printNode(Node node, boolean prettyprint, boolean escape)
+   {
+      StringWriter strw = new StringWriter();
+      new DOMWriter(strw).setPrettyprint(prettyprint).setEscapeCharacters(escape).print(node);
+      return strw.toString();
+   }
+
    public boolean isCanonical()
    {
       return canonical;
@@ -168,6 +174,11 @@
       return this;
    }
 
+   public DOMWriter setEscapeCharacters(boolean b)
+   {
+      this.escapeCharacters = b;
+      return this;
+   }
    /**
     * Set wheter subelements should have their namespaces completed.
     * Setting this to false may lead to invalid XML fragments.
@@ -287,7 +298,7 @@
                Attr attr = attrs[i];
                String atPrefix = attr.getPrefix();
                String atName = attr.getNodeName();
-               String atValue = normalize(attr.getNodeValue(), canonical);
+               String atValue = escapeCharacters ? normalize(attr.getNodeValue(), canonical) : attr.getNodeValue();
 
                if (atPrefix != null && !atPrefix.equals("xmlns") && !atPrefix.equals("xml"))
                {
@@ -394,7 +405,7 @@
             // print text
          case Node.TEXT_NODE:
          {
-            String text = normalize(node.getNodeValue(), canonical);
+            String text = escapeCharacters ? normalize(node.getNodeValue(), canonical) : node.getNodeValue();
             if (prettyprint == false || text.trim().length() > 0)
                out.print(text);
             break;

Copied: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/HashCodeUtil.java (from rev 2253, trunk/jbossws-core/src/main/java/org/jboss/ws/core/utils/HashCodeUtil.java)
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/HashCodeUtil.java	                        (rev 0)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/utils/HashCodeUtil.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -0,0 +1,134 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ws.core.utils;
+
+import java.lang.reflect.Array;
+
+/**
+* Collected methods which allow easy implementation of <code>hashCode</code>.
+*
+* Example use case:
+* <pre>
+*  public int hashCode(){
+*    int result = HashCodeUtil.SEED;
+*    //collect the contributions of various fields
+*    result = HashCodeUtil.hash(result, fPrimitive);
+*    result = HashCodeUtil.hash(result, fObject);
+*    result = HashCodeUtil.hash(result, fArray);
+*    return result;
+*  }
+* </pre>
+*/
+public final class HashCodeUtil {
+
+  /**
+  * An initial value for a <code>hashCode</code>, to which is added contributions
+  * from fields. Using a non-zero value decreases collisons of <code>hashCode</code>
+  * values.
+  */
+  public static final int SEED = 23;
+
+  /**
+  * booleans.
+  */
+  public static int hash( int aSeed, boolean aBoolean ) {
+    return firstTerm( aSeed ) + ( aBoolean ? 1 : 0 );
+  }
+
+  /**
+  * chars.
+  */
+  public static int hash( int aSeed, char aChar ) {
+    return firstTerm( aSeed ) + (int)aChar;
+  }
+
+  /**
+  * ints.
+  */
+  public static int hash( int aSeed , int aInt ) {
+    /*
+    * Implementation Note
+    * Note that byte and short are handled by this method, through
+    * implicit conversion.
+    */
+    return firstTerm( aSeed ) + aInt;
+  }
+
+  /**
+  * longs.
+  */
+  public static int hash( int aSeed , long aLong ) {
+    return firstTerm(aSeed)  + (int)( aLong ^ (aLong >>> 32) );
+  }
+
+  /**
+  * floats.
+  */
+  public static int hash( int aSeed , float aFloat ) {
+    return hash( aSeed, Float.floatToIntBits(aFloat) );
+  }
+
+  /**
+  * doubles.
+  */
+  public static int hash( int aSeed , double aDouble ) {
+    return hash( aSeed, Double.doubleToLongBits(aDouble) );
+  }
+
+  /**
+  * <code>aObject</code> is a possibly-null object field, and possibly an array.
+  *
+  * If <code>aObject</code> is an array, then each element may be a primitive
+  * or a possibly-null object.
+  */
+  public static int hash( int aSeed , Object aObject ) {
+    int result = aSeed;
+    if ( aObject == null) {
+      result = hash(result, 0);
+    }
+    else if ( ! isArray(aObject) ) {
+      result = hash(result, aObject.hashCode());
+    }
+    else {
+      int length = Array.getLength(aObject);
+      for ( int idx = 0; idx < length; ++idx ) {
+        Object item = Array.get(aObject, idx);
+        //recursive call!
+        result = hash(result, item);
+      }
+    }
+    return result;
+  }
+
+
+  /// PRIVATE ///
+  private static final int fODD_PRIME_NUMBER = 37;
+
+  private static int firstTerm( int aSeed ){
+    return fODD_PRIME_NUMBER * aSeed;
+  }
+
+  private static boolean isArray(Object aObject){
+    return aObject.getClass().isArray();
+  }
+}
+

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/extensions/eventing/mgmt/Subscription.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -177,7 +177,7 @@
       }
       catch (Exception e)
       {
-         log.warn("Failed to send subscription end message to: " + this.endTo, e);
+         log.warn("Failed to send subscription end message to: " + this.endTo + "("+e.getMessage()+")");
       }
 
    }

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/acessor/JAXBAccessor.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/acessor/JAXBAccessor.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/acessor/JAXBAccessor.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -73,7 +73,7 @@
             throw ex;
          }
 
-         return new AccessorFactory() 
+         return new AccessorFactory()
          {
             public Accessor create(WrappedParameter parameter)
             {
@@ -81,7 +81,11 @@
                try
                {
                   QName name = parameter.getName();
-                  accessor = ctx.getElementPropertyAccessor(clazz, name.getNamespaceURI(), name.getLocalPart());
+                  accessor = ctx.getElementPropertyAccessor(
+                     clazz,
+                     name.getNamespaceURI().intern(), // JAXB internally optimizes String usage towards intern()
+                     name.getLocalPart().intern()     // see com.sun.xml.bind.v2.util.QNameMap;
+                  );
                }
                catch (Throwable t)
                {

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -303,7 +303,7 @@
 
    private String convertToVariable(String localName)
    {
-      return JAXBRIContext.mangleNameToVariableName(localName);
+      return JAXBRIContext.mangleNameToVariableName(localName.intern());
    }
 
    private String[] convertTypeArguments(Class rawType, Type type)
@@ -805,7 +805,7 @@
    {
       try
       {
-         String targetNS = epMetaData.getPortTypeName().getNamespaceURI();
+         String targetNS = epMetaData.getPortTypeName().getNamespaceURI().intern();
          log.debug("JAXBContext [types=" + javaTypes + ",tns=" + targetNS + "]");
          jaxbCtx = JAXBRIContext.newInstance(javaTypes.toArray(new Class[0]), typeRefs, targetNS, false);
       }

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/ParameterMetaData.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -238,7 +238,7 @@
       Class wrapperBean = null;
       try
       {
-         ClassLoader loader = getOperationMetaData().getEndpointMetaData().getClassLoader();
+         ClassLoader loader = getClassLoader();
          wrapperBean = JavaUtils.loadJavaType(javaTypeName, loader);
       }
       catch (ClassNotFoundException ex)
@@ -258,7 +258,7 @@
       {
          try
          {
-            ClassLoader loader = opMetaData.getEndpointMetaData().getClassLoader();
+            ClassLoader loader = getClassLoader();
             tmpJavaType = JavaUtils.loadJavaType(javaTypeName, loader);
 
             UnifiedMetaData wsMetaData = opMetaData.getEndpointMetaData().getServiceMetaData().getUnifiedMetaData();
@@ -436,7 +436,7 @@
       // reset java type
       javaType = null;
 
-      // FIXME - Remove messageType hack
+      // TODO - Remove messageType hack
       Type epType = getOperationMetaData().getEndpointMetaData().getType();
       if (getOperationMetaData().isDocumentWrapped() && !isInHeader() && !isSwA() && !isMessageType())
       {
@@ -445,7 +445,7 @@
                if (epType == EndpointMetaData.Type.JAXRPC)
                   throw new WSException("Autogeneration of wrapper beans not supported with JAXRPC");
                
-               new DynamicWrapperGenerator(getClassLoader()).generate(this);
+               new DynamicWrapperGenerator( getClassLoader() ).generate(this);
             }
 
          // Initialize accessors

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/tools/JavaToXSD.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/tools/JavaToXSD.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/tools/JavaToXSD.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -23,14 +23,6 @@
 
 // $Id$
 
-import java.io.IOException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import javax.xml.namespace.QName;
-
 import org.apache.xerces.impl.xs.SchemaGrammar;
 import org.apache.xerces.impl.xs.XMLSchemaLoader;
 import org.apache.xerces.impl.xs.XSModelImpl;
@@ -53,7 +45,16 @@
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
 import org.w3c.dom.ls.LSInput;
+import org.xml.sax.InputSource;
 
+import javax.xml.namespace.QName;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
 /**
  * <P>
  *  Handles the conversion of Java classes to XML Schema
@@ -171,7 +172,11 @@
             URL url = resURL != null ? resURL : orgURL;
             log.debug("Load schema: " + nsURI + "=" + url);
             XMLInputSource inputSource = new XMLInputSource(null, url.toExternalForm(), null);
-            inputSource.setByteStream(new ResourceURL(url).openStream());
+
+            InputSource tmpSrc = resolver.resolveEntity(null, url.toExternalForm());
+            InputStream in = tmpSrc.getByteStream() != null ? tmpSrc.getByteStream() : new ResourceURL(url).openStream();
+            inputSource.setByteStream(in);
+            
             SchemaGrammar grammar = (SchemaGrammar)loader.loadGrammar(inputSource);
             gs[index++] = grammar;
          }

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/index.html
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/index.html	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/index.html	2007-02-02 17:53:40 UTC (rev 2256)
@@ -1,19 +1,63 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>JBossWS</title>
-<link rel="stylesheet" href="./styles.css">
+<html><head>
+<meta http-equiv='Content-Type content='text/html; charset=iso-8859-1'>
+<title>JBossWS / jbossws-2.0.0.CR3 (date=200702012001)</title>
+<link rel='stylesheet' href='./styles.css'>
 </head>
 <body>
 
-<h3>Welcome to JBoss Web Services</h3>
+<div class='pageHeader'>Welcome to JBoss Web Services</div>
 
-J2EE compatible webservices.
-<p/>
+<div class="pageSection">
+<h2>J2EE compatible web services</h2>
+After JBoss J2EE-1.4 certification in Jun/2004 we have decided to develop our own JAX-RPC 1.1 / JAX-WS compliant SOAP stack that fits better in the overall JBoss architecture and is generally more suiteable for the specific J2EE requirements for web services.
+</div>
 
+<div class="pageSection">
+<h3>Administration</h3>
+
+<fieldset>
+    <legend><b>Runtime information</b></legend>
 <ul>
-    <li> <a href="services">View</a> the list of deployed Web Services </li>
+	<li><a href="services">View a list of deployed services</a></li>
+	<!--li><a href="depends">View installed dependencies</a></li-->
+	<li><a href="/jmx-console/">Access JMX console</a></li>
 </ul>
+</fieldset>
+</div>
 
+<div class="pageSection">
+<h3>Project information</h3>
+
+<fieldset>
+    <legend><b>Documentation</b></legend>
+
+<ul>
+	<li><a href="http://labs.jboss.com/portal/jbossws/downloads">Latest download and samples</a></li>
+	<li><a href="http://www.jboss.org/wiki/Wiki.jsp?page=JBWSFAQ">FAQ</a></li>
+	<li><a href="http://labs.jboss.com/jbossws/user-guide/en/html/index.html">User guide</a></li>
+	<li><a href="http://www.jboss.org/wiki/Wiki.jsp?page=JBossWS">JBossWS WIKI</a></li>
+</ul>
+</fieldset>
+
+</br>
+<fieldset>
+    <legend><b>Community</b></legend>
+<ul>
+	<li><a href="http://www.jboss.org/index.html?module=bb&op=viewforum&f=200">User forum</a></li>
+	<li><a href="http://www.jboss.org/index.html?module=bb&op=viewforum&f=174">Design forum</a></li>
+	<li><a href="https://lists.jboss.org/mailman/listinfo/jbossws-users">Mailing list</a></li>
+</ul>
+</fieldset>
+
+</br>
+<fieldset>
+    <legend><b>Source repository</b></legend>
+<ul>
+	<li><a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=JBWSFAQSourceRepository">Subversion repository</a></li>
+	<li><a href="http://fisheye.jboss.com/viewrep/JBossWS">Browse sources online</a></li>
+</ul>
+</fieldset>
+</div>
+
 </body>
-</html>
+</html>
\ No newline at end of file

Modified: branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/styles.css
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/styles.css	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/resources/jbossws.war/styles.css	2007-02-02 17:53:40 UTC (rev 2256)
@@ -7,9 +7,37 @@
 .table_form {
 }
 
+.pageHeader {
+   font-size: 14pt;
+   font-weight: BOLD;
+   color: #ffffff;
+   border-bottom-width:1px;
+   border-bottom-style:solid;
+   border-color:#000066;
+   margin-bottom:15px;
+   padding-left:15px;
+   padding-top:5px;
+   padding-bottom:5px;
+   background-color: #aaaadd;
+   max-width: 900px;
+}
+
+.pageSection {
+ padding-left:15px;
+ margin-bottom: 5px;
+ max-width: 900px;
+}
+
+.metrics
+{	 
+   font-size: 6pt;
+   background-color: #dddddd;
+   width: 100%;
+}
+
 /* table row header */
 .list_tr_head {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    font-weight: 600;
    text-align: center;
@@ -18,7 +46,7 @@
 
 /* table row list view */
 .list_tr {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    color: #000066;
    vertical-align: top;
@@ -27,7 +55,7 @@
 
 /* table row list view odd lines */
 .list_tr_even {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    color: #000066;
    vertical-align: top;
@@ -36,7 +64,7 @@
 
 /* table row list view even lines */
 .list_tr_odd {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    color: #000066;
    vertical-align: top;
@@ -45,7 +73,7 @@
 
 /* form label */
 .form_label {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-weight: 500;
    font-size: 8pt;
    color: #000066;
@@ -57,7 +85,7 @@
 
 /* form value */
 .form_value {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    color: #000066;
    vertical-align: baseline;
@@ -65,7 +93,7 @@
 
 /* tiny writing */
 .tiny {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    color: #666666;
 }
@@ -92,7 +120,7 @@
 }
 
 body {
-   font-family: Verdana;
+   font-family: Verdana,, sans-serif;
    font-size: 8pt;
    color: #000066;
    background-color: #ffffff;
@@ -100,28 +128,28 @@
 
 /* title style */
 h1 {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 14pt;
    font-weight: 600;
    color: #000066;
 }
 
 h2 {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 12pt;
    font-weight: 600;
    color: #000066;
 }
 
 h3 {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 10pt;
    font-weight: 600;
    color: #000066;
 }
 
 h4 {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 10pt;
    font-weight: 500;
    color: #000066;
@@ -129,26 +157,26 @@
 
 /* table desk */
 td {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    padding-left: 5px;
    padding-right: 5px;
 }
 
 input, textarea, select, option {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    font-size: 8pt;
    color: #000066;
 }
 
 a {
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    color: #0000dd;
    text-decoration: none;
 }
 
 a:hover{
-   font-family: Verdana;
+   font-family: Verdana, sans-serif;
    color: #cc0000;
    text-decoration: none;
 }

Copied: branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/eventing.xsd (from rev 2174, trunk/jbossws-core/src/main/resources/schema/eventing.xsd)
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/eventing.xsd	                        (rev 0)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/eventing.xsd	2007-02-02 17:53:40 UTC (rev 2256)
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+(c) 2004 BEA Systems Inc., Computer Associates International, Inc., International Business Machines Corporation, Microsoft Corporation, Inc, Sun Microsystems, Inc., and TIBCO Software Inc. All rights reserved.
+
+BEA Systems Inc., Computer Associates International, Inc., International Business Machines Corporation, Microsoft Corporation, Inc, Sun Microsystems, Inc, and TIBCO Software Inc (collectively, the "Authors") hereby grant you permission to copy and display the WS-Eventing Specification (the "Specification", which includes WSDL and schema documents), in any medium without fee or royalty, provided that you include the following on ALL copies of the Specification, that you make:
+
+1.	A link or URL to the WS-Eventing Specification at one of the Authors' websites
+2.	The copyright notice as shown in the WS-Eventing Specification.
+
+BEA, CA, IBM, Microsoft, Sun and TIBCO (collectively, the "Authors") each agree to grant you a license, under royalty-free and otherwise reasonable, non-discriminatory terms and conditions, to their respective essential patent claims that they deem necessary to implement the Specification.
+
+THE SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SPECIFICATION.
+
+The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the Specification or its contents without specific, written prior permission. Title to copyright in the Specification will at all times remain with the Authors.
+
+No other rights are granted by implication, estoppel or otherwise.
+-->
+<xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2004/08/eventing"
+           xmlns:tns="http://schemas.xmlsoap.org/ws/2004/08/eventing"
+           xmlns:wsa="http://www.w3.org/2005/08/addressing"
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           elementFormDefault="qualified"
+           blockDefault="#all">
+
+  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+  <!--xs:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="wsaddr.xsd"/-->
+  <xs:import namespace="http://www.w3.org/2005/08/addressing"/>
+
+  <!-- Types and global elements -->
+  <xs:complexType name="DeliveryType" mixed="true">
+    <xs:sequence>
+      <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="Mode" type="xs:anyURI" use="optional"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+
+  <xs:element name="NotifyTo" type="wsa:EndpointReferenceType"/>
+
+  <xs:simpleType name="NonNegativeDurationType">
+    <xs:restriction base="xs:duration">
+      <xs:minInclusive value="P0Y0M0DT0H0M0S"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="ExpirationType">
+      <xs:union memberTypes="xs:dateTime tns:NonNegativeDurationType"/>
+  </xs:simpleType>
+
+  <xs:complexType name="FilterType" mixed="true">
+    <xs:sequence>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute name="Dialect" type="xs:anyURI" use="optional"/>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+
+  <xs:complexType name="LanguageSpecificStringType">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attribute ref="xml:lang"/>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <!-- Subscribe request -->
+  <xs:element name="Subscribe">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="EndTo" type="wsa:EndpointReferenceType" minOccurs="0"/>
+        <xs:element name="Delivery" type="tns:DeliveryType"/>
+        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
+        <xs:element name="Filter" type="tns:FilterType" minOccurs="0"/>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="Identifier" type="xs:anyURI"/>
+
+  <!-- Subscribe response -->
+  <xs:element name="SubscribeResponse">
+    <xs:complexType>
+      <xs:sequence>
+	  <xs:element name="SubscriptionManager" type="wsa:EndpointReferenceType"/>
+        <xs:element name="Expires" type="tns:ExpirationType"/>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Used in a fault if there's an unsupported dialect -->
+  <xs:element name="SupportedDialect" type="xs:anyURI"/>
+
+  <!-- Used in a fault if there's an unsupported delivery mode -->
+  <xs:element name="SupportedDeliveryMode" type="xs:anyURI"/>
+
+  <!-- Renew request -->
+  <xs:element name="Renew">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Renew response -->
+  <xs:element name="RenewResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- GetStatus request -->
+  <xs:element name="GetStatus">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- GetStatus response -->
+  <xs:element name="GetStatusResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Unsubscribe request -->
+  <xs:element name="Unsubscribe">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- count(/s:Envelope/s:Body/*) = 0 for Unsubscribe response -->
+
+  <!-- SubscriptionEnd message -->
+  <xs:element name="SubscriptionEnd">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="SubscriptionManager" type="wsa:EndpointReferenceType"/>
+        <xs:element name="Code" type="tns:OpenSubscriptionEndCodeType"/>
+        <xs:element name="Reason" type="tns:LanguageSpecificStringType" minOccurs="0" maxOccurs="unbounded"/>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:simpleType name="SubscriptionEndCodeType">
+    <xs:restriction base="xs:QName">
+      <xs:enumeration value="tns:DeliveryFailure"/>
+      <xs:enumeration value="tns:SourceShuttingDown"/>
+      <xs:enumeration value="tns:SourceCancelling"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="OpenSubscriptionEndCodeType">
+    <xs:union memberTypes="tns:SubscriptionEndCodeType xs:QName"/>
+  </xs:simpleType>
+
+  <xs:attribute name="EventSource" type="xs:boolean"/>
+
+</xs:schema>
\ No newline at end of file

Deleted: branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/ws-eventing.xsd
===================================================================
--- branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/ws-eventing.xsd	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-core/src/main/resources/schema/ws-eventing.xsd	2007-02-02 17:53:40 UTC (rev 2256)
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-(c) 2004 BEA Systems Inc., Computer Associates International, Inc., International Business Machines Corporation, Microsoft Corporation, Inc, Sun Microsystems, Inc., and TIBCO Software Inc. All rights reserved.
-
-BEA Systems Inc., Computer Associates International, Inc., International Business Machines Corporation, Microsoft Corporation, Inc, Sun Microsystems, Inc, and TIBCO Software Inc (collectively, the "Authors") hereby grant you permission to copy and display the WS-Eventing Specification (the "Specification", which includes WSDL and schema documents), in any medium without fee or royalty, provided that you include the following on ALL copies of the Specification, that you make:
-
-1.	A link or URL to the WS-Eventing Specification at one of the Authors' websites
-2.	The copyright notice as shown in the WS-Eventing Specification.
-
-BEA, CA, IBM, Microsoft, Sun and TIBCO (collectively, the "Authors") each agree to grant you a license, under royalty-free and otherwise reasonable, non-discriminatory terms and conditions, to their respective essential patent claims that they deem necessary to implement the Specification.
-
-THE SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
-
-THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SPECIFICATION.
-
-The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the Specification or its contents without specific, written prior permission. Title to copyright in the Specification will at all times remain with the Authors.
-
-No other rights are granted by implication, estoppel or otherwise.
--->
-<xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2004/08/eventing"
-           xmlns:tns="http://schemas.xmlsoap.org/ws/2004/08/eventing"
-           xmlns:wsa="http://www.w3.org/2005/08/addressing"
-           xmlns:xs="http://www.w3.org/2001/XMLSchema"
-           elementFormDefault="qualified"
-           blockDefault="#all">
-
-  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
-  <!--xs:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="wsaddr.xsd"/-->
-  <xs:import namespace="http://www.w3.org/2005/08/addressing"/>
-
-  <!-- Types and global elements -->
-  <xs:complexType name="DeliveryType" mixed="true">
-    <xs:sequence>
-      <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute name="Mode" type="xs:anyURI" use="optional"/>
-    <xs:anyAttribute namespace="##other" processContents="lax"/>
-  </xs:complexType>
-
-  <xs:element name="NotifyTo" type="wsa:EndpointReferenceType"/>
-
-  <xs:simpleType name="NonNegativeDurationType">
-    <xs:restriction base="xs:duration">
-      <xs:minInclusive value="P0Y0M0DT0H0M0S"/>
-    </xs:restriction>
-  </xs:simpleType>
-
-  <xs:simpleType name="ExpirationType">
-      <xs:union memberTypes="xs:dateTime tns:NonNegativeDurationType"/>
-  </xs:simpleType>
-
-  <xs:complexType name="FilterType" mixed="true">
-    <xs:sequence>
-      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute name="Dialect" type="xs:anyURI" use="optional"/>
-    <xs:anyAttribute namespace="##other" processContents="lax"/>
-  </xs:complexType>
-
-  <xs:complexType name="LanguageSpecificStringType">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <xs:attribute ref="xml:lang"/>
-        <xs:anyAttribute namespace="##other" processContents="lax"/>
-      </xs:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-
-  <!-- Subscribe request -->
-  <xs:element name="Subscribe">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="EndTo" type="wsa:EndpointReferenceType" minOccurs="0"/>
-        <xs:element name="Delivery" type="tns:DeliveryType"/>
-        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
-        <xs:element name="Filter" type="tns:FilterType" minOccurs="0"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:element name="Identifier" type="xs:anyURI"/>
-
-  <!-- Subscribe response -->
-  <xs:element name="SubscribeResponse">
-    <xs:complexType>
-      <xs:sequence>
-	  <xs:element name="SubscriptionManager" type="wsa:EndpointReferenceType"/>
-        <xs:element name="Expires" type="tns:ExpirationType"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <!-- Used in a fault if there's an unsupported dialect -->
-  <xs:element name="SupportedDialect" type="xs:anyURI"/>
-
-  <!-- Used in a fault if there's an unsupported delivery mode -->
-  <xs:element name="SupportedDeliveryMode" type="xs:anyURI"/>
-
-  <!-- Renew request -->
-  <xs:element name="Renew">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <!-- Renew response -->
-  <xs:element name="RenewResponse">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <!-- GetStatus request -->
-  <xs:element name="GetStatus">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <!-- GetStatus response -->
-  <xs:element name="GetStatusResponse">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="Expires" type="tns:ExpirationType" minOccurs="0"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <!-- Unsubscribe request -->
-  <xs:element name="Unsubscribe">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <!-- count(/s:Envelope/s:Body/*) = 0 for Unsubscribe response -->
-
-  <!-- SubscriptionEnd message -->
-  <xs:element name="SubscriptionEnd">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="SubscriptionManager" type="wsa:EndpointReferenceType"/>
-        <xs:element name="Code" type="tns:OpenSubscriptionEndCodeType"/>
-        <xs:element name="Reason" type="tns:LanguageSpecificStringType" minOccurs="0" maxOccurs="unbounded"/>
-        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
-      </xs:sequence>
-      <xs:anyAttribute namespace="##other" processContents="lax"/>
-    </xs:complexType>
-  </xs:element>
-
-  <xs:simpleType name="SubscriptionEndCodeType">
-    <xs:restriction base="xs:QName">
-      <xs:enumeration value="tns:DeliveryFailure"/>
-      <xs:enumeration value="tns:SourceShuttingDown"/>
-      <xs:enumeration value="tns:SourceCancelling"/>
-    </xs:restriction>
-  </xs:simpleType>
-
-  <xs:simpleType name="OpenSubscriptionEndCodeType">
-    <xs:union memberTypes="tns:SubscriptionEndCodeType xs:QName"/>
-  </xs:simpleType>
-
-  <xs:attribute name="EventSource" type="xs:boolean"/>
-
-</xs:schema>
\ No newline at end of file

Modified: branches/jbossws-1.2.0/jbossws-docs/user-guide/project/en/master.template
===================================================================
--- branches/jbossws-1.2.0/jbossws-docs/user-guide/project/en/master.template	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-docs/user-guide/project/en/master.template	2007-02-02 17:53:40 UTC (rev 2256)
@@ -1,9 +1,9 @@
-<?xml version='1.0' encoding="iso-8859-1"?>
+<?xml version='1.0' encoding="iso-8859-1"?>
 
 <!-- $Id: master.xml 118 2006-04-06 14:44:24Z thomas.diesler at jboss.com $ -->
 
 <!DOCTYPE book PUBLIC
-  "-//OASIS//DTD DocBook XML V4.3CR3//EN"
+  "-//OASIS//DTD DocBook XML V4.1.2//EN"
   "../../../docbook-support/support/docbook-dtd/docbookx.dtd"
 [
 <!ENTITY ch-introduction           SYSTEM "modules/introduction.xml">
@@ -100,4 +100,4 @@
   &ch-xmlregistry;
   &appendix-a; 
   
-</book>
+</book>
\ No newline at end of file

Modified: branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/common/utils/DOMWriterTestCase.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -189,7 +189,7 @@
 
 
       Element domEl = DOMUtils.parse(expStr);
-      String wasStr = DOMWriter.printNode(domEl, false);
+      String wasStr = DOMWriter.printNode(domEl, false, true);
       
       assertEquals(expStr, wasStr);
    }

Modified: branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/marshall/MarshallDocLitTestCase.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/marshall/MarshallDocLitTestCase.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxrpc/marshall/MarshallDocLitTestCase.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -28,6 +28,7 @@
 import javax.naming.InitialContext;
 import javax.xml.namespace.QName;
 import javax.xml.rpc.Service;
+import javax.xml.rpc.Stub;
 
 import junit.framework.Test;
 
@@ -59,7 +60,7 @@
       {
          InitialContext iniCtx = getInitialContext();
          Service service = (Service)iniCtx.lookup("java:comp/env/service/StandardTypes");
-         port = (StandardTypes)service.getPort(StandardTypes.class);
+         port = (StandardTypes)service.getPort(StandardTypes.class);         
       }
    }
 

Modified: branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/wseventing/EventingSupport.java
===================================================================
--- branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/wseventing/EventingSupport.java	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-tests/src/main/java/org/jboss/test/ws/jaxws/wseventing/EventingSupport.java	2007-02-02 17:53:40 UTC (rev 2256)
@@ -164,7 +164,7 @@
          EndpointReferenceType notifyEPR = new EndpointReferenceType();
          AttributedURIType attURI = new AttributedURIType();
          attURI.setValue("http://" + getServerHost() + ":8080/jaxws-wseventing/eventSink");
-         notifyEPR.setAddress(attURI);
+         notifyEPR.setAddress(attURI);                        
          delivery.setNotifyTo(notifyEPR);
          return delivery;
       }

Modified: branches/jbossws-1.2.0/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl
===================================================================
--- branches/jbossws-1.2.0/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl	2007-02-02 17:33:49 UTC (rev 2255)
+++ branches/jbossws-1.2.0/jbossws-tests/src/main/resources/jaxws/samples/wseventing/WEB-INF/wsdl/ws-eventing.wsdl	2007-02-02 17:53:40 UTC (rev 2256)
@@ -9,7 +9,8 @@
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
 
    <wsdl:types>
-      <xs:import namespace="http://schemas.xmlsoap.org/ws/2004/08/eventing" schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/eventing/eventing.xsd"/>
+      <xs:import namespace="http://schemas.xmlsoap.org/ws/2004/08/eventing"
+                 schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/eventing/eventing.xsd"/>
    </wsdl:types>
 
    <wsdl:message name='SubscribeMsg'>




More information about the jbossws-commits mailing list