// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/model/Version.java
// public class Version {
//     public static final String BREWING_V1 = "application/vnd.io.spring.cloud.brewing.v1+json";
//     public static final String PRESENTING_V1 = "application/vnd.io.spring.cloud.presenting.v1+json";
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/model/Wort.java
// @Data
// public class Wort {
//     private int wort;
// 
//     public Wort(int wort) {
//         this.wort = wort;
//     }
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/TestConfigurationHolder.java
// public static final ThreadLocal<TestConfigurationHolder> TEST_CONFIG = new ThreadLocal<>();
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/TestRequestEntityBuilder.java
// public static TestRequestEntityBuilder requestEntity() {
// 	return new TestRequestEntityBuilder();
// }


import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import io.spring.cloud.samples.brewery.common.model.Version;
import io.spring.cloud.samples.brewery.common.model.Wort;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.http.HttpMethod;
import org.springframework.http.RequestEntity;
import org.springframework.web.client.AsyncRestTemplate;
import org.springframework.web.client.RestTemplate;
import java.net.URI;
import static io.spring.cloud.samples.brewery.common.TestConfigurationHolder.TEST_CONFIG;
import static io.spring.cloud.samples.brewery.common.TestConfigurationHolder.TestCommunicationType.FEIGN;
import static io.spring.cloud.samples.brewery.common.TestRequestEntityBuilder.requestEntity;
package io.spring.cloud.samples.brewery.bottling;




@Slf4j
class BottlerService {

    private final BottlingWorker bottlingWorker;
    private final PresentingClient presentingClient;
    private final RestTemplate restTemplate;
    private final AsyncRestTemplate asyncRestTemplate;
    private final Tracer tracer;

    public BottlerService(BottlingWorker bottlingWorker, PresentingClient presentingClient,
                          RestTemplate restTemplate, AsyncRestTemplate asyncRestTemplate, Tracer tracer) {
        this.bottlingWorker = bottlingWorker;
        this.presentingClient = presentingClient;
        this.restTemplate = restTemplate;
        this.asyncRestTemplate = asyncRestTemplate;
        this.tracer = tracer;
    }

    /**
     * [SLEUTH] HystrixCommand - Javanica integration
     */
    @HystrixCommand
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/model/Version.java
// public class Version {
//     public static final String BREWING_V1 = "application/vnd.io.spring.cloud.brewing.v1+json";
//     public static final String PRESENTING_V1 = "application/vnd.io.spring.cloud.presenting.v1+json";
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/model/Wort.java
// @Data
// public class Wort {
//     private int wort;
// 
//     public Wort(int wort) {
//         this.wort = wort;
//     }
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/TestConfigurationHolder.java
// public static final ThreadLocal<TestConfigurationHolder> TEST_CONFIG = new ThreadLocal<>();
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/TestRequestEntityBuilder.java
// public static TestRequestEntityBuilder requestEntity() {
// 	return new TestRequestEntityBuilder();
// }


// Path: brewing/src/main/java/io/spring/cloud/samples/brewery/bottling/BottlerService.java
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import io.spring.cloud.samples.brewery.common.model.Version;
import io.spring.cloud.samples.brewery.common.model.Wort;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.sleuth.Span;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.http.HttpMethod;
import org.springframework.http.RequestEntity;
import org.springframework.web.client.AsyncRestTemplate;
import org.springframework.web.client.RestTemplate;
import java.net.URI;
import static io.spring.cloud.samples.brewery.common.TestConfigurationHolder.TEST_CONFIG;
import static io.spring.cloud.samples.brewery.common.TestConfigurationHolder.TestCommunicationType.FEIGN;
import static io.spring.cloud.samples.brewery.common.TestRequestEntityBuilder.requestEntity;

package io.spring.cloud.samples.brewery.bottling;




@Slf4j
class BottlerService {

    private final BottlingWorker bottlingWorker;
    private final PresentingClient presentingClient;
    private final RestTemplate restTemplate;
    private final AsyncRestTemplate asyncRestTemplate;
    private final Tracer tracer;

    public BottlerService(BottlingWorker bottlingWorker, PresentingClient presentingClient,
                          RestTemplate restTemplate, AsyncRestTemplate asyncRestTemplate, Tracer tracer) {
        this.bottlingWorker = bottlingWorker;
        this.presentingClient = presentingClient;
        this.restTemplate = restTemplate;
        this.asyncRestTemplate = asyncRestTemplate;
        this.tracer = tracer;
    }

    /**
     * [SLEUTH] HystrixCommand - Javanica integration
     */
    @HystrixCommand
    void bottle(Wort wort, String processId) {