All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dspace.app.configuration.OAIWebConfig Maven / Gradle / Ivy

There is a newer version: 8.0
Show newest version
/**
 * The contents of this file are subject to the license and copyright
 * detailed in the LICENSE and NOTICE files at the root of the source
 * tree and available online at
 *
 * http://www.dspace.org/license/
 */
package org.dspace.app.configuration;
import static java.lang.Integer.MAX_VALUE;

import org.dspace.xoai.app.BasicConfiguration;
import org.dspace.xoai.services.api.xoai.ItemRepositoryResolver;
import org.dspace.xoai.services.impl.xoai.DSpaceItemRepositoryResolver;
import org.jtwig.spring.JtwigViewResolver;
import org.jtwig.spring.boot.config.JtwigViewResolverConfigurer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * OAI-PMH webapp configuration. Replaces the old web.xml
 * 

* This @Configuration class is automatically discovered by Spring Boot via a @ComponentScan * on the org.dspace.app.configuration package. *

* * * @author Tim Donohue */ @Configuration // Import additional configuration and beans from BasicConfiguration @Import(BasicConfiguration.class) // Scan for controllers in this package @ComponentScan("org.dspace.xoai.controller") public class OAIWebConfig extends WebMvcConfigurerAdapter implements JtwigViewResolverConfigurer { // Path where OAI is deployed. Defaults to "oai" // NOTE: deployment on this path is handled by org.dspace.xoai.controller.DSpaceOAIDataProvider @Value("${oai.path:oai}") private String oaiPath; private static final String TWIG_HTML_EXTENSION = ".twig.html"; private static final String VIEWS_LOCATION = "classpath:/templates/"; /** * Ensure all resources under src/main/resources/static/ directory are available * off the /{oai.path}/static subpath **/ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/" + oaiPath + "/static/**") .addResourceLocations("classpath:/static/") .setCachePeriod(MAX_VALUE); } /** * Configure the Jtwig template engine for Spring Boot * Ensures Jtwig looks for templates in proper location with proper extension **/ @Override public void configure(JtwigViewResolver viewResolver) { viewResolver.setPrefix(VIEWS_LOCATION); viewResolver.setSuffix(TWIG_HTML_EXTENSION); } @Bean public ItemRepositoryResolver xoaiItemRepositoryResolver() { return new DSpaceItemRepositoryResolver(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy