|
Re: [CDO] Server in non-OSGi environment [message #986386 is a reply to message #986376] |
Tue, 20 November 2012 10:03 |
|
Am 20.11.2012 10:38, schrieb Jan Rosczak:
> 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);
It's usually easier to prepare IPluginContainer.INSTANCE because many components use that by default, e.g., the
TypeMappingRegistry.
>
> 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)
Are you sure that you've deployed org.eclipse.emf.ecore.xmi and org.eclipse.emf.ecore.change properly?
>
>
> 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
That's most likely because we expose some Platform interfaces, e.g., IAdaptable or IProgressMonitor.
>
> 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;
> }
See above.
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03448 seconds