/[projects]/miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/CircuitBreaker.java
ViewVC logotype

Diff of /miscJava/CircuitBreaker/src/main/java/dk/thoerup/circuitbreaker/CircuitBreaker.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

CircuitBreaker/src/dk/thoerup/circuitbreaker/CircuitBreaker.java revision 1148 by torben, Fri Oct 1 11:40:30 2010 UTC miscJava/CircuitBreaker/src/dk/thoerup/circuitbreaker/CircuitBreaker.java revision 2448 by torben, Fri Mar 20 08:52:49 2015 UTC
# Line 4  package dk.thoerup.circuitbreaker; Line 4  package dk.thoerup.circuitbreaker;
4  import java.util.concurrent.ExecutorService;  import java.util.concurrent.ExecutorService;
5  import java.util.concurrent.Executors;  import java.util.concurrent.Executors;
6    
7    import dk.thoerup.circuitbreaker.config.BreakerConfig;
8    import dk.thoerup.circuitbreaker.config.StaticConfig;
9    import dk.thoerup.circuitbreaker.notification.NotiferHelper;
10  import dk.thoerup.circuitbreaker.notification.Notifier;  import dk.thoerup.circuitbreaker.notification.Notifier;
11  import dk.thoerup.circuitbreaker.notification.NullNotifier;  import dk.thoerup.circuitbreaker.notification.NullNotifier;
12    
# Line 57  public class CircuitBreaker{ Line 60  public class CircuitBreaker{
60          private ExecutorService executor = null;                  private ExecutorService executor = null;        
61          private Notifier notifier = new NullNotifier();          private Notifier notifier = new NullNotifier();
62                    
63          public CircuitBreaker(String name, int threshold, long timeoutMS) {          @Deprecated
64                  closed.setThreshold(threshold);          public CircuitBreaker(String name, int threshold, int timeoutMS) {
65                  open.setTimeout(timeoutMS);                  this(name, new StaticConfig(threshold, timeoutMS) );
66            }
67            
68            public CircuitBreaker(String name, BreakerConfig config) {
69                    closed.setThreshold(config);
70                    open.setTimeout(config);
71                                    
72                  this.name = name;                  this.name = name;
73                    
# Line 106  public class CircuitBreaker{ Line 114  public class CircuitBreaker{
114                          open.trip();                          open.trip();
115                          currentState = open;                          currentState = open;
116                                    
117                          notifier.sendNotification(name, event);                          notifier.sendNotification(this, event);
118                  }                  }
119          }                }      
120      }      }
# Line 115  public class CircuitBreaker{ Line 123  public class CircuitBreaker{
123          synchronized(this) {          synchronized(this) {
124                  if (currentState != halfOpen) { // TODO:Is this conditional necessary ??                  if (currentState != halfOpen) { // TODO:Is this conditional necessary ??
125                          currentState = halfOpen;                          currentState = halfOpen;
126                          notifier.sendNotification(name, Notifier.Event.BreakerAttemptReset);                          notifier.sendNotification(this, Notifier.Event.BreakerAttemptReset);
127                  }                  }
128          }          }
129                    
# Line 125  public class CircuitBreaker{ Line 133  public class CircuitBreaker{
133          synchronized(this) {          synchronized(this) {
134                  if (currentState != closed) { // TODO: Is this conditional necessary ??                  if (currentState != closed) { // TODO: Is this conditional necessary ??
135                          internalReset();                          internalReset();
136                          notifier.sendNotification(name, Notifier.Event.BreakerReset);                          notifier.sendNotification(this, Notifier.Event.BreakerReset);
137                  }                  }
138          }          }
139      }      }
# Line 187  public class CircuitBreaker{ Line 195  public class CircuitBreaker{
195          this.notifier = notifier;          this.notifier = notifier;
196      }      }
197            
198      public String getNotifierName() {      public String getNotifierName() {
199          return notifier.getClass().getName();          return NotiferHelper.getName(notifier);
200      }      }
201            
202      public synchronized ExecutorService getExecutor() {      public synchronized ExecutorService getExecutor() {

Legend:
Removed from v.1148  
changed lines
  Added in v.2448

  ViewVC Help
Powered by ViewVC 1.1.20