Esempio n. 1
0
 public static void main(String[] args) {
   CircuitBreaker atomicCircuitBreaker = new AtomicCircuitBreaker();
   IFn wrap =
       (IFn)
           atomicCircuitBreaker.wrap(
               new clojure.lang.AFn() {
                 public Object invoke(Object arg0) throws Exception {
                   if (arg0 == null) throw new IllegalArgumentException("null arg");
                   System.out.println("Invoked with: " + arg0);
                   return arg0;
                 }
               });
   succeed(atomicCircuitBreaker, wrap);
   fail(atomicCircuitBreaker, wrap);
   fail(atomicCircuitBreaker, wrap);
   fail(atomicCircuitBreaker, wrap);
   fail(atomicCircuitBreaker, wrap);
   fail(atomicCircuitBreaker, wrap);
   fail(atomicCircuitBreaker, wrap);
   sleep(1000);
   status(atomicCircuitBreaker);
   fail(atomicCircuitBreaker, wrap);
   sleep(5000);
   succeed(atomicCircuitBreaker, wrap);
 }
Esempio n. 2
0
 private static void fail(CircuitBreaker atomicCircuitBreaker, IFn wrap) {
   try {
     System.out.println(wrap.invoke(null));
     System.out.println(wrap.invoke(42));
   } catch (Exception e) {
     System.out.println(e.getMessage());
   } finally {
     status(atomicCircuitBreaker);
   }
 }