// Path: breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/client/TurbineTenacityClient.java
// public interface TurbineTenacityClient {
//     Optional<Collection<String>> getTenacityPropertyKeys(Instance instance);
// 
//     Optional<TenacityConfiguration> getTenacityConfiguration(Instance instance, TenacityPropertyKey key);
// 
//     Optional<Collection<CircuitBreaker>> getCircuitBreakers(Instance instance);
// 
//     Optional<CircuitBreaker> getCircuitBreaker(Instance instance, TenacityPropertyKey key);
// 
//     Optional<CircuitBreaker> modifyCircuitBreaker(Instance instance,
//                                                   TenacityPropertyKey key,
//                                                   CircuitBreaker.State state);
// 
//     static URI toUri(Instance instance) {
//         final String rawHostname = instance.getHostname().trim();
//         if (rawHostname.startsWith("http")) {
//             return URI.create(rawHostname);
//         } else {
//             return URI.create("http://" + rawHostname);
//         }
//     }
// }


import com.netflix.turbine.discovery.Instance;
import com.yammer.breakerbox.turbine.client.TurbineTenacityClient;
import com.yammer.tenacity.core.TenacityCommand;
import java.util.Collection;
import java.util.Optional;
package com.yammer.breakerbox.service.tenacity;



public class TenacityPoller extends TenacityCommand<Optional<Collection<String>>> {
    public static class Factory {
// Path: breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/client/TurbineTenacityClient.java
// public interface TurbineTenacityClient {
//     Optional<Collection<String>> getTenacityPropertyKeys(Instance instance);
// 
//     Optional<TenacityConfiguration> getTenacityConfiguration(Instance instance, TenacityPropertyKey key);
// 
//     Optional<Collection<CircuitBreaker>> getCircuitBreakers(Instance instance);
// 
//     Optional<CircuitBreaker> getCircuitBreaker(Instance instance, TenacityPropertyKey key);
// 
//     Optional<CircuitBreaker> modifyCircuitBreaker(Instance instance,
//                                                   TenacityPropertyKey key,
//                                                   CircuitBreaker.State state);
// 
//     static URI toUri(Instance instance) {
//         final String rawHostname = instance.getHostname().trim();
//         if (rawHostname.startsWith("http")) {
//             return URI.create(rawHostname);
//         } else {
//             return URI.create("http://" + rawHostname);
//         }
//     }
// }


// Path: breakerbox-service/src/main/java/com/yammer/breakerbox/service/tenacity/TenacityPoller.java
import com.netflix.turbine.discovery.Instance;
import com.yammer.breakerbox.turbine.client.TurbineTenacityClient;
import com.yammer.tenacity.core.TenacityCommand;
import java.util.Collection;
import java.util.Optional;

package com.yammer.breakerbox.service.tenacity;



public class TenacityPoller extends TenacityCommand<Optional<Collection<String>>> {
    public static class Factory {
        private final TurbineTenacityClient tenacityClient;