diff options
author | Ibrahim Sallam | 2010-05-16 06:13:09 +0000 |
---|---|---|
committer | Ibrahim Sallam | 2010-05-16 06:13:09 +0000 |
commit | b5eb5b67cd5b997a5285ae789ee44662765f25fb (patch) | |
tree | 3f9b220ca49622e3cc8f6ad9fba3cb066a78036c | |
parent | 11c36fb6f15060f349aadf457c86a198f80928e8 (diff) | |
download | cdo-b5eb5b67cd5b997a5285ae789ee44662765f25fb.tar.gz cdo-b5eb5b67cd5b997a5285ae789ee44662765f25fb.tar.xz cdo-b5eb5b67cd5b997a5285ae789ee44662765f25fb.zip |
More Branching support, and fixed few issues with revisions in Audit mode.
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/ObjectivityStoreAccessor.java | 82 |
1 files changed, 55 insertions, 27 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/ObjectivityStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/ObjectivityStoreAccessor.java index 5e4868d150..e29e12518e 100644 --- a/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/ObjectivityStoreAccessor.java +++ b/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/ObjectivityStoreAccessor.java @@ -35,13 +35,11 @@ import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyCommitInfoHandler; import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyObject; import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyPackageHandler; import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjySchema; -import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyScope; import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjySession; import org.eclipse.emf.cdo.server.internal.objectivity.schema.ObjyBranch; import org.eclipse.emf.cdo.server.internal.objectivity.schema.ObjyCommitInfo; import org.eclipse.emf.cdo.server.internal.objectivity.schema.ObjyResourceList; import org.eclipse.emf.cdo.server.internal.objectivity.utils.OBJYCDOIDUtil; -import org.eclipse.emf.cdo.server.internal.objectivity.utils.ObjyDb; import org.eclipse.emf.cdo.server.objectivity.IObjectivityStoreAccessor; import org.eclipse.emf.cdo.server.objectivity.IObjectivityStoreChunkReader; import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; @@ -70,6 +68,7 @@ import org.eclipse.emf.ecore.resource.ResourceSet; import com.objy.db.app.oo; import com.objy.db.app.ooId; +import com.objy.db.app.ooObj; import java.io.IOException; import java.util.ArrayList; @@ -354,11 +353,14 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv ensureSessionBegin(); ObjyObject objyObject = getObject(delta.getID()); + ObjyObject objyRevision = objyObject.getLastRevision(); + int deltaVersion = delta.getVersion(); if (TRACER_DEBUG.isEnabled()) { // TRACER_DEBUG.trace("Writing delta for object with id " + objyObject.ooId().getStoreString()); - TRACER_DEBUG.format("Writing revision delta: {0} - OID: {1}", delta, objyObject.ooId().getStoreString()); //$NON-NLS-1$ + TRACER_DEBUG.format("Writing revision delta: {0} - OID: {1} - v: {2}", delta, objyObject.ooId().getStoreString(), + objyRevision.getVersion()); } // System.out.println(">>>IS: Delta Writing: " + delta.getID() + " - oid: " + objyObject.ooId().getStoreString()); // System.out.println("\t - old version : " + delta.getVersion()); @@ -368,8 +370,6 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv // System.out.println("\t - branch TS : " + branch.getPoint(created).getTimeStamp()); // System.out.println("\t - delta : " + delta.toString()); // for debugging... - ObjyObject objyRevision = objyObject.getLastRevision(); - int deltaVersion = delta.getVersion(); if (objyRevision.getVersion() != deltaVersion) { @@ -382,7 +382,6 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv { // newObjyRevision = objySession.getObjectManager().copyRevision(this, objyRevision); objyRevision.setRevisedTime(branch.getPoint(created).getTimeStamp() - 1); - int id = branch.getID(); // objyRevision.setRevisedBranchId(branch.getID(); InternalCDORevision originalRevision = getStore().getRepository().getRevisionManager().getRevisionByVersion( delta.getID(), delta, 0, true); @@ -394,6 +393,14 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv newObjyRevision = objySession.getObjectManager().newObject(newRevision.getEClass(), objyRevision.ooId()); newObjyRevision.update(this, newRevision); objyRevision.addToRevisions(newObjyRevision); + + if (getStore().isRequiredToSupportBranches() && branch.getID() != branch.MAIN_BRANCH_ID) + { + // add the newObjyRevision to the proper branch. + ObjyBranch objyBranch = objySession.getBranchManager(getRepositoryName()).getBranch(branch.getID()); + ooObj anObj = ooObj.create_ooObj(newObjyRevision.ooId()); + objyBranch.addRevision(anObj); + } } else { @@ -524,11 +531,17 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv if (getStore().isRequiredToSupportAudits()) { // if we allow versioning, then create a new one here. - // objyRevision = objySession.getObjectManager().copyRevision(this, oldObjyRevision); - - InternalCDORevision newRevision = revision.copy(); - newObjyRevision = objySession.getObjectManager().newObject(newRevision.getEClass(), oldObjyRevision.ooId()); + // IS: I'm not sure if we'll be called here we always go to the writeRevisionDelta call. + newObjyRevision = objySession.getObjectManager().newObject(revision.getEClass(), oldObjyRevision.ooId()); oldObjyRevision.addToRevisions(newObjyRevision); + + if (getStore().isRequiredToSupportBranches()) + { + // add the newObjyRevision to the proper branch. + ObjyBranch objyBranch = objySession.getBranchManager(getRepositoryName()).getBranch( + revision.getBranch().getID()); + objyBranch.addRevision(newObjyRevision); + } } else { @@ -598,10 +611,11 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv TRACER_DEBUG.format("loadPackageUnit for: {0}", packageUnit.getID()); //$NON-NLS-1$ } - ObjyScope objyScope = new ObjyScope(ObjyDb.CONFIGDB_NAME, ObjyDb.PACKAGESTORE_CONT_NAME); - ObjyPackageHandler packageHandler = new ObjyPackageHandler(getStore(), objyScope, true); + // ObjyScope objyScope = new ObjyScope(ObjyDb.CONFIGDB_NAME, ObjyDb.PACKAGESTORE_CONT_NAME); + // ObjyPackageHandler packageHandler = new ObjyPackageHandler(getStore(), objyScope, true); + ObjyPackageHandler objyPackageHandler = getStore().getPackageHandler(); - bytes = packageHandler.readPackageBytes(packageUnit); + bytes = objyPackageHandler.readPackageBytes(packageUnit); EPackage ePackage = createEPackage(packageUnit, bytes); @@ -723,11 +737,13 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv } ensureSessionBegin(); - ObjyScope objyScope = new ObjyScope(ObjyDb.CONFIGDB_NAME, ObjyDb.PACKAGESTORE_CONT_NAME); - ObjyPackageHandler packageHandler = new ObjyPackageHandler(getStore(), objyScope, true); + // ObjyScope objyScope = new ObjyScope(ObjyDb.CONFIGDB_NAME, ObjyDb.PACKAGESTORE_CONT_NAME); + // + // ObjyPackageHandler packageHandler = new ObjyPackageHandler(getStore(), objyScope, true); + ObjyPackageHandler objyPackageHandler = getStore().getPackageHandler(); - Collection<InternalCDOPackageUnit> packageUnits = packageHandler.readPackageUnits(); + Collection<InternalCDOPackageUnit> packageUnits = objyPackageHandler.readPackageUnits(); return packageUnits; } @@ -777,10 +793,10 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv if (TRACER_DEBUG.isEnabled()) { - TRACER_DEBUG.format("Fetching revision details for: {0} - OID: {1}", id, objyObject.ooId().getStoreString()); //$NON-NLS-1$ + TRACER_DEBUG.format("Fetching revision details for: {0} - OID: {1}", id, objyRevision.ooId().getStoreString()); //$NON-NLS-1$ } - boolean ok = objyObject.fetch(this, revision, listChunk); + boolean ok = objyRevision.fetch(this, revision, listChunk); return ok ? revision : null; } @@ -805,15 +821,23 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv if (getStore().isRequiredToSupportAudits()) { objyRevision = objyObject.getRevision(branchVersion.getVersion()); + if (TRACER_DEBUG.isEnabled()) + { + TRACER_DEBUG + .format( + "(Audit mode) Reading revision by version {0} for: {1} - OID: {2}", branchVersion.getVersion(), id, objyObject.ooId().getStoreString()); //$NON-NLS-1$ + } + } else { objyRevision = objyObject.getLastRevision(); - } - if (TRACER_DEBUG.isEnabled()) - { - TRACER_DEBUG.format("Reading revision by version for: {0} - OID: {1}", id, objyObject.ooId().getStoreString()); //$NON-NLS-1$ + if (TRACER_DEBUG.isEnabled()) + { + TRACER_DEBUG.format( + "(None-Audit) Reading revision by version for: {0} - OID: {1}", id, objyObject.ooId().getStoreString()); //$NON-NLS-1$ + } } InternalCDORevision revision = getStore().createRevision(objyRevision, id); @@ -855,13 +879,17 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv } ensureSessionBegin(); - ObjyScope objyScope = new ObjyScope(ObjyDb.CONFIGDB_NAME, ObjyDb.PACKAGESTORE_CONT_NAME); - ObjyPackageHandler packageHandler = new ObjyPackageHandler(getStore(), objyScope, true); + // ObjyScope objyScope = new ObjyScope(ObjyDb.CONFIGDB_NAME, ObjyDb.PACKAGESTORE_CONT_NAME); + // + // ObjyPackageHandler packageHandler = new ObjyPackageHandler(getStore(), objyScope, true); + + ObjyPackageHandler objyPackageHandler = getStore().getPackageHandler(); + CDOPackageRegistry packageRegistry = getStore().getRepository().getPackageRegistry(); for (InternalCDOPackageUnit packageUnit : packageUnits) { - packageHandler.writePackages(packageUnit, monitor/* .fork() */); + objyPackageHandler.writePackages(packageRegistry, packageUnit, monitor/* .fork() */); } } @@ -932,7 +960,7 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv { ensureSessionBegin(); - ObjyCommitInfoHandler commitInfoHandler = getStore().getCommitInfoHandle(); + ObjyCommitInfoHandler commitInfoHandler = getStore().getCommitInfoHandler(); List<ObjyCommitInfo> commitInfoList = commitInfoHandler.getCommitInfo(branch, startTime, endTime); InternalSessionManager manager = getSession().getManager(); @@ -964,7 +992,7 @@ public class ObjectivityStoreAccessor extends StoreAccessor implements IObjectiv ensureSessionBegin(); // we need to write the following... // ...branch.getID(), timeStamp, userID, comment. - ObjyCommitInfoHandler commitInfoHandler = getStore().getCommitInfoHandle(); + ObjyCommitInfoHandler commitInfoHandler = getStore().getCommitInfoHandler(); commitInfoHandler.writeCommitInfo(branch.getID(), timeStamp, userID, comment); } |