package fr.sii.ogham.spring.xml;
import org.springframework.core.env.Environment;
import fr.sii.ogham.core.builder.MessagingBuilder;
import fr.sii.ogham.core.builder.MessagingServiceBuilder;
import fr.sii.ogham.core.service.MessagingService;
import fr.sii.ogham.spring.env.SpringEnvironmentPropertyResolver;
/**
* Decorator builder used for helping integration with Spring.
*
* @author Aurélien Baudet
*
*/
public class SpringXMLMessagingBuilder implements MessagingServiceBuilder {
Environment environment;
MessagingBuilder builder;
/**
* Default constructor to let the user use properties instead of constructor
*/
public SpringXMLMessagingBuilder() {
this(null);
}
/**
* Constructor with the required environment dependency
*
* @param environment
* the Spring environment required to read configuration
* properties
*/
public SpringXMLMessagingBuilder(Environment environment) {
this(environment, new MessagingBuilder().useAllDefaults(new SpringEnvironmentPropertyResolver(environment)));
}
/**
* Constructor with the required environment dependency, optional bridge and
* optional builder.
*
* @param environment
* the Spring environment required to read configuration
* properties
* @param builder
* the specific builder to use
*/
public SpringXMLMessagingBuilder(Environment environment, MessagingBuilder builder) {
super();
this.environment = environment;
this.builder = builder;
}
@Override
public MessagingService build() {
return builder.build();
}
public void setEnvironment(Environment environment) {
this.environment = environment;
}
public void setBuilder(MessagingBuilder builder) {
this.builder = builder;
}
}