diff options
author | Victor Roldan Betancort | 2009-02-23 09:14:53 +0000 |
---|---|---|
committer | Victor Roldan Betancort | 2009-02-23 09:14:53 +0000 |
commit | 4710b9beccb3d383aab2cd4b476c314a38e59a64 (patch) | |
tree | 82c9ad56e19d3a5a829234b18089355233aec3fc /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf | |
parent | c3baf1fa1bdc73692d618b01472f2844c74538d6 (diff) | |
download | cdo-4710b9beccb3d383aab2cd4b476c314a38e59a64.tar.gz cdo-4710b9beccb3d383aab2cd4b476c314a38e59a64.tar.xz cdo-4710b9beccb3d383aab2cd4b476c314a38e59a64.zip |
[265114] Attaching adapters to resources does not load them?
https://bugs.eclipse.org/bugs/show_bug.cgi?id=265114
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf')
15 files changed, 67 insertions, 239 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/CDOResourceFactory.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/CDOResourceFactory.java index 2b8c58cdc2..6aa0dd1584 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/CDOResourceFactory.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/CDOResourceFactory.java @@ -11,7 +11,7 @@ */ package org.eclipse.emf.cdo.eresource; -import org.eclipse.emf.cdo.view.CDOViewSet; +import org.eclipse.emf.cdo.eresource.impl.CDOResourceFactoryImpl; import org.eclipse.emf.ecore.resource.Resource; @@ -20,13 +20,5 @@ import org.eclipse.emf.ecore.resource.Resource; */ public interface CDOResourceFactory extends Resource.Factory { - /** - * @since 2.0 - */ - public CDOViewSet getViewSet(); - - /** - * @since 2.0 - */ - public void setViewSet(CDOViewSet viewSet); + public static final CDOResourceFactory eINSTANCE = CDOResourceFactoryImpl.eINSTANCE; } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFactoryImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFactoryImpl.java index 81be695f16..ae1bb1065d 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFactoryImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceFactoryImpl.java @@ -14,15 +14,10 @@ package org.eclipse.emf.cdo.eresource.impl; import org.eclipse.emf.cdo.eresource.CDOResourceFactory; import org.eclipse.emf.cdo.util.CDOURIUtil; -import org.eclipse.emf.cdo.view.CDOView; -import org.eclipse.emf.cdo.view.CDOViewAdapter; -import org.eclipse.emf.cdo.view.CDOViewProviderRegistry; -import org.eclipse.emf.cdo.view.CDOViewSet; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.spi.cdo.InternalCDOViewSet; /** * @author Eike Stepper @@ -31,57 +26,14 @@ public class CDOResourceFactoryImpl implements Resource.Factory, CDOResourceFact { private static final String RESOURCE_SET_CLASS_NAME = ResourceSetImpl.class.getName(); - /** - * @since 2.0 - */ - private InternalCDOViewSet viewSet; - - /** - * @since 2.0 - */ - public CDOResourceFactoryImpl(CDOViewSet viewSet) - { - setViewSet(viewSet); - } - - public CDOResourceFactoryImpl() - { - } - - /** - * @since 2.0 - */ - public CDOViewSet getViewSet() - { - return viewSet; - } - - /** - * @since 2.0 - */ - public void setViewSet(CDOViewSet viewSet) - { - this.viewSet = (InternalCDOViewSet)viewSet; - } + public static final CDOResourceFactory eINSTANCE = new CDOResourceFactoryImpl(); public Resource createResource(URI uri) { - CDOView view = CDOViewProviderRegistry.INSTANCE.provideView(uri, viewSet); - - // Build a new URI with the view and the path String path = CDOURIUtil.extractResourcePath(uri); - URI newURI = CDOURIUtil.createResourceURI(view, path); - - // Important: Set URI *after* registration with the view! - CDOResourceImpl resource = new CDOResourceImpl(newURI); + CDOResourceImpl resource = new CDOResourceImpl(uri); resource.setRoot(CDOURIUtil.SEGMENT_SEPARATOR.equals(path)); resource.setExisting(isGetResource()); - if (view != null) - { - CDOViewAdapter adapter = new CDOViewAdapter(view); - resource.eAdapters().add(adapter); - } - return resource; } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java index d8788fd0bc..300fda9570 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/eresource/impl/CDOResourceImpl.java @@ -18,16 +18,15 @@ import org.eclipse.emf.cdo.eresource.CDOResource; import org.eclipse.emf.cdo.eresource.EresourcePackage; import org.eclipse.emf.cdo.transaction.CDOTransaction; import org.eclipse.emf.cdo.util.CDOURIUtil; -import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.emf.cdo.util.ObjectNotFoundException; import org.eclipse.emf.cdo.view.CDOView; -import org.eclipse.emf.cdo.view.CDOViewAdapter; +import org.eclipse.emf.cdo.view.CDOViewProviderRegistry; import org.eclipse.emf.internal.cdo.CDOStateMachine; -import org.eclipse.emf.internal.cdo.bundle.OM; import org.eclipse.emf.internal.cdo.util.FSMUtil; -import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.net4j.util.WrappedException; + import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.notify.impl.NotificationChainImpl; @@ -564,6 +563,19 @@ public class CDOResourceImpl extends CDOResourceNodeImpl implements CDOResource, // } } + @Override + public void cdoInternalPreLoad() + { + try + { + load(null); + } + catch (IOException ex) + { + throw WrappedException.wrap(ex); + } + } + /** * @ADDED */ @@ -800,42 +812,21 @@ public class CDOResourceImpl extends CDOResourceNodeImpl implements CDOResource, setResourceSet(resourceSet); - // ResourceSet isn't prepared, try to look for a CDOViewAdapter - if (resourceSet != null && CDOUtil.getViewSet(resourceSet) == null) + // ResourceSet isn't prepared + if (resourceSet != null) { InternalCDOView view = cdoView(); if (view == null) { - for (Iterator<Adapter> it = eAdapters().iterator(); it.hasNext();) + URI uri = getURI(); + view = (InternalCDOView)CDOViewProviderRegistry.INSTANCE.provideView(uri, resourceSet); + if (view != null) { - Adapter adapter = it.next(); - if (adapter instanceof CDOViewAdapter) - { - view = (InternalCDOView)((CDOViewAdapter)adapter).getView(); - cdoInternalSetView(view); - view.attachResource(this); - - it.remove(); - break; - } + view.attachResource(this); } } } - // TODO Clarify me: 265114: Attaching adapters to resources does not load them? - // https://bugs.eclipse.org/bugs/show_bug.cgi?id=265114 - if (OM.BUNDLE.getDebugSupport().getDebugOption("load.resource.before.notification", false)) - { - try - { - load(null); - } - catch (IOException ex) - { - OM.LOG.error(ex); - } - } - if (eNotificationRequired()) { if (notifications == null) diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewAdapter.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewAdapter.java deleted file mode 100644 index 6b960aeff1..0000000000 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewAdapter.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Victor Roldan Betancort - initial API and implementation - * Eike Stepper - maintenance - */ -package org.eclipse.emf.cdo.view; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.Notifier; - -/** - * Adapter meant to carry a <code>CDOView</code> associated with (and needed by) certain <code>CDOResource</code> - * - * @author Victor Roldan Betancort - * @since 2.0 - */ -public class CDOViewAdapter implements Adapter -{ - private CDOView view; - - public CDOViewAdapter(CDOView view) - { - this.view = view; - } - - public CDOView getView() - { - return view; - } - - public Notifier getTarget() - { - return null; - } - - public void setTarget(Notifier newTarget) - { - } - - public boolean isAdapterForType(Object type) - { - return false; - } - - public void notifyChanged(Notification notification) - { - } -} diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProvider.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProvider.java index c9d8faf897..7f9a7f81f1 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProvider.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProvider.java @@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.view; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; /** * Capable of opening a <code>CDOView</code> on a target repository, defined by a URI. A regular expression and the @@ -48,5 +49,5 @@ public interface CDOViewProvider * * @return a wired-up and opened <code>CDOView</code> */ - public CDOView getView(URI uri, CDOViewSet viewSet); + public CDOView getView(URI uri, ResourceSet resourceSet); } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProviderRegistry.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProviderRegistry.java index 907ef78e70..56de04aa7d 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProviderRegistry.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/view/CDOViewProviderRegistry.java @@ -14,6 +14,7 @@ package org.eclipse.emf.cdo.view; import org.eclipse.net4j.util.container.IContainer; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; /** * A global registry of {@link CDOViewProvider view provider} implementations. @@ -29,7 +30,7 @@ public interface CDOViewProviderRegistry extends IContainer<CDOViewProvider> * Returns a {@link CDOView view} that serves the given URI in the given {@link CDOViewSet view set}, or * <code>null</code> if no {@link CDOViewProvider view provider} in this registry can provide such a view */ - public CDOView provideView(URI uri, CDOViewSet viewSet); + public CDOView provideView(URI uri, ResourceSet viewSet); /** * Returns an array of <code>CDOViewProvider</code> instances, determined and ordered by certain criteria based on the diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyWrapper.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyWrapper.java index 6f3fa744f1..7744f578a9 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyWrapper.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOLegacyWrapper.java @@ -173,6 +173,10 @@ public final class CDOLegacyWrapper extends CDOObjectWrapper } } + public void cdoInternalPreLoad() + { + } + public void cdoInternalPostLoad() { // TODO Consider not remembering the revisin after copying it to the instance (spare 1/2 of the space) diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOMetaWrapper.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOMetaWrapper.java index 559907aaae..dff5aded57 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOMetaWrapper.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOMetaWrapper.java @@ -80,6 +80,11 @@ public class CDOMetaWrapper extends CDOObjectWrapper throw new UnsupportedOperationException(); } + public void cdoInternalPreLoad() + { + throw new UnsupportedOperationException(); + } + public void cdoInternalPostLoad() { throw new UnsupportedOperationException(); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java index 4e11de43d4..164db8214c 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java @@ -265,6 +265,10 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements InternalCDOObjec throw new UnsupportedOperationException(); } + public void cdoInternalPreLoad() + { + } + public void cdoInternalPostLoad() { // Reset EMAP objects @@ -709,6 +713,10 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements InternalCDOObjec entryData = null; size = delegateEList.size(); } + + public void cdoInternalPreLoad() + { + } } return new EStoreEcoreEMap(); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java index e030594477..ddf034b55b 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStateMachine.java @@ -738,6 +738,8 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent public void execute(InternalCDOObject object, CDOState state, CDOEvent event, Object delta) { + object.cdoInternalPreLoad(); + CDOID id = object.cdoID(); InternalCDOView view = object.cdoView(); InternalCDORevision revision = view.getRevision(id, true); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java index 71d67cca35..2144e6712b 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java @@ -83,7 +83,7 @@ public final class FSMUtil CDOObject cdoObject = (CDOObject)obj; return cdoObject.cdoState() == CDOState.CLEAN || cdoObject.cdoState() == CDOState.DIRTY; } - + return false; } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java index 7254fbb188..e533b31933 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewProviderRegistryImpl.java @@ -12,6 +12,7 @@ package org.eclipse.emf.internal.cdo.view; import org.eclipse.emf.cdo.util.CDOURIUtil; +import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.emf.cdo.view.AbstractCDOViewProvider; import org.eclipse.emf.cdo.view.CDOView; import org.eclipse.emf.cdo.view.CDOViewProvider; @@ -26,6 +27,7 @@ import org.eclipse.net4j.util.container.Container; import org.eclipse.net4j.util.om.OMPlatform; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; @@ -61,13 +63,14 @@ public class CDOViewProviderRegistryImpl extends Container<CDOViewProvider> impl } } - public CDOView provideView(URI uri, CDOViewSet viewSet) + public CDOView provideView(URI uri, ResourceSet resourceSet) { if (uri == null) { return null; } + CDOViewSet viewSet = CDOUtil.getViewSet(resourceSet); if (viewSet != null) { try @@ -87,7 +90,7 @@ public class CDOViewProviderRegistryImpl extends Container<CDOViewProvider> impl for (CDOViewProvider viewProvider : getViewProviders(uri)) { - CDOView view = viewProvider.getView(uri, viewSet); + CDOView view = viewProvider.getView(uri, resourceSet); if (view != null) { return view; @@ -260,9 +263,9 @@ public class CDOViewProviderRegistryImpl extends Container<CDOViewProvider> impl } } - public CDOView getView(URI uri, CDOViewSet viewSet) + public CDOView getView(URI uri, ResourceSet resourceSet) { - return getViewProvider().getView(uri, viewSet); + return getViewProvider().getView(uri, resourceSet); } private CDOViewProvider getViewProvider() diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewSetImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewSetImpl.java index 49fdd69575..e04dd7b0ee 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewSetImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewSetImpl.java @@ -13,18 +13,13 @@ package org.eclipse.emf.internal.cdo.view; import org.eclipse.emf.cdo.common.protocol.CDOProtocolConstants; import org.eclipse.emf.cdo.eresource.CDOResource; -import org.eclipse.emf.cdo.eresource.impl.CDOResourceFactoryImpl; -import org.eclipse.emf.cdo.eresource.impl.CDOResourceImpl; -import org.eclipse.emf.cdo.util.CDOURIUtil; +import org.eclipse.emf.cdo.eresource.CDOResourceFactory; import org.eclipse.emf.cdo.view.CDOView; -import org.eclipse.emf.internal.cdo.bundle.OM; - import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.common.notify.impl.NotificationImpl; import org.eclipse.emf.common.notify.impl.NotifierImpl; -import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; @@ -49,7 +44,7 @@ public class CDOViewSetImpl extends NotifierImpl implements InternalCDOViewSet private Map<String, InternalCDOView> mapOfViews = new HashMap<String, InternalCDOView>(); - private CDOResourceFactoryImpl resourceFactory = new CDOResourceFactoryImpl(this); + private CDOResourceFactory resourceFactory = CDOResourceFactory.eINSTANCE; private CDOViewSetPackageRegistryImpl packageRegistry; @@ -69,7 +64,7 @@ public class CDOViewSetImpl extends NotifierImpl implements InternalCDOViewSet return packageRegistry; } - public CDOResourceFactoryImpl getResourceFactory() + public CDOResourceFactory getResourceFactory() { return resourceFactory; } @@ -137,11 +132,6 @@ public class CDOViewSetImpl extends NotifierImpl implements InternalCDOViewSet views.add(view); mapOfViews.put(repositoryUUID, view); - - if (views.size() == 1) - { - initializeResources(view); - } } if (eNotificationRequired()) @@ -215,75 +205,7 @@ public class CDOViewSetImpl extends NotifierImpl implements InternalCDOViewSet return type instanceof ResourceSet; } - @SuppressWarnings("unchecked") public void notifyChanged(Notification notification) { - try - { - // We do not notify view for remove notifications. - switch (notification.getEventType()) - { - case Notification.ADD: - { - Object newResource = notification.getNewValue(); - if (newResource instanceof CDOResourceImpl) - { - notifyAdd((CDOResourceImpl)newResource); - } - - break; - } - - case Notification.ADD_MANY: - { - List<Resource> newResources = (List<Resource>)notification.getNewValue(); - for (Resource newResource : newResources) - { - if (newResource instanceof CDOResourceImpl) - { - notifyAdd((CDOResourceImpl)newResource); - } - } - - break; - } - } - } - catch (RuntimeException ex) - { - OM.LOG.error(ex); - throw ex; - } - } - - /** - * Only generates event to CDOView if it is a new CDOResource. - */ - private void notifyAdd(CDOResourceImpl resource) - { - String respositoryUUID = CDOURIUtil.extractRepositoryUUID(resource.getURI()); - InternalCDOView view = resolveView(respositoryUUID); - if (view != null) - { - view.attachResource(resource); - } - } - - private void initializeResources(CDOView cdoView) - { - // Intialize the resourceset correctly when it get connected to the first time to a view. - for (Resource resource : resourceSet.getResources()) - { - if (resource instanceof CDOResourceImpl) - { - CDOResourceImpl cdoResource = (CDOResourceImpl)resource; - if (cdoResource.cdoView() == null) - { - URI newURI = CDOURIUtil.createResourceURI(cdoView, cdoResource.getPath()); - cdoResource.setURI(newURI); - notifyAdd(cdoResource); - } - } - } } } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/PluginContainerViewProvider.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/PluginContainerViewProvider.java index e8f4d78dc9..51d62e8db7 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/PluginContainerViewProvider.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/PluginContainerViewProvider.java @@ -15,7 +15,6 @@ import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.util.CDOURIUtil; import org.eclipse.emf.cdo.view.CDOView; import org.eclipse.emf.cdo.view.CDOViewProvider; -import org.eclipse.emf.cdo.view.CDOViewSet; import org.eclipse.emf.cdo.view.ManagedContainerViewProvider; import org.eclipse.emf.internal.cdo.session.CDOSessionFactory; @@ -24,6 +23,7 @@ import org.eclipse.net4j.util.container.IManagedContainer; import org.eclipse.net4j.util.container.IPluginContainer; import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; /** * Provides <code>CDOView</code> from <code>CDOSession</code> registered in IPluginContainer @@ -41,7 +41,7 @@ public class PluginContainerViewProvider extends ManagedContainerViewProvider im super(IPluginContainer.INSTANCE, REGEX, PRIORITY); } - public CDOView getView(URI uri, CDOViewSet viewSet) + public CDOView getView(URI uri, ResourceSet resourceSet) { IManagedContainer container = getContainer(); if (container == null) @@ -56,7 +56,7 @@ public class PluginContainerViewProvider extends ManagedContainerViewProvider im String uuid = session.repository().getUUID(); if (repoUUID.equals(uuid)) { - CDOView view = openView(session, uri); + CDOView view = openView(session, resourceSet); if (view != null) { return view; @@ -73,8 +73,8 @@ public class PluginContainerViewProvider extends ManagedContainerViewProvider im return IPluginContainer.INSTANCE; } - protected CDOView openView(CDOSession session, URI uri) + protected CDOView openView(CDOSession session, ResourceSet resourceSet) { - return session.openTransaction(); + return session.openTransaction(resourceSet); } } diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOLoadable.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOLoadable.java index bd00e16f82..af8d441233 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOLoadable.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOLoadable.java @@ -17,5 +17,7 @@ package org.eclipse.emf.spi.cdo; */ public interface InternalCDOLoadable { + public void cdoInternalPreLoad(); + public void cdoInternalPostLoad(); } |