package org.jivesoftware.openfire.spi; /** * Types of (socket-based, including HTTP) connections. * * This is an enumeration of the connections that are expected to be terminated by an instance of the Openfire instance, * and is used to define type-specific characteristics, including but not limited to: * <ul> * <li>Property-name definition</li> * <li>Applicable encryption policies</li> * <li>Identity & trust store configuration</li> * </ul> * * @author Guus der Kinderen, guus.der.kinderen@gmail.com */ public enum ConnectionType { /** * Socket-based server-to-server (XMPP federation) connectivity. */ SOCKET_S2S( "xmpp.socket.ssl.", null ), /** * Socket-based client connectivity. */ SOCKET_C2S( "xmpp.socket.ssl.client.", null ), /** * BOSH (HTTP-bind) based client connectivity. */ BOSH_C2S( "xmpp.bosh.ssl.client.", SOCKET_C2S ), /** * Openfire web-admin console. */ WEBADMIN( "admin.web.ssl.", SOCKET_S2S ), /** * Openfire External Component connectivity. */ COMPONENT( "xmpp.component.", SOCKET_S2S ), /** * Openfire Connection Manager (multiplexer) connectivity. */ CONNECTION_MANAGER( "xmpp.multiplex.", SOCKET_S2S ); String prefix; ConnectionType fallback; ConnectionType( String prefix, ConnectionType fallback ) { this.prefix = prefix; this.fallback = fallback; } /** * Returns the prefix used for the name of properties that are used to configure connections of this type. * @return A property name prefix (never null or an empty string). */ public String getPrefix() { return prefix; } /** * Returns a type from which configuration can be used, when configuration specific for this type is missing. * @return A configuration fallback, or null if no such fallback exists. */ public ConnectionType getFallback() { return fallback; } }