-
Notifications
You must be signed in to change notification settings - Fork 17
Configuration files
The XDI2 server uses the following configuration files:
This is the main configuration file of the XDI2 server.
Its purpose is to "mount" messaging containers and messaging container factories at the specified URLs, where they are exposed as XDI endpoints that can receive and process incoming XDI messages.
Its basic structure is as follows:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<!-- XDI ENDPOINT REGISTRY AND TRANSPORT -->
<bean id="UriMessagingContainerRegistry" class="xdi2.transport.registry.impl.uri.UriMessagingContainerRegistry" init-method="init" destroy-method="shutdown" />
<bean id="HttpTransport" class="xdi2.transport.impl.http.HttpTransport" init-method="init" destroy-method="shutdown">
<property name="uriMessagingContainerRegistry" ref="UriMessagingContainerRegistry" />
<property name="interceptors">
<util:list>
<bean class="xdi2.transport.impl.http.interceptor.impl.DebugHttpTransportInterceptor" />
<bean class="xdi2.transport.impl.http.interceptor.impl.StatusHttpTransportInterceptor" />
</util:list>
</property>
</bean>
<bean id="WebSocketTransport" class="xdi2.transport.impl.websocket.WebSocketTransport" init-method="init" destroy-method="shutdown">
<property name="uriMessagingContainerRegistry" ref="UriMessagingContainerRegistry" />
<property name="endpointPath" value="/xdi/" />
</bean>
<!-- SPRING -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="xdi2.transport.spring.XDI2SpringConverter" />
</list>
</property>
</bean>
<!-- CONFIGURE MESSAGING TARGETS AND MESSAGING TARGET FACTORIES HERE -->
</beans>
For more information, see:
This configuration file is used if the server is started as a web application (see Startup and shutdown). It should look as follows:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>xdi2-transport-http</display-name>
<!-- XDI SERVLET -->
<servlet>
<servlet-name>EndpointServlet</servlet-name>
<servlet-class>xdi2.transport.impl.http.impl.servlet.EndpointServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EndpointServlet</servlet-name>
<url-pattern>/*</url-pattern>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- LISTENERS -->
<listener>
<listener-class>xdi2.transport.impl.http.impl.servlet.PluginsLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>xdi2.transport.impl.websocket.impl.listener.WebSocketsListener</listener-class>
</listener>
</web-app>
The "root path" of the server may be modified by adjusting the <url-pattern /> as necessary.
Other than that, no change to this file should be necessary under normal circumstances.
This configuration file is used if the server is started in standalone or embedded mode (see Startup and shutdown). It should look as follows:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<bean id="servletHolder" class="org.eclipse.jetty.servlet.ServletHolder">
<property name="servlet" ref="EndpointServlet" />
<property name="name" value="EndpointServlet" />
</bean>
<bean id="servletMapping" class="org.eclipse.jetty.servlet.ServletMapping">
<property name="servletName" value="EndpointServlet" />
<property name="pathSpec" value="/xdi/*" />
</bean>
<bean id="servletHandler" class="org.eclipse.jetty.servlet.ServletHandler">
<property name="servlets" ref="servletHolder" />
<property name="servletMappings" ref="servletMapping" />
</bean>
<bean id="servletContextHandler" class="org.eclipse.jetty.servlet.ServletContextHandler">
<property name="servletHandler" ref="servletHandler" />
<property name="contextPath" value="/" />
</bean>
<bean id="server" class="org.eclipse.jetty.server.Server">
<property name="connectors">
<util:list>
<bean id="Connector" class="org.eclipse.jetty.server.nio.NetworkTrafficSelectChannelConnector">
<constructor-arg ref="server" />
<property name="port" value="8080" />
</bean>
</util:list>
</property>
<property name="handler" ref="servletContextHandler" />
</bean>
<bean id="XDIStandaloneServer" class="xdi2.server.impl.standalone.XDIStandaloneServer">
<property name="server" ref="server" />
<property name="endpointServlet" ref="EndpointServlet" />
</bean>
<bean id="EndpointServlet" class="xdi2.transport.impl.http.impl.servlet.EndpointServlet" init-method="init" destroy-method="destroy" />
</beans>
This work is licensed under a Creative Commons Attribution 4.0 International License.