Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-06-10 10:46:44 +0000
committerEike Stepper2012-06-10 10:46:44 +0000
commitc1706d17c98cb14df6c59b8fa5d87ee84e421177 (patch)
tree8d67fb7af97ae44fd33f6c59797e7b080de02714 /plugins
parent971a305bbd3c55ffc647fba815c2886de0127fc3 (diff)
downloadcdo-c1706d17c98cb14df6c59b8fa5d87ee84e421177.tar.gz
cdo-c1706d17c98cb14df6c59b8fa5d87ee84e421177.tar.xz
cdo-c1706d17c98cb14df6c59b8fa5d87ee84e421177.zip
[380629] Design a default Security model
https://bugs.eclipse.org/bugs/show_bug.cgi?id=380629
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/bundle/Net4jAppExtension.java130
-rw-r--r--plugins/org.eclipse.emf.cdo.server.product/config/cdo-server.xml22
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/build.properties3
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/plugin.xml31
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityExtension.java117
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java143
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/ISecurityManager.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/SecurityManagerUtil.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/SecurityManagerFactory.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.server/CDOServer.launch8
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java12
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch2
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch2
23 files changed, 499 insertions, 162 deletions
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java
index f905938725..7e0352b2cc 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Check.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java
index a79877c3ad..262e0c5bb8 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ClassCheck.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java
index 4aaeb80620..54fbfe6e2a 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/PackageCheck.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java
index 0ff84fdb8c..cba44d2205 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/Permission.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java
index d15808783f..29679ab82f 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/ResourceCheck.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java
index 641b0eab43..2e5e3cb45b 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/CheckImpl.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security.impl;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java
index 3c60ee1fe5..45ef202bd7 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ClassCheckImpl.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security.impl;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java
index cf6e898697..1af882b2fa 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/PackageCheckImpl.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security.impl;
diff --git a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java
index 1d5c5189ad..7bb2f3040c 100644
--- a/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java
+++ b/plugins/org.eclipse.emf.cdo.security/src/org/eclipse/emf/cdo/security/impl/ResourceCheckImpl.java
@@ -1,4 +1,12 @@
-/**
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.security.impl;
diff --git a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/bundle/Net4jAppExtension.java b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/bundle/Net4jAppExtension.java
index 2fd7010ba5..13643c6ca8 100644
--- a/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/bundle/Net4jAppExtension.java
+++ b/plugins/org.eclipse.emf.cdo.server.net4j/src/org/eclipse/emf/cdo/server/internal/net4j/bundle/Net4jAppExtension.java
@@ -1,64 +1,66 @@
-/*
- * Copyright (c) 2004 - 2012 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.server.internal.net4j.bundle;
-
-import org.eclipse.emf.cdo.spi.server.IAppExtension;
-
-import org.eclipse.net4j.TransportConfigurator;
-import org.eclipse.net4j.acceptor.IAcceptor;
-import org.eclipse.net4j.util.container.IManagedContainer;
-import org.eclipse.net4j.util.container.IPluginContainer;
-
-import java.io.File;
-
-/**
- * @author Eike Stepper
- */
-public class Net4jAppExtension implements IAppExtension
-{
- private IAcceptor[] acceptors;
-
- public Net4jAppExtension()
- {
- }
-
- public void start(File configFile) throws Exception
- {
- OM.LOG.info("Net4j extension starting"); //$NON-NLS-1$
- TransportConfigurator net4jConfigurator = new TransportConfigurator(getContainer());
- acceptors = net4jConfigurator.configure(configFile);
- if (acceptors == null || acceptors.length == 0)
- {
- OM.LOG.warn("No Net4j acceptors configured" + configFile.getAbsolutePath()); //$NON-NLS-1$
- }
-
- OM.LOG.info("Net4j extension started"); //$NON-NLS-1$
- }
-
- public void stop() throws Exception
- {
- OM.LOG.info("Net4j extension stopping"); //$NON-NLS-1$
- if (acceptors != null)
- {
- for (IAcceptor acceptor : acceptors)
- {
- acceptor.close();
- }
- }
-
- OM.LOG.info("Net4j extension stopped"); //$NON-NLS-1$
- }
-
- public static IManagedContainer getContainer()
- {
- return IPluginContainer.INSTANCE;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.internal.net4j.bundle;
+
+import org.eclipse.emf.cdo.spi.server.IAppExtension;
+
+import org.eclipse.net4j.TransportConfigurator;
+import org.eclipse.net4j.acceptor.IAcceptor;
+import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IPluginContainer;
+
+import java.io.File;
+
+/**
+ * @author Eike Stepper
+ */
+public class Net4jAppExtension implements IAppExtension
+{
+ private IAcceptor[] acceptors;
+
+ public Net4jAppExtension()
+ {
+ }
+
+ public void start(File configFile) throws Exception
+ {
+ OM.LOG.info("Net4j extension starting"); //$NON-NLS-1$
+
+ TransportConfigurator net4jConfigurator = new TransportConfigurator(getContainer());
+ acceptors = net4jConfigurator.configure(configFile);
+ if (acceptors == null || acceptors.length == 0)
+ {
+ OM.LOG.warn("No Net4j acceptors configured" + configFile.getAbsolutePath()); //$NON-NLS-1$
+ }
+
+ OM.LOG.info("Net4j extension started"); //$NON-NLS-1$
+ }
+
+ public void stop() throws Exception
+ {
+ OM.LOG.info("Net4j extension stopping"); //$NON-NLS-1$
+
+ if (acceptors != null)
+ {
+ for (IAcceptor acceptor : acceptors)
+ {
+ acceptor.close();
+ }
+ }
+
+ OM.LOG.info("Net4j extension stopped"); //$NON-NLS-1$
+ }
+
+ public static IManagedContainer getContainer()
+ {
+ return IPluginContainer.INSTANCE;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.product/config/cdo-server.xml b/plugins/org.eclipse.emf.cdo.server.product/config/cdo-server.xml
index baaf3e35be..9fc4d82713 100644
--- a/plugins/org.eclipse.emf.cdo.server.product/config/cdo-server.xml
+++ b/plugins/org.eclipse.emf.cdo.server.product/config/cdo-server.xml
@@ -22,16 +22,22 @@
<property name="allowInterruptRunningQueries" value="true"/>
<property name="idGenerationLocation" value="STORE"/> <!-- Possible values: STORE | CLIENT -->
- <!-- Example (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=302775):
- <userManager type="file" description="_database/repo1.users"/>
+ <securityManager type="default" realmPath="admins/security"/>
+
+ <!-- Example http://bugs.eclipse.org/380629
+ <securityManager type="annotation" realmPath="security"/>
+ -->
+
+ <!-- Example http://bugs.eclipse.org/302775
+ <userManager type="file" description="_database/repo1.users"/>
-->
- <!-- Example (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=345835):
- <userManager type="TestRepository" description="repo1"/>
+ <!-- Example http://bugs.eclipse.org/34583
+ <userManager type="TestRepository" description="repo1"/>
-->
- <!-- Example (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=345431):
- <initialPackage nsURI="http://www.eclipse.org/emf/CDO/examples/company/1.0.0"/>
+ <!-- Example http://bugs.eclipse.org/345431
+ <initialPackage nsURI="http://www.eclipse.org/emf/CDO/examples/company/1.0.0"/>
-->
<store type="db">
@@ -51,7 +57,7 @@
The cache can be disabled by setting a size of 0.
-->
- <!-- Optional:
+ <!-- Optional:
<property name="objectTypeCacheSize" value="100000" />
-->
@@ -114,6 +120,6 @@
<property name="port" value="50032"/>
</store>
</repository>
- -->
+ -->
</cdoServer>
diff --git a/plugins/org.eclipse.emf.cdo.server.security/build.properties b/plugins/org.eclipse.emf.cdo.server.security/build.properties
index 1e496926db..42137849e6 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/build.properties
+++ b/plugins/org.eclipse.emf.cdo.server.security/build.properties
@@ -15,7 +15,8 @@ bin.includes = META-INF/,\
.,\
about.html,\
copyright.txt,\
- plugin.properties
+ plugin.properties,\
+ plugin.xml
src.includes = about.html,\
copyright.txt
diff --git a/plugins/org.eclipse.emf.cdo.server.security/plugin.xml b/plugins/org.eclipse.emf.cdo.server.security/plugin.xml
new file mode 100644
index 0000000000..44eac633ca
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server.security/plugin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+ Copyright (c) 2004 - 2012 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:
+ Eike Stepper - initial API and implementation
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.cdo.server.appExtensions">
+ <appExtension class="org.eclipse.emf.cdo.server.internal.security.SecurityExtension"/>
+ </extension>
+
+ <extension point="org.eclipse.net4j.util.factories">
+ <factory
+ productGroup="org.eclipse.emf.cdo.server.security.managers"
+ type="default"
+ class="org.eclipse.emf.cdo.server.spi.security.SecurityManagerFactory$Default"/>
+ <factory
+ productGroup="org.eclipse.emf.cdo.server.security.managers"
+ type="annotation"
+ class="org.eclipse.emf.cdo.server.spi.security.SecurityManagerFactory$Annotation"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityExtension.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityExtension.java
new file mode 100644
index 0000000000..b382708665
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityExtension.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.internal.security;
+
+import org.eclipse.emf.cdo.server.internal.security.bundle.OM;
+import org.eclipse.emf.cdo.server.spi.security.InternalSecurityManager;
+import org.eclipse.emf.cdo.server.spi.security.SecurityManagerFactory;
+import org.eclipse.emf.cdo.spi.server.IAppExtension;
+import org.eclipse.emf.cdo.spi.server.InternalRepository;
+import org.eclipse.emf.cdo.spi.server.RepositoryFactory;
+
+import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.container.IPluginContainer;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * @author Eike Stepper
+ */
+public class SecurityExtension implements IAppExtension
+{
+ public static final String DEFAULT_REALM_PATH = "security";
+
+ public SecurityExtension()
+ {
+ }
+
+ public void start(File configFile) throws Exception
+ {
+ OM.LOG.info("Security extension starting"); //$NON-NLS-1$
+
+ Document document = getDocument(configFile);
+ NodeList repositoryConfigs = document.getElementsByTagName("repository"); //$NON-NLS-1$
+ for (int i = 0; i < repositoryConfigs.getLength(); i++)
+ {
+ Element repositoryConfig = (Element)repositoryConfigs.item(i);
+ configureRepository(repositoryConfig);
+ }
+
+ OM.LOG.info("Security extension started"); //$NON-NLS-1$
+ }
+
+ public void stop() throws Exception
+ {
+ OM.LOG.info("Security extension stopping"); //$NON-NLS-1$
+
+ OM.LOG.info("Security extension stopped"); //$NON-NLS-1$
+ }
+
+ protected Document getDocument(File configFile) throws ParserConfigurationException, SAXException, IOException
+ {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ return builder.parse(configFile);
+ }
+
+ protected void configureRepository(Element repositoryConfig)
+ {
+ IManagedContainer container = getContainer();
+ String name = repositoryConfig.getAttribute("name");
+ InternalRepository repository = (InternalRepository)RepositoryFactory.get(container, name);
+ if (repository == null)
+ {
+ throw new IllegalStateException("Repository not registered with container: " + name); //$NON-NLS-1$
+ }
+
+ NodeList securityManagers = repositoryConfig.getElementsByTagName("securityManager"); //$NON-NLS-1$
+ if (securityManagers.getLength() > 1)
+ {
+ throw new IllegalStateException(
+ "A maximum of one security manager can be configured for repository " + repository); //$NON-NLS-1$
+ }
+
+ if (securityManagers.getLength() == 1)
+ {
+ Element securityManagerElement = (Element)securityManagers.item(0);
+ String type = securityManagerElement.getAttribute("type");
+ if (type == null || type.length() == 0)
+ {
+ throw new IllegalStateException("Security manager type not specified for repository " + repository); //$NON-NLS-1$
+ }
+
+ String realmPath = securityManagerElement.getAttribute("realmPath");
+ if (realmPath == null || realmPath.length() == 0)
+ {
+ realmPath = DEFAULT_REALM_PATH;
+ }
+
+ InternalSecurityManager securityManager = (InternalSecurityManager)container.getElement(
+ SecurityManagerFactory.PRODUCT_GROUP, type, realmPath);
+ securityManager.setRepository(repository);
+ }
+ }
+
+ public static IManagedContainer getContainer()
+ {
+ return IPluginContainer.INSTANCE;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java
index 118674ae49..a68ac2f015 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/internal/security/SecurityManager.java
@@ -50,6 +50,7 @@ import org.eclipse.net4j.acceptor.IAcceptor;
import org.eclipse.net4j.connector.IConnector;
import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.lifecycle.ILifecycle;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
@@ -73,7 +74,20 @@ import java.util.Map;
*/
public class SecurityManager extends Lifecycle implements InternalSecurityManager
{
- private final Map<String, User> users = new HashMap<String, User>();
+ private IListener repositoryListener = new LifecycleEventAdapter()
+ {
+ @Override
+ protected void onActivated(ILifecycle lifecycle)
+ {
+ init();
+ }
+
+ @Override
+ protected void onDeactivated(ILifecycle lifecycle)
+ {
+ deactivate();
+ }
+ };
private final IUserManager userManager = new UserManager();
@@ -81,14 +95,16 @@ public class SecurityManager extends Lifecycle implements InternalSecurityManage
private final IRepository.WriteAccessHandler writeAccessHandler = new WriteAccessHandler();
- private final InternalRepository repository;
-
private final List<CommitHandler> commitHandlers = new ArrayList<CommitHandler>();
private final String realmPath;
private final IManagedContainer container;
+ private final Map<String, User> users = new HashMap<String, User>();
+
+ private InternalRepository repository;
+
private IAcceptor acceptor;
private IConnector connector;
@@ -103,33 +119,10 @@ public class SecurityManager extends Lifecycle implements InternalSecurityManage
private EList<SecurityItem> newRoles;
- public SecurityManager(IRepository repository, String realmPath, IManagedContainer container)
+ public SecurityManager(String realmPath, IManagedContainer container)
{
- LifecycleUtil.checkInactive(repository);
-
- this.repository = (InternalRepository)repository;
this.realmPath = realmPath;
this.container = container;
-
- // Wire up with repository
- InternalSessionManager sessionManager = this.repository.getSessionManager();
- sessionManager.setUserManager(userManager);
- sessionManager.setPermissionManager(permissionManager);
- repository.addHandler(writeAccessHandler);
- repository.addListener(new LifecycleEventAdapter()
- {
- @Override
- protected void onActivated(ILifecycle lifecycle)
- {
- activate();
- }
-
- @Override
- protected void onDeactivated(ILifecycle lifecycle)
- {
- deactivate();
- }
- });
}
public final IManagedContainer getContainer()
@@ -137,14 +130,20 @@ public class SecurityManager extends Lifecycle implements InternalSecurityManage
return container;
}
+ public final String getRealmPath()
+ {
+ return realmPath;
+ }
+
public final IRepository getRepository()
{
return repository;
}
- public final String getRealmPath()
+ public void setRepository(InternalRepository repository)
{
- return realmPath;
+ this.repository = repository;
+ init();
}
public Realm getRealm()
@@ -249,6 +248,62 @@ public class SecurityManager extends Lifecycle implements InternalSecurityManage
}
}
+ protected void init()
+ {
+ if (!isActive() || repository == null)
+ {
+ return;
+ }
+
+ repository.addListener(repositoryListener);
+ if (!LifecycleUtil.isActive(repository))
+ {
+ return;
+ }
+
+ String repositoryName = repository.getName();
+ String acceptorName = repositoryName + "_security";
+
+ acceptor = Net4jUtil.getAcceptor(container, "jvm", acceptorName);
+ connector = Net4jUtil.getConnector(container, "jvm", acceptorName);
+
+ CDONet4jSessionConfiguration config = CDONet4jUtil.createNet4jSessionConfiguration();
+ config.setConnector(connector);
+ config.setRepositoryName(repositoryName);
+
+ CDONet4jSession session = config.openNet4jSession();
+ transaction = session.openTransaction();
+
+ boolean firstTime = !transaction.hasResource(realmPath);
+ if (firstTime)
+ {
+ CDOResource resource = transaction.createResource(realmPath);
+ realm = createRealm();
+ resource.getContents().add(realm);
+ }
+ else
+ {
+ CDOResource resource = transaction.getResource(realmPath);
+ realm = (Realm)resource.getContents().get(0);
+ }
+
+ initCommitHandlers(firstTime);
+
+ try
+ {
+ transaction.commit();
+ }
+ catch (Exception ex)
+ {
+ throw WrappedException.wrap(ex);
+ }
+
+ InternalSessionManager sessionManager = repository.getSessionManager();
+ sessionManager.setUserManager(userManager);
+ sessionManager.setPermissionManager(permissionManager);
+ repository.addHandler(writeAccessHandler);
+ }
+
protected Realm createRealm()
{
Realm realm = SecurityFactory.eINSTANCE.createRealm();
@@ -360,35 +415,7 @@ public class SecurityManager extends Lifecycle implements InternalSecurityManage
protected void doActivate() throws Exception
{
super.doActivate();
-
- String repositoryName = repository.getName();
- String acceptorName = repositoryName + "_security";
-
- acceptor = Net4jUtil.getAcceptor(container, "jvm", acceptorName);
- connector = Net4jUtil.getConnector(container, "jvm", acceptorName);
-
- CDONet4jSessionConfiguration config = CDONet4jUtil.createNet4jSessionConfiguration();
- config.setConnector(connector);
- config.setRepositoryName(repositoryName);
-
- CDONet4jSession session = config.openNet4jSession();
- transaction = session.openTransaction();
-
- boolean firstTime = !transaction.hasResource(realmPath);
- if (firstTime)
- {
- CDOResource resource = transaction.createResource(realmPath);
- realm = createRealm();
- resource.getContents().add(realm);
- }
- else
- {
- CDOResource resource = transaction.getResource(realmPath);
- realm = (Realm)resource.getContents().get(0);
- }
-
- initCommitHandlers(firstTime);
- transaction.commit();
+ init();
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/ISecurityManager.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/ISecurityManager.java
index 250c8b0e69..c449157171 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/ISecurityManager.java
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/ISecurityManager.java
@@ -17,11 +17,13 @@ import org.eclipse.emf.cdo.server.IRepository;
/**
* Protects a given {@link IRepository repository}.
*
- * @see SecurityManagerUtil#createSecurityManager(org.eclipse.emf.cdo.server.IRepository, String)
+ * @see SecurityManagerUtil#createSecurityManager(String)
* @author Eike Stepper
*/
public interface ISecurityManager
{
+ public IRepository getRepository();
+
public Realm getRealm();
public User getUser(String userID);
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/SecurityManagerUtil.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/SecurityManagerUtil.java
index 595c3b0511..71e3f61e4b 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/SecurityManagerUtil.java
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/security/SecurityManagerUtil.java
@@ -10,7 +10,7 @@
*/
package org.eclipse.emf.cdo.server.security;
-import org.eclipse.emf.cdo.server.IRepository;
+import org.eclipse.emf.cdo.server.spi.security.SecurityManagerFactory;
import org.eclipse.net4j.util.container.IManagedContainer;
import org.eclipse.net4j.util.container.IPluginContainer;
@@ -26,14 +26,19 @@ public final class SecurityManagerUtil
{
}
- public static ISecurityManager createSecurityManager(IRepository repository, String realmPath)
+ public static ISecurityManager createSecurityManager(String realmPath)
{
- return createSecurityManager(repository, realmPath, IPluginContainer.INSTANCE);
+ return createSecurityManager(realmPath, IPluginContainer.INSTANCE);
}
- public static ISecurityManager createSecurityManager(IRepository repository, String realmPath,
- IManagedContainer container)
+ public static ISecurityManager createSecurityManager(String realmPath, IManagedContainer container)
{
- return new org.eclipse.emf.cdo.server.internal.security.SecurityManager(repository, realmPath, container);
+ return new org.eclipse.emf.cdo.server.internal.security.SecurityManager(realmPath, container);
+ }
+
+ public static void prepareContainer(IManagedContainer container)
+ {
+ container.registerFactory(new SecurityManagerFactory.Default());
+ container.registerFactory(new SecurityManagerFactory.Annotation());
}
}
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java
index 22c7019937..b80ff5d8f0 100644
--- a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/InternalSecurityManager.java
@@ -11,9 +11,9 @@
package org.eclipse.emf.cdo.server.spi.security;
import org.eclipse.emf.cdo.security.User;
-import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.IStoreAccessor.CommitContext;
import org.eclipse.emf.cdo.server.security.ISecurityManager;
+import org.eclipse.emf.cdo.spi.server.InternalRepository;
import org.eclipse.net4j.util.container.IManagedContainer;
@@ -24,7 +24,7 @@ public interface InternalSecurityManager extends ISecurityManager
{
public IManagedContainer getContainer();
- public IRepository getRepository();
+ public void setRepository(InternalRepository repository);
public String getRealmPath();
diff --git a/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/SecurityManagerFactory.java b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/SecurityManagerFactory.java
new file mode 100644
index 0000000000..82f36cf730
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server.security/src/org/eclipse/emf/cdo/server/spi/security/SecurityManagerFactory.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2004 - 2012 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.spi.security;
+
+import org.eclipse.emf.cdo.server.security.ISecurityManager;
+import org.eclipse.emf.cdo.server.security.SecurityManagerUtil;
+
+import org.eclipse.net4j.util.factory.Factory;
+import org.eclipse.net4j.util.factory.ProductCreationException;
+
+/**
+ * @author Eike Stepper
+ */
+public abstract class SecurityManagerFactory extends Factory
+{
+ public static final String PRODUCT_GROUP = "org.eclipse.emf.cdo.server.security.managers";
+
+ public SecurityManagerFactory(String type)
+ {
+ super(PRODUCT_GROUP, type);
+ }
+
+ public abstract ISecurityManager create(String realmPath) throws ProductCreationException;
+
+ /**
+ * @author Eike Stepper
+ */
+ public static class Default extends SecurityManagerFactory
+ {
+ private static final String TYPE = "default";
+
+ public Default()
+ {
+ super(TYPE);
+ }
+
+ @Override
+ public ISecurityManager create(String realmPath) throws ProductCreationException
+ {
+ return SecurityManagerUtil.createSecurityManager(realmPath);
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ public static class Annotation extends SecurityManagerFactory
+ {
+ private static final String TYPE = "annotation";
+
+ public Annotation()
+ {
+ super(TYPE);
+ }
+
+ @Override
+ public ISecurityManager create(String realmPath) throws ProductCreationException
+ {
+ InternalSecurityManager securityManager = (InternalSecurityManager)SecurityManagerUtil
+ .createSecurityManager(realmPath);
+
+ AnnotationHandler handler = new AnnotationHandler();
+ securityManager.addCommitHandler(handler);
+
+ return securityManager;
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
index 28e5dd992d..30daddd115 100644
--- a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
+++ b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
@@ -4,7 +4,7 @@
<stringAttribute key="application" value="org.eclipse.emf.cdo.server.app"/>
<booleanAttribute key="askclear" value="true"/>
<booleanAttribute key="automaticAdd" value="false"/>
-<booleanAttribute key="automaticValidate" value="false"/>
+<booleanAttribute key="automaticValidate" value="true"/>
<stringAttribute key="bootstrap" value=""/>
<stringAttribute key="checked" value="org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.server.db,org.eclipse.net4j,org.eclipse.net4j.db,org.eclipse.net4j.db.derby,org.eclipse.net4j.http.common,org.eclipse.net4j.http.server,org.eclipse.net4j.tcp,org.eclipse.net4j.util"/>
<booleanAttribute key="clearConfig" value="true"/>
@@ -12,7 +12,7 @@
<booleanAttribute key="clearwslog" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/CDOServer"/>
<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="includeOptional" value="true"/>
+<booleanAttribute key="includeOptional" value="false"/>
<stringAttribute key="location" value="${workspace_loc}/../cdo.server"/>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<mapAttribute key="org.eclipse.debug.core.preferred_launchers">
@@ -29,8 +29,8 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
<stringAttribute key="selectedPlugin" value="org.eclipse.emf.cdo"/>
-<stringAttribute key="selected_target_plugins" value="com.mysql.jdbc*5.1.11.201205200850@default:default,com.mysql.jdbc*5.1.11.201205201951@default:default,javax.servlet@default:default,org.apache.derby@default:default,org.apache.felix.gogo.runtime@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.common*2.8.0.v20120504-0433@default:default,org.eclipse.emf.common*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore*2.8.0.v20120504-0433@default:default,org.eclipse.emf.ecore*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.change*2.8.0.v20120504-0433@default:default,org.eclipse.emf.ecore.change*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.xmi*2.8.0.v20120504-0433@default:default,org.eclipse.emf.ecore.xmi*2.8.0.v20120516-0416@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.console@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.orbit.mongodb@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.team.core@default:default,org.h2@default:default,org.hsqldb@default:default,org.postgresql.jdbc3@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.examples.company@default:default,org.eclipse.emf.cdo.server.admin@default:default,org.eclipse.emf.cdo.server.db@default:default,org.eclipse.emf.cdo.server.mongodb@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.net4j.db.derby@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db.hsqldb@default:default,org.eclipse.net4j.db.mysql@default:default,org.eclipse.net4j.db.postgresql@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.mysql.jdbc*5.1.11.201205201951@default:default,org.apache.derby@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.emf.common*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.change*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.xmi*2.8.0.v20120516-0416@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.orbit.mongodb@default:default,org.eclipse.osgi@-1:true,org.h2@default:default,org.hsqldb@default:default,org.postgresql.jdbc3@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.examples.company@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.security@default:default,org.eclipse.emf.cdo.server.admin@default:default,org.eclipse.emf.cdo.server.db@default:default,org.eclipse.emf.cdo.server.mongodb@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server.security@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.net4j.db.derby@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db.hsqldb@default:default,org.eclipse.net4j.db.mysql@default:default,org.eclipse.net4j.db.postgresql@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="true"/>
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
index 4aeb40e0c9..9071820d08 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
@@ -499,15 +499,13 @@ public class SessionManager extends Container<ISession> implements InternalSessi
protected void doActivate() throws Exception
{
super.doActivate();
- if (userManager != null)
- {
- if (randomizer == null)
- {
- randomizer = new Randomizer();
- }
- LifecycleUtil.activate(randomizer);
+ if (randomizer == null)
+ {
+ randomizer = new Randomizer();
}
+
+ LifecycleUtil.activate(randomizer);
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch b/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch
index 22be874cdc..1d1912ade8 100644
--- a/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch
+++ b/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch
@@ -28,7 +28,7 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.common*2.8.0.v20120516-0416@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.ecore*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.change*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi*2.8.0.v20120516-0416@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help.base@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi@-1:true,org.eclipse.platform@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.h2@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.admin@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.edit@default:default,org.eclipse.emf.cdo.examples.company.edit@default:default,org.eclipse.emf.cdo.examples.company@default:default,org.eclipse.emf.cdo.location@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.server.db@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.team@default:default,org.eclipse.emf.cdo.ui.admin@default:default,org.eclipse.emf.cdo.ui.efs@default:default,org.eclipse.emf.cdo.ui.ide@default:default,org.eclipse.emf.cdo.ui.location@default:default,org.eclipse.emf.cdo.ui.shared@default:default,org.eclipse.emf.cdo.ui.workspace@default:default,org.eclipse.emf.cdo.ui@default:default,org.eclipse.emf.cdo.workspace.efs@default:default,org.eclipse.emf.cdo.workspace@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.ui@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.admin@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.edit@default:default,org.eclipse.emf.cdo.examples.company.edit@default:default,org.eclipse.emf.cdo.examples.company@default:default,org.eclipse.emf.cdo.location@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.security.edit@default:default,org.eclipse.emf.cdo.security.editor@default:default,org.eclipse.emf.cdo.security@default:default,org.eclipse.emf.cdo.server.db@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.team@default:default,org.eclipse.emf.cdo.ui.admin@default:default,org.eclipse.emf.cdo.ui.efs@default:default,org.eclipse.emf.cdo.ui.ide@default:default,org.eclipse.emf.cdo.ui.location@default:default,org.eclipse.emf.cdo.ui.shared@default:default,org.eclipse.emf.cdo.ui.workspace@default:default,org.eclipse.emf.cdo.ui@default:default,org.eclipse.emf.cdo.workspace.efs@default:default,org.eclipse.emf.cdo.workspace@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.ui@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="true"/>
diff --git a/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch b/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch
index da1223d9e2..423f31da5d 100644
--- a/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch
+++ b/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch
@@ -28,7 +28,7 @@
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
<stringAttribute key="selectedPlugin" value="org.eclipse.emf.cdo"/>
<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.apache.lucene@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.common*2.8.0.v20120516-0416@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.ecore*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.change*2.8.0.v20120516-0416@default:default,org.eclipse.emf.ecore.edit@default:default,org.eclipse.emf.ecore.xmi*2.8.0.v20120516-0416@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.help.base@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi@-1:true,org.eclipse.platform@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.h2@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.admin@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.edit@default:default,org.eclipse.emf.cdo.examples.company.edit@default:default,org.eclipse.emf.cdo.examples.company@default:default,org.eclipse.emf.cdo.location@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.server.db@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.team@default:default,org.eclipse.emf.cdo.ui.admin@default:default,org.eclipse.emf.cdo.ui.efs@default:default,org.eclipse.emf.cdo.ui.ide@default:default,org.eclipse.emf.cdo.ui.location@default:default,org.eclipse.emf.cdo.ui.shared@default:default,org.eclipse.emf.cdo.ui.workspace@default:default,org.eclipse.emf.cdo.ui@default:default,org.eclipse.emf.cdo.workspace.efs@default:default,org.eclipse.emf.cdo.workspace@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.ui@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.admin@default:default,org.eclipse.emf.cdo.common@default:default,org.eclipse.emf.cdo.edit@default:default,org.eclipse.emf.cdo.examples.company.edit@default:default,org.eclipse.emf.cdo.examples.company@default:default,org.eclipse.emf.cdo.location@default:default,org.eclipse.emf.cdo.net4j@default:default,org.eclipse.emf.cdo.security.edit@default:default,org.eclipse.emf.cdo.security.editor@default:default,org.eclipse.emf.cdo.security@default:default,org.eclipse.emf.cdo.server.db@default:default,org.eclipse.emf.cdo.server.net4j@default:default,org.eclipse.emf.cdo.server@default:default,org.eclipse.emf.cdo.team@default:default,org.eclipse.emf.cdo.ui.admin@default:default,org.eclipse.emf.cdo.ui.efs@default:default,org.eclipse.emf.cdo.ui.ide@default:default,org.eclipse.emf.cdo.ui.location@default:default,org.eclipse.emf.cdo.ui.shared@default:default,org.eclipse.emf.cdo.ui.workspace@default:default,org.eclipse.emf.cdo.ui@default:default,org.eclipse.emf.cdo.workspace.efs@default:default,org.eclipse.emf.cdo.workspace@default:default,org.eclipse.emf.cdo@default:default,org.eclipse.net4j.db.h2@default:default,org.eclipse.net4j.db@default:default,org.eclipse.net4j.jvm@default:default,org.eclipse.net4j.tcp@default:default,org.eclipse.net4j.ui.shared@default:default,org.eclipse.net4j.ui@default:default,org.eclipse.net4j.util.ui@default:default,org.eclipse.net4j.util@default:default,org.eclipse.net4j@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="true"/>

Back to the top