Coverage Report - org.apache.commons.pipeline.driver.DedicatedThreadStageDriverFactory
 
Classes in this File Line Coverage Branch Coverage Complexity
DedicatedThreadStageDriverFactory
53%
10/19
N/A
0
 
 1  
 /*
 2  
  * Licensed to the Apache Software Foundation (ASF) under one
 3  
  * or more contributor license agreements.  See the NOTICE file
 4  
  * distributed with this work for additional information
 5  
  * regarding copyright ownership.  The ASF licenses this file
 6  
  * to you under the Apache License, Version 2.0 (the
 7  
  * "License"); you may not use this file except in compliance
 8  
  * with the License.  You may obtain a copy of the License at
 9  
  * 
 10  
  *     http://www.apache.org/licenses/LICENSE-2.0
 11  
  * 
 12  
  * Unless required by applicable law or agreed to in writing,
 13  
  * software distributed under the License is distributed on an
 14  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 15  
  * KIND, either express or implied.  See the License for the
 16  
  * specific language governing permissions and limitations
 17  
  * under the License.    
 18  
  */ 
 19  
 
 20  
 
 21  
 package org.apache.commons.pipeline.driver;
 22  
 
 23  
 import java.util.concurrent.BlockingQueue;
 24  
 import java.util.concurrent.LinkedBlockingQueue;
 25  
 import org.apache.commons.pipeline.Stage;
 26  
 import org.apache.commons.pipeline.StageContext;
 27  
 import org.apache.commons.pipeline.StageDriver;
 28  
 import org.apache.commons.pipeline.StageDriverFactory;
 29  
 import org.apache.commons.pipeline.util.BlockingQueueFactory;
 30  
 
 31  
 /**
 32  
  * This factory is used to create DedicatedThreadStageDriver instances configured
 33  
  * to run specific stages.
 34  
  *
 35  
  */
 36  
 public class DedicatedThreadStageDriverFactory implements StageDriverFactory {
 37  
     
 38  
     /** Creates a new instance of DedicatedThreadStageDriverFactory */
 39  4
     public DedicatedThreadStageDriverFactory() {
 40  4
     }
 41  
     
 42  
     /**
 43  
      * Creates the new {@link DedicatedThreadStageDriver} based upon the configuration
 44  
      * of this factory instance
 45  
      * @param stage The stage to be run by the newly created driver
 46  
      * @param context The context in which the stage will be run
 47  
      * @return the newly created driver
 48  
      */
 49  
     public StageDriver createStageDriver(Stage stage, StageContext context) {
 50  
         try {
 51  13
             return new DedicatedThreadStageDriver(stage, context, queueFactory.createQueue(), timeout, faultTolerance);
 52  0
         } catch (Exception e) {
 53  0
             throw new IllegalStateException("Instantiation of driver failed due to illegal factory state.", e);
 54  
         }
 55  
     }
 56  
         
 57  
     /**
 58  
      * Holds value of property timeout.
 59  
      */
 60  4
     private long timeout = 500;
 61  
     
 62  
     /**
 63  
      * Timeout (in milliseconds) for queue polling to ensure deadlock cannot 
 64  
      * occur on thread termination. Default value is 500 ms.
 65  
      * @return Value of property timeout.
 66  
      */
 67  
     public long getTimeout() {
 68  0
         return this.timeout;
 69  
     }
 70  
     
 71  
     /**
 72  
      * Setter for property timeout.
 73  
      * @param timeout New value of property timeout.
 74  
      */
 75  
     public void setTimeout(long timeout) {
 76  0
         this.timeout = timeout;
 77  0
     }
 78  
     
 79  
     /**
 80  
      * Holds value of property faultTolerance.
 81  
      */
 82  4
     private FaultTolerance faultTolerance = FaultTolerance.NONE;
 83  
     
 84  
     /**
 85  
      * Getter for property faultTolerance. See {@link FaultTolerance} for valid values
 86  
      * and enumation meanings.
 87  
      * @return Value of property faultTolerance.
 88  
      */
 89  
     public FaultTolerance getFaultTolerance() {
 90  0
         return this.faultTolerance;
 91  
     }
 92  
     
 93  
     /**
 94  
      * Setter for property faultTolerance.
 95  
      * 
 96  
      * @param faultTolerance New value of property faultTolerance.
 97  
      */
 98  
     public void setFaultTolerance(FaultTolerance faultTolerance) {
 99  1
         this.faultTolerance = faultTolerance;
 100  1
     }
 101  
     
 102  
     /**
 103  
      * Convenience setter for property faultTolerance for use by Digester.
 104  
      * 
 105  
      * @param level New value of property level ("ALL","CHECKED", or "NONE").
 106  
      */
 107  
     public void setFaultToleranceLevel(String level) {
 108  0
         this.faultTolerance = FaultTolerance.valueOf(level);
 109  0
     }
 110  
 
 111  
     /**
 112  
      * Holds value of property queueFactory.
 113  
      */
 114  4
     private BlockingQueueFactory<?> queueFactory = new BlockingQueueFactory.LinkedBlockingQueueFactory();
 115  
 
 116  
     /**
 117  
      * Getter for property queueFactory.
 118  
      * @return Value of property queueFactory.
 119  
      */
 120  
     public BlockingQueueFactory<?> getQueueFactory() {
 121  0
         return this.queueFactory;
 122  
     }
 123  
 
 124  
     /**
 125  
      * Setter for property queueFactory.
 126  
      * @param queueFactory New value of property queueFactory.
 127  
      */
 128  
     public void setQueueFactory(BlockingQueueFactory<?> queueFactory) {
 129  1
         this.queueFactory = queueFactory;
 130  1
     }    
 131  
 }