package org.eclipse.emf.cdo.doc.connectors; | |
import org.eclipse.emf.cdo.doc.connectors.CreatingTransportConnections.AddConfigurationParameters.SetBufferCapacity; | |
import org.eclipse.emf.cdo.doc.connectors.Snippets.JMSConnector; | |
import org.eclipse.emf.cdo.doc.sessions.ConnectingToRepositories.SetConnectionTimeout; | |
import org.eclipse.net4j.Net4jUtil; | |
import org.eclipse.net4j.acceptor.IAcceptor; | |
import org.eclipse.net4j.channel.ChannelException; | |
import org.eclipse.net4j.connector.IConnector; | |
import org.eclipse.net4j.http.server.IHTTPAcceptor; | |
import org.eclipse.net4j.jvm.IJVMAcceptor; | |
import org.eclipse.net4j.protocol.IProtocol; | |
import org.eclipse.net4j.tcp.ITCPAcceptor; | |
import org.eclipse.net4j.tcp.TCPUtil; | |
import org.eclipse.net4j.util.container.IManagedContainer; | |
import org.eclipse.net4j.util.container.ManagedContainer; | |
import org.eclipse.net4j.util.factory.Factory; | |
import org.eclipse.net4j.util.factory.ProductCreationException; | |
import org.eclipse.net4j.util.security.INegotiationContext; | |
import org.eclipse.spi.net4j.Connector; | |
import org.eclipse.spi.net4j.InternalChannel; | |
import java.nio.channels.SocketChannel; | |
/** | |
* Creating Transport Connections | |
* <p> | |
* This tutorial outlines the steps needed to create a Net4j {@link IConnector} and connect it to an {@link IAcceptor}. | |
* <p> | |
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eu nibh in erat dapibus accumsan. Aenean cursus | |
* lacinia dictum. Mauris non sem sapien. Vivamus sem ante, posuere a rhoncus ac, varius in nisi. Sed pulvinar urna ac | |
* est iaculis mattis. Ut eget massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien sollicitudin nisi | |
* vestibulum nec vulputate urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu erat ac | |
* risus ultricies mattis vel nec nunc. Proin venenatis tellus sit amet dui congue nec vehicula urna sollicitudin. Donec | |
* porta, risus eu auctor semper, ante lectus lobortis sem, a luctus diam dui eu sapien. Sed at metus et dolor tincidunt | |
* convallis id a est. Donec quam nisl, scelerisque a feugiat id, mattis vel urna. Suspendisse facilisis, libero ac | |
* ultricies dictum, mi sem feugiat purus, ac aliquam metus purus sed leo. Sed a viverra metus. | |
* | |
* @author Eike Stepper | |
*/ | |
public class CreatingTransportConnections | |
{ | |
/** | |
* Select a Transport Type | |
* <p> | |
* Currently supported transport types are: | |
* <ul> | |
* <li><b>JVM</b> to connect to an {@link IJVMAcceptor} in the same Java Virtual Machine. | |
* <li><b>TCP</b> to connect to an {@link ITCPAcceptor} by means of a {@link SocketChannel}. | |
* <li><b>SSL</b> an extension to the TCP transport that adds TLS/SSL security. | |
* <li><b>HTTP</b> to connect to an {@link IHTTPAcceptor} that is made available by a servlet. | |
* </ul> | |
* Continue with {@link SetConnectionTimeout}. | |
* | |
* @see SetBufferCapacity | |
*/ | |
public class SelectTransportType | |
{ | |
} | |
/** | |
* Setup a Wiring Container | |
* <p> | |
* Example: {@link Snippets#snippet1()} | |
* <p> | |
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eu nibh in erat dapibus accumsan. Aenean cursus | |
* lacinia dictum. Mauris non sem sapien. Vivamus sem ante, posuere a rhoncus ac, varius in nisi. Sed pulvinar urna ac | |
* est iaculis mattis. Ut eget massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien sollicitudin | |
* nisi vestibulum nec vulputate urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat eget. Integer eu | |
* erat ac risus ultricies mattis vel nec nunc. Proin venenatis tellus sit amet dui congue nec vehicula urna | |
* sollicitudin. Donec porta, risus eu auctor semper, ante lectus lobortis sem, a luctus diam dui eu sapien. Sed at | |
* metus et dolor tincidunt convallis id a est. Donec quam nisl, scelerisque a feugiat id, mattis vel urna. | |
* Suspendisse facilisis, libero ac ultricies dictum, mi sem feugiat purus, ac aliquam metus purus sed leo. Sed a | |
* viverra metus. | |
*/ | |
public class SetupWiringContainer | |
{ | |
} | |
/** | |
* Add Configuration Parameters | |
*/ | |
public class AddConfigurationParameters | |
{ | |
/** | |
* Set the Buffer Capacity | |
* <p> | |
* Example: {@link JMSConnector} | |
*/ | |
public class SetBufferCapacity | |
{ | |
} | |
/** | |
* Set the Connection Timeout | |
* <p> | |
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eu nibh in erat dapibus accumsan. Aenean cursus | |
* lacinia dictum. Mauris non sem sapien. Vivamus sem ante, posuere a rhoncus ac, varius in nisi. Sed pulvinar urna | |
* ac est iaculis mattis. Ut eget massa felis, nec volutpat purus. In id aliquet mi. Duis euismod sapien | |
* sollicitudin nisi vestibulum nec vulputate urna euismod. Proin pulvinar ornare nunc, ac auctor elit placerat | |
* eget. Integer eu erat ac risus ultricies mattis vel nec nunc. Proin venenatis tellus sit amet dui congue nec | |
* vehicula urna sollicitudin. Donec porta, risus eu auctor semper, ante lectus lobortis sem, a luctus diam dui eu | |
* sapien. Sed at metus et dolor tincidunt convallis id a est. Donec quam nisl, scelerisque a feugiat id, mattis vel | |
* urna. Suspendisse facilisis, libero ac ultricies dictum, mi sem feugiat purus, ac aliquam metus purus sed leo. | |
* Sed a viverra metus. | |
*/ | |
public class SetConnectionTimeout | |
{ | |
} | |
} | |
} | |
// ----------------------------------------------------------------------------- // | |
class Snippets | |
{ | |
public void snippet1() | |
{ | |
// Create a dedicated container instance | |
IManagedContainer container = new ManagedContainer(); | |
// Register your custom factories | |
container.registerFactory(new Factory("org.eclipse.net4j.connectors", "jms") | |
{ | |
public IConnector create(String description) throws ProductCreationException | |
{ | |
return new JMSConnector(description); | |
} | |
}); | |
// Use utility classes to register additional factories | |
Net4jUtil.prepareContainer(container); | |
TCPUtil.prepareContainer(container); | |
// Do not forget to activate the container before you use it | |
container.activate(); | |
} | |
/** | |
* @example | |
*/ | |
public class JMSConnector extends Connector | |
{ | |
public JMSConnector(String description) | |
{ | |
} | |
public void multiplexChannel(InternalChannel channel) | |
{ | |
} | |
// snip | |
@Override | |
protected INegotiationContext createNegotiationContext() | |
{ | |
return null; | |
} | |
@Override | |
protected void registerChannelWithPeer(short channelID, long timeout, IProtocol<?> protocol) | |
throws ChannelException | |
{ | |
} | |
// snap | |
} | |
} |