Coverage Report - org.mule.OptimizedRequestContext
 
Classes in this File Line Coverage Branch Coverage Complexity
OptimizedRequestContext
0%
0/9
N/A
0
 
 1  
 /*
 2  
  * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
 3  
  * The software in this package is published under the terms of the CPAL v1.0
 4  
  * license, a copy of which has been included with this distribution in the
 5  
  * LICENSE.txt file.
 6  
  */
 7  
 package org.mule;
 8  
 
 9  
 import org.mule.api.MuleEvent;
 10  
 import org.mule.api.MuleMessage;
 11  
 
 12  
 import org.apache.commons.logging.Log;
 13  
 import org.apache.commons.logging.LogFactory;
 14  
 
 15  
 /**
 16  
  * NOT FOR PUBLIC USE - please use the interface provided by RequestContext.
 17  
  * This is a temporary interface that helps provide an (optimized) fix for message
 18  
  * scribbling.
 19  
  *
 20  
  * <p>Mutating methods have three versions: default (RequestContext; safe, makes and returns a new
 21  
  * copy - although this can be changed via {@link RequestContext#DEFAULT_ACTION});
 22  
  * unsafe (doesn't make a copy, use only where certain no threading); critical (safe,
 23  
  * documents that threading a known issue).</p>
 24  
  *
 25  
  * @deprecated
 26  
  *    If access to MuleEvent or MuleMessage is required,
 27  
  *    then implement a {@link org.mule.api.processor.MessageProcessor}
 28  
  *    or {@link org.mule.api.lifecycle.Callable} instead
 29  
  */
 30  
 @Deprecated
 31  
 public final class OptimizedRequestContext
 32  
 {
 33  
 
 34  
     private static final boolean DOCUMENT_UNSAFE_CALLS = false;
 35  0
     private static final Log logger = LogFactory.getLog(OptimizedRequestContext.class);
 36  
 
 37  
     /**
 38  
      * Do not instantiate.
 39  
      */
 40  
     private OptimizedRequestContext()
 41  0
     {
 42  
         // unused
 43  0
     }
 44  
 
 45  
     /**
 46  
      * Set an event for out-of-scope thread access.  Unsafe: use only when known to be single threaded.
 47  
      *
 48  
      * @param event - the event to set
 49  
      * @return The event set
 50  
      */
 51  
     public static MuleEvent unsafeSetEvent(MuleEvent event)
 52  
     {
 53  0
         documentUnsafeCall("unsafeSetEvent");
 54  0
         return RequestContext.internalSetEvent(event);
 55  
     }
 56  
 
 57  
     /**
 58  
      * Set an event for out-of-scope thread access.  Critical: thread safety known to be required
 59  
      *
 60  
      * @param event - the event to set
 61  
      * @return A new mutable copy of the event set
 62  
      */
 63  
     public static MuleEvent criticalSetEvent(MuleEvent event)
 64  
     {
 65  0
         return RequestContext.internalSetEvent(RequestContext.newEvent(event, RequestContext.SAFE));
 66  
     }
 67  
 
 68  
     /**
 69  
      * Sets a new message payload in the RequestContext but maintains all other
 70  
      * properties (session, endpoint, synchronous, etc.) from the previous event.
 71  
      * Unsafe: use only when known to be single threaded
 72  
      *
 73  
      * @param message - the new message payload
 74  
      * @return The message set
 75  
      */
 76  
     public static MuleMessage unsafeRewriteEvent(MuleMessage message)
 77  
     {
 78  0
         documentUnsafeCall("unsafeRewriteEvent");
 79  0
         return RequestContext.internalRewriteEvent(message, RequestContext.UNSAFE);
 80  
     }
 81  
 
 82  
     private static void documentUnsafeCall(String message)
 83  
     {
 84  
         if (DOCUMENT_UNSAFE_CALLS)
 85  
         {
 86  
             logger.debug(message, new Exception(message));
 87  
         }
 88  0
     }
 89  
     
 90  
 }