// Path: brewing/src/main/java/io/spring/cloud/samples/brewery/common/MaturingService.java
// public interface MaturingService {
//     void distributeIngredients(Ingredients ingredients, String processId,
//         String testCommunicationType);
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/events/EventGateway.java
// @MessagingGateway
// public interface EventGateway {
// 
// 	@Gateway(requestChannel=EventSource.OUTPUT)
// 	void emitEvent(Event event);
// 
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/TestConfiguration.java
// @Configuration
// @ComponentScan
// @IntegrationComponentScan
// public class TestConfiguration {
// 
// 	@Bean
// 	public FilterRegistrationBean correlationIdFilter() {
// 		return new FilterRegistrationBean(new TestConfigurationSettingFilter());
// 	}
// 
// 	@Bean
// 	Sampler defaultSampler() {
// 		return new AlwaysSampler();
// 	}
// 
// 	@PostConstruct
// 	public void setup() {
// 		ExceptionUtils.setFail(true);
// 	}
// 
// }


import io.spring.cloud.samples.brewery.common.MaturingService;
import io.spring.cloud.samples.brewery.common.events.EventGateway;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.client.AsyncRestTemplate;
import org.springframework.web.client.RestTemplate;
import io.spring.cloud.samples.brewery.common.TestConfiguration;
package io.spring.cloud.samples.brewery.aggregating;



@Configuration
@Import(TestConfiguration.class)
class AggregationConfiguration {

	@Bean
	IngredientsProperties ingredientsProperties() {
		return new IngredientsProperties();
	}

	@Bean
	AsyncRestTemplate asyncRestTemplate() {
		return new AsyncRestTemplate();
	}

	@Bean
	@LoadBalanced
	public RestTemplate loadBalancedRestTemplate() {
		return new RestTemplate();
	}

	@Bean
	MaturingServiceUpdater maturingServiceUpdater(IngredientsProperties ingredientsProperties,
												  IngredientWarehouse ingredientWarehouse,
// Path: brewing/src/main/java/io/spring/cloud/samples/brewery/common/MaturingService.java
// public interface MaturingService {
//     void distributeIngredients(Ingredients ingredients, String processId,
//         String testCommunicationType);
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/events/EventGateway.java
// @MessagingGateway
// public interface EventGateway {
// 
// 	@Gateway(requestChannel=EventSource.OUTPUT)
// 	void emitEvent(Event event);
// 
// }
// 
// Path: common/src/main/java/io/spring/cloud/samples/brewery/common/TestConfiguration.java
// @Configuration
// @ComponentScan
// @IntegrationComponentScan
// public class TestConfiguration {
// 
// 	@Bean
// 	public FilterRegistrationBean correlationIdFilter() {
// 		return new FilterRegistrationBean(new TestConfigurationSettingFilter());
// 	}
// 
// 	@Bean
// 	Sampler defaultSampler() {
// 		return new AlwaysSampler();
// 	}
// 
// 	@PostConstruct
// 	public void setup() {
// 		ExceptionUtils.setFail(true);
// 	}
// 
// }


// Path: brewing/src/main/java/io/spring/cloud/samples/brewery/aggregating/AggregationConfiguration.java
import io.spring.cloud.samples.brewery.common.MaturingService;
import io.spring.cloud.samples.brewery.common.events.EventGateway;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.client.AsyncRestTemplate;
import org.springframework.web.client.RestTemplate;
import io.spring.cloud.samples.brewery.common.TestConfiguration;

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



@Configuration
@Import(TestConfiguration.class)
class AggregationConfiguration {

	@Bean
	IngredientsProperties ingredientsProperties() {
		return new IngredientsProperties();
	}

	@Bean
	AsyncRestTemplate asyncRestTemplate() {
		return new AsyncRestTemplate();
	}

	@Bean
	@LoadBalanced
	public RestTemplate loadBalancedRestTemplate() {
		return new RestTemplate();
	}

	@Bean
	MaturingServiceUpdater maturingServiceUpdater(IngredientsProperties ingredientsProperties,
												  IngredientWarehouse ingredientWarehouse,
												  MaturingService maturingService,