diff options
author | Eike Stepper | 2021-03-08 17:49:35 +0000 |
---|---|---|
committer | Eike Stepper | 2021-03-08 17:49:35 +0000 |
commit | aceb772316af947c580f547d8f136fca5b3cfeec (patch) | |
tree | 3eea8b671d6b4a7955013e580eb96d3d48ed94e2 /plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf | |
parent | 9cd74670d7a52045472c97e4ca46cfab2b64286a (diff) | |
download | cdo-aceb772316af947c580f547d8f136fca5b3cfeec.tar.gz cdo-aceb772316af947c580f547d8f136fca5b3cfeec.tar.xz cdo-aceb772316af947c580f547d8f136fca5b3cfeec.zip |
[571768] Make SecurityManager multitenant
https://bugs.eclipse.org/bugs/show_bug.cgi?id=571768
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf')
4 files changed, 37 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java index 14405a183b..2681b72141 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/CDOCommonSession.java @@ -31,6 +31,11 @@ public interface CDOCommonSession extends IAdaptable, IUserAware, IOptionsContai { public int getSessionID(); + /** + * @since 4.13 + */ + public long getOpeningTime(); + public CDOCommonView[] getViews(); public CDOCommonView getView(int viewID); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java index 5d3a523ddf..a8e27a2aa7 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOModelUtil.java @@ -14,6 +14,7 @@ package org.eclipse.emf.cdo.common.model; import org.eclipse.emf.cdo.common.id.CDOID; +import org.eclipse.emf.cdo.common.model.CDOPackageUnit.State; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.util.CDOException; import org.eclipse.emf.cdo.internal.common.bundle.OM; @@ -23,6 +24,7 @@ import org.eclipse.emf.cdo.internal.common.model.CDOPackageInfoImpl; import org.eclipse.emf.cdo.internal.common.model.CDOPackageRegistryImpl; import org.eclipse.emf.cdo.internal.common.model.CDOPackageUnitImpl; import org.eclipse.emf.cdo.internal.common.model.CDOTypeImpl; +import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageInfo; import org.eclipse.emf.cdo.spi.common.model.InternalCDOPackageUnit; import org.eclipse.net4j.util.io.ExtendedDataInput; @@ -589,6 +591,34 @@ public final class CDOModelUtil implements CDOModelConstants } /** + * @since 4.13 + */ + public static CDOPackageUnit copyPackageUnit(CDOPackageUnit packageUnit) + { + InternalCDOPackageUnit newPackageUnit = (InternalCDOPackageUnit)CDOModelUtil.createPackageUnit(); + newPackageUnit.setOriginalType(packageUnit.getOriginalType()); + newPackageUnit.setTimeStamp(packageUnit.getTimeStamp()); + newPackageUnit.setState(State.LOADED); + + InternalCDOPackageInfo[] packageInfos = (InternalCDOPackageInfo[])packageUnit.getPackageInfos(); + InternalCDOPackageInfo[] newPackageInfos = new InternalCDOPackageInfo[packageInfos.length]; + + for (int i = 0; i < packageInfos.length; i++) + { + InternalCDOPackageInfo packageInfo = packageInfos[i]; + + newPackageInfos[i] = (InternalCDOPackageInfo)CDOModelUtil.createPackageInfo(); + newPackageInfos[i].setPackageUnit(newPackageUnit); + newPackageInfos[i].setEPackage(packageInfo.getEPackage()); + newPackageInfos[i].setPackageURI(packageInfo.getPackageURI()); + newPackageInfos[i].setParentURI(packageInfo.getParentURI()); + } + + newPackageUnit.setPackageInfos(newPackageInfos); + return newPackageUnit; + } + + /** * @since 2.0 */ public static CDOPackageUnit createPackageUnit() diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java index ae07d13592..05233b373e 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOCommitInfoImpl.java @@ -145,6 +145,7 @@ public class CDOCommitInfoImpl extends CDOBranchPointImpl implements CDOCommitIn @Override public boolean isInitialCommit() { + int xxx; return CDOCommonUtil.SYSTEM_USER_ID.equals(userID); } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageRegistryImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageRegistryImpl.java index da71cc2c08..b3156c3abc 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageRegistryImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/CDOPackageRegistryImpl.java @@ -261,6 +261,7 @@ public class CDOPackageRegistryImpl extends EPackageRegistryImpl implements Inte { LifecycleUtil.checkActive(this); packageUnit.setPackageRegistry(this); + for (InternalCDOPackageInfo packageInfo : packageUnit.getPackageInfos()) { EPackage ePackage = packageInfo.getEPackage(false); |