com.vtxii.smallstuff.etl.filewatcher.Application.java Source code

Java tutorial

Introduction

Here is the source code for com.vtxii.smallstuff.etl.filewatcher.Application.java

Source

/**
* Copyright 2015 VTXii
*
*   Licensed under the Apache License, Version 2.0 (the "License");
*   you may not use this file except in compliance with the License.
*   You may obtain a copy of the License at
*
*       http://www.apache.org/licenses/LICENSE-2.0
*
*   Unless required by applicable law or agreed to in writing, software
*   distributed under the License is distributed on an "AS IS" BASIS,
*   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*   See the License for the specific language governing permissions and
*   limitations under the License.
*/

package com.vtxii.smallstuff.etl.filewatcher;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ServletContextInitializer;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Bean
    protected ServletContextListener listener() {
        return new ContextListener();
    }

    // Parameters for watching files
    // TODO:  improve configuration mechanism - hard coding in the class is not cool
    @Bean
    public ServletContextInitializer initializer() {
        return new ServletContextInitializer() {
            @Override
            public void onStartup(ServletContext servletContext) throws ServletException {
                servletContext.setInitParameter("processor-class-name",
                        "com.vtxii.smallstuff.etl.filewatcher.DefaultProcessor");
                servletContext.setInitParameter("filter-class-name",
                        "com.vtxii.smallstuff.etl.filewatcher.DefaultFilter");
                servletContext.setInitParameter("directories", "/home/devuser/test;/home/devuser/test2");
                servletContext.setInitParameter("polling-interval", "10");
            }
        };
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
}