Coverage Report - org.kuali.student.common.ws.handler.DebugHandler
 
Classes in this File Line Coverage Branch Coverage Complexity
DebugHandler
0%
0/26
0%
0/2
1.25
 
 1  
 /**
 2  
  * Copyright 2010 The Kuali Foundation Licensed under the
 3  
  * Educational Community License, Version 2.0 (the "License"); you may
 4  
  * not use this file except in compliance with the License. You may
 5  
  * obtain a copy of the License at
 6  
  *
 7  
  * http://www.osedu.org/licenses/ECL-2.0
 8  
  *
 9  
  * Unless required by applicable law or agreed to in writing,
 10  
  * software distributed under the License is distributed on an "AS IS"
 11  
  * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 12  
  * or implied. See the License for the specific language governing
 13  
  * permissions and limitations under the License.
 14  
  */
 15  
 
 16  
 package org.kuali.student.common.ws.handler;
 17  
 
 18  
 import java.io.PrintStream;
 19  
 import java.util.Set;
 20  
 
 21  
 import javax.xml.namespace.QName;
 22  
 import javax.xml.ws.handler.MessageContext;
 23  
 import javax.xml.ws.handler.soap.SOAPHandler;
 24  
 import javax.xml.ws.handler.soap.SOAPMessageContext;
 25  
 
 26  
 import org.apache.log4j.Logger;
 27  
 
 28  0
 public class DebugHandler implements SOAPHandler<SOAPMessageContext> {
 29  
 
 30  0
     final Logger logger = Logger.getLogger(DebugHandler.class);
 31  
     
 32  
         private PrintStream err;
 33  
         private PrintStream out;
 34  
         
 35  
         public DebugHandler()        {
 36  0
                 this(System.out, System.err);
 37  0
         }
 38  
         
 39  
         public DebugHandler(PrintStream ps)        {
 40  0
                 this(ps, ps);
 41  0
         }
 42  
         
 43  0
         public DebugHandler(PrintStream out, PrintStream err)        {
 44  0
                 this.out = out;
 45  0
                 this.err = err;
 46  0
         }
 47  
         
 48  
         @Override
 49  
         public Set<QName> getHeaders() {
 50  
                 // does not handle any headers
 51  0
                 return null;
 52  
         }
 53  
 
 54  
         @Override
 55  
         public void close(MessageContext context) {
 56  
                 // no cleanup needed
 57  0
         }
 58  
 
 59  
         @Override
 60  
         public boolean handleFault(SOAPMessageContext context) {
 61  0
                 return this.printMessage(context, this.err);
 62  
         }
 63  
 
 64  
         @Override
 65  
         public boolean handleMessage(SOAPMessageContext context) {
 66  0
                 return this.printMessage(context, this.out);
 67  
         }
 68  
         
 69  
         private boolean printMessage(SOAPMessageContext context, PrintStream ps)        {
 70  0
                 String message = "DebugHandler ";
 71  
                 
 72  0
                 Boolean out = (Boolean)context.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY);
 73  0
                 if(out.booleanValue())
 74  0
                         message += "Out: ";
 75  
                 else
 76  0
                         message += "In: ";
 77  
                 
 78  0
                 ps.print(message);
 79  
                 
 80  
                 try        {
 81  0
                         context.getMessage().writeTo(ps);
 82  0
                         ps.println();
 83  
                 }
 84  0
                 catch(Exception ex)        {
 85  0
                     logger.error(this.err, ex);
 86  0
                 }
 87  
                 
 88  0
                 return true;
 89  
         }
 90  
 
 91  
 }