You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-commits@ws.apache.org by da...@apache.org on 2007/01/16 18:37:40 UTC

svn commit: r496788 - in /webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults: BaseFault.java WsbfConstants.java

Author: danj
Date: Tue Jan 16 09:37:38 2007
New Revision: 496788

URL: http://svn.apache.org/viewvc?view=rev&rev=496788
Log:
Fixed BaseFault impl so that getDetail() value is created on-the-fly, so that when SOAPFaults are serialized 
they have all of the BaseFault data in the XML w/o duplicating all of the data that is stored in POJO fields 
in the BaseFault class.

Modified:
    webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/BaseFault.java
    webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/WsbfConstants.java

Modified: webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/BaseFault.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/BaseFault.java?view=diff&rev=496788&r1=496787&r2=496788
==============================================================================
--- webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/BaseFault.java (original)
+++ webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/BaseFault.java Tue Jan 16 09:37:38 2007
@@ -140,72 +140,89 @@
     {
         super(message);
         _name = name;
-        createDetail();
     }
     
     public BaseFault(QName name, String message, Throwable cause)
     {
         super(message, cause);
         _name = name;
-        createDetail();
     }
     
     public BaseFault(QName name, Throwable cause)
     {
         super(cause);
         _name = name;
-        createDetail();
     }
     
     /**
      * 
-     * This method adds the wsrf-bf:BaseFault derived fault XML to the 
-     * Detail section of the SOAP fault.
+     * Creates the WSBF BaseFault XML on-the-fly, for inclusion in a larger 
+     * SOAPFault XML fragment. The wsrf-bf:Description is not included because 
+     * the same text is found in the SOAPFault's Reason element.
      *
      */
-    protected void createDetail()
+    public Element getDetail()
     {
-        Element baseFault = XmlUtils.createElement(getName(), getMessage());
-        setDetail(baseFault);
+        Element baseFault = XmlUtils.createElement(getName());
+        XmlUtils.setElement(baseFault, WsbfConstants.TIMESTAMP_QNAME, getTimestamp());
+        
+        EndpointReference originEPR = getOriginReference();
+        
+        if (originEPR != null)
+        {
+            Element originXML = originEPR.toXML();
+            baseFault.appendChild(originXML);
+        }
+        
+        Element errorCode = getErrorCode();
+        
+        if (errorCode != null)
+        {
+            Element errorXML = XmlUtils.createElement(WsbfConstants.ERROR_CODE_QNAME);
+            errorXML.setAttribute(WsbfConstants.ERROR_CODE_DIALECT, getErrorCodeDialect());
+            XmlUtils.setElement(errorXML, WsbfConstants.ERROR_CODE_QNAME, errorCode, false);
+        }
+        
+        return baseFault;
     }
     
-    public final String getDescription()
+    public String getDescription()
     {
         return getMessage();
     }
     
-    public final Element getErrorCode()
+    public Element getErrorCode()
     {
         return _errorCode;
     }
     
-    public final String getErrorCodeDialect()
+    public String getErrorCodeDialect()
     {
         return _errorCodeDialect;
     }
     
-    public final QName getName()
+    public QName getName()
     {
         return _name;
     }
     
-    public final EndpointReference getOriginReference()
+    public EndpointReference getOriginReference()
     {
         return _origin;
     }
     
-    public final Date getTimestamp()
+    public Date getTimestamp()
     {
         return _timestamp;
     }
     
-    public final void setErrorCode(Element errorCode, String errorCodeDialect)
+    public void setErrorCode(Element errorCode, String errorCodeDialect)
     {
         _errorCode = errorCode;
         _errorCodeDialect = errorCodeDialect;
     }
     
-    public final void setOriginReference(EndpointReference origin)
+    public void setOriginReference(EndpointReference origin)
     {
         _origin = new EndpointReference(origin, WsbfConstants.ORIGINATOR_QNAME);
     }

Modified: webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/WsbfConstants.java
URL: http://svn.apache.org/viewvc/webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/WsbfConstants.java?view=diff&rev=496788&r1=496787&r2=496788
==============================================================================
--- webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/WsbfConstants.java (original)
+++ webservices/muse/trunk/modules/muse-wsrf-api/src/org/apache/muse/ws/resource/basefaults/WsbfConstants.java Tue Jan 16 09:37:38 2007
@@ -39,7 +39,7 @@
     public static final QName DESCRIPTION_QNAME = 
         new QName(NAMESPACE_URI, "Description", PREFIX);
     
-    public static final String ERROR_CODE_DIALECT = "dialect";
+    public static final String ERROR_CODE_DIALECT = "Dialect";
 
     public static final QName ERROR_CODE_QNAME = 
         new QName(NAMESPACE_URI, "ErrorCode", PREFIX);



---------------------------------------------------------------------
To unsubscribe, e-mail: muse-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-commits-help@ws.apache.org