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

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

The 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 org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * SWORD webapp configuration. Replaces the old web.xml
 * 

* This @Configuration class is automatically discovered by Spring via a @ComponentScan. *

* All SWORD web configurations (beans) can be enabled or disabled by setting "sword-server.enabled" * to true or false, respectively (in your DSpace configuration). Default is "false". *

* All @Value annotated configurations below can also be overridden in your DSpace configuration. * * @author Tim Donohue */ @Configuration public class SWORDWebConfig { // Path where SWORD should be deployed (when enabled). Defaults to "sword" @Value("${sword-server.path:sword}") private String swordPath; // SWORD Server class. Defaults to "org.dspace.sword.DSpaceSWORDServer" @Value("${sword-server.class:org.dspace.sword.DSpaceSWORDServer}") private String serverClass; // SWORD Authentication Method. Defaults to "Basic" @Value("${sword-server.authentication-method:Basic}") private String authenticationMethod; /** * Initialize all required Context Parameters (i.e. in web.xml), based on configurations above. *

* This bean is only loaded when sword-server.enabled = true * @return ServletContextInitializer which includes all required params */ @Bean @ConditionalOnProperty("sword-server.enabled") public ServletContextInitializer swordv1ContextInitializer() { return servletContext -> { servletContext.setInitParameter("sword-server-class", serverClass); servletContext.setInitParameter("authentication-method", authenticationMethod); }; } // Servlet Beans. All of the below bean definitions map servlets to respond to specific URL patterns // These are the combined equivalent of and in web.xml // All beans are only loaded when sword-server.enabled = true @Bean @ConditionalOnProperty("sword-server.enabled") public ServletRegistrationBean swordv1ServiceDocumentBean() { ServletRegistrationBean bean = new ServletRegistrationBean( new org.purl.sword.server.ServiceDocumentServlet(), "/" + swordPath + "/servicedocument/*"); bean.setLoadOnStartup(1); return bean; } @Bean @ConditionalOnProperty("sword-server.enabled") public ServletRegistrationBean swordv1DepositBean() { ServletRegistrationBean bean = new ServletRegistrationBean( new org.purl.sword.server.DepositServlet(), "/" + swordPath + "/deposit/*"); bean.setLoadOnStartup(1); return bean; } @Bean @ConditionalOnProperty("sword-server.enabled") public ServletRegistrationBean swordv1MediaLinkBean() { ServletRegistrationBean bean = new ServletRegistrationBean( new org.purl.sword.server.AtomDocumentServlet(), "/" + swordPath + "/media-link/*"); bean.setLoadOnStartup(1); return bean; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy