com.teradata.appcenter.application.MesosFrameworkApplication.java Source code

Java tutorial

Introduction

Here is the source code for com.teradata.appcenter.application.MesosFrameworkApplication.java

Source

package com.teradata.appcenter.application;

import org.hibernate.SessionFactory;
import org.hibernate.jpa.HibernateEntityManagerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.orm.jpa.EntityScan;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.orm.hibernate4.HibernateTransactionManager;

import com.google.common.base.Predicate;
import com.teradata.appcenter.service.MyFramework;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@SpringBootApplication
@EnableSwagger2
@ComponentScan(basePackages = { "com.teradata.appcenter" })
@EntityScan("com.teradata.appcenter.entity")
public class MesosFrameworkApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(MesosFrameworkApplication.class, args);
        context.getBean(MyFramework.class).init();
    }

    @Bean
    public Docket appApi() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("Mesos fwk API Latest")
                .useDefaultResponseMessages(false).apiInfo(apiInfo()).select().paths(new Predicate<String>() {
                    @Override
                    public boolean apply(String input) {
                        return input.startsWith("/tasks");
                    }
                }).build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("Mesos fwk API").description("API for mesos fwk")
                .termsOfServiceUrl("http://uda.io").contact("appcenter").license("Git Hub")
                .licenseUrl("https://github.td.teradata.com/appcenter/app-service").version("1.0").build();
    }

    @Bean
    public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) {
        return hemf.getSessionFactory();
    }

    @Bean
    public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) {
        HibernateTransactionManager transactionManager = new HibernateTransactionManager(sessionFactory);

        return transactionManager;
    }

}