[CDO] Standalone CDO client [message #1850377] |
Mon, 28 February 2022 05:48  |
Eclipse User |
|
|
|
Hi,
I'm trying to connect to a CDO server from a standalone main class:
OMPlatform.INSTANCE.setDebugging(true);
OMPlatform.INSTANCE.addLogHandler(PrintLogHandler.CONSOLE);
OMPlatform.INSTANCE.addTraceHandler(PrintTraceHandler.CONSOLE);
final IManagedContainer container = ContainerUtil.createContainer();
Net4jUtil.prepareContainer(container);
TCPUtil.prepareContainer(container);
CDONet4jUtil.prepareContainer(container);
container.activate();
final IConnector connector = Net4jUtil.getConnector(container, "tcp://localhost:2036");
final CDONet4jSessionConfiguration sessionConfiguration = CDONet4jUtil.createNet4jSessionConfiguration();
sessionConfiguration.setConnector(connector);
sessionConfiguration.setRepositoryName("repo");
sessionConfiguration.setCredentialsProvider(new PasswordCredentialsProvider("user", "password".toCharArray()));
final CDOSession session = sessionConfiguration.openNet4jSession();
session.options().setPassiveUpdateEnabled(true);
session.options().setPassiveUpdateMode(PassiveUpdateMode.ADDITIONS);
final CDOTransaction transaction = session.openTransaction();
This code is taken from the CDO standalone example. If I run it from a plugin project using the run as "Java Application" menu it runs fine with my target platform.
I used B3 aggregator to create a maven repository from p2 repositories from my target platform. I then created a maven project referencing the created maven repository and added the following dependencies:
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>org.eclipse.emf.cdo</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>org.eclipse.emf.cdo.common</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
<artifactId>org.eclipse.emf.cdo.net4j</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.net4j</groupId>
<artifactId>org.eclipse.net4j</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.net4j</groupId>
<artifactId>org.eclipse.net4j.util</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.net4j</groupId>
<artifactId>org.eclipse.net4j.tcp</artifactId>
<version>4.2.1</version>
</dependency>
The code compile, but when I run it using the run as "Java Application" menu I get the following timeout exception:
Exception in thread "main" org.eclipse.net4j.channel.ChannelException: org.eclipse.net4j.util.concurrent.TimeoutRuntimeException: Channel registration timeout after 10000 milliseconds
at org.eclipse.spi.net4j.ChannelMultiplexer.openChannel(ChannelMultiplexer.java:196)
at org.eclipse.spi.net4j.ChannelMultiplexer.openChannel(ChannelMultiplexer.java:1)
at org.eclipse.net4j.signal.SignalProtocol.open(SignalProtocol.java:204)
at org.eclipse.emf.cdo.internal.net4j.CDONet4jSessionImpl.createProtocol(CDONet4jSessionImpl.java:303)
at org.eclipse.emf.cdo.internal.net4j.CDONet4jSessionImpl.openSession(CDONet4jSessionImpl.java:150)
at org.eclipse.emf.cdo.internal.net4j.CDONet4jSessionImpl.doActivate(CDONet4jSessionImpl.java:202)
at org.eclipse.net4j.util.lifecycle.Lifecycle.internalActivate(Lifecycle.java:75)
at org.eclipse.net4j.util.lifecycle.ShareableLifecycle.internalActivate(ShareableLifecycle.java:43)
at org.eclipse.net4j.util.lifecycle.Lifecycle.activate(Lifecycle.java:164)
at org.eclipse.emf.internal.cdo.session.CDOSessionConfigurationImpl.openSession(CDOSessionConfigurationImpl.java:395)
at org.eclipse.emf.cdo.internal.net4j.CDONet4jSessionConfigurationImpl.openNet4jSession(CDONet4jSessionConfigurationImpl.java:116)
at test.TestCDO.main(TestCDO.java:59)
Caused by: org.eclipse.net4j.util.concurrent.TimeoutRuntimeException: Channel registration timeout after 10000 milliseconds
at org.eclipse.spi.net4j.ChannelMultiplexer.openChannel(ChannelMultiplexer.java:187)
... 11 more
Caused by: org.eclipse.net4j.util.concurrent.TimeoutRuntimeException: Registration timeout after 9 999 milliseconds
at org.eclipse.net4j.internal.tcp.ControlChannel.registerChannel(ControlChannel.java:101)
at org.eclipse.net4j.internal.tcp.TCPConnector.registerChannelWithPeer(TCPConnector.java:371)
at org.eclipse.spi.net4j.ChannelMultiplexer.openChannel(ChannelMultiplexer.java:181)
... 11 more
I also get the same exception if I package the maven project and run it using "java -jar" from the command line.
I have tried to see if ClassNotFoundException were raised in debug but nothing suspicious showed up. I was wondering if someone tried something similar or if someone had an idea of some initialization steps I would have missed for standalone use of CDO ?
Bellow the list of resolved jar files in case some dependencies are missing:
org.eclipse.core.contenttype-3.7.700.jar
org.eclipse.core.jobs-3.10.800.jar
org.eclipse.core.runtime-3.18.0.jar
org.eclipse.emf.cdo-4.10.0.jar
org.eclipse.emf.cdo.common-4.10.0.jar
org.eclipse.emf.cdo.net4j-4.3.0.jar
org.eclipse.emf.common-2.23.0.jar
org.eclipse.emf.ecore-2.25.0.jar
org.eclipse.emf.ecore.change-2.14.0.jar
org.eclipse.emf.ecore.xmi-2.16.0.jar
org.eclipse.equinox.app-1.4.500.jar
org.eclipse.equinox.common-3.12.0.jar
org.eclipse.equinox.preferences-3.8.0.jar
org.eclipse.equinox.registry-3.8.800.jar
org.eclipse.net4j-4.10.0.jar
org.eclipse.net4j.tcp-4.2.1.jar
org.eclipse.net4j.util-3.11.0.jar
org.eclipse.osgi-3.15.300.jar
regards,
Yvan.
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04520 seconds