if (!getSession().options().isPassiveUpdateEnabled())
CDOCollectionLoadingPolicy policy = options().getCollectionLoadingPolicy(); for (EStructuralFeature feature : revision.getEClass().getEAllStructuralFeatures())
private void checkPackageRegistrationProblems(InternalCDOSession session, EClass eClass) { if (session.options().isGeneratedPackageEmulationEnabled()) { // Check that there are no multiple EPackages with the same URI in system. Bug 335004 String packageURI = eClass.getEPackage().getNsURI(); Object packageObject = session.getPackageRegistry().get(packageURI); if (packageObject instanceof InternalCDOPackageInfo) { packageObject = ((InternalCDOPackageInfo)packageObject).getEPackage(false); } if (packageObject instanceof EPackage && packageObject != eClass.getEPackage()) { throw new IllegalStateException(MessageFormat.format( "Global EPackage {0} for EClass {1} is different from EPackage found in CDOPackageRegistry", packageURI, eClass)); } } } }
public CDOLobStore getLobStore() final CDOLobStore cache = options().getLobCache(); return new CDOLobStore.Delegating()
public CDOLobStore getLobStore() final CDOLobStore cache = options().getLobCache(); return new CDOLobStore.Delegating()
if (!getSession().options().isPassiveUpdateEnabled())
nextPreviousTimeStamp = currentCommitInfo.getTimeStamp(); if (options.isPassiveUpdateEnabled())
if (!listOfIDs.isEmpty()) int initialChunkSize = view.getSession().options().getCollectionLoadingPolicy().getInitialChunkSize(); revisionManager.getRevisions(listOfIDs, view, initialChunkSize, CDORevision.DEPTH_NONE, true);
if (!listOfIDs.isEmpty()) int initialChunkSize = view.getSession().options().getCollectionLoadingPolicy().getInitialChunkSize(); revisionManager.getRevisions(listOfIDs, view, initialChunkSize, CDORevision.DEPTH_NONE, true);
if (options.isPassiveUpdateEnabled()/* || sender != null */)
/** * @since 4.0 */ public void resolveAllElementProxies(CDORevision revision) { InternalCDORevision internalRevision = (InternalCDORevision)revision; if (!internalRevision.isUnchunked()) { CDOCollectionLoadingPolicy policy = options().getCollectionLoadingPolicy(); for (EReference reference : internalRevision.getClassInfo().getAllPersistentReferences()) { if (reference.isMany()) { CDOList list = internalRevision.getList(reference); for (Iterator<Object> it = list.iterator(); it.hasNext();) { Object element = it.next(); if (element instanceof CDOElementProxy) { policy.resolveAllProxies(internalRevision, reference); break; } } } } internalRevision.setUnchunked(); } }
private LockObjectsResult lockOnMaster(InternalView view, LockType type, List<CDORevisionKey> revKeys, boolean recursive, long timeout) throws InterruptedException { // Delegate locking to the master InternalCDOSession remoteSession = getSynchronizer().getRemoteSession(); CDOSessionProtocol sessionProtocol = remoteSession.getSessionProtocol(); String areaID = view.getDurableLockingID(); if (areaID == null) { throw new IllegalStateException("Durable locking is not enabled for view " + view); } LockObjectsResult masterLockingResult = sessionProtocol.delegateLockObjects(areaID, revKeys, view.getBranch(), type, recursive, timeout); if (masterLockingResult.isSuccessful() && masterLockingResult.isWaitForUpdate()) { if (!getSynchronizer().getRemoteSession().options().isPassiveUpdateEnabled()) { throw new AssertionError( "Master lock result requires clone to wait, but clone does not have passiveUpdates enabled."); } long requiredTimestamp = masterLockingResult.getRequiredTimestamp(); remoteSession.waitForUpdate(requiredTimestamp); } return masterLockingResult; }
private long refresh(boolean enablePassiveUpdates) { Map<CDOBranch, List<InternalCDOView>> views = new HashMap<CDOBranch, List<InternalCDOView>>(); Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions = new HashMap<CDOBranch, Map<CDOID, InternalCDORevision>>(); collectViewedRevisions(views, viewedRevisions); cleanupRevisionCache(viewedRevisions); CDOSessionProtocol sessionProtocol = getSessionProtocol(); long lastUpdateTime = getLastUpdateTime(); int initialChunkSize = options().getCollectionLoadingPolicy().getInitialChunkSize(); RefreshSessionResult result = sessionProtocol.refresh(lastUpdateTime, viewedRevisions, initialChunkSize, enablePassiveUpdates); setLastUpdateTime(result.getLastUpdateTime()); registerPackageUnits(result.getPackageUnits()); for (Entry<CDOBranch, List<InternalCDOView>> entry : views.entrySet()) { CDOBranch branch = entry.getKey(); List<InternalCDOView> branchViews = entry.getValue(); processRefreshSessionResult(result, branch, branchViews, viewedRevisions); } return result.getLastUpdateTime(); }
@Override protected void doActivate() throws Exception { super.doActivate(); EmbeddedClientSessionProtocol protocol = new EmbeddedClientSessionProtocol(this); setSessionProtocol(protocol); protocol.activate(); protocol.openSession(options().isPassiveUpdateEnabled()); setLastUpdateTime(repository.getLastCommitTimeStamp()); setRepositoryInfo(new RepositoryInfo(this)); InternalCDORevisionManager revisionManager = (InternalCDORevisionManager)CDORevisionUtil.createRevisionManager(); setRevisionManager(revisionManager); revisionManager.setSupportingAudits(getRepositoryInfo().isSupportingAudits()); revisionManager.setSupportingBranches(getRepositoryInfo().isSupportingBranches()); revisionManager.setCache(CDORevisionCache.NOOP); revisionManager.setRevisionLoader(getSessionProtocol()); revisionManager.setRevisionLocker(this); revisionManager.activate(); }
private long refresh(boolean enablePassiveUpdates) { Map<CDOBranch, List<InternalCDOView>> views = new HashMap<CDOBranch, List<InternalCDOView>>(); Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions = new HashMap<CDOBranch, Map<CDOID, InternalCDORevision>>(); collectViewedRevisions(views, viewedRevisions); cleanupRevisionCache(viewedRevisions); CDOSessionProtocol sessionProtocol = getSessionProtocol(); long lastUpdateTime = getLastUpdateTime(); int initialChunkSize = options().getCollectionLoadingPolicy().getInitialChunkSize(); RefreshSessionResult result = sessionProtocol.refresh(lastUpdateTime, viewedRevisions, initialChunkSize, enablePassiveUpdates); setLastUpdateTime(result.getLastUpdateTime()); registerPackageUnits(result.getPackageUnits()); for (Entry<CDOBranch, List<InternalCDOView>> entry : views.entrySet()) { CDOBranch branch = entry.getKey(); List<InternalCDOView> branchViews = entry.getValue(); processRefreshSessionResult(result, branch, branchViews, viewedRevisions); } return result.getLastUpdateTime(); }
private void checkPackageRegistrationProblems(InternalCDOSession session, EClass eClass) { if (session.options().isGeneratedPackageEmulationEnabled()) { // Check that there are no multiple EPackages with the same URI in system. Bug 335004 String packageURI = eClass.getEPackage().getNsURI(); Object packageObject = session.getPackageRegistry().get(packageURI); if (packageObject instanceof InternalCDOPackageInfo) { packageObject = ((InternalCDOPackageInfo)packageObject).getEPackage(false); } if (packageObject instanceof EPackage && packageObject != eClass.getEPackage()) { throw new IllegalStateException(MessageFormat.format( "Global EPackage {0} for EClass {1} is different from EPackage found in CDOPackageRegistry", packageURI, eClass)); } } }
public void preTraverseFeature(CDOObject cdoObject, EStructuralFeature feature, int index) { if (TRACER.isEnabled()) { TRACER.format("preTraverseFeature : {0}.{1}", cdoObject.eClass(), feature.getName()); //$NON-NLS-1$ } loadCollectionPolicy = cdoObject.cdoView().getSession().options().getCollectionLoadingPolicy(); lastTraverseFeature = feature; lastTraverseCDOObject = cdoObject; lastTraverseIndex = index; lastElapseTimeBetweenOperations = System.currentTimeMillis() - lastAccessTime; lastAccessTime = System.currentTimeMillis(); didFetch = false; CDOFetchRuleManagerThreadLocal.join(this); doPreTraverseFeature(cdoObject, feature, index); }
public void preTraverseFeature(CDOObject cdoObject, EStructuralFeature feature, int index) { if (TRACER.isEnabled()) { TRACER.format("preTraverseFeature : {0}.{1}", cdoObject.eClass(), feature.getName()); //$NON-NLS-1$ } loadCollectionPolicy = cdoObject.cdoView().getSession().options().getCollectionLoadingPolicy(); lastTraverseFeature = feature; lastTraverseCDOObject = cdoObject; lastTraverseIndex = index; lastElapseTimeBetweenOperations = System.currentTimeMillis() - lastAccessTime; lastAccessTime = System.currentTimeMillis(); didFetch = false; CDOFetchRuleManagerThreadLocal.join(this); doPreTraverseFeature(cdoObject, feature, index); }
protected void configureSession(InternalCDOSession session) { session.options().setPassiveUpdateEnabled(passiveUpdateEnabled); session.options().setPassiveUpdateMode(passiveUpdateMode); session.options().setLockNotificationMode(lockNotificationMode); session.setMainBranchLocal(mainBranchLocal); session.setExceptionHandler(exceptionHandler); session.setFetchRuleManager(fetchRuleManager); session.setIDGenerator(idGenerator); session.setAuthenticator(authenticator); session.setRevisionManager(revisionManager); session.setBranchManager(branchManager); session.setCommitInfoManager(commitInfoManager); session.setPackageRegistry(packageRegistry); }
public boolean isSticky() { return !options().isPassiveUpdateEnabled() && getRepositoryInfo().isSupportingAudits(); }