[CDO] Server in non-OSGi environment [message #986376] |
Tue, 20 November 2012 04:38  |
Eclipse User |
|
|
|
Hi,
I am trying to start a CDO 4.1 server in a non-OSGi environment and ran into a couple of issues.
I initialise my server container as follows:
IManagedContainer repositoryContainer = ContainerUtil.createContainer();
Net4jUtil.prepareContainer(repositoryContainer);
TCPUtil.prepareContainer(repositoryContainer);
JVMUtil.prepareContainer(repositoryContainer);
CDONet4jServerUtil.prepareContainer(repositoryContainer);
OCLQueryHandler.prepareContainer(repositoryContainer);
LifecycleUtil.activate(repositoryContainer);
I am using a H2 db store with no audit and no branching enabled.
When starting the server for the first time I get the following exception:
java.lang.UnsupportedOperationException
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.doSave(ResourceImpl.java:1449)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1417)
at org.eclipse.emf.cdo.common.model.EMFUtil.getEPackageBytes(EMFUtil.java:276)
at org.eclipse.emf.cdo.server.internal.db.MetaDataManager.getEPackageBytes(MetaDataManager.java:221)
at org.eclipse.emf.cdo.server.internal.db.MetaDataManager.fillSystemTables(MetaDataManager.java:248)
at org.eclipse.emf.cdo.server.internal.db.MetaDataManager.fillSystemTables(MetaDataManager.java:291)
at org.eclipse.emf.cdo.server.internal.db.MetaDataManager.writePackageUnits(MetaDataManager.java:138)
at org.eclipse.emf.cdo.server.internal.db.DBStoreAccessor.writePackageUnits(DBStoreAccessor.java:822)
at org.eclipse.emf.cdo.internal.server.Repository.initSystemPackages(Repository.java:1669)
at org.eclipse.emf.cdo.internal.server.Repository.doActivate(Repository.java:1864)
Do I have to initialise EMF in some way which would normally be done by the Equinox Extenstion Registry?
The second thing I do not understand is, why I need the following two jars if I am in a non-OSGi environment:
org.eclipse.equinox.common
org.eclipse.equinox.registry
Maybe that is related to the fact that the class org.eclipse.emf.cdo.server.internal.db.mapping.TypeMappingRegistry always
returns an instance of IPluginContainer as its container. I thought it should use the managed container that is used to create the repository ("repositoryContainer" in my example above).
protected IManagedContainer getContainer()
{
return IPluginContainer.INSTANCE;
}
Thanks
Jan
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03393 seconds