summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2007-10-06 06:19:20 (EDT)
committerEike Stepper2007-10-06 06:19:20 (EDT)
commitdc260b340cf12bd8c1d6a026afda0ec7a61017e3 (patch)
treeaf80da23b2a622511913bf120786bdca28afeebd
parent218cdbdc7a3e8cad6e0c102a215e393263ade1be (diff)
downloadcdo-dc260b340cf12bd8c1d6a026afda0ec7a61017e3.zip
cdo-dc260b340cf12bd8c1d6a026afda0ec7a61017e3.tar.gz
cdo-dc260b340cf12bd8c1d6a026afda0ec7a61017e3.tar.bz2
[205027] Implement challenge/response based negotiator
https://bugs.eclipse.org/bugs/show_bug.cgi?id=205027
-rw-r--r--features/org.eclipse.emf.cdo.server.product-feature/rootfiles/configuration/cdo-server.xml4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/CDOServer.launch4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/plugin.xml62
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch6
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch154
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch154
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/plugin.xml6
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseSessionAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseViewAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CreateResourceAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ExportResourceAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportRootsAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/LoadResourceAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ManagePackagesAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenAuditAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenResourceEditorAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewEditorAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RegisterPackagesAction.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/bundle/OM.java23
-rw-r--r--plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java2
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/ControlChannel.java5
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptor.java4
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptorFactory.java9
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPClientConnector.java12
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnector.java65
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnectorFactory.java7
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPSelector.java2
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPServerConnector.java10
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPAcceptor.java4
-rw-r--r--plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPConnector.java2
-rw-r--r--plugins/org.eclipse.net4j.tests/Net4j AllTests.launch20
-rw-r--r--plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/AllTests.java3
-rw-r--r--plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/ConnectorTest.java202
-rw-r--r--plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/util/tests/SecurityTest.java29
-rw-r--r--plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/AcceptorsView.java4
-rw-r--r--plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/Net4jItemProvider.java3
-rw-r--r--plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/CredentialsDialog.java7
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/InteractiveCredentialsProvider.java22
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jContainerItemProvider.java3
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java34
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java40
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/SafeAction.java4
-rw-r--r--plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java2
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/ResultSynchronizer.java8
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java1
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java59
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/EclipseMonitor.java64
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/MON.java20
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiator.java20
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiatorConfigurer.java34
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeResponseNegotiator.java2
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/PasswordCredentialsProvider.java27
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/RandomizerFactory.java4
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ResponseNegotiator.java12
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java8
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitorUtil.java7
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitoredJob.java9
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/INegotiationContext.java3
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Connector.java63
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Net4jTransportInjector.java114
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jUtil.java2
67 files changed, 990 insertions, 429 deletions
diff --git a/features/org.eclipse.emf.cdo.server.product-feature/rootfiles/configuration/cdo-server.xml b/features/org.eclipse.emf.cdo.server.product-feature/rootfiles/configuration/cdo-server.xml
index 7f56a1b..2039f32 100644
--- a/features/org.eclipse.emf.cdo.server.product-feature/rootfiles/configuration/cdo-server.xml
+++ b/features/org.eclipse.emf.cdo.server.product-feature/rootfiles/configuration/cdo-server.xml
@@ -2,7 +2,9 @@
<cdoServer>
<acceptor type="tcp" listenAddr="0.0.0.0" port="2036">
- <negotiator type="challenge" description="/temp/users.db"/>
+ <!--
+ <negotiator type="challenge" description="/temp/users.db"/>
+ -->
</acceptor>
<repository name="repo1">
diff --git a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
index 3871c6b..ed71faf 100644
--- a/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
+++ b/plugins/org.eclipse.emf.cdo.server/CDOServer.launch
@@ -19,13 +19,13 @@
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}&#13;&#10;-debug&#13;&#10;-console&#13;&#10;-consoleLog&#13;&#10;--launcher.XXMaxPermSize&#13;&#10;128M"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}&#13;&#10;-debug&#13;&#10;-console&#13;&#10;--launcher.XXMaxPermSize&#13;&#10;128M"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true&#13;&#10;-Dnet4j.config=${resource_loc:/org.eclipse.emf.cdo.server.product/rootfiles/configuration}"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
<stringAttribute key="selectedPlugin" value="org.eclipse.net4j.util"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.core.contenttype,org.eclipse.core.jobs,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.equinox.app,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.equinox.registry,org.eclipse.osgi,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.update.configurator"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.core.contenttype,org.eclipse.core.jobs,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.update.configurator"/>
<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.protocol,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.server.db,org.eclipse.net4j.db.derby,org.eclipse.net4j.db,org.eclipse.net4j,org.eclipse.net4j.tcp"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="true"/>
diff --git a/plugins/org.eclipse.emf.cdo.server/plugin.xml b/plugins/org.eclipse.emf.cdo.server/plugin.xml
index 680d314..1cdf6e0 100644
--- a/plugins/org.eclipse.emf.cdo.server/plugin.xml
+++ b/plugins/org.eclipse.emf.cdo.server/plugin.xml
@@ -20,33 +20,36 @@
<extension-point id="storeFactories" name="CDO Store Factories" schema="schema/storeFactories.exsd"/>
<extension-point id="repositoryFactories" name="CDO Repository Factories" schema="schema/repositoryFactories.exsd"/>
- <extension
- point="org.eclipse.net4j.util.factories">
- <factory
- productGroup="org.eclipse.net4j.serverProtocols"
+ <extension
+ point="org.eclipse.net4j.util.factories">
+ <factory
+ productGroup="org.eclipse.net4j.serverProtocols"
type="cdo"
class="org.eclipse.emf.cdo.internal.server.protocol.CDOPluginProtocolFactory"/>
- <factory
+ <factory
type="challenge"
productGroup="org.eclipse.net4j.Negotiators"
class="org.eclipse.net4j.internal.util.security.ChallengeNegotiatorFactory"/>
- </extension>
+ </extension>
+
+ <extension
+ point="org.eclipse.net4j.util.elementProcessors">
+ <elementProcessor class="org.eclipse.net4j.internal.util.security.ChallengeNegotiatorConfigurer"/>
+ </extension>
- <extension
- point="org.eclipse.emf.cdo.server.repositoryFactories">
- <repositoryFactory
- class="org.eclipse.emf.cdo.internal.server.RepositoryFactory"
- repositoryType="default">
- </repositoryFactory>
- </extension>
+ <extension
+ point="org.eclipse.emf.cdo.server.repositoryFactories">
+ <repositoryFactory
+ class="org.eclipse.emf.cdo.internal.server.RepositoryFactory"
+ repositoryType="default"/>
+ </extension>
- <extension
- point="org.eclipse.emf.cdo.server.storeFactories">
- <storeFactory
- class="org.eclipse.emf.cdo.internal.server.NOOPStoreFactory"
- storeType="noop">
- </storeFactory>
- </extension>
+ <extension
+ point="org.eclipse.emf.cdo.server.storeFactories">
+ <storeFactory
+ class="org.eclipse.emf.cdo.internal.server.NOOPStoreFactory"
+ storeType="noop"/>
+ </extension>
<extension
id="app"
@@ -57,18 +60,15 @@
</application>
</extension>
- <extension
- id="product"
- point="org.eclipse.core.runtime.products">
- <product
- name="CDOServer"
+ <extension
+ id="product"
+ point="org.eclipse.core.runtime.products">
+ <product
+ name="CDOServer"
description="An example of a CDO server"
application="org.eclipse.emf.cdo.server.app">
- <property
- name="appName"
- value="CDOServer">
- </property>
- </product>
- </extension>
+ <property name="appName" value="CDOServer"/>
+ </product>
+ </extension>
</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch b/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch
index 2ac9300..e28a40a 100644
--- a/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch
+++ b/plugins/org.eclipse.emf.cdo.tests/CDO AllTests.launch
@@ -7,10 +7,8 @@
<listEntry value="1"/>
</listAttribute>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;org.eclipse.emf.cdo&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
diff --git a/plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch b/plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch
index 45c7601..22ab062 100644
--- a/plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch
+++ b/plugins/org.eclipse.emf.cdo.tests/CDO2 TDD.launch
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/tdd/TDD.java"/>
+<listEntry value="/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/TDD.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
@@ -9,10 +9,6 @@
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;folder nest=&amp;quot;false&amp;quot; path=&amp;quot;/org.eclipse.emf.cdo.weaver.ajdt/ecore&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.folder&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.emf.cdo.tests.TDD"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.emf.cdo.tests"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/>
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java
index 8b6e070..c6aa00a 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/GeneratedEcoreTest.java
@@ -26,6 +26,9 @@ import org.eclipse.emf.ecore.EcorePackage;
*/
public class GeneratedEcoreTest extends AbstractCDOTest
{
+ /**
+ * TODO Fix me
+ */
public void testGeneratedEcore() throws Exception
{
// Obtain model
@@ -51,7 +54,7 @@ public class GeneratedEcoreTest extends AbstractCDOTest
assertFalse("Unresolved proxy", root2.eIsProxy());
assertEquals(res2, root2.eResource());
- CDOUtil.load(root2, transaction2);// FIXME
+ CDOUtil.load(root2, transaction2);
EMFUtil.saveEcore("model1X.ecore", root2);
// assertTrue("Models differ", EcoreUtil.equals(root1, root2));
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch b/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch
index 1d0e988..b717fad 100644
--- a/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch
+++ b/plugins/org.eclipse.emf.cdo.ui/CDOClient1.launch
@@ -17,14 +17,14 @@
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-nosplash&#13;&#10;-console&#13;&#10;-consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-nosplash&#13;&#10;-console"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.aspectj.tracing.debug=false&#13;&#10;-Xms40m&#13;&#10;-Xmx512m"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
<stringAttribute key="selectedPlugin" value="org.eclipse.emf.cdo.protocol"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu,com.ibm.icu36.data.update,com.jcraft.jsch,javax.servlet,javax.servlet.jsp,org.apache.ant,org.apache.commons.el,org.apache.commons.logging,org.apache.jasper,org.apache.lucene,org.apache.lucene.analysis,org.aspectj.runtime,org.aspectj.weaver,org.eclipse.ant.core,org.eclipse.ant.ui,org.eclipse.compare,org.eclipse.core.boot,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.cvs,org.eclipse.cvs.source,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.emf,org.eclipse.emf.ant,org.eclipse.emf.cheatsheets,org.eclipse.emf.codegen,org.eclipse.emf.codegen.ecore,org.eclipse.emf.codegen.ecore.ui,org.eclipse.emf.codegen.ui,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.commonj.sdo,org.eclipse.emf.converter,org.eclipse.emf.doc,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.change.edit,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.editor,org.eclipse.emf.ecore.sdo,org.eclipse.emf.ecore.sdo.doc,org.eclipse.emf.ecore.sdo.edit,org.eclipse.emf.ecore.sdo.editor,org.eclipse.emf.ecore.sdo.source,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.emf.exporter,org.eclipse.emf.importer,org.eclipse.emf.importer.ecore,org.eclipse.emf.importer.java,org.eclipse.emf.importer.rose,org.eclipse.emf.mapping,org.eclipse.emf.mapping.ecore2ecore,org.eclipse.emf.mapping.ecore2ecore.editor,org.eclipse.emf.mapping.ecore2xml,org.eclipse.emf.mapping.ecore2xml.ui,org.eclipse.emf.mapping.ui,org.eclipse.emf.mapping.xsd2ecore,org.eclipse.emf.mapping.xsd2ecore.editor,org.eclipse.emf.source,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.http.jetty,org.eclipse.equinox.http.registry,org.eclipse.equinox.http.servlet,org.eclipse.equinox.jsp.jasper,org.eclipse.equinox.jsp.jasper.registry,org.eclipse.equinox.launcher,org.eclipse.equinox.launcher.win32.win32.x86,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.help.appserver,org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.help.webapp,org.eclipse.jdt,org.eclipse.jdt.compiler.apt,org.eclipse.jdt.compiler.tool,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.doc.isv,org.eclipse.jdt.doc.user,org.eclipse.jdt.junit,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.junit4.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.source,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.jsch.core,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde,org.eclipse.pde.build,org.eclipse.pde.core,org.eclipse.pde.doc.user,org.eclipse.pde.junit.runtime,org.eclipse.pde.runtime,org.eclipse.pde.source,org.eclipse.pde.ui,org.eclipse.pde.ui.templates,org.eclipse.platform,org.eclipse.platform.doc.isv,org.eclipse.platform.source,org.eclipse.platform.source.win32.win32.x86,org.eclipse.rcp,org.eclipse.rcp.source,org.eclipse.rcp.source.win32.win32.x86,org.eclipse.sdk,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.team.core,org.eclipse.team.cvs.core,org.eclipse.team.cvs.ssh,org.eclipse.team.cvs.ssh2,org.eclipse.team.cvs.ui,org.eclipse.team.ui,org.eclipse.text,org.eclipse.tomcat,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.externaltools,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.intro.universal,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.presentations.r21,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.ui.workbench.compatibility,org.eclipse.ui.workbench.texteditor,org.eclipse.uml2.common,org.eclipse.uml2.common.edit,org.eclipse.uml2.uml,org.eclipse.uml2.uml,org.eclipse.update.configurator,org.eclipse.update.core,org.eclipse.update.core.win32,org.eclipse.update.scheduler,org.eclipse.update.ui,org.eclipse.xsd,org.eclipse.xsd.cheatsheets,org.eclipse.xsd.doc,org.eclipse.xsd.ecore.exporter,org.eclipse.xsd.ecore.importer,org.eclipse.xsd.edit,org.eclipse.xsd.editor,org.eclipse.xsd.source,org.junit,org.junit4,org.mortbay.jetty"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.protocol,org.eclipse.ant.optional.junit,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.ui,org.eclipse.emf.cdo.edit,org.eclipse.emf.cdo,org.eclipse.emf.cdo.examples,org.eclipse.emf.cdo.weaver,org.eclipse.emf.cdo.tests.model1.editor,org.eclipse.emf.cdo.tests.model1.edit,org.eclipse.net4j.util.ui,org.eclipse.net4j,org.eclipse.emf.cdo.tests.model1,org.eclipse.net4j.tcp,org.eclipse.emf.cdo.doc,org.eclipse.net4j.ui,org.eclipse.emf.cdo.weaver.ui"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu,com.jcraft.jsch,javax.servlet,javax.servlet.jsp,org.apache.ant,org.apache.commons.el,org.apache.commons.logging,org.apache.jasper,org.apache.lucene,org.apache.lucene.analysis,org.eclipse.ant.core,org.eclipse.ant.ui,org.eclipse.compare,org.eclipse.core.boot,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.cvs,org.eclipse.cvs.source,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.emf,org.eclipse.emf.ant,org.eclipse.emf.cheatsheets,org.eclipse.emf.codegen,org.eclipse.emf.codegen.ecore,org.eclipse.emf.codegen.ecore.ui,org.eclipse.emf.codegen.ui,org.eclipse.emf.common,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.common.ui,org.eclipse.emf.commonj.sdo,org.eclipse.emf.converter,org.eclipse.emf.doc,org.eclipse.emf.ecore,org.eclipse.emf.ecore,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.change.edit,org.eclipse.emf.ecore.change.edit,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.editor,org.eclipse.emf.ecore.sdo,org.eclipse.emf.ecore.sdo.doc,org.eclipse.emf.ecore.sdo.edit,org.eclipse.emf.ecore.sdo.editor,org.eclipse.emf.ecore.sdo.source,org.eclipse.emf.ecore.xmi,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.emf.edit.ui,org.eclipse.emf.exporter,org.eclipse.emf.importer,org.eclipse.emf.importer.ecore,org.eclipse.emf.importer.java,org.eclipse.emf.importer.rose,org.eclipse.emf.mapping,org.eclipse.emf.mapping.ecore2ecore,org.eclipse.emf.mapping.ecore2ecore.editor,org.eclipse.emf.mapping.ecore2xml,org.eclipse.emf.mapping.ecore2xml.ui,org.eclipse.emf.mapping.ui,org.eclipse.emf.mapping.xsd2ecore,org.eclipse.emf.mapping.xsd2ecore.editor,org.eclipse.emf.source,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.http.jetty,org.eclipse.equinox.http.registry,org.eclipse.equinox.http.servlet,org.eclipse.equinox.jsp.jasper,org.eclipse.equinox.jsp.jasper.registry,org.eclipse.equinox.launcher,org.eclipse.equinox.launcher.win32.win32.x86,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.help.appserver,org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.help.webapp,org.eclipse.jdt,org.eclipse.jdt.compiler.apt,org.eclipse.jdt.compiler.tool,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.doc.isv,org.eclipse.jdt.doc.user,org.eclipse.jdt.junit,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.junit4.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.source,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.jsch.core,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde,org.eclipse.pde.build,org.eclipse.pde.core,org.eclipse.pde.doc.user,org.eclipse.pde.junit.runtime,org.eclipse.pde.runtime,org.eclipse.pde.source,org.eclipse.pde.ui,org.eclipse.pde.ui.templates,org.eclipse.platform,org.eclipse.platform.doc.isv,org.eclipse.platform.source,org.eclipse.platform.source.win32.win32.x86,org.eclipse.rcp,org.eclipse.rcp.source,org.eclipse.rcp.source.win32.win32.x86,org.eclipse.sdk,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.team.core,org.eclipse.team.cvs.core,org.eclipse.team.cvs.ssh,org.eclipse.team.cvs.ssh2,org.eclipse.team.cvs.ui,org.eclipse.team.ui,org.eclipse.text,org.eclipse.tomcat,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.externaltools,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.intro.universal,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.presentations.r21,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.ui.workbench.compatibility,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.update.core,org.eclipse.update.core.win32,org.eclipse.update.scheduler,org.eclipse.update.ui,org.eclipse.xsd,org.eclipse.xsd,org.eclipse.xsd.cheatsheets,org.eclipse.xsd.doc,org.eclipse.xsd.ecore.exporter,org.eclipse.xsd.ecore.importer,org.eclipse.xsd.edit,org.eclipse.xsd.edit,org.eclipse.xsd.editor,org.eclipse.xsd.source,org.junit,org.junit4,org.mortbay.jetty"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.protocol,org.eclipse.ant.optional.junit,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.ui,org.eclipse.emf.cdo.edit,org.eclipse.emf.cdo,org.eclipse.emf.cdo.examples,org.eclipse.emf.cdo.weaver,org.eclipse.emf.cdo.tests.model1.editor,org.eclipse.emf.cdo.tests.model1.edit,org.eclipse.net4j.util.ui,org.eclipse.emf.cdo.tests.model1,org.eclipse.net4j,org.eclipse.net4j.tcp,org.eclipse.emf.cdo.doc,org.eclipse.net4j.ui,org.eclipse.emf.cdo.weaver.ui"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="true"/>
<mapAttribute key="tracingOptions">
@@ -42,22 +42,22 @@
<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/error" value="true"/>
<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.emf.validation/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/warning" value="true"/>
+<mapEntry key="org.eclipse.emf.validation/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.ui/actioncontributor/debugstatusfields" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.wst.sse.ui/actioncontributor/debugstatusfields" value="true"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
<mapEntry key="org.eclipse.net4j.tcp/debug" value="true"/>
<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.repository" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.emf.ocl/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/contentOutline" value="false"/>
-<mapEntry key="org.eclipse.wtp.common/debug/logtrace" value="false"/>
+<mapEntry key="org.eclipse.emf.ocl/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/preferences-properties" value="false"/>
+<mapEntry key="org.eclipse.wtp.common/debug/logtrace" value="false"/>
<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug" value="true"/>
<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
@@ -65,39 +65,39 @@
<mapEntry key="org.eclipse.net4j.util/debug.lifecycle.dump" value="true"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.util" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.ui/propertySheet" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.ui/propertySheet" value="false"/>
<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
<mapEntry key="org.eclipse.wtp.common/debug/loglevel" value="WARNING"/>
<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server/debug.store" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.core/format" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/format" value="false"/>
<mapEntry key="org.eclipse.ocl/debug/evaluation" value="false"/>
<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/constraints" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="com.ibm.datatools.core.ui/modelExplorer/trace" value="true"/>
<mapEntry key="org.eclipse.ocl/debug/exceptions/catching" value="false"/>
+<mapEntry key="com.ibm.datatools.core.ui/modelExplorer/trace" value="true"/>
<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/structureddocument" value="false"/>
<mapEntry key="org.eclipse.emf.transaction/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.protocol/debug.protocol" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
<mapEntry key="org.eclipse.ocl/debug" value="true"/>
<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
<mapEntry key="org.eclipse.net4j.db/debug" value="true"/>
-<mapEntry key="org.eclipse.wst.common.environment/trace/ws_dt_cmd_engine" value="true"/>
<mapEntry key="org.eclipse.emf.query/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.wst.common.environment/trace/ws_dt_cmd_engine" value="true"/>
<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
<mapEntry key="org.eclipse.net4j.jms/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/gotoNextAnnotation" value="false"/>
@@ -105,8 +105,8 @@
<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
<mapEntry key="org.eclipse.help.base/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/ws_ant" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
<mapEntry key="org.eclipse.emf.validation/debug/parsers" value="false"/>
@@ -115,14 +115,14 @@
<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
<mapEntry key="org.eclipse.wst.common.project.facet.core/actionSorting" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
<mapEntry key="com.ibm.datatools.core.ui/modelExplorerDecoration/trace" value="true"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
<mapEntry key="org.eclipse.jet/debug/builder" value="false"/>
@@ -130,23 +130,23 @@
<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
<mapEntry key="org.eclipse.osgi/debug" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/constraints/disabled" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.types" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugpopup" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.types" value="true"/>
<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
<mapEntry key="org.eclipse.jem.util/debug/logtrace" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.wst.common.environment/trace/info" value="true"/>
-<mapEntry key="org.eclipse.emf.query.ocl/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.emf.query.ocl/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.wst.common.environment/trace/info" value="true"/>
<mapEntry key="org.eclipse.net4j/perf" value="false"/>
<mapEntry key="org.eclipse.help.base/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j/debug" value="true"/>
<mapEntry key="org.eclipse.jet/debug/projectBundleLoading" value="false"/>
+<mapEntry key="org.eclipse.net4j/debug" value="true"/>
<mapEntry key="org.eclipse.net4j/debug.signal" value="true"/>
<mapEntry key="org.eclipse.emf.query/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/modelmanager" value="false"/>
@@ -156,19 +156,19 @@
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugmenu" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/filemodelprovider/modelstatelistener" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/lifecycle" value="false"/>
<mapEntry key="org.eclipse.datatools.connectivity.sqm.core/debug" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/lifecycle" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/tasks/job" value="false"/>
<mapEntry key="org.eclipse.net4j/debug.buffer" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.repository" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendedconfigurationbuilder" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
<mapEntry key="org.eclipse.wst.xml.core/debug/cmdocumentmanager" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.examples/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
@@ -178,17 +178,17 @@
<mapEntry key="org.eclipse.net4j.util/debug.registry" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/>
<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.revision" value="false"/>
<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
@@ -202,34 +202,34 @@
<mapEntry key="org.eclipse.emf.transaction/debug/transactions" value="false"/>
<mapEntry key="org.eclipse.ocl/debug/parsing" value="false"/>
<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.core/tasks/preferences" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/tasks/preferences" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/>
<mapEntry key="com.ibm.datatools.core.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/propertyChangeUpdateActionContributionItem" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/readtime" value="false"/>
<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/tasks" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
<mapEntry key="org.eclipse.jet/debug/pluginBundleLoading" value="false"/>
<mapEntry key="org.eclipse.wst.xml.core/debug/tracefilter" value=""/>
-<mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/listeners" value="false"/>
@@ -237,8 +237,8 @@
<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
<mapEntry key="org.eclipse.net4j/debug.connector" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
<mapEntry key="org.eclipse.wst.dtd.ui/projectionperf" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
<mapEntry key="org.eclipse.ocl/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
@@ -246,8 +246,8 @@
<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug/reconcilerjob" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
@@ -263,11 +263,11 @@
<mapEntry key="org.eclipse.emf.validation/debug/cache" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
<mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
<mapEntry key="org.eclipse.net4j.util/debug.lifecycle" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
<mapEntry key="org.eclipse.emf.validation/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
@@ -281,10 +281,10 @@
<mapEntry key="org.eclipse.help/debug/context" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug/reconcilerValidators" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/xml" value="false"/>
-<mapEntry key="org.eclipse.jet/debug/bundleLoading" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug" value="true"/>
+<mapEntry key="org.eclipse.jet/debug/bundleLoading" value="false"/>
<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo/debug" value="true"/>
<mapEntry key="org.eclipse.emf.cdo.ui/debug" value="true"/>
<mapEntry key="org.eclipse.net4j.examples/debug" value="true"/>
<mapEntry key="org.eclipse.emf.workspace/debug/exceptions/catching" value="false"/>
@@ -296,29 +296,29 @@
<mapEntry key="org.eclipse.emf.ocl/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.jet/debug" value="false"/>
<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jet/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server.jdbc/debug" value="true"/>
<mapEntry key="org.eclipse.wst.xml.ui/projectionperf" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
<mapEntry key="org.eclipse.emf.transaction/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
<mapEntry key="org.eclipse.jem.util/debug/loglevel" value="WARNING"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/filemodelprovider/operations" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/contributetime" value="false"/>
<mapEntry key="org.eclipse.net4j.util/debug.om" value="true"/>
+<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/contributetime" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server/debug" value="true"/>
<mapEntry key="org.eclipse.emf.workspace/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug/methods/entering" value="false"/>
@@ -330,8 +330,8 @@
<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
<mapEntry key="org.eclipse.emf.transaction/debug/locking" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.emf.validation/debug/providers" value="false"/>
<mapEntry key="org.eclipse.net4j.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.emf.validation/debug/providers" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.resource" value="true"/>
<mapEntry key="com.ibm.datatools.core.ui/plugin/log" value="true"/>
@@ -340,19 +340,19 @@
<mapEntry key="org.eclipse.wst.sse.ui/extendedconfigurationbuilder/time" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/tasks/time" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.transaction" value="true"/>
-<mapEntry key="org.eclipse.emf.query/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/filemodelprovider/lifecyclelistener" value="false"/>
+<mapEntry key="org.eclipse.emf.query/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server.db/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j/debug.selector" value="true"/>
<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.net4j/debug.selector" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.core/filebuffers/modelmanagement" value="false"/>
<mapEntry key="org.eclipse.net4j.db/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.ui/debug/tracefilter" value=""/>
+<mapEntry key="org.eclipse.wst.sse.core/filebuffers/modelmanagement" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.jet/debug/ext/xpathFunctions" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.ui/debug/tracefilter" value=""/>
<mapEntry key="org.eclipse.wtp.common/debug/logtracefile" value="false"/>
+<mapEntry key="org.eclipse.jet/debug/ext/xpathFunctions" value="false"/>
<mapEntry key="org.eclipse.emf.query/debug" value="true"/>
<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
@@ -368,23 +368,23 @@
<mapEntry key="org.eclipse.net4j.jms.admin/debug" value="true"/>
<mapEntry key="org.eclipse.emf.cdo/debug.model" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
<mapEntry key="org.eclipse.wst.common.project.facet.core/activation" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
<mapEntry key="org.eclipse.team.core/streams" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.net4j.ui/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.net4j.ui/debug" value="true"/>
<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.session" value="true"/>
<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.ui/storagemodelprovider/operations" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.adapter" value="true"/>
+<mapEntry key="org.eclipse.wst.sse.ui/storagemodelprovider/operations" value="false"/>
<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
@@ -392,51 +392,51 @@
<mapEntry key="org.eclipse.emf.transaction/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
<mapEntry key="org.eclipse.net4j.db.mysql/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.net4j.util.ui/debug" value="true"/>
<mapEntry key="org.eclipse.datatools.connectivity/connectionprofileextension" value="false"/>
+<mapEntry key="org.eclipse.net4j.util.ui/debug" value="true"/>
<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.emf.cdo.protocol/debug.model" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.protocol/debug.model" value="false"/>
<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
<mapEntry key="org.eclipse.jem.util/debug/logtracefile" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server/debug.protocol" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
<mapEntry key="org.eclipse.help/debug" value="true"/>
<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.wst.sse.core/dom/adapter/notification/time" value="false"/>
<mapEntry key="org.eclipse.emf.ocl/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/dom/adapter/notification/time" value="false"/>
<mapEntry key="org.eclipse.net4j/debug.channel" value="true"/>
<mapEntry key="org.eclipse.emf.cdo/debug.revision" value="true"/>
<mapEntry key="org.eclipse.emf.cdo/debug.view" value="true"/>
<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/dom/adapter/notification/time/criteria" value="10"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/data" value="true"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.protocol/debug" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
<mapEntry key="org.eclipse.ocl/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.resource" value="true"/>
+<mapEntry key="org.eclipse.emf.cdo.protocol/debug" value="true"/>
<mapEntry key="org.eclipse.datatools.connectivity/debug" value="true"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.resource" value="true"/>
<mapEntry key="org.eclipse.jet/debug/modelLoaderExtensions" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/debug" value="true"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/storagemodelprovider/elementstatelistener" value="false"/>
<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.emf.validation/debug/constraints/evaluation" value="false"/>
<mapEntry key="com.ibm.datatools.core.ui/editor/log" value="true"/>
+<mapEntry key="org.eclipse.emf.validation/debug/constraints/evaluation" value="false"/>
<mapEntry key="org.eclipse.jet/debug/xpath/compilations" value="false"/>
<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
<mapEntry key="org.eclipse.net4j/debug.buffer.stream" value="false"/>
@@ -444,23 +444,23 @@
<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.jet/debug/pluginProjectMonitor" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.jet/debug/pluginProjectMonitor" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/locks" value="true"/>
<mapEntry key="org.eclipse.wst.sse.core/filebuffers/lifecycle" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/locks" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/debug" value="true"/>
<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ocl/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.ocl/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug/reconcilerSpelling" value="false"/>
<mapEntry key="org.eclipse.emf.transaction/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
diff --git a/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch b/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch
index 9cd311f..671a9c9 100644
--- a/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch
+++ b/plugins/org.eclipse.emf.cdo.ui/CDOClient2.launch
@@ -17,14 +17,14 @@
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-nosplash&#13;&#10;-console&#13;&#10;-consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-nosplash&#13;&#10;-console"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dorg.aspectj.tracing.debug=false&#13;&#10;-Xms40m&#13;&#10;-Xmx512m"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
<stringAttribute key="selectedPlugin" value="org.eclipse.emf.cdo.protocol"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu,com.ibm.icu36.data.update,com.jcraft.jsch,javax.servlet,javax.servlet.jsp,org.apache.ant,org.apache.commons.el,org.apache.commons.logging,org.apache.jasper,org.apache.lucene,org.apache.lucene.analysis,org.aspectj.runtime,org.aspectj.weaver,org.eclipse.ant.core,org.eclipse.ant.ui,org.eclipse.compare,org.eclipse.core.boot,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.cvs,org.eclipse.cvs.source,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.emf,org.eclipse.emf.ant,org.eclipse.emf.cheatsheets,org.eclipse.emf.codegen,org.eclipse.emf.codegen.ecore,org.eclipse.emf.codegen.ecore.ui,org.eclipse.emf.codegen.ui,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.commonj.sdo,org.eclipse.emf.converter,org.eclipse.emf.doc,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.change.edit,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.editor,org.eclipse.emf.ecore.sdo,org.eclipse.emf.ecore.sdo.doc,org.eclipse.emf.ecore.sdo.edit,org.eclipse.emf.ecore.sdo.editor,org.eclipse.emf.ecore.sdo.source,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.emf.exporter,org.eclipse.emf.importer,org.eclipse.emf.importer.ecore,org.eclipse.emf.importer.java,org.eclipse.emf.importer.rose,org.eclipse.emf.mapping,org.eclipse.emf.mapping.ecore2ecore,org.eclipse.emf.mapping.ecore2ecore.editor,org.eclipse.emf.mapping.ecore2xml,org.eclipse.emf.mapping.ecore2xml.ui,org.eclipse.emf.mapping.ui,org.eclipse.emf.mapping.xsd2ecore,org.eclipse.emf.mapping.xsd2ecore.editor,org.eclipse.emf.source,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.http.jetty,org.eclipse.equinox.http.registry,org.eclipse.equinox.http.servlet,org.eclipse.equinox.jsp.jasper,org.eclipse.equinox.jsp.jasper.registry,org.eclipse.equinox.launcher,org.eclipse.equinox.launcher.win32.win32.x86,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.help.appserver,org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.help.webapp,org.eclipse.jdt,org.eclipse.jdt.compiler.apt,org.eclipse.jdt.compiler.tool,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.doc.isv,org.eclipse.jdt.doc.user,org.eclipse.jdt.junit,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.junit4.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.source,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.jsch.core,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde,org.eclipse.pde.build,org.eclipse.pde.core,org.eclipse.pde.doc.user,org.eclipse.pde.junit.runtime,org.eclipse.pde.runtime,org.eclipse.pde.source,org.eclipse.pde.ui,org.eclipse.pde.ui.templates,org.eclipse.platform,org.eclipse.platform.doc.isv,org.eclipse.platform.source,org.eclipse.platform.source.win32.win32.x86,org.eclipse.rcp,org.eclipse.rcp.source,org.eclipse.rcp.source.win32.win32.x86,org.eclipse.sdk,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.team.core,org.eclipse.team.cvs.core,org.eclipse.team.cvs.ssh,org.eclipse.team.cvs.ssh2,org.eclipse.team.cvs.ui,org.eclipse.team.ui,org.eclipse.text,org.eclipse.tomcat,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.externaltools,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.intro.universal,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.presentations.r21,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.ui.workbench.compatibility,org.eclipse.ui.workbench.texteditor,org.eclipse.uml2.common,org.eclipse.uml2.common.edit,org.eclipse.uml2.uml,org.eclipse.uml2.uml,org.eclipse.update.configurator,org.eclipse.update.core,org.eclipse.update.core.win32,org.eclipse.update.scheduler,org.eclipse.update.ui,org.eclipse.xsd,org.eclipse.xsd.cheatsheets,org.eclipse.xsd.doc,org.eclipse.xsd.ecore.exporter,org.eclipse.xsd.ecore.importer,org.eclipse.xsd.edit,org.eclipse.xsd.editor,org.eclipse.xsd.source,org.junit,org.junit4,org.mortbay.jetty"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.protocol,org.eclipse.ant.optional.junit,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.ui,org.eclipse.emf.cdo.edit,org.eclipse.emf.cdo,org.eclipse.emf.cdo.examples,org.eclipse.emf.cdo.weaver,org.eclipse.emf.cdo.tests.model1.editor,org.eclipse.emf.cdo.tests.model1.edit,org.eclipse.net4j.util.ui,org.eclipse.net4j,org.eclipse.emf.cdo.tests.model1,org.eclipse.net4j.tcp,org.eclipse.emf.cdo.doc,org.eclipse.net4j.ui,org.eclipse.emf.cdo.weaver.ui"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu,com.jcraft.jsch,javax.servlet,javax.servlet.jsp,org.apache.ant,org.apache.commons.el,org.apache.commons.logging,org.apache.jasper,org.apache.lucene,org.apache.lucene.analysis,org.eclipse.ant.core,org.eclipse.ant.ui,org.eclipse.compare,org.eclipse.core.boot,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.expressions,org.eclipse.core.filebuffers,org.eclipse.core.filesystem,org.eclipse.core.filesystem.win32.x86,org.eclipse.core.jobs,org.eclipse.core.net,org.eclipse.core.resources,org.eclipse.core.resources.compatibility,org.eclipse.core.resources.win32,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.core.variables,org.eclipse.cvs,org.eclipse.cvs.source,org.eclipse.debug.core,org.eclipse.debug.ui,org.eclipse.emf,org.eclipse.emf.ant,org.eclipse.emf.cheatsheets,org.eclipse.emf.codegen,org.eclipse.emf.codegen.ecore,org.eclipse.emf.codegen.ecore.ui,org.eclipse.emf.codegen.ui,org.eclipse.emf.common,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.common.ui,org.eclipse.emf.commonj.sdo,org.eclipse.emf.converter,org.eclipse.emf.doc,org.eclipse.emf.ecore,org.eclipse.emf.ecore,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.change.edit,org.eclipse.emf.ecore.change.edit,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.edit,org.eclipse.emf.ecore.editor,org.eclipse.emf.ecore.sdo,org.eclipse.emf.ecore.sdo.doc,org.eclipse.emf.ecore.sdo.edit,org.eclipse.emf.ecore.sdo.editor,org.eclipse.emf.ecore.sdo.source,org.eclipse.emf.ecore.xmi,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.emf.edit.ui,org.eclipse.emf.exporter,org.eclipse.emf.importer,org.eclipse.emf.importer.ecore,org.eclipse.emf.importer.java,org.eclipse.emf.importer.rose,org.eclipse.emf.mapping,org.eclipse.emf.mapping.ecore2ecore,org.eclipse.emf.mapping.ecore2ecore.editor,org.eclipse.emf.mapping.ecore2xml,org.eclipse.emf.mapping.ecore2xml.ui,org.eclipse.emf.mapping.ui,org.eclipse.emf.mapping.xsd2ecore,org.eclipse.emf.mapping.xsd2ecore.editor,org.eclipse.emf.source,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.http.jetty,org.eclipse.equinox.http.registry,org.eclipse.equinox.http.servlet,org.eclipse.equinox.jsp.jasper,org.eclipse.equinox.jsp.jasper.registry,org.eclipse.equinox.launcher,org.eclipse.equinox.launcher.win32.win32.x86,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.help.appserver,org.eclipse.help.base,org.eclipse.help.ui,org.eclipse.help.webapp,org.eclipse.jdt,org.eclipse.jdt.compiler.apt,org.eclipse.jdt.compiler.tool,org.eclipse.jdt.core,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.debug,org.eclipse.jdt.debug.ui,org.eclipse.jdt.doc.isv,org.eclipse.jdt.doc.user,org.eclipse.jdt.junit,org.eclipse.jdt.junit.runtime,org.eclipse.jdt.junit4.runtime,org.eclipse.jdt.launching,org.eclipse.jdt.source,org.eclipse.jdt.ui,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.jsch.core,org.eclipse.ltk.core.refactoring,org.eclipse.ltk.ui.refactoring,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde,org.eclipse.pde.build,org.eclipse.pde.core,org.eclipse.pde.doc.user,org.eclipse.pde.junit.runtime,org.eclipse.pde.runtime,org.eclipse.pde.source,org.eclipse.pde.ui,org.eclipse.pde.ui.templates,org.eclipse.platform,org.eclipse.platform.doc.isv,org.eclipse.platform.source,org.eclipse.platform.source.win32.win32.x86,org.eclipse.rcp,org.eclipse.rcp.source,org.eclipse.rcp.source.win32.win32.x86,org.eclipse.sdk,org.eclipse.search,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.team.core,org.eclipse.team.cvs.core,org.eclipse.team.cvs.ssh,org.eclipse.team.cvs.ssh2,org.eclipse.team.cvs.ui,org.eclipse.team.ui,org.eclipse.text,org.eclipse.tomcat,org.eclipse.ui,org.eclipse.ui.browser,org.eclipse.ui.cheatsheets,org.eclipse.ui.console,org.eclipse.ui.editors,org.eclipse.ui.externaltools,org.eclipse.ui.forms,org.eclipse.ui.ide,org.eclipse.ui.ide.application,org.eclipse.ui.intro,org.eclipse.ui.intro.universal,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.ui.presentations.r21,org.eclipse.ui.views,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.win32,org.eclipse.ui.workbench,org.eclipse.ui.workbench.compatibility,org.eclipse.ui.workbench.texteditor,org.eclipse.update.configurator,org.eclipse.update.core,org.eclipse.update.core.win32,org.eclipse.update.scheduler,org.eclipse.update.ui,org.eclipse.xsd,org.eclipse.xsd,org.eclipse.xsd.cheatsheets,org.eclipse.xsd.doc,org.eclipse.xsd.ecore.exporter,org.eclipse.xsd.ecore.importer,org.eclipse.xsd.edit,org.eclipse.xsd.edit,org.eclipse.xsd.editor,org.eclipse.xsd.source,org.junit,org.junit4,org.mortbay.jetty"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.protocol,org.eclipse.ant.optional.junit,org.eclipse.net4j.util,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.ui,org.eclipse.emf.cdo.edit,org.eclipse.emf.cdo,org.eclipse.emf.cdo.examples,org.eclipse.emf.cdo.weaver,org.eclipse.emf.cdo.tests.model1.editor,org.eclipse.emf.cdo.tests.model1.edit,org.eclipse.net4j.util.ui,org.eclipse.emf.cdo.tests.model1,org.eclipse.net4j,org.eclipse.net4j.tcp,org.eclipse.emf.cdo.doc,org.eclipse.net4j.ui,org.eclipse.emf.cdo.weaver.ui"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="true"/>
<mapAttribute key="tracingOptions">
@@ -42,22 +42,22 @@
<mapEntry key="org.eclipse.ui/trace/contexts" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/error" value="true"/>
<mapEntry key="org.eclipse.debug.ui/debug/viewers/updateSequence" value="false"/>
-<mapEntry key="org.eclipse.emf.validation/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/warning" value="true"/>
+<mapEntry key="org.eclipse.emf.validation/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/filename" value="runtime.traces"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.ui/actioncontributor/debugstatusfields" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.wst.sse.ui/actioncontributor/debugstatusfields" value="true"/>
+<mapEntry key="org.eclipse.debug.ui/debug/contextlaunching" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
<mapEntry key="org.eclipse.net4j.tcp/debug" value="true"/>
<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.repository" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/javamodel" value="false"/>
-<mapEntry key="org.eclipse.emf.ocl/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/contentOutline" value="false"/>
-<mapEntry key="org.eclipse.wtp.common/debug/logtrace" value="false"/>
+<mapEntry key="org.eclipse.emf.ocl/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/preferences-properties" value="false"/>
+<mapEntry key="org.eclipse.wtp.common/debug/logtrace" value="false"/>
<mapEntry key="org.eclipse.ui.intro/trace/printHTML" value="false"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug" value="true"/>
<mapEntry key="org.eclipse.ltk.core.refactoring/perf/participants/createChanges" value="300"/>
@@ -65,39 +65,39 @@
<mapEntry key="org.eclipse.net4j.util/debug.lifecycle.dump" value="true"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.util" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.ui/propertySheet" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.ui/propertySheet" value="false"/>
<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
<mapEntry key="org.eclipse.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
<mapEntry key="org.eclipse.wtp.common/debug/loglevel" value="WARNING"/>
<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server/debug.store" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.core/format" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/format" value="false"/>
<mapEntry key="org.eclipse.ocl/debug/evaluation" value="false"/>
<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/constraints" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="com.ibm.datatools.core.ui/modelExplorer/trace" value="true"/>
<mapEntry key="org.eclipse.ocl/debug/exceptions/catching" value="false"/>
+<mapEntry key="com.ibm.datatools.core.ui/modelExplorer/trace" value="true"/>
<mapEntry key="org.eclipse.debug.core/debug/commands" value="false"/>
-<mapEntry key="org.eclipse.team.core/threading" value="false"/>
<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.team.core/threading" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/structureddocument" value="false"/>
<mapEntry key="org.eclipse.emf.transaction/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/parsing" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.protocol/debug.protocol" value="true"/>
+<mapEntry key="org.eclipse.jdt.core/debug/postaction" value="false"/>
<mapEntry key="org.eclipse.ocl/debug" value="true"/>
<mapEntry key="org.eclipse.ui/trace/graphics" value="false"/>
<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
<mapEntry key="org.eclipse.net4j.db/debug" value="true"/>
-<mapEntry key="org.eclipse.wst.common.environment/trace/ws_dt_cmd_engine" value="true"/>
<mapEntry key="org.eclipse.emf.query/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.wst.common.environment/trace/ws_dt_cmd_engine" value="true"/>
<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
<mapEntry key="org.eclipse.net4j.jms/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/gotoNextAnnotation" value="false"/>
@@ -105,8 +105,8 @@
<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
<mapEntry key="org.eclipse.help.base/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
<mapEntry key="org.eclipse.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
+<mapEntry key="org.eclipse.pde.build/debug" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/ws_ant" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
<mapEntry key="org.eclipse.emf.validation/debug/parsers" value="false"/>
@@ -115,14 +115,14 @@
<mapEntry key="org.eclipse.ui/perf/perspective.create" value="800"/>
<mapEntry key="org.eclipse.update.core/debug/type" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
<mapEntry key="org.eclipse.wst.common.project.facet.core/actionSorting" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
<mapEntry key="com.ibm.datatools.core.ui/modelExplorerDecoration/trace" value="true"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/containerinitializer" value="5000"/>
<mapEntry key="org.eclipse.osgi/profile/benchmark" value="false"/>
<mapEntry key="org.eclipse.jet/debug/builder" value="false"/>
@@ -130,23 +130,23 @@
<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
<mapEntry key="org.eclipse.osgi/debug" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/constraints/disabled" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.types" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugpopup" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.types" value="true"/>
<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
<mapEntry key="org.eclipse.jem.util/debug/logtrace" value="false"/>
-<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
<mapEntry key="org.eclipse.team.cvs.core/metafiles" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/completion" value="300"/>
<mapEntry key="org.eclipse.osgi/profile/startup" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.wst.common.environment/trace/info" value="true"/>
-<mapEntry key="org.eclipse.emf.query.ocl/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/save.participants" value="500"/>
+<mapEntry key="org.eclipse.emf.query.ocl/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.wst.common.environment/trace/info" value="true"/>
<mapEntry key="org.eclipse.net4j/perf" value="false"/>
<mapEntry key="org.eclipse.help.base/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j/debug" value="true"/>
<mapEntry key="org.eclipse.jet/debug/projectBundleLoading" value="false"/>
+<mapEntry key="org.eclipse.net4j/debug" value="true"/>
<mapEntry key="org.eclipse.net4j/debug.signal" value="true"/>
<mapEntry key="org.eclipse.emf.query/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/modelmanager" value="false"/>
@@ -156,19 +156,19 @@
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugmenu" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/filemodelprovider/modelstatelistener" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/lifecycle" value="false"/>
<mapEntry key="org.eclipse.datatools.connectivity.sqm.core/debug" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/lifecycle" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/tasks/job" value="false"/>
<mapEntry key="org.eclipse.net4j/debug.buffer" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.repository" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendedconfigurationbuilder" value="false"/>
-<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/configuration" value="false"/>
+<mapEntry key="org.eclipse.core.jobs/jobs/locks" value="false"/>
<mapEntry key="org.eclipse.wst.xml.core/debug/cmdocumentmanager" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.examples/debug" value="true"/>
-<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose.commandId" value=""/>
+<mapEntry key="org.eclipse.core.runtime/url/debug/connect" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug" value="false"/>
<mapEntry key="org.eclipse.osgi/profile/debug" value="false"/>
<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
@@ -178,17 +178,17 @@
<mapEntry key="org.eclipse.net4j.util/debug.registry" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/>
<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.object" value="true"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.revision" value="false"/>
<mapEntry key="org.eclipse.core.resources/strings" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/sourcemapper" value="false"/>
<mapEntry key="org.eclipse.core.resources/save/mastertable" value="false"/>
<mapEntry key="org.eclipse.core.expressions/tracePropertyResolving" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
<mapEntry key="org.eclipse.core.resources/preferences" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/showHeapStatus" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/selection" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/content_assist_sorters/extensions" value=""/>
@@ -202,34 +202,34 @@
<mapEntry key="org.eclipse.emf.transaction/debug/transactions" value="false"/>
<mapEntry key="org.eclipse.ocl/debug/parsing" value="false"/>
<mapEntry key="org.eclipse.update.core/debug" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.core/tasks/preferences" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/security" value="false"/>
-<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/tasks/preferences" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/metainfo" value="false"/>
+<mapEntry key="org.eclipse.core.resources/build/needbuild" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
-<mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
-<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
+<mapEntry key="org.eclipse.net4j.jms.admin/debug.protocol" value="true"/>
<mapEntry key="com.ibm.datatools.core.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/>
+<mapEntry key="org.eclipse.ui/debug/showAllJobs" value="false"/>
<mapEntry key="org.eclipse.core.resources/history" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.store" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/propertyChangeUpdateActionContributionItem" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPage.IPartListener" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/search" value="false"/>
-<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/cvsprotocol" value="true"/>
+<mapEntry key="org.eclipse.pde.core/validation" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/readtime" value="false"/>
<mapEntry key="org.eclipse.jface.text/debug/AnnotationPainter" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/mastertable" value="false"/>
-<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/tasks" value="false"/>
+<mapEntry key="org.eclipse.core.runtime/debug" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/set" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
<mapEntry key="org.eclipse.jet/debug/pluginBundleLoading" value="false"/>
<mapEntry key="org.eclipse.wst.xml.core/debug/tracefilter" value=""/>
-<mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/listeners" value="false"/>
@@ -237,8 +237,8 @@
<mapEntry key="org.eclipse.core.runtime/url/debug/cachecopy" value="false"/>
<mapEntry key="org.eclipse.core.runtime/perf/success" value="false"/>
<mapEntry key="org.eclipse.net4j/debug.connector" value="true"/>
-<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
<mapEntry key="org.eclipse.wst.dtd.ui/projectionperf" value="false"/>
+<mapEntry key="org.eclipse.jdt.core/perf/selection" value="300"/>
<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
<mapEntry key="org.eclipse.ocl/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
@@ -246,8 +246,8 @@
<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
<mapEntry key="org.eclipse.ui.intro/trace/logPerformance" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.verbose" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/loader" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/grouping" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug/reconcilerjob" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/makeActions" value="1000"/>
@@ -263,11 +263,11 @@
<mapEntry key="org.eclipse.emf.validation/debug/cache" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/install" value="false"/>
<mapEntry key="org.eclipse.equinox.registry/debug/events" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
<mapEntry key="org.eclipse.help/debug/protocols" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save/metainfo" value="false"/>
<mapEntry key="org.eclipse.net4j.util/debug.lifecycle" value="true"/>
-<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
<mapEntry key="org.eclipse.emf.validation/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser/inprocess" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/javadeltalistener" value="500"/>
<mapEntry key="org.eclipse.core.resources/perf/listeners" value="500"/>
@@ -281,10 +281,10 @@
<mapEntry key="org.eclipse.help/debug/context" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug/reconcilerValidators" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/xml" value="false"/>
-<mapEntry key="org.eclipse.jet/debug/bundleLoading" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/manifest" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug" value="true"/>
+<mapEntry key="org.eclipse.jet/debug/bundleLoading" value="false"/>
<mapEntry key="org.eclipse.ui/trace/multipageeditor" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo/debug" value="true"/>
<mapEntry key="org.eclipse.emf.cdo.ui/debug" value="true"/>
<mapEntry key="org.eclipse.net4j.examples/debug" value="true"/>
<mapEntry key="org.eclipse.emf.workspace/debug/exceptions/catching" value="false"/>
@@ -296,29 +296,29 @@
<mapEntry key="org.eclipse.emf.ocl/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.team.cvs.ssh/debug" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/failure" value="false"/>
-<mapEntry key="org.eclipse.jet/debug" value="false"/>
<mapEntry key="org.eclipse.team.core/debug" value="false"/>
+<mapEntry key="org.eclipse.jet/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/builder" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/classLoading" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server.jdbc/debug" value="true"/>
<mapEntry key="org.eclipse.wst.xml.ui/projectionperf" value="false"/>
-<mapEntry key="org.eclipse.core.resources/save" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/errorondeadlock" value="false"/>
+<mapEntry key="org.eclipse.core.resources/save" value="false"/>
<mapEntry key="org.eclipse.emf.transaction/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
-<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
<mapEntry key="org.eclipse.jem.util/debug/loglevel" value="WARNING"/>
+<mapEntry key="org.eclipse.jface.text/debug/FastPartitioner/PositionCache" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/compiler" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/filemodelprovider/operations" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
<mapEntry key="org.eclipse.debug.ui/debug/launchhistory" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/contributetime" value="false"/>
<mapEntry key="org.eclipse.net4j.util/debug.om" value="true"/>
+<mapEntry key="org.eclipse.wst.sse.ui/extendededitoractionbuilder/contributetime" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server/debug" value="true"/>
<mapEntry key="org.eclipse.emf.workspace/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug/methods/entering" value="false"/>
@@ -330,8 +330,8 @@
<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
<mapEntry key="org.eclipse.emf.transaction/debug/locking" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/cpresolution/advanced" value="false"/>
-<mapEntry key="org.eclipse.emf.validation/debug/providers" value="false"/>
<mapEntry key="org.eclipse.net4j.jms/debug" value="true"/>
+<mapEntry key="org.eclipse.emf.validation/debug/providers" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server/debug.resource" value="true"/>
<mapEntry key="com.ibm.datatools.core.ui/plugin/log" value="true"/>
@@ -340,19 +340,19 @@
<mapEntry key="org.eclipse.wst.sse.ui/extendedconfigurationbuilder/time" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/tasks/time" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.transaction" value="true"/>
-<mapEntry key="org.eclipse.emf.query/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/filemodelprovider/lifecyclelistener" value="false"/>
+<mapEntry key="org.eclipse.emf.query/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.emf.cdo.server.db/debug" value="true"/>
-<mapEntry key="org.eclipse.net4j/debug.selector" value="true"/>
<mapEntry key="org.eclipse.debug.core/debug/events" value="false"/>
+<mapEntry key="org.eclipse.net4j/debug.selector" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.core/filebuffers/modelmanagement" value="false"/>
<mapEntry key="org.eclipse.net4j.db/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.wst.sse.ui/debug/tracefilter" value=""/>
+<mapEntry key="org.eclipse.wst.sse.core/filebuffers/modelmanagement" value="false"/>
+<mapEntry key="org.eclipse.osgi/monitor/classes" value="false"/>
<mapEntry key="org.eclipse.ui/perf/part.input" value="200"/>
-<mapEntry key="org.eclipse.jet/debug/ext/xpathFunctions" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.ui/debug/tracefilter" value=""/>
<mapEntry key="org.eclipse.wtp.common/debug/logtracefile" value="false"/>
+<mapEntry key="org.eclipse.jet/debug/ext/xpathFunctions" value="false"/>
<mapEntry key="org.eclipse.emf.query/debug" value="true"/>
<mapEntry key="org.eclipse.ui.intro.universal/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug/TypeConstraints" value="false"/>
@@ -368,23 +368,23 @@
<mapEntry key="org.eclipse.net4j.jms.admin/debug" value="true"/>
<mapEntry key="org.eclipse.emf.cdo/debug.model" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" value="false"/>
-<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
<mapEntry key="org.eclipse.wst.common.project.facet.core/activation" value="false"/>
+<mapEntry key="org.eclipse.help.ui/debug/embeddedBrowser" value="false"/>
<mapEntry key="org.eclipse.team.cvs.ssh/ssh_protocol" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
<mapEntry key="org.eclipse.core.resources/build/stacktrace" value="false"/>
+<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
<mapEntry key="org.eclipse.ui.intro/trace/logInfo" value="true"/>
<mapEntry key="org.eclipse.team.core/streams" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug/undomonitor" value="false"/>
-<mapEntry key="org.eclipse.net4j.ui/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
+<mapEntry key="org.eclipse.net4j.ui/debug" value="true"/>
<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.session" value="true"/>
<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.ui/storagemodelprovider/operations" value="false"/>
<mapEntry key="org.eclipse.emf.cdo/debug.adapter" value="true"/>
+<mapEntry key="org.eclipse.wst.sse.ui/storagemodelprovider/operations" value="false"/>
<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
<mapEntry key="org.eclipse.ui.ide/debug/gc" value="false"/>
@@ -392,51 +392,51 @@
<mapEntry key="org.eclipse.emf.transaction/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/services" value="false"/>
<mapEntry key="org.eclipse.net4j.db.mysql/debug.sql" value="true"/>
-<mapEntry key="org.eclipse.net4j.util.ui/debug" value="true"/>
<mapEntry key="org.eclipse.datatools.connectivity/connectionprofileextension" value="false"/>
+<mapEntry key="org.eclipse.net4j.util.ui/debug" value="true"/>
<mapEntry key="org.eclipse.ui.workbench/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/content_assist/extensions" value="1000"/>
-<mapEntry key="org.eclipse.emf.cdo.protocol/debug.model" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/filter" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.protocol/debug.model" value="false"/>
<mapEntry key="org.eclipse.debug.core/debug" value="false"/>
<mapEntry key="org.eclipse.core.resources/debug" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/zipaccess" value="false"/>
<mapEntry key="org.eclipse.jem.util/debug/logtracefile" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.ui.browser/debug" value="false"/>
+<mapEntry key="org.eclipse.emf.cdo.server/debug.protocol" value="true"/>
<mapEntry key="org.eclipse.osgi/profile/impl" value="org.eclipse.osgi.internal.profile.DefaultProfileLogger"/>
-<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
<mapEntry key="org.eclipse.net4j.jms.server/debug.protocol" value="true"/>
+<mapEntry key="org.eclipse.update.core/debug/web" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
<mapEntry key="org.eclipse.help/debug" value="true"/>
<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
-<mapEntry key="org.eclipse.wst.sse.core/dom/adapter/notification/time" value="false"/>
<mapEntry key="org.eclipse.emf.ocl/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/dom/adapter/notification/time" value="false"/>
<mapEntry key="org.eclipse.net4j/debug.channel" value="true"/>
<mapEntry key="org.eclipse.emf.cdo/debug.revision" value="true"/>
<mapEntry key="org.eclipse.emf.cdo/debug.view" value="true"/>
<mapEntry key="org.eclipse.ui/perf/part.listeners" value="200"/>
<mapEntry key="org.eclipse.debug.ui/debug/viewers/viewer" value="false"/>
-<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/dom/adapter/notification/time/criteria" value="10"/>
+<mapEntry key="org.eclipse.ui/trace/keyBindings.verbose" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/trace/data" value="true"/>
-<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
<mapEntry key="org.eclipse.osgi/defaultprofile/buffersize" value="256"/>
-<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
+<mapEntry key="org.eclipse.core.resources/restore/syncinfo" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/syncchangeevents" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo.protocol/debug" value="true"/>
+<mapEntry key="org.eclipse.ui/perf/page.listeners" value="200"/>
<mapEntry key="org.eclipse.ocl/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.emf.cdo/debug.resource" value="true"/>
+<mapEntry key="org.eclipse.emf.cdo.protocol/debug" value="true"/>
<mapEntry key="org.eclipse.datatools.connectivity/debug" value="true"/>
+<mapEntry key="org.eclipse.emf.cdo/debug.resource" value="true"/>
<mapEntry key="org.eclipse.jet/debug/modelLoaderExtensions" value="false"/>
<mapEntry key="org.eclipse.wst.sse.core/debug" value="true"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug" value="true"/>
<mapEntry key="org.eclipse.wst.sse.ui/storagemodelprovider/elementstatelistener" value="false"/>
<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.emf.validation/debug/constraints/evaluation" value="false"/>
<mapEntry key="com.ibm.datatools.core.ui/editor/log" value="true"/>
+<mapEntry key="org.eclipse.emf.validation/debug/constraints/evaluation" value="false"/>
<mapEntry key="org.eclipse.jet/debug/xpath/compilations" value="false"/>
<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
<mapEntry key="org.eclipse.net4j/debug.buffer.stream" value="false"/>
@@ -444,23 +444,23 @@
<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
-<mapEntry key="org.eclipse.jet/debug/pluginProjectMonitor" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/interrupt" value="false"/>
+<mapEntry key="org.eclipse.jet/debug/pluginProjectMonitor" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.core.runtime/preferences/plugin" value="false"/>
<mapEntry key="org.eclipse.core.runtime/url/debug" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/cycles" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
-<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/locks" value="true"/>
<mapEntry key="org.eclipse.wst.sse.core/filebuffers/lifecycle" value="false"/>
+<mapEntry key="org.eclipse.wst.sse.core/structuredmodel/locks" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
<mapEntry key="org.eclipse.wst.common.environment/debug" value="true"/>
<mapEntry key="org.eclipse.update.configurator/debug" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
<mapEntry key="org.eclipse.help.ui/debug" value="true"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/deltas" value="false"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.ocl/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
+<mapEntry key="org.eclipse.ocl/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.wst.sse.ui/debug/reconcilerSpelling" value="false"/>
<mapEntry key="org.eclipse.emf.transaction/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
diff --git a/plugins/org.eclipse.emf.cdo.ui/plugin.xml b/plugins/org.eclipse.emf.cdo.ui/plugin.xml
index 677b0dc..e871cb5 100644
--- a/plugins/org.eclipse.emf.cdo.ui/plugin.xml
+++ b/plugins/org.eclipse.emf.cdo.ui/plugin.xml
@@ -44,9 +44,9 @@
targetID="org.eclipse.ui.resourcePerspective">
<view
id="org.eclipse.emf.cdo.ui.CDOSessionsView"
- ratio="0.5"
- relationship="left"
- relative="org.eclipse.ui.views.TaskList">
+ ratio="0.2"
+ relationship="bottom"
+ relative="org.eclipse.ui.views.ResourceNavigator">
</view>
</perspectiveExtension>
</extension>
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseSessionAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseSessionAction.java
index 21964d0..fe00dd9 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseSessionAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseSessionAction.java
@@ -2,7 +2,6 @@ package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.CDOSession;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
/**
@@ -16,7 +15,7 @@ public final class CloseSessionAction extends SessionAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
getSession().close();
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseViewAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseViewAction.java
index c8aa54a..445ffad 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseViewAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CloseViewAction.java
@@ -2,7 +2,6 @@ package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.CDOView;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
/**
@@ -16,7 +15,7 @@ public final class CloseViewAction extends ViewAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
getView().close();
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CreateResourceAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CreateResourceAction.java
index 64426ce..ff199e0 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CreateResourceAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/CreateResourceAction.java
@@ -3,7 +3,6 @@ package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.CDOView;
import org.eclipse.emf.cdo.internal.ui.editor.CDOEditor;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.ui.IWorkbenchPage;
@@ -38,7 +37,7 @@ public final class CreateResourceAction extends ViewAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
getTransaction().createResource(resourcePath);
CDOEditor.open(getPage(), getView(), resourcePath);
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ExportResourceAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ExportResourceAction.java
index 51e8e5d..02a2733 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ExportResourceAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ExportResourceAction.java
@@ -1,6 +1,5 @@
package org.eclipse.emf.cdo.internal.ui.actions;
-import org.eclipse.core.runtime.IProgressMonitor;
/**
* @author Eike Stepper
@@ -13,7 +12,7 @@ public class ExportResourceAction extends EditingDomainAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
}
} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportRootsAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportRootsAction.java
index e0538a0..d9bd221 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportRootsAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ImportRootsAction.java
@@ -12,7 +12,6 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.swt.SWT;
import java.util.ArrayList;
@@ -73,7 +72,7 @@ public class ImportRootsAction extends EditingDomainAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
EList<EObject> targetContents = targetResource.getContents();
List<Resource> resources = getSourceResources();
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/LoadResourceAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/LoadResourceAction.java
index 23a1dc9..36e9bb4 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/LoadResourceAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/LoadResourceAction.java
@@ -3,7 +3,6 @@ package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.CDOView;
import org.eclipse.emf.cdo.internal.ui.editor.CDOEditor;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.ui.IWorkbenchPage;
@@ -37,7 +36,7 @@ public final class LoadResourceAction extends ViewAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
CDOEditor.open(getPage(), getView(), resourcePath);
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ManagePackagesAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ManagePackagesAction.java
index bf5283b..68dc5fd 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ManagePackagesAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/ManagePackagesAction.java
@@ -3,7 +3,6 @@ package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.CDOSession;
import org.eclipse.emf.cdo.internal.ui.dialogs.PackageManagerDialog;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
/**
@@ -29,7 +28,7 @@ public class ManagePackagesAction extends SessionAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
}
} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenAuditAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenAuditAction.java
index c79f23c..60ff26c 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenAuditAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenAuditAction.java
@@ -6,7 +6,6 @@ import org.eclipse.emf.cdo.internal.ui.dialogs.OpenAuditDialog;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
/**
@@ -37,7 +36,7 @@ public final class OpenAuditAction extends AbstractOpenViewAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
getSession().openAudit(new ResourceSetImpl(), timeStamp);
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenResourceEditorAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenResourceEditorAction.java
index 6d6c291..5a9bdf0 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenResourceEditorAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenResourceEditorAction.java
@@ -4,7 +4,6 @@ import org.eclipse.emf.cdo.CDOView;
import org.eclipse.emf.cdo.internal.ui.editor.CDOEditor;
import org.eclipse.emf.cdo.internal.ui.views.CDOViewHistory;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.IWorkbenchPage;
@@ -22,7 +21,7 @@ public final class OpenResourceEditorAction extends EntryAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
CDOView view = getEntry().getView();
String resourcePath = getEntry().getResourcePath();
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java
index 4a2266c..05d81ae 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenSessionAction.java
@@ -11,7 +11,6 @@ import org.eclipse.emf.internal.cdo.CDOSessionFactory;
import org.eclipse.net4j.util.container.IPluginContainer;
import org.eclipse.net4j.util.ui.actions.LongRunningAction;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.ui.IWorkbenchPage;
@@ -46,7 +45,7 @@ public final class OpenSessionAction extends LongRunningAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
CDOSession session = null;
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java
index 8f7eed7..61a1df9 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenTransactionAction.java
@@ -5,7 +5,6 @@ import org.eclipse.emf.cdo.internal.ui.SharedIcons;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
/**
@@ -20,7 +19,7 @@ public final class OpenTransactionAction extends AbstractOpenViewAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
getSession().openTransaction(new ResourceSetImpl());
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewAction.java
index d3d6c89..b298e66 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewAction.java
@@ -5,7 +5,6 @@ import org.eclipse.emf.cdo.internal.ui.SharedIcons;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
/**
@@ -20,7 +19,7 @@ public final class OpenViewAction extends AbstractOpenViewAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
getSession().openView(new ResourceSetImpl());
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewEditorAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewEditorAction.java
index 6a11f16..376d6b3 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewEditorAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/OpenViewEditorAction.java
@@ -3,7 +3,6 @@ package org.eclipse.emf.cdo.internal.ui.actions;
import org.eclipse.emf.cdo.CDOView;
import org.eclipse.emf.cdo.internal.ui.editor.CDOEditor;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.ui.IWorkbenchPage;
/**
@@ -19,7 +18,7 @@ public final class OpenViewEditorAction extends ViewAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
CDOEditor.open(getPage(), getView(), null);
}
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RegisterPackagesAction.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RegisterPackagesAction.java
index 530ca7b..ae7321a 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RegisterPackagesAction.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/actions/RegisterPackagesAction.java
@@ -8,7 +8,6 @@ import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Shell;
@@ -42,7 +41,7 @@ public abstract class RegisterPackagesAction extends SessionAction
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
errors = 0;
CDOPackageRegistry packageRegistry = getSession().getPackageRegistry();
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/bundle/OM.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/bundle/OM.java
index 484b1bf..d9bc4d5 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/bundle/OM.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/bundle/OM.java
@@ -10,6 +10,8 @@
**************************************************************************/
package org.eclipse.emf.cdo.internal.ui.bundle;
+import org.eclipse.net4j.internal.util.security.ResponseNegotiator;
+import org.eclipse.net4j.util.internal.ui.security.InteractiveCredentialsProvider;
import org.eclipse.net4j.util.om.OMBundle;
import org.eclipse.net4j.util.om.OMPlatform;
import org.eclipse.net4j.util.om.log.OMLogger;
@@ -18,6 +20,8 @@ import org.eclipse.net4j.util.om.pref.OMPreferences;
import org.eclipse.net4j.util.om.trace.OMTracer;
import org.eclipse.net4j.util.ui.UIActivator;
+import org.eclipse.internal.net4j.Net4jTransportInjector;
+
/**
* @author Eike Stepper
*/
@@ -45,6 +49,25 @@ public abstract class OM
public static final OMPreference<Boolean> PREF_LEGACY_SUPPORT = //
PREFS.init("PREF_LEGACY_SUPPORT", true);
+ static void start()
+ {
+ if (false)
+ {
+ try
+ {
+ ResponseNegotiator responseNegotiator = new ResponseNegotiator();
+ responseNegotiator.setCredentialsProvider(new InteractiveCredentialsProvider());
+ responseNegotiator.activate();
+
+ Net4jTransportInjector.clientNegotiator = responseNegotiator;
+ }
+ catch (Exception ex)
+ {
+ LOG.error(ex);
+ }
+ }
+ }
+
/**
* @author Eike Stepper
*/
diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java
index 49baca3..e92b8e0 100644
--- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java
+++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java
@@ -2149,7 +2149,7 @@ public class CDOEditor extends MultiPageEditorPart implements IEditingDomainProv
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
Resource resource = null;
IStructuredSelection ssel = (IStructuredSelection)editorSelection;
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/ControlChannel.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/ControlChannel.java
index 79b450f..9562331 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/ControlChannel.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/ControlChannel.java
@@ -10,7 +10,6 @@
**************************************************************************/
package org.eclipse.net4j.internal.tcp;
-import org.eclipse.net4j.ConnectorState;
import org.eclipse.net4j.IBuffer;
import org.eclipse.net4j.IProtocol;
import org.eclipse.net4j.internal.tcp.bundle.OM;
@@ -222,8 +221,10 @@ public final class ControlChannel extends Channel
private void assertNegotiating()
{
- if (getConnector().getState() != ConnectorState.NEGOTIATING)
+ TCPConnector connector = getConnector();
+ if (!connector.isNegotiating())
{
+ connector.deactivate();
throw new IllegalStateException("Connector is not negotiating");
}
}
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptor.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptor.java
index fe84616..6ec3e6e 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptor.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptor.java
@@ -56,9 +56,9 @@ public class TCPAcceptor extends Acceptor implements ITCPAcceptor, ITCPSelectorL
private ServerSocketChannel serverSocketChannel;
- private String address;
+ private String address = DEFAULT_ADDRESS;
- private int port;
+ private int port = DEFAULT_PORT;
public TCPAcceptor()
{
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptorFactory.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptorFactory.java
index cde6896..adaecf9 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptorFactory.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPAcceptorFactory.java
@@ -10,6 +10,7 @@
**************************************************************************/
package org.eclipse.net4j.internal.tcp;
+import org.eclipse.net4j.tcp.ITCPAcceptor;
import org.eclipse.net4j.util.StringUtil;
import org.eclipse.internal.net4j.AcceptorFactory;
@@ -21,10 +22,6 @@ public class TCPAcceptorFactory extends AcceptorFactory
{
public static final String TYPE = "tcp";
- public static final String DEFAULT_ADDRESS = "0.0.0.0"; //$NON-NLS-1$
-
- public static final int DEFAULT_PORT = 2036;
-
private static final String SEPARATOR = ":"; //$NON-NLS-1$
public TCPAcceptorFactory()
@@ -34,8 +31,8 @@ public class TCPAcceptorFactory extends AcceptorFactory
public TCPAcceptor create(String description)
{
- String address = DEFAULT_ADDRESS;
- int port = DEFAULT_PORT;
+ String address = ITCPAcceptor.DEFAULT_ADDRESS;
+ int port = ITCPAcceptor.DEFAULT_PORT;
if (!StringUtil.isEmpty(description))
{
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPClientConnector.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPClientConnector.java
index 8e00085..d1ad989 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPClientConnector.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPClientConnector.java
@@ -44,6 +44,18 @@ public class TCPClientConnector extends TCPConnector
}
@Override
+ public void setHost(String host)
+ {
+ super.setHost(host);
+ }
+
+ @Override
+ public void setPort(int port)
+ {
+ super.setPort(port);
+ }
+
+ @Override
public String toString()
{
if (getUserID() == null)
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnector.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnector.java
index 981d04c..44712ec 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnector.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnector.java
@@ -32,9 +32,7 @@ import java.nio.ByteBuffer;
import java.nio.channels.ClosedChannelException;
import java.nio.channels.SelectionKey;
import java.nio.channels.SocketChannel;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.Queue;
/**
@@ -144,21 +142,16 @@ public abstract class TCPConnector extends Connector implements ITCPConnector, I
return;
}
- try
- {
- checkSelectionKey();
- selector.setConnectInterest(selectionKey, false);
- setState(ConnectorState.NEGOTIATING);
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- deactivate();
- }
+ setNegotiating(selector);
}
public void handleRead(ITCPSelector selector, SocketChannel socketChannel)
{
+ if (isConnecting())
+ {
+ setNegotiating(selector);
+ }
+
try
{
if (inputBuffer == null)
@@ -202,6 +195,11 @@ public abstract class TCPConnector extends Connector implements ITCPConnector, I
public void handleWrite(ITCPSelector selector, SocketChannel socketChannel)
{
+ if (isConnecting())
+ {
+ setNegotiating(selector);
+ }
+
try
{
boolean moreToWrite = false;
@@ -350,15 +348,20 @@ public abstract class TCPConnector extends Connector implements ITCPConnector, I
@Override
protected void doActivate() throws Exception
{
- super.doActivate();
controlChannel = new ControlChannel(getNextChannelID(), this);
controlChannel.activate();
selector.registerAsync(socketChannel, this);
+ super.doActivate();
}
@Override
protected void doDeactivate() throws Exception
{
+ selector.setConnectInterest(selectionKey, false);
+ selector.setWriteInterest(selectionKey, false);
+ selector.setReadInterest(selectionKey, false);
+ selectionKey.cancel();
+
LifecycleUtil.deactivate(controlChannel);
controlChannel = null;
@@ -376,29 +379,53 @@ public abstract class TCPConnector extends Connector implements ITCPConnector, I
}
}
+ private void setNegotiating(ITCPSelector selector)
+ {
+ try
+ {
+ checkSelectionKey();
+ selector.setConnectInterest(selectionKey, false);
+ selector.setWriteInterest(selectionKey, false);
+ setState(ConnectorState.NEGOTIATING);
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ deactivate();
+ }
+ }
+
/**
* @author Eike Stepper
*/
private final class TCPNegotiationContext extends NegotiationContext
{
- private Map<ByteBuffer, IBuffer> buffers = new HashMap<ByteBuffer, IBuffer>();
+ private IBuffer buffer;
public TCPNegotiationContext()
{
}
+ public void setUserID(String userID)
+ {
+ TCPConnector.this.setUserID(userID);
+ }
+
public ByteBuffer getBuffer()
{
- IBuffer buffer = getBufferProvider().provideBuffer();
+ buffer = getBufferProvider().provideBuffer();
ByteBuffer byteBuffer = buffer.startPutting(ControlChannel.CONTROL_CHANNEL_INDEX);
byteBuffer.put(ControlChannel.OPCODE_NEGOTIATION);
- buffers.put(byteBuffer, buffer);
return byteBuffer;
}
public void transmitBuffer(ByteBuffer byteBuffer)
{
- IBuffer buffer = buffers.remove(byteBuffer);
+ if (buffer.getByteBuffer() != byteBuffer)
+ {
+ throw new IllegalArgumentException("The passed buffer is not the last that was produced");
+ }
+
controlChannel.sendBuffer(buffer);
}
@@ -407,7 +434,7 @@ public abstract class TCPConnector extends Connector implements ITCPConnector, I
{
if (success)
{
- setState(ConnectorState.CONNECTED);
+ TCPConnector.this.setState(ConnectorState.CONNECTED);
}
else
{
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnectorFactory.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnectorFactory.java
index 5fec329..989a240 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnectorFactory.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPConnectorFactory.java
@@ -10,6 +10,7 @@
**************************************************************************/
package org.eclipse.net4j.internal.tcp;
+import org.eclipse.net4j.tcp.ITCPConnector;
import org.eclipse.net4j.util.StringUtil;
import org.eclipse.net4j.util.factory.ProductCreationException;
@@ -25,8 +26,6 @@ public class TCPConnectorFactory extends ConnectorFactory
{
public static final String TYPE = "tcp";
- public static final int DEFAULT_PORT = 2036;
-
private static final String URL_SCHEME = "http://";
public TCPConnectorFactory()
@@ -46,7 +45,7 @@ public class TCPConnectorFactory extends ConnectorFactory
int port = url.getPort();
if (port == -1)
{
- port = DEFAULT_PORT;
+ port = ITCPConnector.DEFAULT_PORT;
}
TCPClientConnector connector = new TCPClientConnector();
@@ -75,7 +74,7 @@ public class TCPConnectorFactory extends ConnectorFactory
}
int port = connector.getPort();
- if (port != DEFAULT_PORT)
+ if (port != ITCPConnector.DEFAULT_PORT)
{
description = description + ":" + port;
}
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPSelector.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPSelector.java
index 6a69fb6..fe37ae6 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPSelector.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPSelector.java
@@ -365,7 +365,7 @@ public class TCPSelector extends Lifecycle implements ITCPSelector, Runnable
try
{
- int interest = SelectionKey.OP_CONNECT | SelectionKey.OP_READ;
+ int interest = SelectionKey.OP_CONNECT | SelectionKey.OP_WRITE | SelectionKey.OP_READ;
SelectionKey selectionKey = channel.register(selector, interest, listener);
listener.registered(selectionKey);
}
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPServerConnector.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPServerConnector.java
index 35b0a92..53348c3 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPServerConnector.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/internal/tcp/TCPServerConnector.java
@@ -10,7 +10,9 @@
**************************************************************************/
package org.eclipse.net4j.internal.tcp;
+import org.eclipse.net4j.ConnectorException;
import org.eclipse.net4j.ConnectorLocation;
+import org.eclipse.net4j.ConnectorState;
import java.text.MessageFormat;
@@ -28,6 +30,13 @@ public class TCPServerConnector extends TCPConnector
return ConnectorLocation.SERVER;
}
+ @Override
+ public void setState(ConnectorState newState) throws ConnectorException
+ {
+ super.setState(newState);
+ }
+
+ @Override
public String getHost()
{
try
@@ -40,6 +49,7 @@ public class TCPServerConnector extends TCPConnector
}
}
+ @Override
public int getPort()
{
try
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPAcceptor.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPAcceptor.java
index f360788..09cff2a 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPAcceptor.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPAcceptor.java
@@ -17,6 +17,10 @@ import org.eclipse.net4j.IAcceptor;
*/
public interface ITCPAcceptor extends IAcceptor
{
+ public static final String DEFAULT_ADDRESS = "0.0.0.0"; //$NON-NLS-1$
+
+ public static final int DEFAULT_PORT = 2036;
+
public String getAddress();
public int getPort();
diff --git a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPConnector.java b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPConnector.java
index ace6a93..5f006d7 100644
--- a/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPConnector.java
+++ b/plugins/org.eclipse.net4j.tcp/src/org/eclipse/net4j/tcp/ITCPConnector.java
@@ -17,6 +17,8 @@ import org.eclipse.net4j.IConnector;
*/
public interface ITCPConnector extends IConnector
{
+ public static final int DEFAULT_PORT = ITCPAcceptor.DEFAULT_PORT;
+
public String getHost();
public int getPort();
diff --git a/plugins/org.eclipse.net4j.tests/Net4j AllTests.launch b/plugins/org.eclipse.net4j.tests/Net4j AllTests.launch
new file mode 100644
index 0000000..4a82821
--- /dev/null
+++ b/plugins/org.eclipse.net4j.tests/Net4j AllTests.launch
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<stringAttribute key="bad_container_name" value="\org.eclipse.net4.tests"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;javaProject name=&amp;quot;org.eclipse.emf.cdo&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.jdt.launching.sourceContainer.javaProject&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.net4j.tests.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.net4j.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Ddebug=true"/>
+</launchConfiguration>
diff --git a/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/AllTests.java b/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/AllTests.java
index 173bb08..fe1eb3b 100644
--- a/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/AllTests.java
+++ b/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/AllTests.java
@@ -28,11 +28,12 @@ public class AllTests
TestSuite suite = new TestSuite("Tests for Net4j");
// $JUnit-BEGIN$
- suite.addTestSuite(SecurityTest.class);
suite.addTestSuite(MonitorTest.class);
suite.addTestSuite(SortedFileMapTest.class);
suite.addTestSuite(SynchronizingCorrelatorTest.class);
suite.addTestSuite(TestBufferPool.class);
+ suite.addTestSuite(SecurityTest.class);
+ suite.addTestSuite(ConnectorTest.class);
// $JUnit-END$
return suite;
diff --git a/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/ConnectorTest.java b/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/ConnectorTest.java
new file mode 100644
index 0000000..9740bd8
--- /dev/null
+++ b/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/ConnectorTest.java
@@ -0,0 +1,202 @@
+/***************************************************************************
+ * Copyright (c) 2004 - 2007 Eike Stepper, Germany.
+ * 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.net4j.tests;
+
+import org.eclipse.net4j.IBufferPool;
+import org.eclipse.net4j.Net4jUtil;
+import org.eclipse.net4j.internal.tcp.TCPAcceptor;
+import org.eclipse.net4j.internal.tcp.TCPClientConnector;
+import org.eclipse.net4j.internal.tcp.TCPSelector;
+import org.eclipse.net4j.internal.tcp.TCPServerConnector;
+import org.eclipse.net4j.internal.util.security.ChallengeNegotiator;
+import org.eclipse.net4j.internal.util.security.PasswordCredentials;
+import org.eclipse.net4j.internal.util.security.PasswordCredentialsProvider;
+import org.eclipse.net4j.internal.util.security.Randomizer;
+import org.eclipse.net4j.internal.util.security.ResponseNegotiator;
+import org.eclipse.net4j.internal.util.security.UserManager;
+import org.eclipse.net4j.util.concurrent.ConcurrencyUtil;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.tests.AbstractOMTest;
+
+import java.nio.channels.SocketChannel;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * @author Eike Stepper
+ */
+public class ConnectorTest extends AbstractOMTest
+{
+ private static final int TIMEOUT = 1000;
+
+ private static final String USER_ID = "stepper";
+
+ private static final char[] PASSWORD1 = "eike2007".toCharArray();
+
+ private static final char[] PASSWORD2 = "invalid".toCharArray();
+
+ private static final PasswordCredentials CREDENTIALS = new PasswordCredentials(USER_ID, PASSWORD1);
+
+ private TCPAcceptor acceptor;
+
+ @Override
+ protected void doTearDown() throws Exception
+ {
+ LifecycleUtil.deactivate(acceptor);
+ super.doTearDown();
+ }
+
+ public void testDeferredActivation() throws Exception
+ {
+ ExecutorService threadPool = Executors.newCachedThreadPool();
+ LifecycleUtil.activate(threadPool);
+
+ IBufferPool bufferPool = Net4jUtil.createBufferPool();
+ LifecycleUtil.activate(bufferPool);
+
+ TCPSelector selector = new TCPSelector();
+ selector.activate();
+
+ acceptor = new TCPAcceptor()
+ {
+ @Override
+ protected TCPServerConnector createConnector(SocketChannel socketChannel)
+ {
+ ConcurrencyUtil.sleep(1000);
+ return super.createConnector(socketChannel);
+ }
+ };
+
+ acceptor.setBufferProvider(bufferPool);
+ acceptor.setReceiveExecutor(threadPool);
+ acceptor.setSelector(selector);
+ acceptor.setAddress("0.0.0.0");
+ acceptor.setPort(2036);
+ acceptor.activate();
+
+ TCPClientConnector connector = new TCPClientConnector();
+ connector.setBufferProvider(bufferPool);
+ connector.setReceiveExecutor(threadPool);
+ connector.setSelector(selector);
+ connector.setHost("localhost");
+ connector.setPort(2036);
+ connector.activate();
+ assertEquals(false, connector.isActive());
+
+ boolean connected = connector.waitForConnection(2 * TIMEOUT);
+ assertEquals(true, connected);
+ assertEquals(true, connector.isActive());
+ }
+
+ public void testNegotiationSuccess() throws Exception
+ {
+ ExecutorService threadPool = Executors.newCachedThreadPool();
+ LifecycleUtil.activate(threadPool);
+
+ IBufferPool bufferPool = Net4jUtil.createBufferPool();
+ LifecycleUtil.activate(bufferPool);
+
+ Randomizer randomizer = new Randomizer();
+ randomizer.activate();
+
+ UserManager userManager = new UserManager();
+ userManager.activate();
+ userManager.addUser(USER_ID, PASSWORD1);
+
+ ChallengeNegotiator challengeNegotiator = new ChallengeNegotiator();
+ challengeNegotiator.setRandomizer(randomizer);
+ challengeNegotiator.setUserManager(userManager);
+ challengeNegotiator.activate();
+
+ TCPSelector selector = new TCPSelector();
+ selector.activate();
+
+ acceptor = new TCPAcceptor();
+ acceptor.setBufferProvider(bufferPool);
+ acceptor.setReceiveExecutor(threadPool);
+ acceptor.setNegotiator(challengeNegotiator);
+ acceptor.setSelector(selector);
+ acceptor.setAddress("0.0.0.0");
+ acceptor.setPort(2036);
+ acceptor.activate();
+
+ PasswordCredentialsProvider credentialsProvider = new PasswordCredentialsProvider(CREDENTIALS);
+ LifecycleUtil.activate(credentialsProvider);
+
+ ResponseNegotiator responseNegotiator = new ResponseNegotiator();
+ responseNegotiator.setCredentialsProvider(credentialsProvider);
+ responseNegotiator.activate();
+
+ TCPClientConnector connector = new TCPClientConnector();
+ connector.setBufferProvider(bufferPool);
+ connector.setReceiveExecutor(threadPool);
+ connector.setNegotiator(responseNegotiator);
+ connector.setSelector(selector);
+ connector.setHost("localhost");
+ connector.setPort(2036);
+ connector.activate();
+
+ boolean connected = connector.waitForConnection(TIMEOUT);
+ assertEquals(true, connected);
+ }
+
+ public void testNegotiationFailure() throws Exception
+ {
+ ExecutorService threadPool = Executors.newCachedThreadPool();
+ LifecycleUtil.activate(threadPool);
+
+ IBufferPool bufferPool = Net4jUtil.createBufferPool();
+ LifecycleUtil.activate(bufferPool);
+
+ Randomizer randomizer = new Randomizer();
+ randomizer.activate();
+
+ UserManager userManager = new UserManager();
+ userManager.activate();
+ userManager.addUser(USER_ID, PASSWORD2);
+
+ ChallengeNegotiator challengeNegotiator = new ChallengeNegotiator();
+ challengeNegotiator.setRandomizer(randomizer);
+ challengeNegotiator.setUserManager(userManager);
+ challengeNegotiator.activate();
+
+ TCPSelector selector = new TCPSelector();
+ selector.activate();
+
+ acceptor = new TCPAcceptor();
+ acceptor.setBufferProvider(bufferPool);
+ acceptor.setReceiveExecutor(threadPool);
+ acceptor.setNegotiator(challengeNegotiator);
+ acceptor.setSelector(selector);
+ acceptor.setAddress("0.0.0.0");
+ acceptor.setPort(2036);
+ acceptor.activate();
+
+ PasswordCredentialsProvider credentialsProvider = new PasswordCredentialsProvider(CREDENTIALS);
+ LifecycleUtil.activate(credentialsProvider);
+
+ ResponseNegotiator responseNegotiator = new ResponseNegotiator();
+ responseNegotiator.setCredentialsProvider(credentialsProvider);
+ responseNegotiator.activate();
+
+ TCPClientConnector connector = new TCPClientConnector();
+ connector.setBufferProvider(bufferPool);
+ connector.setReceiveExecutor(threadPool);
+ connector.setNegotiator(responseNegotiator);
+ connector.setSelector(selector);
+ connector.setHost("localhost");
+ connector.setPort(2036);
+ connector.activate();
+
+ boolean connected = connector.waitForConnection(TIMEOUT);
+ assertEquals(false, connected);
+ }
+}
diff --git a/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/util/tests/SecurityTest.java b/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/util/tests/SecurityTest.java
index d4a4cba..3f495c0 100644
--- a/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/util/tests/SecurityTest.java
+++ b/plugins/org.eclipse.net4j.tests/src/org/eclipse/net4j/util/tests/SecurityTest.java
@@ -13,12 +13,12 @@ package org.eclipse.net4j.util.tests;
import org.eclipse.net4j.internal.util.security.ChallengeNegotiator;
import org.eclipse.net4j.internal.util.security.NegotiationContext;
import org.eclipse.net4j.internal.util.security.PasswordCredentials;
+import org.eclipse.net4j.internal.util.security.PasswordCredentialsProvider;
import org.eclipse.net4j.internal.util.security.Randomizer;
import org.eclipse.net4j.internal.util.security.ResponseNegotiator;
import org.eclipse.net4j.internal.util.security.UserManager;
import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.security.IChallengeResponse;
-import org.eclipse.net4j.util.security.IPasswordCredentials;
import org.eclipse.net4j.util.security.IPasswordCredentialsProvider;
import java.nio.ByteBuffer;
@@ -31,7 +31,7 @@ import java.util.concurrent.TimeUnit;
*/
public class SecurityTest extends AbstractOMTest
{
- private static final int TIMEOUT = 10000;
+ private static final int TIMEOUT = 1000;
private static final String USER_ID = "stepper";
@@ -41,18 +41,7 @@ public class SecurityTest extends AbstractOMTest
private static final PasswordCredentials CREDENTIALS = new PasswordCredentials(USER_ID, PASSWORD1);
- private IPasswordCredentialsProvider credentialsProvider = new IPasswordCredentialsProvider()
- {
- public boolean isInteractive()
- {
- return false;
- }
-
- public IPasswordCredentials getCredentials()
- {
- return CREDENTIALS;
- }
- };
+ private IPasswordCredentialsProvider credentialsProvider = new PasswordCredentialsProvider(CREDENTIALS);
public void testSuccess() throws Exception
{
@@ -165,6 +154,8 @@ public class SecurityTest extends AbstractOMTest
{
private PeerNegotiationContext peer;
+ private String userID;
+
private BlockingQueue<ByteBuffer> queue = new LinkedBlockingQueue<ByteBuffer>();
private boolean running;
@@ -183,6 +174,16 @@ public class SecurityTest extends AbstractOMTest
this.peer = peer;
}
+ public String getUserID()
+ {
+ return userID;
+ }
+
+ public void setUserID(String userID)
+ {
+ this.userID = userID;
+ }
+
public ByteBuffer getBuffer()
{
return ByteBuffer.allocateDirect(4096);
diff --git a/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/AcceptorsView.java b/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/AcceptorsView.java
index 479004e..999868d 100644
--- a/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/AcceptorsView.java
+++ b/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/AcceptorsView.java
@@ -19,7 +19,7 @@ public class AcceptorsView extends ContainerView
getAddImageDescriptor())
{
@Override
- protected void doRun() throws Exception
+ protected void safeRun() throws Exception
{
Net4jUtil.getAcceptor(IPluginContainer.INSTANCE, "tcp", "0.0.0.0:2036");
}
@@ -29,7 +29,7 @@ public class AcceptorsView extends ContainerView
getAddImageDescriptor())
{
@Override
- protected void doRun() throws Exception
+ protected void safeRun() throws Exception
{
Net4jUtil.getAcceptor(IPluginContainer.INSTANCE, "tcp", "0.0.0.0:2037");
}
diff --git a/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/Net4jItemProvider.java b/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/Net4jItemProvider.java
index d5aa360..60a7761 100644
--- a/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/Net4jItemProvider.java
+++ b/plugins/org.eclipse.net4j.ui/src/org/eclipse/net4j/internal/ui/views/Net4jItemProvider.java
@@ -21,7 +21,6 @@ import org.eclipse.net4j.util.ui.views.ContainerItemProvider;
import org.eclipse.net4j.util.ui.views.ContainerView;
import org.eclipse.net4j.util.ui.views.IElementFilter;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.swt.graphics.Image;
@@ -88,7 +87,7 @@ public class Net4jItemProvider extends ContainerItemProvider<IContainer<Object>>
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
LifecycleUtil.deactivateNoisy(object);
}
diff --git a/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF
index d5e4b48..b4625f0 100644
--- a/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.util.ui/META-INF/MANIFEST.MF
@@ -12,6 +12,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.3.0,4.0.0)",
org.eclipse.ui;bundle-version="[3.3.0,4.0.0)";visibility:=reexport,
org.eclipse.net4j.util;bundle-version="[0.8.0,0.9.0)";visibility:=reexport
Export-Package: org.eclipse.net4j.util.internal.ui;version="0.8.0",
+ org.eclipse.net4j.util.internal.ui.security;version="0.8.0",
org.eclipse.net4j.util.internal.ui.views;version="0.8.0",
org.eclipse.net4j.util.ui;version="0.8.0",
org.eclipse.net4j.util.ui.actions;version="0.8.0",
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/CredentialsDialog.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/CredentialsDialog.java
index 6fc8689..ce56eb6 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/CredentialsDialog.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/CredentialsDialog.java
@@ -21,8 +21,8 @@ import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
/**
* @author Eike Stepper
@@ -39,10 +39,9 @@ public class CredentialsDialog extends BaseDialog<Viewer>
private IPasswordCredentials credentials;
- public CredentialsDialog()
+ public CredentialsDialog(Shell shell)
{
- super(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DEFAULT_SHELL_STYLE | SWT.APPLICATION_MODAL,
- TITLE, MESSAGE, OM.Activator.INSTANCE.getDialogSettings());
+ super(shell, DEFAULT_SHELL_STYLE | SWT.APPLICATION_MODAL, TITLE, MESSAGE, OM.Activator.INSTANCE.getDialogSettings());
}
public IPasswordCredentials getCredentials()
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/InteractiveCredentialsProvider.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/InteractiveCredentialsProvider.java
index 14d2eb3..5a7831d 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/InteractiveCredentialsProvider.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/security/InteractiveCredentialsProvider.java
@@ -12,6 +12,10 @@ package org.eclipse.net4j.util.internal.ui.security;
import org.eclipse.net4j.util.security.IPasswordCredentials;
import org.eclipse.net4j.util.security.IPasswordCredentialsProvider;
+import org.eclipse.net4j.util.ui.UIUtil;
+
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
/**
* @author Eike Stepper
@@ -29,12 +33,20 @@ public class InteractiveCredentialsProvider implements IPasswordCredentialsProvi
public IPasswordCredentials getCredentials()
{
- CredentialsDialog dialog = new CredentialsDialog();
- if (dialog.open() == CredentialsDialog.OK)
+ final IPasswordCredentials[] credentials = new IPasswordCredentials[1];
+ final Display display = UIUtil.getDisplay();
+ display.syncExec(new Runnable()
{
- return dialog.getCredentials();
- }
+ public void run()
+ {
+ CredentialsDialog dialog = new CredentialsDialog(new Shell(display));
+ if (dialog.open() == CredentialsDialog.OK)
+ {
+ credentials[0] = dialog.getCredentials();
+ }
+ }
+ });
- return null;
+ return credentials[0];
}
}
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jContainerItemProvider.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jContainerItemProvider.java
index d51bc84..a9d78e9 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jContainerItemProvider.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/internal/ui/views/Net4jContainerItemProvider.java
@@ -18,7 +18,6 @@ import org.eclipse.net4j.util.ui.views.ContainerItemProvider;
import org.eclipse.net4j.util.ui.views.ContainerView;
import org.eclipse.net4j.util.ui.views.IElementFilter;
-import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.viewers.ITreeSelection;
import org.eclipse.swt.graphics.Image;
@@ -65,7 +64,7 @@ public class Net4jContainerItemProvider extends ContainerItemProvider<IContainer
}
@Override
- protected void doRun(IProgressMonitor monitor) throws Exception
+ protected void doRun() throws Exception
{
for (Iterator<?> it = selection.iterator(); it.hasNext();)
{
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java
index 9a612cb..01540e1 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/UIUtil.java
@@ -16,6 +16,8 @@ import org.eclipse.net4j.util.security.IPasswordCredentialsProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
/**
* @author Eike Stepper
@@ -26,6 +28,38 @@ public final class UIUtil
{
}
+ public static Display getDisplay()
+ {
+ Display display = Display.getCurrent();
+ if (display == null)
+ {
+ try
+ {
+ display = PlatformUI.getWorkbench().getDisplay();
+ }
+ catch (RuntimeException ignore)
+ {
+ }
+ }
+
+ if (display == null)
+ {
+ display = Display.getDefault();
+ }
+
+ if (display == null)
+ {
+ display = new Display();
+ }
+
+ if (display == null)
+ {
+ throw new IllegalStateException("No display available");
+ }
+
+ return display;
+ }
+
public static IPasswordCredentialsProvider createInteractiveCredentialsProvider()
{
return new InteractiveCredentialsProvider();
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java
index 75f40da..4988e8c 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/LongRunningAction.java
@@ -11,12 +11,13 @@
package org.eclipse.net4j.util.ui.actions;
import org.eclipse.net4j.util.internal.ui.bundle.OM;
+import org.eclipse.net4j.util.om.monitor.MonitorUtil;
+import org.eclipse.net4j.util.om.monitor.MonitoredJob;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
@@ -30,8 +31,6 @@ public abstract class LongRunningAction extends SafeAction
{
private IWorkbenchPage page;
- private IStatus status;
-
private int totalWork;
public LongRunningAction(IWorkbenchPage page)
@@ -149,38 +148,20 @@ public abstract class LongRunningAction extends SafeAction
totalWork = 0;
}
- protected final void setStatus(IStatus status)
- {
- this.status = status;
- }
-
@Override
- protected final void doRun() throws Exception
+ protected final void safeRun() throws Exception
{
totalWork = IProgressMonitor.UNKNOWN;
preRun();
if (totalWork != 0)
{
- new Job(getText())
+ new MonitoredJob(getBundleID(), getText())
{
@Override
- protected IStatus run(IProgressMonitor monitor)
+ protected void run() throws Exception
{
- monitor.beginTask("", totalWork);
- try
- {
- setStatus(Status.OK_STATUS);
- doRun(monitor);
- return status;
- }
- catch (Exception ex)
- {
- return handleException(ex);
- }
- finally
- {
- monitor.done();
- }
+ MonitorUtil.begin(totalWork);
+ doRun();
}
}.schedule();
}
@@ -190,7 +171,12 @@ public abstract class LongRunningAction extends SafeAction
{
}
- protected abstract void doRun(IProgressMonitor monitor) throws Exception;
+ protected String getBundleID()
+ {
+ return OM.BUNDLE_ID;
+ }
+
+ protected abstract void doRun() throws Exception;
protected IStatus handleException(Exception ex)
{
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/SafeAction.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/SafeAction.java
index 3c64f21..2007ad3 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/SafeAction.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/actions/SafeAction.java
@@ -47,7 +47,7 @@ public abstract class SafeAction extends Action
{
try
{
- doRun();
+ safeRun();
}
catch (Exception ex)
{
@@ -56,5 +56,5 @@ public abstract class SafeAction extends Action
}
}
- protected abstract void doRun() throws Exception;
+ protected abstract void safeRun() throws Exception;
} \ No newline at end of file
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java
index 0acfb38..99705d8 100644
--- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java
+++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/views/ContainerView.java
@@ -263,7 +263,7 @@ public abstract class ContainerView extends ViewPart implements ISetSelectionTar
}
@Override
- protected void doRun() throws Exception
+ protected void safeRun() throws Exception
{
viewer.refresh(false);
}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/ResultSynchronizer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/ResultSynchronizer.java
index 9c85980..7114087 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/ResultSynchronizer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/ResultSynchronizer.java
@@ -11,6 +11,7 @@
package org.eclipse.net4j.internal.util.concurrent;
import org.eclipse.net4j.util.concurrent.ISynchronizer;
+import org.eclipse.net4j.util.om.monitor.MonitorUtil;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -47,7 +48,12 @@ public final class ResultSynchronizer<RESULT> implements ISynchronizer<RESULT>
return null;
}
- consumerLock.wait(Math.min(remaining, 100));
+ if (MonitorUtil.isCanceled())
+ {
+ return null;
+ }
+
+ consumerLock.wait(Math.min(remaining, 100L));
}
catch (InterruptedException ex)
{
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java
index 4a3b385..9d3ff1a 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/concurrent/SynchronizingCorrelator.java
@@ -74,6 +74,7 @@ public class SynchronizingCorrelator<CORRELATION, RESULT> implements ICorrelator
protected ISynchronizer<RESULT> createSynchronizer(final CORRELATION correlation)
{
+ // TODO Make top level class
return new ISynchronizer<RESULT>()
{
private ISynchronizer<RESULT> delegate = new ResultSynchronizer<RESULT>();
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java
index 2bb142e..2958832 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/lifecycle/Lifecycle.java
@@ -49,12 +49,12 @@ public class Lifecycle extends Notifier implements ILifecycle.Introspection
lifecycleState = ILifecycleState.ACTIVATING;
fireEvent(new LifecycleEvent(this, ILifecycleEvent.Kind.ABOUT_TO_ACTIVATE));
doBeforeActivate();
-
- dump();
-
doActivate();
- lifecycleState = ILifecycleState.ACTIVE;
- fireEvent(new LifecycleEvent(this, ILifecycleEvent.Kind.ACTIVATED));
+
+ if (!isDeferredActivation())
+ {
+ deferredActivate();
+ }
}
else
{
@@ -67,7 +67,7 @@ public class Lifecycle extends Notifier implements ILifecycle.Introspection
public final Exception deactivate()
{
- if (lifecycleState == ILifecycleState.ACTIVE)
+ if (lifecycleState == ILifecycleState.ACTIVE || lifecycleState == ILifecycleState.ACTIVATING)
{
if (TRACER.isEnabled())
{
@@ -80,8 +80,10 @@ public class Lifecycle extends Notifier implements ILifecycle.Introspection
doBeforeDeactivate();
fireEvent(new LifecycleEvent(this, ILifecycleEvent.Kind.ABOUT_TO_DEACTIVATE));
- doDeactivate();
- fireEvent(new LifecycleEvent(this, ILifecycleEvent.Kind.DEACTIVATED));
+ if (!isDeferredDeactivation())
+ {
+ deferredDeactivate();
+ }
}
catch (Exception ex)
{
@@ -114,14 +116,6 @@ public class Lifecycle extends Notifier implements ILifecycle.Introspection
return lifecycleState == ILifecycleState.ACTIVE;
}
- public void dump()
- {
- if (DUMPER.isEnabled())
- {
- DUMPER.trace("DUMP" + ReflectUtil.toString(this)); //$NON-NLS-1$
- }
- }
-
@Override
public String toString()
{
@@ -135,7 +129,15 @@ public class Lifecycle extends Notifier implements ILifecycle.Introspection
}
}
- protected void checkActive()
+ protected final void dump()
+ {
+ if (DUMPER.isEnabled())
+ {
+ DUMPER.trace("DUMP" + ReflectUtil.toString(this)); //$NON-NLS-1$
+ }
+ }
+
+ protected final void checkActive()
{
if (lifecycleState != ILifecycleState.ACTIVE)
{
@@ -143,6 +145,29 @@ public class Lifecycle extends Notifier implements ILifecycle.Introspection
}
}
+ protected final void deferredActivate()
+ {
+ lifecycleState = ILifecycleState.ACTIVE;
+ fireEvent(new LifecycleEvent(this, ILifecycleEvent.Kind.ACTIVATED));
+ dump();
+ }
+
+ protected final void deferredDeactivate() throws Exception
+ {
+ doDeactivate();
+ fireEvent(new LifecycleEvent(this, ILifecycleEvent.Kind.DEACTIVATED));
+ }
+
+ protected boolean isDeferredActivation()
+ {
+ return false;
+ }
+
+ protected boolean isDeferredDeactivation()
+ {
+ return false;
+ }
+
protected void doBeforeActivate() throws Exception
{
}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/EclipseMonitor.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/EclipseMonitor.java
index 236ae6e..9bda495 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/EclipseMonitor.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/EclipseMonitor.java
@@ -28,13 +28,14 @@ public class EclipseMonitor extends Monitor
throw new IllegalArgumentException("progressMonitor == null");
}
- this.progressMonitor = progressMonitor;
+ this.progressMonitor = new DelegatingProgressMonitor(progressMonitor);
}
private EclipseMonitor(EclipseMonitor parent, int workFromParent)
{
super(parent, workFromParent);
- progressMonitor = new SubProgressMonitor(parent.getProgressMonitor(), workFromParent);
+ progressMonitor = new SubProgressMonitor(new SubProgressMonitor(parent.getProgressMonitor(), workFromParent),
+ workFromParent);
}
public IProgressMonitor getProgressMonitor()
@@ -86,4 +87,63 @@ public class EclipseMonitor extends Monitor
{
return new EclipseMonitor(this, workFromParent);
}
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class DelegatingProgressMonitor implements IProgressMonitor
+ {
+ private IProgressMonitor delegate;
+
+ public DelegatingProgressMonitor(IProgressMonitor delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ public IProgressMonitor getDelegate()
+ {
+ return delegate;
+ }
+
+ public void beginTask(String name, int totalWork)
+ {
+ delegate.beginTask(name, totalWork);
+ }
+
+ public void done()
+ {
+ delegate.done();
+ }
+
+ public void internalWorked(double work)
+ {
+ delegate.internalWorked(work);
+ }
+
+ public boolean isCanceled()
+ {
+ return delegate.isCanceled();
+ }
+
+ public void setCanceled(boolean value)
+ {
+ EclipseMonitor.this.setCanceled(value);
+ delegate.setCanceled(value);
+ }
+
+ public void setTaskName(String name)
+ {
+ delegate.setTaskName(name);
+ }
+
+ public void subTask(String name)
+ {
+ delegate.subTask(name);
+ }
+
+ public void worked(int work)
+ {
+ delegate.worked(work);
+ }
+ }
}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/MON.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/MON.java
index a726632..ed4a69a 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/MON.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/om/monitor/MON.java
@@ -29,6 +29,26 @@ public final class MON
{
}
+ public static boolean isCanceled()
+ {
+ Monitor current = CURRENT.get();
+ if (current == null)
+ {
+ return false;
+ }
+
+ return current.isCanceled();
+ }
+
+ public static void setCanceled(boolean canceled)
+ {
+ Monitor current = CURRENT.get();
+ if (current != null)
+ {
+ current.setCanceled(canceled);
+ }
+ }
+
public static void startMonitoring(Monitor rootMonitor)
{
Monitor current = CURRENT.get();
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiator.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiator.java
index d2d4d09..c7959a5 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiator.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiator.java
@@ -121,19 +121,25 @@ public class ChallengeNegotiator extends ChallengeResponseNegotiator
// Get remembered random token
byte[] randomToken = (byte[])context.getInfo();
- // Get crypted token from response
- int size = response.getInt();
- byte[] responseToken = new byte[size];
- response.get(responseToken);
-
// Get userID from response
- size = response.getInt();
+ int size = response.getInt();
byte[] userIDBytes = new byte[size];
response.get(userIDBytes);
String userID = new String(userIDBytes);
+ // Get crypted token from response
+ size = response.getInt();
+ byte[] responseToken = new byte[size];
+ response.get(responseToken);
+
// Encrypt the remembered token and compare to crypted token from response
byte[] cryptedToken = encryptToken(userID, randomToken);
- return Arrays.equals(responseToken, cryptedToken);
+ boolean success = Arrays.equals(responseToken, cryptedToken);
+ if (success)
+ {
+ context.setUserID(userID);
+ }
+
+ return success;
}
}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiatorConfigurer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiatorConfigurer.java
index 1eab18e..6310f95 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiatorConfigurer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeNegotiatorConfigurer.java
@@ -32,7 +32,7 @@ public class ChallengeNegotiatorConfigurer implements IElementProcessor
ChallengeNegotiator negotiator = (ChallengeNegotiator)element;
if (negotiator.getRandomizer() == null)
{
- IRandomizer randomizer = getRandomizer(container);
+ IRandomizer randomizer = getRandomizer(container, description);
negotiator.setRandomizer(randomizer);
}
@@ -46,17 +46,37 @@ public class ChallengeNegotiatorConfigurer implements IElementProcessor
return element;
}
- protected IRandomizer getRandomizer(IManagedContainer container)
+ protected IRandomizer getRandomizer(IManagedContainer container, String description)
{
String productGroup = RandomizerFactory.PRODUCT_GROUP;
- String type = RandomizerFactory.TYPE;
- return (IRandomizer)container.getElement(productGroup, type, null);
+ String type = getRandomizerType(description);
+ return (IRandomizer)container.getElement(productGroup, type, getRandomizerDescription(description));
}
- protected IUserManager getUserManager(IManagedContainer container, String fileName)
+ protected String getRandomizerType(String description)
+ {
+ return RandomizerFactory.TYPE;
+ }
+
+ protected String getRandomizerDescription(String description)
+ {
+ return null;
+ }
+
+ protected IUserManager getUserManager(IManagedContainer container, String description)
{
String productGroup = FileUserManagerFactory.PRODUCT_GROUP;
- String type = FileUserManagerFactory.TYPE;
- return (IUserManager)container.getElement(productGroup, type, fileName);
+ String type = getUserManagerType(description);
+ return (IUserManager)container.getElement(productGroup, type, getUserManagerDescription(description));
+ }
+
+ protected String getUserManagerType(String description)
+ {
+ return FileUserManagerFactory.TYPE;
+ }
+
+ protected String getUserManagerDescription(String description)
+ {
+ return description;
}
}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeResponseNegotiator.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeResponseNegotiator.java
index 1a1b98f..b7d1d8f 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeResponseNegotiator.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ChallengeResponseNegotiator.java
@@ -34,7 +34,7 @@ public abstract class ChallengeResponseNegotiator extends
init(State.INITIAL, Event.START, new Transition()
{
@Override
- protected void execute(INegotiationContext context, ByteBuffer buffer)
+ protected void execute(INegotiationContext context, ByteBuffer NULL)
{
// Create and transmit challenge
ByteBuffer challenge = context.getBuffer();
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/PasswordCredentialsProvider.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/PasswordCredentialsProvider.java
new file mode 100644
index 0000000..786b4bb
--- /dev/null
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/PasswordCredentialsProvider.java
@@ -0,0 +1,27 @@
+package org.eclipse.net4j.internal.util.security;
+
+import org.eclipse.net4j.util.security.IPasswordCredentials;
+import org.eclipse.net4j.util.security.IPasswordCredentialsProvider;
+
+/**
+ * @author Eike Stepper
+ */
+public final class PasswordCredentialsProvider implements IPasswordCredentialsProvider
+{
+ private IPasswordCredentials credentials;
+
+ public PasswordCredentialsProvider(IPasswordCredentials credentials)
+ {
+ this.credentials = credentials;
+ }
+
+ public boolean isInteractive()
+ {
+ return false;
+ }
+
+ public IPasswordCredentials getCredentials()
+ {
+ return credentials;
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/RandomizerFactory.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/RandomizerFactory.java
index 3d78ca6..d17f481 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/RandomizerFactory.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/RandomizerFactory.java
@@ -22,9 +22,9 @@ public class RandomizerFactory extends Factory
public static final String TYPE = "default";
- public RandomizerFactory(String type)
+ public RandomizerFactory()
{
- super(PRODUCT_GROUP, type);
+ super(PRODUCT_GROUP, TYPE);
}
public Randomizer create(String description) throws ProductCreationException
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ResponseNegotiator.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ResponseNegotiator.java
index b4ef934..e69f6dd 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ResponseNegotiator.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/security/ResponseNegotiator.java
@@ -65,16 +65,18 @@ public class ResponseNegotiator extends ChallengeResponseNegotiator
// Get credentials and encrypt token
IPasswordCredentials credentials = credentialsProvider.getCredentials();
+ String userID = credentials.getUserID();
+ context.setUserID(userID);
+
+ // Set userID into response
+ byte[] userIDBytes = userID.getBytes();
+ response.putInt(userIDBytes.length);
+ response.put(userIDBytes);
// Set crypted token into response
byte[] cryptedToken = encryptToken(credentials.getPassword(), randomToken);
response.putInt(cryptedToken.length);
response.put(cryptedToken);
-
- // Set userID into response
- byte[] userID = credentials.getUserID().getBytes();
- response.putInt(userID.length);
- response.put(userID);
}
@Override
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java
index 0998b5d..92d3dcc 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java
@@ -192,14 +192,6 @@ public final class LifecycleUtil
}
}
- public static void dump(Object object)
- {
- if (object instanceof Lifecycle)
- {
- ((Lifecycle)object).dump();
- }
- }
-
private static <T extends Annotation> void invokeAnnotation(Object object, Class<T> annotationClass)
{
Class<?> c = object.getClass();
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitorUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitorUtil.java
index 8a874ef..32a4018 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitorUtil.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitorUtil.java
@@ -26,6 +26,11 @@ public final class MonitorUtil
{
}
+ public static boolean isCanceled()
+ {
+ return MON.isCanceled();
+ }
+
public static OMMonitor begin()
{
return MON.begin(OMMonitor.UNKNOWN, null);
@@ -88,7 +93,7 @@ public final class MonitorUtil
public static void startMonitoring(IProgressMonitor progressMonitor)
{
- startMonitoring(null);
+ startMonitoring(progressMonitor, null);
}
public static void stopMonitoring()
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitoredJob.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitoredJob.java
index 20fd846..6fa16ea 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitoredJob.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/monitor/MonitoredJob.java
@@ -11,6 +11,7 @@
package org.eclipse.net4j.util.om.monitor;
import org.eclipse.net4j.internal.util.bundle.OM;
+import org.eclipse.net4j.internal.util.om.monitor.MON;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -31,9 +32,17 @@ public abstract class MonitoredJob extends Job
}
@Override
+ protected void canceling()
+ {
+ MON.setCanceled(true);
+ super.canceling();
+ }
+
+ @Override
protected final IStatus run(IProgressMonitor monitor)
{
MonitorUtil.Eclipse.startMonitoring(monitor);
+
try
{
run();
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/INegotiationContext.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/INegotiationContext.java
index 9840fac..b9f0630 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/INegotiationContext.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/security/INegotiationContext.java
@@ -29,6 +29,8 @@ public interface INegotiationContext
public void setState(Enum<?> state);
+ public void setUserID(String userID);
+
public void setFinished(boolean success);
public Object getInfo();
@@ -42,4 +44,5 @@ public interface INegotiationContext
{
public void receiveBuffer(INegotiationContext context, ByteBuffer buffer);
}
+
}
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Connector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Connector.java
index e673c4e..5d4d849 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Connector.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Connector.java
@@ -36,6 +36,7 @@ import org.eclipse.net4j.util.event.INotifier;
import org.eclipse.net4j.util.factory.IFactory;
import org.eclipse.net4j.util.factory.IFactoryKey;
import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.monitor.MonitorUtil;
import org.eclipse.net4j.util.registry.IRegistry;
import org.eclipse.net4j.util.security.INegotiationContext;
import org.eclipse.net4j.util.security.INegotiator;
@@ -199,7 +200,6 @@ public abstract class Connector extends Container<IChannel> implements IConnecto
}
connectorState = newState;
- fireEvent(new ConnectorStateEvent(this, oldState, newState));
switch (newState)
{
case DISCONNECTED:
@@ -219,10 +219,6 @@ public abstract class Connector extends Container<IChannel> implements IConnecto
case CONNECTING:
finishedConnecting = new CountDownLatch(1);
finishedNegotiating = new CountDownLatch(1);
- if (isServer())
- {
- setState(ConnectorState.NEGOTIATING);
- }
break;
case NEGOTIATING:
@@ -239,18 +235,36 @@ public abstract class Connector extends Container<IChannel> implements IConnecto
break;
case CONNECTED:
+ if (TRACER.isEnabled()) TRACER.format("Connected user " + userID);
negotiationContext = null;
finishedConnecting.countDown(); // Just in case of suspicion
finishedNegotiating.countDown();
+ deferredActivate();
break;
-
}
+
+ fireEvent(new ConnectorStateEvent(this, oldState, newState));
}
}
+ public boolean isDisconnected()
+ {
+ return connectorState == ConnectorState.DISCONNECTED;
+ }
+
+ public boolean isConnecting()
+ {
+ return connectorState == ConnectorState.CONNECTING;
+ }
+
+ public boolean isNegotiating()
+ {
+ return connectorState == ConnectorState.NEGOTIATING;
+ }
+
public boolean isConnected()
{
- return getState() == ConnectorState.CONNECTED;
+ return connectorState == ConnectorState.CONNECTED;
}
public void connectAsync() throws ConnectorException
@@ -271,13 +285,12 @@ public abstract class Connector extends Container<IChannel> implements IConnecto
public boolean waitForConnection(long timeout) throws ConnectorException
{
- ConnectorState connectorState = getState();
- if (connectorState == ConnectorState.DISCONNECTED)
+ if (isDisconnected())
{
return false;
}
- if (connectorState == ConnectorState.CONNECTED)
+ if (isConnected())
{
return true;
}
@@ -289,7 +302,23 @@ public abstract class Connector extends Container<IChannel> implements IConnecto
TRACER.trace("Waiting for connection..."); //$NON-NLS-1$
}
- return finishedNegotiating.await(timeout, TimeUnit.MILLISECONDS);
+ do
+ {
+ boolean finished = finishedNegotiating.await(Math.min(100L, timeout), TimeUnit.MILLISECONDS);
+ if (finished)
+ {
+ break;
+ }
+
+ if (MonitorUtil.isCanceled())
+ {
+ break;
+ }
+
+ timeout -= 100L;
+ } while (timeout > 0);
+
+ return isConnected();
}
catch (InterruptedException ex)
{
@@ -368,7 +397,11 @@ public abstract class Connector extends Container<IChannel> implements IConnecto
public IChannel openChannel(IProtocol protocol) throws ConnectorException
{
- waitForConnection(Long.MAX_VALUE);
+ if (!waitForConnection(Long.MAX_VALUE))
+ {
+ throw new ConnectorException("Connector not connected");
+ }
+
int channelID = getNextChannelID();
short channelIndex = findFreeChannelIndex();
Channel channel = createChannel(channelID, channelIndex, protocol);
@@ -654,6 +687,12 @@ public abstract class Connector extends Container<IChannel> implements IConnecto
}
@Override
+ protected boolean isDeferredActivation()
+ {
+ return true;
+ }
+
+ @Override
protected void doBeforeActivate() throws Exception
{
super.doBeforeActivate();
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Net4jTransportInjector.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Net4jTransportInjector.java
index 84f81e5..2461edb 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Net4jTransportInjector.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/Net4jTransportInjector.java
@@ -2,6 +2,7 @@ package org.eclipse.internal.net4j;
import org.eclipse.net4j.util.container.IElementProcessor;
import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.security.INegotiator;
import java.util.concurrent.ExecutorService;
@@ -10,65 +11,94 @@ import java.util.concurrent.ExecutorService;
*/
public class Net4jTransportInjector implements IElementProcessor
{
- public Object process(IManagedContainer container, String productGroup, String factoryType, final String description,
- final Object element)
+ public static INegotiator serverNegotiator;
+
+ public static INegotiator clientNegotiator;
+
+ public Net4jTransportInjector()
+ {
+ }
+
+ public Object process(IManagedContainer container, String productGroup, String factoryType, String description,
+ Object element)
{
if (element instanceof Acceptor)
{
Acceptor acceptor = (Acceptor)element;
- if (acceptor.getBufferProvider() == null)
- {
- acceptor.setBufferProvider(getBufferProvider(container));
- }
-
- if (acceptor.getReceiveExecutor() == null)
- {
- acceptor.setReceiveExecutor(getExecutorService(container));
- }
-
- if (acceptor.getProtocolFactoryRegistry() == null)
- {
- acceptor.setProtocolFactoryRegistry(container.getFactoryRegistry());
- }
-
- if (acceptor.getProtocolPostProcessors() == null)
- {
- acceptor.setProtocolPostProcessors(container.getPostProcessors());
- }
+ processAcceptor(container, factoryType, description, acceptor);
}
else if (element instanceof Connector)
{
Connector connector = (Connector)element;
- if (connector.getBufferProvider() == null)
- {
- connector.setBufferProvider(getBufferProvider(container));
- }
-
- if (connector.getReceiveExecutor() == null)
- {
- connector.setReceiveExecutor(getExecutorService(container));
- }
-
- if (connector.getProtocolFactoryRegistry() == null)
- {
- connector.setProtocolFactoryRegistry(container.getFactoryRegistry());
- }
-
- if (connector.getProtocolPostProcessors() == null)
- {
- connector.setProtocolPostProcessors(container.getPostProcessors());
- }
+ processConnector(container, factoryType, description, connector);
}
return element;
}
- public BufferProvider getBufferProvider(IManagedContainer container)
+ protected void processAcceptor(IManagedContainer container, String factoryType, String description, Acceptor acceptor)
+ {
+ if (acceptor.getBufferProvider() == null)
+ {
+ acceptor.setBufferProvider(getBufferProvider(container));
+ }
+
+ if (acceptor.getReceiveExecutor() == null)
+ {
+ acceptor.setReceiveExecutor(getExecutorService(container));
+ }
+
+ if (acceptor.getProtocolFactoryRegistry() == null)
+ {
+ acceptor.setProtocolFactoryRegistry(container.getFactoryRegistry());
+ }
+
+ if (acceptor.getProtocolPostProcessors() == null)
+ {
+ acceptor.setProtocolPostProcessors(container.getPostProcessors());
+ }
+
+ if (serverNegotiator != null && acceptor.getNegotiator() == null)
+ {
+ acceptor.setNegotiator(serverNegotiator);
+ }
+ }
+
+ protected void processConnector(IManagedContainer container, String factoryType, String description,
+ Connector connector)
+ {
+ if (connector.getBufferProvider() == null)
+ {
+ connector.setBufferProvider(getBufferProvider(container));
+ }
+
+ if (connector.getReceiveExecutor() == null)
+ {
+ connector.setReceiveExecutor(getExecutorService(container));
+ }
+
+ if (connector.getProtocolFactoryRegistry() == null)
+ {
+ connector.setProtocolFactoryRegistry(container.getFactoryRegistry());
+ }
+
+ if (connector.getProtocolPostProcessors() == null)
+ {
+ connector.setProtocolPostProcessors(container.getPostProcessors());
+ }
+
+ if (clientNegotiator != null && connector.isClient() && connector.getNegotiator() == null)
+ {
+ connector.setNegotiator(clientNegotiator);
+ }
+ }
+
+ protected BufferProvider getBufferProvider(IManagedContainer container)
{
return (BufferProvider)container.getElement(BufferProviderFactory.PRODUCT_GROUP, BufferProviderFactory.TYPE, null);
}
- public ExecutorService getExecutorService(IManagedContainer container)
+ protected ExecutorService getExecutorService(IManagedContainer container)
{
return (ExecutorService)container.getElement(ExecutorServiceFactory.PRODUCT_GROUP, ExecutorServiceFactory.TYPE,
null);
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jUtil.java
index bcecf1c..4bf7b52 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jUtil.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/Net4jUtil.java
@@ -10,6 +10,7 @@
**************************************************************************/
package org.eclipse.net4j;
+import org.eclipse.net4j.internal.util.security.RandomizerFactory;
import org.eclipse.net4j.util.container.IManagedContainer;
import org.eclipse.internal.net4j.AcceptorFactory;
@@ -37,6 +38,7 @@ public final class Net4jUtil
{
container.registerFactory(new ExecutorServiceFactory());
container.registerFactory(new BufferProviderFactory());
+ container.registerFactory(new RandomizerFactory());
container.addPostProcessor(new Net4jTransportInjector());
}