package ftp.broker;
import org.cloudfoundry.community.servicebroker.model.BrokerApiVersion;
import org.cloudfoundry.community.servicebroker.model.Catalog;
import org.cloudfoundry.community.servicebroker.model.Plan;
import org.cloudfoundry.community.servicebroker.model.ServiceDefinition;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.jdbc.datasource.SimpleDriverDataSource;
import javax.sql.DataSource;
import java.sql.Driver;
import java.util.Collections;
import java.util.List;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
Catalog catalog() {
List<Plan> plans = Collections.singletonList(new Plan("ftp-free", "ftp-free", "'Everybody gets an FTP!'",
Collections.singletonMap("plan-metadata", "plan-metadata-description"), true));
List<ServiceDefinition> serviceDefinitions = Collections.singletonList(
new ServiceDefinition("ftp", "ftp", "Apache Mina FTP", true, true, plans,
Collections.singletonList("ftp"),
Collections.emptyMap(),
Collections.emptyList(),
null));
return new Catalog(serviceDefinitions);
}
@Bean
BrokerApiVersion brokerApiVersion() {
return new BrokerApiVersion();
}
@Bean
RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
return rabbitTemplate;
}
}