diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.explorer')
3 files changed, 45 insertions, 7 deletions
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java index 7d8b9bcf93..ab73a7679d 100644 --- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java +++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/repositories/CDORepository.java @@ -20,6 +20,8 @@ import org.eclipse.emf.cdo.transaction.CDOTransactionOpener; import org.eclipse.emf.cdo.view.CDOViewOpener; import org.eclipse.net4j.util.container.IContainer; +import org.eclipse.net4j.util.security.IPasswordCredentials; +import org.eclipse.net4j.util.security.IPasswordCredentialsProvider2; /** * A CDO server independent representation of a repository. @@ -27,8 +29,8 @@ import org.eclipse.net4j.util.container.IContainer; * @author Eike Stepper * @since 4.4 */ -public interface CDORepository extends CDOExplorerElement, IContainer<CDOBranch>, CDOSessionProvider, CDOViewOpener, - CDOTransactionOpener +public interface CDORepository extends CDOExplorerElement, IContainer<CDOBranch>, IPasswordCredentialsProvider2, + CDOSessionProvider, CDOViewOpener, CDOTransactionOpener { public static final String TYPE_REMOTE = "remote"; @@ -54,6 +56,10 @@ public interface CDORepository extends CDOExplorerElement, IContainer<CDOBranch> public IDGeneration getIDGeneration(); + public IPasswordCredentials getCredentials(); + + public void setCredentials(IPasswordCredentials credentials); + public State getState(); public boolean isConnected(); diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java index 96c5d92400..1bfa484e57 100644 --- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java +++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryImpl.java @@ -41,6 +41,7 @@ import org.eclipse.net4j.util.event.IEvent; import org.eclipse.net4j.util.event.IListener; import org.eclipse.net4j.util.lifecycle.ILifecycle; import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter; +import org.eclipse.net4j.util.security.IPasswordCredentials; import org.eclipse.emf.ecore.resource.ResourceSet; @@ -57,6 +58,8 @@ public abstract class CDORepositoryImpl extends AbstractElement implements CDORe { public static final String PROP_NAME = "name"; + public static final String PROP_REALM = "realm"; + public static final String REPOSITORY_KEY = CDORepository.class.getName(); private final Set<CDOCheckout> checkouts = new HashSet<CDOCheckout>(); @@ -111,6 +114,8 @@ public abstract class CDORepositoryImpl extends AbstractElement implements CDORe private CDORepository.IDGeneration idGeneration; + private String realm; + private State state = State.Disconnected; private boolean explicitelyConnected; @@ -153,6 +158,25 @@ public abstract class CDORepositoryImpl extends AbstractElement implements CDORe return idGeneration; } + public IPasswordCredentials getCredentials() + { + return getCredentials(null); + } + + public IPasswordCredentials getCredentials(String realm) + { + return null; + } + + public void setCredentials(IPasswordCredentials credentials) + { + } + + public boolean isInteractive() + { + return false; + } + public final State getState() { return state; @@ -481,9 +505,9 @@ public abstract class CDORepositoryImpl extends AbstractElement implements CDORe { super.init(folder, type, properties); name = properties.getProperty(PROP_NAME); - versioningMode = CDORepository.VersioningMode.valueOf(properties - .getProperty(CDORepositoryImpl.PROP_VERSIONING_MODE)); - idGeneration = CDORepository.IDGeneration.valueOf(properties.getProperty(CDORepositoryImpl.PROP_ID_GENERATION)); + versioningMode = VersioningMode.valueOf(properties.getProperty(PROP_VERSIONING_MODE)); + idGeneration = IDGeneration.valueOf(properties.getProperty(PROP_ID_GENERATION)); + realm = properties.getProperty(PROP_REALM); } @Override @@ -491,8 +515,13 @@ public abstract class CDORepositoryImpl extends AbstractElement implements CDORe { super.collectProperties(properties); properties.setProperty(PROP_NAME, name); - properties.setProperty(CDORepositoryImpl.PROP_VERSIONING_MODE, versioningMode.toString()); - properties.setProperty(CDORepositoryImpl.PROP_ID_GENERATION, idGeneration.toString()); + properties.setProperty(PROP_VERSIONING_MODE, versioningMode.toString()); + properties.setProperty(PROP_ID_GENERATION, idGeneration.toString()); + + if (realm != null) + { + properties.setProperty(PROP_REALM, realm); + } } protected IConnector getConnector() @@ -516,6 +545,7 @@ public abstract class CDORepositoryImpl extends AbstractElement implements CDORe CDOSessionConfiguration sessionConfiguration = createSessionConfiguration(); sessionConfiguration.setPassiveUpdateEnabled(true); sessionConfiguration.setPassiveUpdateMode(PassiveUpdateMode.CHANGES); + sessionConfiguration.setCredentialsProvider(this); CDOSession session = sessionConfiguration.openSession(); session.options().setGeneratedPackageEmulationEnabled(true); diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryManagerImpl.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryManagerImpl.java index f8fa77ea0d..2bdee9fcae 100644 --- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryManagerImpl.java +++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/internal/explorer/repositories/CDORepositoryManagerImpl.java @@ -27,6 +27,8 @@ import java.util.concurrent.ConcurrentHashMap; */ public class CDORepositoryManagerImpl extends AbstractManager<CDORepository> implements CDORepositoryManager { + public static final String SECURE_STORE_PATH = "/CDO/repositories"; + private static final String PROPERTIES_FILE = "repository.properties"; private final Map<CDOSession, CDORepository> sessionMap = new ConcurrentHashMap<CDOSession, CDORepository>(); |