/*
* Copyright 2013 the original author or authors.
*
* 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 org.springframework.batch.admin.web;
import java.util.ArrayList;
import java.util.List;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.accept.ContentNegotiationManager;
import org.springframework.web.filter.HttpPutFormContentFilter;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.view.ContentNegotiatingViewResolver;
/**
* Takes care of infrastructure setup for the web/rest layer.
*
* @author Eric Bottard
* @author David Turanski
* @author Andrew Eisenberg
* @author Scott Andrews
* @author Gunnar Hillert
* @since 2.0
*/
@Configuration
@Import(RestControllerAdvice.class)
public class RestConfiguration {
@Bean
public HttpPutFormContentFilter putFilter() {
return new HttpPutFormContentFilter();
}
@Bean
public BatchJobExecutionsController batchJobExecutionsController() {
return new BatchJobExecutionsController();
}
@Bean
public BatchJobInstancesController batchJobInstancesController() {
return new BatchJobInstancesController();
}
@Bean
public BatchJobsController batchJobsController() {
return new BatchJobsController();
}
@Bean
public BatchFileController batchFileController() {
return new BatchFileController();
}
@Bean
public BatchStepExecutionsController batchStepExecutionsController() {
return new BatchStepExecutionsController();
}
@Bean
public ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager) {
// Define the view resolvers
List<ViewResolver> resolvers = new ArrayList<ViewResolver>();
resolvers.add(new JsonViewResolver());
// Create the CNVR plugging in the resolvers and the content-negotiation manager
ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
resolver.setViewResolvers(resolvers);
resolver.setContentNegotiationManager(manager);
return resolver;
}
}