Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-06-25 06:41:23 -0400
committerEike Stepper2012-06-25 06:41:23 -0400
commitdd2209e1dcdf369d9342f7f6bc0142999c2cac3d (patch)
tree228ce03267c94d8677e735580297409c4e7521cf
parent1055a710c86065c1bb5c25bd4fbc72f8ed404c89 (diff)
downloadcdo-dd2209e1dcdf369d9342f7f6bc0142999c2cac3d.tar.gz
cdo-dd2209e1dcdf369d9342f7f6bc0142999c2cac3d.tar.xz
cdo-dd2209e1dcdf369d9342f7f6bc0142999c2cac3d.zip
[383292] Thread names missing, thread management.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=383292
-rw-r--r--plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF68
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/handler/AsyncCommitInfoHandler.java122
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.java324
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java319
-rw-r--r--plugins/org.eclipse.emf.cdo.examples.server/META-INF/MANIFEST.MF6
-rw-r--r--plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java324
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerBrowser.java2
-rw-r--r--plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF52
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java2
-rw-r--r--plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF10
-rw-r--r--plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java528
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ExecutorServiceFactory.java246
-rw-r--r--plugins/org.eclipse.net4j/META-INF/MANIFEST.MF28
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/BufferPool.java486
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java2
16 files changed, 1277 insertions, 1244 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
index 1029d2bb75..40ab0374c6 100644
--- a/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.common/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.emf.cdo.common
-Bundle-Version: 4.1.0.qualifier
+Bundle-Version: 4.1.100.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -15,21 +15,21 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)";resoluti
org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)",
org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport
Import-Package: org.osgi.framework;version="[1.3.0,2.0.0)";resolution:=optional
-Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
- org.eclipse.emf.cdo.common.admin;version="4.1.0",
- org.eclipse.emf.cdo.common.branch;version="4.1.0",
- org.eclipse.emf.cdo.common.commit;version="4.1.0",
- org.eclipse.emf.cdo.common.commit.handler;version="4.1.0",
- org.eclipse.emf.cdo.common.id;version="4.1.0",
- org.eclipse.emf.cdo.common.lob;version="4.1.0",
- org.eclipse.emf.cdo.common.lock;version="4.1.0",
- org.eclipse.emf.cdo.common.model;version="4.1.0",
- org.eclipse.emf.cdo.common.protocol;version="4.1.0",
- org.eclipse.emf.cdo.common.revision;version="4.1.0",
- org.eclipse.emf.cdo.common.revision.delta;version="4.1.0",
- org.eclipse.emf.cdo.common.security;version="4.1.0",
- org.eclipse.emf.cdo.common.util;version="4.1.0",
- org.eclipse.emf.cdo.internal.common;version="4.1.0";
+Export-Package: org.eclipse.emf.cdo.common;version="4.1.100",
+ org.eclipse.emf.cdo.common.admin;version="4.1.100",
+ org.eclipse.emf.cdo.common.branch;version="4.1.100",
+ org.eclipse.emf.cdo.common.commit;version="4.1.100",
+ org.eclipse.emf.cdo.common.commit.handler;version="4.1.100",
+ org.eclipse.emf.cdo.common.id;version="4.1.100",
+ org.eclipse.emf.cdo.common.lob;version="4.1.100",
+ org.eclipse.emf.cdo.common.lock;version="4.1.100",
+ org.eclipse.emf.cdo.common.model;version="4.1.100",
+ org.eclipse.emf.cdo.common.protocol;version="4.1.100",
+ org.eclipse.emf.cdo.common.revision;version="4.1.100",
+ org.eclipse.emf.cdo.common.revision.delta;version="4.1.100",
+ org.eclipse.emf.cdo.common.security;version="4.1.100",
+ org.eclipse.emf.cdo.common.util;version="4.1.100",
+ org.eclipse.emf.cdo.internal.common;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -38,9 +38,9 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.branch;version="4.1.0";x-friends:="org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.bundle;version="4.1.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.commit;version="4.1.0";
+ org.eclipse.emf.cdo.internal.common.branch;version="4.1.100";x-friends:="org.eclipse.emf.cdo.tests",
+ org.eclipse.emf.cdo.internal.common.bundle;version="4.1.100";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.commit;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -49,7 +49,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.id;version="4.1.0";
+ org.eclipse.emf.cdo.internal.common.id;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -60,9 +60,9 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.admin,
org.eclipse.emf.cdo.server.admin",
- org.eclipse.emf.cdo.internal.common.lock;version="4.1.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.messages;version="4.1.0";x-internal:=true,
- org.eclipse.emf.cdo.internal.common.model;version="4.1.0";
+ org.eclipse.emf.cdo.internal.common.lock;version="4.1.100";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.messages;version="4.1.100";x-internal:=true,
+ org.eclipse.emf.cdo.internal.common.model;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -71,7 +71,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.protocol;version="4.1.0";
+ org.eclipse.emf.cdo.internal.common.protocol;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -80,7 +80,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.revision;version="4.1.0";
+ org.eclipse.emf.cdo.internal.common.revision;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -89,7 +89,7 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.internal.common.revision.delta;version="4.1.0";
+ org.eclipse.emf.cdo.internal.common.revision.delta;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.common,
org.eclipse.emf.cdo.common.db,
org.eclipse.emf.cdo,
@@ -98,11 +98,11 @@ Export-Package: org.eclipse.emf.cdo.common;version="4.1.0",
org.eclipse.emf.cdo.server.net4j,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests",
- org.eclipse.emf.cdo.spi.common;version="4.1.0",
- org.eclipse.emf.cdo.spi.common.admin;version="4.1.0",
- org.eclipse.emf.cdo.spi.common.branch;version="4.1.0",
- org.eclipse.emf.cdo.spi.common.commit;version="4.1.0",
- org.eclipse.emf.cdo.spi.common.id;version="4.1.0",
- org.eclipse.emf.cdo.spi.common.lock;version="4.1.0",
- org.eclipse.emf.cdo.spi.common.model;version="4.1.0",
- org.eclipse.emf.cdo.spi.common.revision;version="4.1.0"
+ org.eclipse.emf.cdo.spi.common;version="4.1.100",
+ org.eclipse.emf.cdo.spi.common.admin;version="4.1.100",
+ org.eclipse.emf.cdo.spi.common.branch;version="4.1.100",
+ org.eclipse.emf.cdo.spi.common.commit;version="4.1.100",
+ org.eclipse.emf.cdo.spi.common.id;version="4.1.100",
+ org.eclipse.emf.cdo.spi.common.lock;version="4.1.100",
+ org.eclipse.emf.cdo.spi.common.model;version="4.1.100",
+ org.eclipse.emf.cdo.spi.common.revision;version="4.1.100"
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/handler/AsyncCommitInfoHandler.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/handler/AsyncCommitInfoHandler.java
index 441ce866fe..a48309fb36 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/handler/AsyncCommitInfoHandler.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/commit/handler/AsyncCommitInfoHandler.java
@@ -1,58 +1,64 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.common.commit.handler;
-
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
-import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
-import org.eclipse.emf.cdo.internal.common.bundle.OM;
-
-import org.eclipse.net4j.util.concurrent.QueueWorker;
-
-/**
- * A {@link CDOCommitInfoHandler commit info handler} that asynchronously delegates {@link CDOCommitInfo commit infos}
- * to another handler.
- *
- * @author Eike Stepper
- * @since 4.0
- */
-public class AsyncCommitInfoHandler extends QueueWorker<CDOCommitInfo> implements CDOCommitInfoHandler
-{
- private CDOCommitInfoHandler delegate;
-
- public AsyncCommitInfoHandler(CDOCommitInfoHandler delegate)
- {
- this.delegate = delegate;
- }
-
- public void handleCommitInfo(CDOCommitInfo commitInfo)
- {
- addWork(commitInfo);
- }
-
- @Override
- protected void work(WorkContext context, CDOCommitInfo commitInfo)
- {
- try
- {
- delegate.handleCommitInfo(commitInfo);
- }
- catch (Exception ex)
- {
- OM.LOG.error(ex);
- }
- }
-
- @Override
- protected boolean doRemainingWorkBeforeDeactivate()
- {
- return true;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.common.commit.handler;
+
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
+import org.eclipse.emf.cdo.common.commit.CDOCommitInfoHandler;
+import org.eclipse.emf.cdo.internal.common.bundle.OM;
+
+import org.eclipse.net4j.util.concurrent.QueueWorker;
+
+/**
+ * A {@link CDOCommitInfoHandler commit info handler} that asynchronously delegates {@link CDOCommitInfo commit infos}
+ * to another handler.
+ *
+ * @author Eike Stepper
+ * @since 4.0
+ */
+public class AsyncCommitInfoHandler extends QueueWorker<CDOCommitInfo> implements CDOCommitInfoHandler
+{
+ private CDOCommitInfoHandler delegate;
+
+ public AsyncCommitInfoHandler(CDOCommitInfoHandler delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ public void handleCommitInfo(CDOCommitInfo commitInfo)
+ {
+ addWork(commitInfo);
+ }
+
+ @Override
+ protected void work(WorkContext context, CDOCommitInfo commitInfo)
+ {
+ try
+ {
+ delegate.handleCommitInfo(commitInfo);
+ }
+ catch (Exception ex)
+ {
+ OM.LOG.error(ex);
+ }
+ }
+
+ @Override
+ protected boolean doRemainingWorkBeforeDeactivate()
+ {
+ return true;
+ }
+
+ @Override
+ protected String getThreadName()
+ {
+ return "CDOAsyncCommitInfoHandler";
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.java
index 26e11b8b96..1157bf5b08 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/model/CDOPackageRegistryPopulator.java
@@ -1,159 +1,165 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.common.model;
-
-import org.eclipse.net4j.util.concurrent.Worker;
-
-import org.eclipse.emf.ecore.EFactory;
-import org.eclipse.emf.ecore.EPackage;
-
-import java.util.Map.Entry;
-
-/**
- * Populates a {@link #getTarget() target} package registry by asynchronously polling a {@link #getSource() source}
- * package registry for new {@link EPackage} registrations.
- *
- * @author Eike Stepper
- * @since 2.0
- * @apiviz.uses {@link CDOPackageRegistryPopulator.Descriptor} - - creates
- * @apiviz.uses {@link CDOPackageRegistry} - - populates
- * @apiviz.uses {@link org.eclipse.emf.ecore.EPackage.Registry} - - polls
- */
-public class CDOPackageRegistryPopulator extends Worker
-{
- public static final int DEFAULT_SOURCE_POLL_INTERVAL = 5000;
-
- private long sourcePollInterval = DEFAULT_SOURCE_POLL_INTERVAL;
-
- private EPackage.Registry source;
-
- private CDOPackageRegistry target;
-
- public CDOPackageRegistryPopulator(CDOPackageRegistry target)
- {
- this(EPackage.Registry.INSTANCE, target);
- }
-
- public CDOPackageRegistryPopulator(EPackage.Registry source, CDOPackageRegistry target)
- {
- this.source = source;
- this.target = target;
- }
-
- public EPackage.Registry getSource()
- {
- return source;
- }
-
- public CDOPackageRegistry getTarget()
- {
- return target;
- }
-
- public long getSourcePollInterval()
- {
- return sourcePollInterval;
- }
-
- public void setSourcePollInterval(long sourcePollInterval)
- {
- this.sourcePollInterval = sourcePollInterval;
- }
-
- @Override
- protected void work(WorkContext context) throws Exception
- {
- doWork();
- context.nextWork(getSourcePollInterval());
- }
-
- protected void doWork()
- {
- populate(getSource(), getTarget());
- }
-
- @Override
- protected void doActivate() throws Exception
- {
- doWork();
- super.doActivate();
- }
-
- public static boolean populate(CDOPackageRegistry target)
- {
- return populate(EPackage.Registry.INSTANCE, target);
- }
-
- public static boolean populate(EPackage.Registry source, CDOPackageRegistry target)
- {
- boolean populated = false;
- while (populateFirstMatch(source, target))
- {
- populated = true;
- }
-
- return populated;
- }
-
- private static boolean populateFirstMatch(EPackage.Registry source, CDOPackageRegistry target)
- {
- for (Entry<String, Object> entry : source.entrySet())
- {
- String nsURI = entry.getKey();
- if (!target.containsKey(nsURI))
- {
- target.put(nsURI, new Descriptor(source, nsURI));
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * A package {@link org.eclipse.emf.ecore.EPackage.Descriptor descriptor} that resolves {@link EPackage packages} from
- * a {@link #getSource() source } package registry.
- *
- * @author Eike Stepper
- */
- public static class Descriptor implements EPackage.Descriptor
- {
- private EPackage.Registry source;
-
- private String nsURI;
-
- public Descriptor(EPackage.Registry source, String nsURI)
- {
- this.source = source;
- this.nsURI = nsURI;
- }
-
- public EPackage.Registry getSource()
- {
- return source;
- }
-
- public String getNsURI()
- {
- return nsURI;
- }
-
- public EFactory getEFactory()
- {
- return source.getEFactory(nsURI);
- }
-
- public EPackage getEPackage()
- {
- return source.getEPackage(nsURI);
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.common.model;
+
+import org.eclipse.net4j.util.concurrent.Worker;
+
+import org.eclipse.emf.ecore.EFactory;
+import org.eclipse.emf.ecore.EPackage;
+
+import java.util.Map.Entry;
+
+/**
+ * Populates a {@link #getTarget() target} package registry by asynchronously polling a {@link #getSource() source}
+ * package registry for new {@link EPackage} registrations.
+ *
+ * @author Eike Stepper
+ * @since 2.0
+ * @apiviz.uses {@link CDOPackageRegistryPopulator.Descriptor} - - creates
+ * @apiviz.uses {@link CDOPackageRegistry} - - populates
+ * @apiviz.uses {@link org.eclipse.emf.ecore.EPackage.Registry} - - polls
+ */
+public class CDOPackageRegistryPopulator extends Worker
+{
+ public static final int DEFAULT_SOURCE_POLL_INTERVAL = 5000;
+
+ private long sourcePollInterval = DEFAULT_SOURCE_POLL_INTERVAL;
+
+ private EPackage.Registry source;
+
+ private CDOPackageRegistry target;
+
+ public CDOPackageRegistryPopulator(CDOPackageRegistry target)
+ {
+ this(EPackage.Registry.INSTANCE, target);
+ }
+
+ public CDOPackageRegistryPopulator(EPackage.Registry source, CDOPackageRegistry target)
+ {
+ this.source = source;
+ this.target = target;
+ }
+
+ public EPackage.Registry getSource()
+ {
+ return source;
+ }
+
+ public CDOPackageRegistry getTarget()
+ {
+ return target;
+ }
+
+ public long getSourcePollInterval()
+ {
+ return sourcePollInterval;
+ }
+
+ public void setSourcePollInterval(long sourcePollInterval)
+ {
+ this.sourcePollInterval = sourcePollInterval;
+ }
+
+ @Override
+ protected void work(WorkContext context) throws Exception
+ {
+ doWork();
+ context.nextWork(getSourcePollInterval());
+ }
+
+ protected void doWork()
+ {
+ populate(getSource(), getTarget());
+ }
+
+ @Override
+ protected void doActivate() throws Exception
+ {
+ doWork();
+ super.doActivate();
+ }
+
+ @Override
+ protected String getThreadName()
+ {
+ return "CDOPackageRegistryPopulator";
+ }
+
+ public static boolean populate(CDOPackageRegistry target)
+ {
+ return populate(EPackage.Registry.INSTANCE, target);
+ }
+
+ public static boolean populate(EPackage.Registry source, CDOPackageRegistry target)
+ {
+ boolean populated = false;
+ while (populateFirstMatch(source, target))
+ {
+ populated = true;
+ }
+
+ return populated;
+ }
+
+ private static boolean populateFirstMatch(EPackage.Registry source, CDOPackageRegistry target)
+ {
+ for (Entry<String, Object> entry : source.entrySet())
+ {
+ String nsURI = entry.getKey();
+ if (!target.containsKey(nsURI))
+ {
+ target.put(nsURI, new Descriptor(source, nsURI));
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * A package {@link org.eclipse.emf.ecore.EPackage.Descriptor descriptor} that resolves {@link EPackage packages} from
+ * a {@link #getSource() source } package registry.
+ *
+ * @author Eike Stepper
+ */
+ public static class Descriptor implements EPackage.Descriptor
+ {
+ private EPackage.Registry source;
+
+ private String nsURI;
+
+ public Descriptor(EPackage.Registry source, String nsURI)
+ {
+ this.source = source;
+ this.nsURI = nsURI;
+ }
+
+ public EPackage.Registry getSource()
+ {
+ return source;
+ }
+
+ public String getNsURI()
+ {
+ return nsURI;
+ }
+
+ public EFactory getEFactory()
+ {
+ return source.getEFactory(nsURI);
+ }
+
+ public EPackage getEPackage()
+ {
+ return source.getEPackage(nsURI);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java
index 43f0cf2f8c..363f2ae540 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/AbstractCDORevisionCache.java
@@ -1,156 +1,163 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- * Simon McDuff - bug 201266
- * Simon McDuff - bug 230832
- */
-package org.eclipse.emf.cdo.internal.common.revision;
-
-import org.eclipse.emf.cdo.common.branch.CDOBranch;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.common.revision.CDORevision;
-import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
-import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
-import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionCache;
-
-import org.eclipse.net4j.util.event.IListener;
-import org.eclipse.net4j.util.ref.ReferenceQueueWorker;
-
-import java.lang.ref.Reference;
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.SoftReference;
-import java.text.MessageFormat;
-
-/**
- * @author Eike Stepper
- */
-public abstract class AbstractCDORevisionCache extends ReferenceQueueWorker<InternalCDORevision> implements
- InternalCDORevisionCache
-{
- private static boolean disableGC;
-
- public AbstractCDORevisionCache()
- {
- }
-
- @Override
- protected void work(Reference<? extends InternalCDORevision> reference)
- {
- CDORevisionKey key = (CDORevisionKey)reference;
-
- CDOID id = key.getID();
- CDOBranch branch = key.getBranch();
- int version = key.getVersion();
-
- InternalCDORevision revision = (InternalCDORevision)removeRevision(id, branch.getVersion(version));
- if (revision == null)
- {
- // Use revision in eviction event
- key = revision;
- }
-
- IListener[] listeners = getListeners();
- if (listeners != null)
- {
- fireEvent(new EvictionEventImpl(this, key), listeners);
- }
- }
-
- protected Reference<InternalCDORevision> createReference(CDORevision revision)
- {
- if (disableGC)
- {
- return new CacheStrongReference((InternalCDORevision)revision);
- }
-
- return new CacheSoftReference((InternalCDORevision)revision, getQueue());
- }
-
- /**
- * @author Eike Stepper
- */
- private static final class CacheSoftReference extends SoftReference<InternalCDORevision> implements CDORevisionKey
- {
- private CDOID id;
-
- private CDOBranch branch;
-
- private int version;
-
- public CacheSoftReference(InternalCDORevision revision, ReferenceQueue<InternalCDORevision> queue)
- {
- super(revision, queue);
- id = revision.getID();
- branch = revision.getBranch();
- version = revision.getVersion();
- }
-
- public CDOID getID()
- {
- return id;
- }
-
- public CDOBranch getBranch()
- {
- return branch;
- }
-
- public int getVersion()
- {
- return version;
- }
-
- @Override
- public String toString()
- {
- return MessageFormat.format("{0}:{1}v{2}", getID(), getBranch().getID(), getVersion());
- }
- }
-
- /**
- * @author Eike Stepper
- */
- private static final class CacheStrongReference extends SoftReference<InternalCDORevision> implements CDORevisionKey
- {
- private CDOID id;
-
- private CDOBranch branch;
-
- private int version;
-
- public CacheStrongReference(InternalCDORevision revision)
- {
- super(revision);
- id = revision.getID();
- branch = revision.getBranch();
- version = revision.getVersion();
- }
-
- public CDOID getID()
- {
- return id;
- }
-
- public CDOBranch getBranch()
- {
- return branch;
- }
-
- public int getVersion()
- {
- return version;
- }
-
- @Override
- public String toString()
- {
- return MessageFormat.format("{0}:{1}v{2}", getID(), getBranch().getID(), getVersion());
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ * Simon McDuff - bug 201266
+ * Simon McDuff - bug 230832
+ */
+package org.eclipse.emf.cdo.internal.common.revision;
+
+import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.revision.CDORevision;
+import org.eclipse.emf.cdo.common.revision.CDORevisionKey;
+import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
+import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionCache;
+
+import org.eclipse.net4j.util.event.IListener;
+import org.eclipse.net4j.util.ref.ReferenceQueueWorker;
+
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.SoftReference;
+import java.text.MessageFormat;
+
+/**
+ * @author Eike Stepper
+ */
+public abstract class AbstractCDORevisionCache extends ReferenceQueueWorker<InternalCDORevision> implements
+ InternalCDORevisionCache
+{
+ private static boolean disableGC;
+
+ public AbstractCDORevisionCache()
+ {
+ setDaemon(true);
+ }
+
+ @Override
+ protected void work(Reference<? extends InternalCDORevision> reference)
+ {
+ CDORevisionKey key = (CDORevisionKey)reference;
+
+ CDOID id = key.getID();
+ CDOBranch branch = key.getBranch();
+ int version = key.getVersion();
+
+ InternalCDORevision revision = (InternalCDORevision)removeRevision(id, branch.getVersion(version));
+ if (revision == null)
+ {
+ // Use revision in eviction event
+ key = revision;
+ }
+
+ IListener[] listeners = getListeners();
+ if (listeners != null)
+ {
+ fireEvent(new EvictionEventImpl(this, key), listeners);
+ }
+ }
+
+ protected Reference<InternalCDORevision> createReference(CDORevision revision)
+ {
+ if (disableGC)
+ {
+ return new CacheStrongReference((InternalCDORevision)revision);
+ }
+
+ return new CacheSoftReference((InternalCDORevision)revision, getQueue());
+ }
+
+ @Override
+ protected String getThreadName()
+ {
+ return "CDORevisionCacheCleaner";
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static final class CacheSoftReference extends SoftReference<InternalCDORevision> implements CDORevisionKey
+ {
+ private CDOID id;
+
+ private CDOBranch branch;
+
+ private int version;
+
+ public CacheSoftReference(InternalCDORevision revision, ReferenceQueue<InternalCDORevision> queue)
+ {
+ super(revision, queue);
+ id = revision.getID();
+ branch = revision.getBranch();
+ version = revision.getVersion();
+ }
+
+ public CDOID getID()
+ {
+ return id;
+ }
+
+ public CDOBranch getBranch()
+ {
+ return branch;
+ }
+
+ public int getVersion()
+ {
+ return version;
+ }
+
+ @Override
+ public String toString()
+ {
+ return MessageFormat.format("{0}:{1}v{2}", getID(), getBranch().getID(), getVersion());
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static final class CacheStrongReference extends SoftReference<InternalCDORevision> implements CDORevisionKey
+ {
+ private CDOID id;
+
+ private CDOBranch branch;
+
+ private int version;
+
+ public CacheStrongReference(InternalCDORevision revision)
+ {
+ super(revision);
+ id = revision.getID();
+ branch = revision.getBranch();
+ version = revision.getVersion();
+ }
+
+ public CDOID getID()
+ {
+ return id;
+ }
+
+ public CDOBranch getBranch()
+ {
+ return branch;
+ }
+
+ public int getVersion()
+ {
+ return version;
+ }
+
+ @Override
+ public String toString()
+ {
+ return MessageFormat.format("{0}:{1}v{2}", getID(), getBranch().getID(), getVersion());
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.examples.server/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.examples.server/META-INF/MANIFEST.MF
index d378eee4f0..4d6673a2d3 100644
--- a/plugins/org.eclipse.emf.cdo.examples.server/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.examples.server/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.emf.cdo.examples.server; singleton:=true
-Bundle-Version: 4.0.100.qualifier
+Bundle-Version: 4.0.200.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -14,7 +14,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
org.eclipse.net4j.jvm;bundle-version="[4.0.0,5.0.0)",
org.eclipse.net4j.tcp;bundle-version="[4.0.0,5.0.0)"
Import-Package: org.h2.jdbcx;version="[1.0.0,2.0.0)"
-Export-Package: org.eclipse.emf.cdo.examples.internal.server;version="4.0.100";x-internal:=true,
- org.eclipse.emf.cdo.examples.server;version="4.0.100"
+Export-Package: org.eclipse.emf.cdo.examples.internal.server;version="4.0.200";x-internal:=true,
+ org.eclipse.emf.cdo.examples.server;version="4.0.200"
Bundle-Activator: org.eclipse.emf.cdo.examples.internal.server.OM$Activator
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java b/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java
index 955efb05e9..17c228c853 100644
--- a/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java
+++ b/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java
@@ -1,159 +1,165 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.examples.server;
-
-import org.eclipse.emf.cdo.examples.internal.server.OM;
-import org.eclipse.emf.cdo.examples.server.DemoConfiguration.Mode;
-
-import org.eclipse.net4j.acceptor.IAcceptor;
-import org.eclipse.net4j.tcp.TCPUtil;
-import org.eclipse.net4j.util.concurrent.Worker;
-import org.eclipse.net4j.util.container.IPluginContainer;
-import org.eclipse.net4j.util.lifecycle.Lifecycle;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
-import org.eclipse.net4j.util.om.OMPlatform;
-import org.eclipse.net4j.util.om.log.EclipseLoggingBridge;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author Eike Stepper
- */
-public class DemoServer extends Lifecycle
-{
- public static final String PROP_BROWSER_PORT = OM.BUNDLE_ID + ".browser.port"; //$NON-NLS-1$
-
- public static final int PORT = 3003;
-
- public static final int MAX_IDLE_MINUTES = 15;
-
- public static final long MAX_IDLE_MILLIS = MAX_IDLE_MINUTES * 60 * 1000;
-
- public static final DemoServer INSTANCE = new DemoServer();
-
- private IAcceptor acceptor;
-
- private Map<String, DemoConfiguration> configs = new HashMap<String, DemoConfiguration>();
-
- private Cleaner cleaner = new Cleaner();
-
- private DemoServer()
- {
- }
-
- public IAcceptor getAcceptor()
- {
- return acceptor;
- }
-
- public DemoConfiguration[] getConfigs()
- {
- synchronized (configs)
- {
- return configs.values().toArray(new DemoConfiguration[configs.size()]);
- }
- }
-
- public DemoConfiguration getConfig(String name)
- {
- synchronized (configs)
- {
- return configs.get(name);
- }
- }
-
- public DemoConfiguration addConfig(Mode mode)
- {
- DemoConfiguration config = new DemoConfiguration(mode, null);
- config.activate();
-
- synchronized (configs)
- {
- configs.put(config.getName(), config);
- }
-
- return config;
- }
-
- @Override
- protected void doActivate() throws Exception
- {
- super.doActivate();
- OMPlatform.INSTANCE.removeLogHandler(EclipseLoggingBridge.INSTANCE);
- OM.LOG.info("Demo server starting");
-
- IPluginContainer container = IPluginContainer.INSTANCE;
- acceptor = TCPUtil.getAcceptor(container, "0.0.0.0:" + PORT);
-
- String port = OMPlatform.INSTANCE.getProperty(PROP_BROWSER_PORT);
- if (port != null)
- {
- container.getElement("org.eclipse.emf.cdo.server.db.browsers", "default", port); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- cleaner.activate();
- OM.LOG.info("Demo server started");
- }
-
- @Override
- protected void doDeactivate() throws Exception
- {
- OM.LOG.info("Demo server stopping");
- cleaner.deactivate();
-
- for (DemoConfiguration config : getConfigs())
- {
- config.deactivate();
- }
-
- configs.clear();
-
- if (acceptor != null)
- {
- LifecycleUtil.deactivate(acceptor);
- acceptor = null;
- }
-
- OM.LOG.info("Demo server stopped");
- super.doDeactivate();
- }
-
- /**
- * @author Eike Stepper
- */
- private final class Cleaner extends Worker
- {
- @Override
- protected void work(WorkContext context) throws Exception
- {
- for (DemoConfiguration config : getConfigs())
- {
- cleanIfNeeded(config);
- }
-
- context.nextWork(2000L);
- }
-
- protected void cleanIfNeeded(DemoConfiguration config)
- {
- if (config.getTimeoutMillis() == 0)
- {
- synchronized (configs)
- {
- configs.remove(config.getName());
- }
-
- config.deactivate();
- }
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.examples.server;
+
+import org.eclipse.emf.cdo.examples.internal.server.OM;
+import org.eclipse.emf.cdo.examples.server.DemoConfiguration.Mode;
+
+import org.eclipse.net4j.acceptor.IAcceptor;
+import org.eclipse.net4j.tcp.TCPUtil;
+import org.eclipse.net4j.util.concurrent.Worker;
+import org.eclipse.net4j.util.container.IPluginContainer;
+import org.eclipse.net4j.util.lifecycle.Lifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.OMPlatform;
+import org.eclipse.net4j.util.om.log.EclipseLoggingBridge;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public class DemoServer extends Lifecycle
+{
+ public static final String PROP_BROWSER_PORT = OM.BUNDLE_ID + ".browser.port"; //$NON-NLS-1$
+
+ public static final int PORT = 3003;
+
+ public static final int MAX_IDLE_MINUTES = 15;
+
+ public static final long MAX_IDLE_MILLIS = MAX_IDLE_MINUTES * 60 * 1000;
+
+ public static final DemoServer INSTANCE = new DemoServer();
+
+ private IAcceptor acceptor;
+
+ private Map<String, DemoConfiguration> configs = new HashMap<String, DemoConfiguration>();
+
+ private Cleaner cleaner = new Cleaner();
+
+ private DemoServer()
+ {
+ }
+
+ public IAcceptor getAcceptor()
+ {
+ return acceptor;
+ }
+
+ public DemoConfiguration[] getConfigs()
+ {
+ synchronized (configs)
+ {
+ return configs.values().toArray(new DemoConfiguration[configs.size()]);
+ }
+ }
+
+ public DemoConfiguration getConfig(String name)
+ {
+ synchronized (configs)
+ {
+ return configs.get(name);
+ }
+ }
+
+ public DemoConfiguration addConfig(Mode mode)
+ {
+ DemoConfiguration config = new DemoConfiguration(mode, null);
+ config.activate();
+
+ synchronized (configs)
+ {
+ configs.put(config.getName(), config);
+ }
+
+ return config;
+ }
+
+ @Override
+ protected void doActivate() throws Exception
+ {
+ super.doActivate();
+ OMPlatform.INSTANCE.removeLogHandler(EclipseLoggingBridge.INSTANCE);
+ OM.LOG.info("Demo server starting");
+
+ IPluginContainer container = IPluginContainer.INSTANCE;
+ acceptor = TCPUtil.getAcceptor(container, "0.0.0.0:" + PORT);
+
+ String port = OMPlatform.INSTANCE.getProperty(PROP_BROWSER_PORT);
+ if (port != null)
+ {
+ container.getElement("org.eclipse.emf.cdo.server.db.browsers", "default", port); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ cleaner.activate();
+ OM.LOG.info("Demo server started");
+ }
+
+ @Override
+ protected void doDeactivate() throws Exception
+ {
+ OM.LOG.info("Demo server stopping");
+ cleaner.deactivate();
+
+ for (DemoConfiguration config : getConfigs())
+ {
+ config.deactivate();
+ }
+
+ configs.clear();
+
+ if (acceptor != null)
+ {
+ LifecycleUtil.deactivate(acceptor);
+ acceptor = null;
+ }
+
+ OM.LOG.info("Demo server stopped");
+ super.doDeactivate();
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private final class Cleaner extends Worker
+ {
+ @Override
+ protected String getThreadName()
+ {
+ return "DemoServerCleaner";
+ }
+
+ @Override
+ protected void work(WorkContext context) throws Exception
+ {
+ for (DemoConfiguration config : getConfigs())
+ {
+ cleanIfNeeded(config);
+ }
+
+ context.nextWork(2000L);
+ }
+
+ protected void cleanIfNeeded(DemoConfiguration config)
+ {
+ if (config.getTimeoutMillis() == 0)
+ {
+ synchronized (configs)
+ {
+ configs.remove(config.getName());
+ }
+
+ config.deactivate();
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java
index d4bba43cf6..175b2e611e 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/syncing/RepositorySynchronizer.java
@@ -173,7 +173,7 @@ public class RepositorySynchronizer extends QueueRunner implements InternalRepos
@Override
protected String getThreadName()
{
- return "RepositorySynchronizer"; //$NON-NLS-1$
+ return "CDORepositorySynchronizer"; //$NON-NLS-1$
}
@Override
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerBrowser.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerBrowser.java
index 690462f755..52d3ab1f3e 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerBrowser.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/CDOServerBrowser.java
@@ -338,7 +338,7 @@ public class CDOServerBrowser extends Worker
@Override
protected String getThreadName()
{
- return "DBBrowser";
+ return "CDOServerBrowser";
}
protected void initPages(List<Page> pages)
diff --git a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
index 77cf7ea5ee..868186ee5d 100644
--- a/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.emf.cdo; singleton:=true
-Bundle-Version: 4.1.0.qualifier
+Bundle-Version: 4.1.100.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -13,43 +13,43 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
org.eclipse.emf.cdo.common;bundle-version="[4.0.0,5.0.0)";visibility:=reexport
-Export-Package: org.eclipse.emf.cdo;version="4.1.0",
- org.eclipse.emf.cdo.eresource;version="4.1.0",
- org.eclipse.emf.cdo.eresource.impl;version="4.1.0",
- org.eclipse.emf.cdo.eresource.util;version="4.1.0",
- org.eclipse.emf.cdo.eresource.validation;version="4.1.0",
- org.eclipse.emf.cdo.etypes;version="4.1.0",
- org.eclipse.emf.cdo.etypes.impl;version="4.1.0",
- org.eclipse.emf.cdo.etypes.util;version="4.1.0",
- org.eclipse.emf.cdo.session;version="4.1.0",
- org.eclipse.emf.cdo.session.remote;version="4.1.0",
- org.eclipse.emf.cdo.transaction;version="4.1.0",
- org.eclipse.emf.cdo.util;version="4.1.0",
- org.eclipse.emf.cdo.view;version="4.1.0",
- org.eclipse.emf.internal.cdo;version="4.1.0",
- org.eclipse.emf.internal.cdo.analyzer;version="4.1.0";
+Export-Package: org.eclipse.emf.cdo;version="4.1.100",
+ org.eclipse.emf.cdo.eresource;version="4.1.100",
+ org.eclipse.emf.cdo.eresource.impl;version="4.1.100",
+ org.eclipse.emf.cdo.eresource.util;version="4.1.100",
+ org.eclipse.emf.cdo.eresource.validation;version="4.1.100",
+ org.eclipse.emf.cdo.etypes;version="4.1.100",
+ org.eclipse.emf.cdo.etypes.impl;version="4.1.100",
+ org.eclipse.emf.cdo.etypes.util;version="4.1.100",
+ org.eclipse.emf.cdo.session;version="4.1.100",
+ org.eclipse.emf.cdo.session.remote;version="4.1.100",
+ org.eclipse.emf.cdo.transaction;version="4.1.100",
+ org.eclipse.emf.cdo.util;version="4.1.100",
+ org.eclipse.emf.cdo.view;version="4.1.100",
+ org.eclipse.emf.internal.cdo;version="4.1.100",
+ org.eclipse.emf.internal.cdo.analyzer;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.defs,
org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.bundle;version="4.1.0";x-friends:="org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.messages;version="4.1.0";x-internal:=true,
- org.eclipse.emf.internal.cdo.object;version="4.1.0";
+ org.eclipse.emf.internal.cdo.bundle;version="4.1.100";x-friends:="org.eclipse.emf.cdo.ui",
+ org.eclipse.emf.internal.cdo.messages;version="4.1.100";x-internal:=true,
+ org.eclipse.emf.internal.cdo.object;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.defs,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.ui.ide",
- org.eclipse.emf.internal.cdo.query;version="4.1.0";
+ org.eclipse.emf.internal.cdo.query;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.defs,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.tests.objectivity",
- org.eclipse.emf.internal.cdo.session;version="4.1.0";
+ org.eclipse.emf.internal.cdo.session;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
@@ -57,30 +57,30 @@ Export-Package: org.eclipse.emf.cdo;version="4.1.0",
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.team,
org.eclipse.emf.cdo.ui.admin",
- org.eclipse.emf.internal.cdo.session.remote;version="4.1.0";
+ org.eclipse.emf.internal.cdo.session.remote;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.defs,
org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.transaction;version="4.1.0";
+ org.eclipse.emf.internal.cdo.transaction;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.defs,
org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.util;version="4.1.0";
+ org.eclipse.emf.internal.cdo.util;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.defs,
org.eclipse.emf.cdo.ui",
- org.eclipse.emf.internal.cdo.view;version="4.1.0";
+ org.eclipse.emf.internal.cdo.view;version="4.1.100";
x-friends:="org.eclipse.emf.cdo.net4j,
org.eclipse.emf.cdo.server,
org.eclipse.emf.cdo.tests,
org.eclipse.emf.cdo.defs,
org.eclipse.emf.cdo.ui,
org.eclipse.emf.cdo.ui.ide",
- org.eclipse.emf.spi.cdo;version="4.1.0"
+ org.eclipse.emf.spi.cdo;version="4.1.100"
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
index 70c743636f..93804818d4 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
@@ -863,7 +863,7 @@ public class CDOViewImpl extends AbstractCDOView
@Override
protected String getThreadName()
{
- return "InvalidationRunner-" + CDOViewImpl.this; //$NON-NLS-1$
+ return "CDOInvalidationRunner-" + CDOViewImpl.this; //$NON-NLS-1$
}
@Override
diff --git a/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF
index 00980bcbda..8af8ced103 100644
--- a/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j.http.server/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.net4j.http.server;singleton:=true
-Bundle-Version: 4.0.100.qualifier
+Bundle-Version: 4.0.200.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -14,7 +14,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)";resoluti
org.eclipse.equinox.http.registry;bundle-version="[1.0.0,2.0.0)"
Import-Package: javax.servlet;version="[2.3.0,3.0.0)",
javax.servlet.http;version="[2.3.0,3.0.0)"
-Export-Package: org.eclipse.net4j.http.internal.server;version="4.0.100";x-friends:="org.eclipse.net4j.http.tests,org.eclipse.net4j.defs",
- org.eclipse.net4j.http.internal.server.bundle;version="4.0.100";x-internal:=true,
- org.eclipse.net4j.http.internal.server.messages;version="4.0.100";x-internal:=true,
- org.eclipse.net4j.http.server;version="4.0.100"
+Export-Package: org.eclipse.net4j.http.internal.server;version="4.0.200";x-friends:="org.eclipse.net4j.http.tests,org.eclipse.net4j.defs",
+ org.eclipse.net4j.http.internal.server.bundle;version="4.0.200";x-internal:=true,
+ org.eclipse.net4j.http.internal.server.messages;version="4.0.200";x-internal:=true,
+ org.eclipse.net4j.http.server;version="4.0.200"
diff --git a/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java b/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java
index 933b1eef39..57ba9fb911 100644
--- a/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java
+++ b/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java
@@ -1,261 +1,267 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.http.internal.server;
-
-import org.eclipse.net4j.connector.IConnector;
-import org.eclipse.net4j.http.common.IHTTPConnector;
-import org.eclipse.net4j.http.internal.common.HTTPConnector;
-import org.eclipse.net4j.http.internal.server.bundle.OM;
-import org.eclipse.net4j.http.internal.server.messages.Messages;
-import org.eclipse.net4j.http.server.IHTTPAcceptor;
-import org.eclipse.net4j.http.server.INet4jTransportServlet;
-import org.eclipse.net4j.util.StringUtil;
-import org.eclipse.net4j.util.concurrent.Worker;
-import org.eclipse.net4j.util.io.ExtendedDataInputStream;
-import org.eclipse.net4j.util.io.ExtendedDataOutputStream;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
-import org.eclipse.net4j.util.om.log.OMLogger;
-import org.eclipse.net4j.util.om.trace.ContextTracer;
-import org.eclipse.net4j.util.security.IRandomizer;
-
-import org.eclipse.spi.net4j.Acceptor;
-import org.eclipse.spi.net4j.InternalConnector;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author Eike Stepper
- */
-public class HTTPAcceptor extends Acceptor implements IHTTPAcceptor, INet4jTransportServlet.RequestHandler
-{
- public static final int DEFAULT_CONNECTOR_ID_LENGTH = 32;
-
- public static final int DEFAULT_MAX_IDLE_TIME = 30 * 60 * 1000; // 30 minutes
-
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, HTTPAcceptor.class);
-
- private IRandomizer randomizer;
-
- private INet4jTransportServlet servlet;
-
- private int connectorIDLength = DEFAULT_CONNECTOR_ID_LENGTH;
-
- private int maxIdleTime = DEFAULT_MAX_IDLE_TIME;
-
- private Map<String, HTTPServerConnector> httpConnectors = new HashMap<String, HTTPServerConnector>();
-
- private Worker cleaner = new Worker()
- {
- @Override
- protected void work(WorkContext context) throws Exception
- {
- int pause = cleanIdleConnectors();
- context.nextWork(pause);
- }
- };
-
- public HTTPAcceptor()
- {
- }
-
- public IRandomizer getRandomizer()
- {
- return randomizer;
- }
-
- public void setRandomizer(IRandomizer randomizer)
- {
- this.randomizer = randomizer;
- }
-
- public INet4jTransportServlet getServlet()
- {
- return servlet;
- }
-
- public void setServlet(INet4jTransportServlet servlet)
- {
- if (this.servlet != null)
- {
- this.servlet.setRequestHandler(null);
- }
-
- this.servlet = servlet;
- if (this.servlet != null)
- {
- this.servlet.setRequestHandler(this);
- }
- }
-
- public int getConnectorIDLength()
- {
- return connectorIDLength;
- }
-
- public void setConnectorIDLength(int connectorIDLength)
- {
- this.connectorIDLength = connectorIDLength;
- }
-
- public int getMaxIdleTime()
- {
- return maxIdleTime;
- }
-
- public void setMaxIdleTime(int maxIdleTime)
- {
- this.maxIdleTime = maxIdleTime;
- }
-
- public IHTTPConnector[] getHTTPConnectors()
- {
- List<IHTTPConnector> result = new ArrayList<IHTTPConnector>();
- for (IConnector acceptedConnector : getAcceptedConnectors())
- {
- IHTTPConnector connector = (IHTTPConnector)acceptedConnector;
- result.add(connector);
- }
-
- return result.toArray(new IHTTPConnector[result.size()]);
- }
-
- public IHTTPConnector[] handleList(String connectorID)
- {
- if (StringUtil.isEmpty(connectorID))
- {
- return getHTTPConnectors();
- }
-
- return new IHTTPConnector[] { httpConnectors.get(connectorID) };
- }
-
- public IHTTPConnector handleConnect(String userID)
- {
- String connectorID = createConnectorID(userID);
- HTTPServerConnector connector = createServerConnector();
- prepareConnector(connector);
- connector.setConnectorID(connectorID);
- connector.setUserID(userID);
- addConnector(connector);
- connector.activate();
-
- return connector;
- }
-
- public void handleDisonnect(String connectorID)
- {
- HTTPConnector connector = httpConnectors.get(connectorID);
- if (connector == null)
- {
- throw new IllegalArgumentException("Invalid connectorID: " + connectorID); //$NON-NLS-1$
- }
-
- connector.deactivate();
- }
-
- public void handleOperations(String connectorID, ExtendedDataInputStream in, ExtendedDataOutputStream out)
- throws IOException
- {
- HTTPServerConnector connector = httpConnectors.get(connectorID);
- if (connector == null)
- {
- throw new IllegalArgumentException("Invalid connectorID: " + connectorID); //$NON-NLS-1$
- }
-
- connector.readInputOperations(in);
- connector.writeOutputOperations(out);
- }
-
- @Override
- public String toString()
- {
- return "HTTPAcceptor"; //$NON-NLS-1$
- }
-
- @Override
- public void addConnector(InternalConnector connector)
- {
- super.addConnector(connector);
- HTTPServerConnector httpConnector = (HTTPServerConnector)connector;
- httpConnectors.put(httpConnector.getConnectorID(), httpConnector);
- }
-
- @Override
- public void removeConnector(IConnector connector)
- {
- HTTPConnector httpConnector = (HTTPConnector)connector;
- httpConnectors.remove(httpConnector.getConnectorID());
- super.removeConnector(connector);
- }
-
- @Override
- protected void doBeforeActivate() throws Exception
- {
- super.doBeforeActivate();
- checkState(randomizer, "randomizer"); //$NON-NLS-1$
- checkState(connectorIDLength > 0, "Constraint violated: connectorIDLength > 0"); //$NON-NLS-1$
- checkState(maxIdleTime >= 100, "Constraint violated: maxIdleTime >= 100"); //$NON-NLS-1$
- }
-
- @Override
- protected void doActivate() throws Exception
- {
- super.doActivate();
- cleaner.setDaemon(true);
- cleaner.activate();
- }
-
- @Override
- protected void doDeactivate() throws Exception
- {
- LifecycleUtil.deactivate(cleaner, OMLogger.Level.WARN);
- super.doDeactivate();
- }
-
- protected String createConnectorID(String userID)
- {
- return randomizer.nextString(connectorIDLength, "0123456789ABCDEF"); //$NON-NLS-1$
- }
-
- protected HTTPServerConnector createServerConnector()
- {
- return new HTTPServerConnector(this);
- }
-
- protected int cleanIdleConnectors()
- {
- long now = System.currentTimeMillis();
- IConnector[] connectors = getAcceptedConnectors();
- if (TRACER.isEnabled())
- {
- TRACER.format("Checking {0} HTTP server connectors for idle time: {1,time}", connectors.length, new Date()); //$NON-NLS-1$
- }
-
- for (IConnector connector : connectors)
- {
- HTTPServerConnector serverConnector = (HTTPServerConnector)connector;
- long lastTraffic = serverConnector.getLastTraffic();
- long idleTime = now - lastTraffic;
- if (idleTime > maxIdleTime)
- {
- serverConnector.deactivate();
- OM.LOG.info(Messages.getString("HTTPAcceptor.8") + serverConnector); //$NON-NLS-1$
- }
- }
-
- return maxIdleTime;
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.http.internal.server;
+
+import org.eclipse.net4j.connector.IConnector;
+import org.eclipse.net4j.http.common.IHTTPConnector;
+import org.eclipse.net4j.http.internal.common.HTTPConnector;
+import org.eclipse.net4j.http.internal.server.bundle.OM;
+import org.eclipse.net4j.http.internal.server.messages.Messages;
+import org.eclipse.net4j.http.server.IHTTPAcceptor;
+import org.eclipse.net4j.http.server.INet4jTransportServlet;
+import org.eclipse.net4j.util.StringUtil;
+import org.eclipse.net4j.util.concurrent.Worker;
+import org.eclipse.net4j.util.io.ExtendedDataInputStream;
+import org.eclipse.net4j.util.io.ExtendedDataOutputStream;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
+import org.eclipse.net4j.util.om.trace.ContextTracer;
+import org.eclipse.net4j.util.security.IRandomizer;
+
+import org.eclipse.spi.net4j.Acceptor;
+import org.eclipse.spi.net4j.InternalConnector;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public class HTTPAcceptor extends Acceptor implements IHTTPAcceptor, INet4jTransportServlet.RequestHandler
+{
+ public static final int DEFAULT_CONNECTOR_ID_LENGTH = 32;
+
+ public static final int DEFAULT_MAX_IDLE_TIME = 30 * 60 * 1000; // 30 minutes
+
+ private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG, HTTPAcceptor.class);
+
+ private IRandomizer randomizer;
+
+ private INet4jTransportServlet servlet;
+
+ private int connectorIDLength = DEFAULT_CONNECTOR_ID_LENGTH;
+
+ private int maxIdleTime = DEFAULT_MAX_IDLE_TIME;
+
+ private Map<String, HTTPServerConnector> httpConnectors = new HashMap<String, HTTPServerConnector>();
+
+ private Worker cleaner = new Worker()
+ {
+ @Override
+ protected void work(WorkContext context) throws Exception
+ {
+ int pause = cleanIdleConnectors();
+ context.nextWork(pause);
+ }
+
+ @Override
+ protected String getThreadName()
+ {
+ return "HTTPAcceptorCleaner";
+ }
+ };
+
+ public HTTPAcceptor()
+ {
+ }
+
+ public IRandomizer getRandomizer()
+ {
+ return randomizer;
+ }
+
+ public void setRandomizer(IRandomizer randomizer)
+ {
+ this.randomizer = randomizer;
+ }
+
+ public INet4jTransportServlet getServlet()
+ {
+ return servlet;
+ }
+
+ public void setServlet(INet4jTransportServlet servlet)
+ {
+ if (this.servlet != null)
+ {
+ this.servlet.setRequestHandler(null);
+ }
+
+ this.servlet = servlet;
+ if (this.servlet != null)
+ {
+ this.servlet.setRequestHandler(this);
+ }
+ }
+
+ public int getConnectorIDLength()
+ {
+ return connectorIDLength;
+ }
+
+ public void setConnectorIDLength(int connectorIDLength)
+ {
+ this.connectorIDLength = connectorIDLength;
+ }
+
+ public int getMaxIdleTime()
+ {
+ return maxIdleTime;
+ }
+
+ public void setMaxIdleTime(int maxIdleTime)
+ {
+ this.maxIdleTime = maxIdleTime;
+ }
+
+ public IHTTPConnector[] getHTTPConnectors()
+ {
+ List<IHTTPConnector> result = new ArrayList<IHTTPConnector>();
+ for (IConnector acceptedConnector : getAcceptedConnectors())
+ {
+ IHTTPConnector connector = (IHTTPConnector)acceptedConnector;
+ result.add(connector);
+ }
+
+ return result.toArray(new IHTTPConnector[result.size()]);
+ }
+
+ public IHTTPConnector[] handleList(String connectorID)
+ {
+ if (StringUtil.isEmpty(connectorID))
+ {
+ return getHTTPConnectors();
+ }
+
+ return new IHTTPConnector[] { httpConnectors.get(connectorID) };
+ }
+
+ public IHTTPConnector handleConnect(String userID)
+ {
+ String connectorID = createConnectorID(userID);
+ HTTPServerConnector connector = createServerConnector();
+ prepareConnector(connector);
+ connector.setConnectorID(connectorID);
+ connector.setUserID(userID);
+ addConnector(connector);
+ connector.activate();
+
+ return connector;
+ }
+
+ public void handleDisonnect(String connectorID)
+ {
+ HTTPConnector connector = httpConnectors.get(connectorID);
+ if (connector == null)
+ {
+ throw new IllegalArgumentException("Invalid connectorID: " + connectorID); //$NON-NLS-1$
+ }
+
+ connector.deactivate();
+ }
+
+ public void handleOperations(String connectorID, ExtendedDataInputStream in, ExtendedDataOutputStream out)
+ throws IOException
+ {
+ HTTPServerConnector connector = httpConnectors.get(connectorID);
+ if (connector == null)
+ {
+ throw new IllegalArgumentException("Invalid connectorID: " + connectorID); //$NON-NLS-1$
+ }
+
+ connector.readInputOperations(in);
+ connector.writeOutputOperations(out);
+ }
+
+ @Override
+ public String toString()
+ {
+ return "HTTPAcceptor"; //$NON-NLS-1$
+ }
+
+ @Override
+ public void addConnector(InternalConnector connector)
+ {
+ super.addConnector(connector);
+ HTTPServerConnector httpConnector = (HTTPServerConnector)connector;
+ httpConnectors.put(httpConnector.getConnectorID(), httpConnector);
+ }
+
+ @Override
+ public void removeConnector(IConnector connector)
+ {
+ HTTPConnector httpConnector = (HTTPConnector)connector;
+ httpConnectors.remove(httpConnector.getConnectorID());
+ super.removeConnector(connector);
+ }
+
+ @Override
+ protected void doBeforeActivate() throws Exception
+ {
+ super.doBeforeActivate();
+ checkState(randomizer, "randomizer"); //$NON-NLS-1$
+ checkState(connectorIDLength > 0, "Constraint violated: connectorIDLength > 0"); //$NON-NLS-1$
+ checkState(maxIdleTime >= 100, "Constraint violated: maxIdleTime >= 100"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected void doActivate() throws Exception
+ {
+ super.doActivate();
+ cleaner.setDaemon(true);
+ cleaner.activate();
+ }
+
+ @Override
+ protected void doDeactivate() throws Exception
+ {
+ LifecycleUtil.deactivate(cleaner, OMLogger.Level.WARN);
+ super.doDeactivate();
+ }
+
+ protected String createConnectorID(String userID)
+ {
+ return randomizer.nextString(connectorIDLength, "0123456789ABCDEF"); //$NON-NLS-1$
+ }
+
+ protected HTTPServerConnector createServerConnector()
+ {
+ return new HTTPServerConnector(this);
+ }
+
+ protected int cleanIdleConnectors()
+ {
+ long now = System.currentTimeMillis();
+ IConnector[] connectors = getAcceptedConnectors();
+ if (TRACER.isEnabled())
+ {
+ TRACER.format("Checking {0} HTTP server connectors for idle time: {1,time}", connectors.length, new Date()); //$NON-NLS-1$
+ }
+
+ for (IConnector connector : connectors)
+ {
+ HTTPServerConnector serverConnector = (HTTPServerConnector)connector;
+ long lastTraffic = serverConnector.getLastTraffic();
+ long idleTime = now - lastTraffic;
+ if (idleTime > maxIdleTime)
+ {
+ serverConnector.deactivate();
+ OM.LOG.info(Messages.getString("HTTPAcceptor.8") + serverConnector); //$NON-NLS-1$
+ }
+ }
+
+ return maxIdleTime;
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ExecutorServiceFactory.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ExecutorServiceFactory.java
index 80340b9098..e1c973fdcd 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ExecutorServiceFactory.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/ExecutorServiceFactory.java
@@ -1,122 +1,124 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.net4j.util.concurrent;
-
-import org.eclipse.net4j.util.container.IManagedContainer;
-import org.eclipse.net4j.util.event.EventUtil;
-import org.eclipse.net4j.util.event.IListener;
-import org.eclipse.net4j.util.factory.Factory;
-import org.eclipse.net4j.util.lifecycle.ILifecycle;
-import org.eclipse.net4j.util.lifecycle.LifecycleException;
-import org.eclipse.net4j.util.lifecycle.LifecycleState;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ThreadFactory;
-
-/**
- * @author Eike Stepper
- * @since 2.0
- */
-public class ExecutorServiceFactory extends Factory
-{
- public static final String PRODUCT_GROUP = "org.eclipse.net4j.executorServices"; //$NON-NLS-1$
-
- public static final String TYPE = "default"; //$NON-NLS-1$
-
- public static final String DEFAULT_THREAD_GROUP_NAME = "net4j"; //$NON-NLS-1$
-
- public ExecutorServiceFactory()
- {
- super(PRODUCT_GROUP, TYPE);
- }
-
- public ExecutorService create(String threadGroupName)
- {
- if (threadGroupName == null)
- {
- threadGroupName = DEFAULT_THREAD_GROUP_NAME;
- }
-
- final ThreadGroup threadGroup = new ThreadGroup(threadGroupName);
- ThreadFactory threadFactory = new ThreadFactory()
- {
- public Thread newThread(Runnable r)
- {
- Thread thread = new Thread(threadGroup, r);
- thread.setDaemon(true);
- return thread;
- }
- };
-
- final ExecutorService executorService = Executors.newCachedThreadPool(threadFactory);
- return LifecycleUtil.delegateLifecycle(getClass().getClassLoader(), executorService, ExecutorService.class,
- new ILifecycle()
- {
- private boolean active;
-
- public void activate() throws LifecycleException
- {
- active = true;
- }
-
- public Exception deactivate()
- {
- try
- {
- executorService.shutdown();
- active = false;
- return null;
- }
- catch (Exception ex)
- {
- return ex;
- }
- }
-
- public LifecycleState getLifecycleState()
- {
- return active ? LifecycleState.ACTIVE : LifecycleState.INACTIVE;
- }
-
- public boolean isActive()
- {
- return active;
- }
-
- public void addListener(IListener listener)
- {
- // Do nothing
- }
-
- public void removeListener(IListener listener)
- {
- // Do nothing
- }
-
- public IListener[] getListeners()
- {
- return EventUtil.NO_LISTENERS;
- }
-
- public boolean hasListeners()
- {
- return false;
- }
- });
- }
-
- public static ExecutorService get(IManagedContainer container)
- {
- return (ExecutorService)container.getElement(PRODUCT_GROUP, TYPE, null);
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.net4j.util.concurrent;
+
+import org.eclipse.net4j.util.container.IManagedContainer;
+import org.eclipse.net4j.util.event.EventUtil;
+import org.eclipse.net4j.util.event.IListener;
+import org.eclipse.net4j.util.factory.Factory;
+import org.eclipse.net4j.util.lifecycle.ILifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleException;
+import org.eclipse.net4j.util.lifecycle.LifecycleState;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+
+/**
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public class ExecutorServiceFactory extends Factory
+{
+ public static final String PRODUCT_GROUP = "org.eclipse.net4j.executorServices"; //$NON-NLS-1$
+
+ public static final String TYPE = "default"; //$NON-NLS-1$
+
+ public static final String DEFAULT_THREAD_GROUP_NAME = "net4j"; //$NON-NLS-1$
+
+ public ExecutorServiceFactory()
+ {
+ super(PRODUCT_GROUP, TYPE);
+ }
+
+ public ExecutorService create(String threadGroupName)
+ {
+ if (threadGroupName == null)
+ {
+ threadGroupName = DEFAULT_THREAD_GROUP_NAME;
+ }
+
+ final ThreadGroup threadGroup = new ThreadGroup(threadGroupName);
+ ThreadFactory threadFactory = new ThreadFactory()
+ {
+ private int num;
+
+ public Thread newThread(Runnable r)
+ {
+ Thread thread = new Thread(threadGroup, r, threadGroup.getName() + "-Thread-" + ++num);
+ thread.setDaemon(true);
+ return thread;
+ }
+ };
+
+ final ExecutorService executorService = Executors.newCachedThreadPool(threadFactory);
+ return LifecycleUtil.delegateLifecycle(getClass().getClassLoader(), executorService, ExecutorService.class,
+ new ILifecycle()
+ {
+ private boolean active;
+
+ public void activate() throws LifecycleException
+ {
+ active = true;
+ }
+
+ public Exception deactivate()
+ {
+ try
+ {
+ executorService.shutdown();
+ active = false;
+ return null;
+ }
+ catch (Exception ex)
+ {
+ return ex;
+ }
+ }
+
+ public LifecycleState getLifecycleState()
+ {
+ return active ? LifecycleState.ACTIVE : LifecycleState.INACTIVE;
+ }
+
+ public boolean isActive()
+ {
+ return active;
+ }
+
+ public void addListener(IListener listener)
+ {
+ // Do nothing
+ }
+
+ public void removeListener(IListener listener)
+ {
+ // Do nothing
+ }
+
+ public IListener[] getListeners()
+ {
+ return EventUtil.NO_LISTENERS;
+ }
+
+ public boolean hasListeners()
+ {
+ return false;
+ }
+ });
+ }
+
+ public static ExecutorService get(IManagedContainer container)
+ {
+ return (ExecutorService)container.getElement(PRODUCT_GROUP, TYPE, null);
+ }
+}
diff --git a/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF b/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF
index 13aaba9be3..743b1e2dbb 100644
--- a/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.net4j/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.net4j;singleton:=true
-Bundle-Version: 4.1.0.qualifier
+Bundle-Version: 4.1.100.qualifier
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -11,7 +11,7 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)";resolution:=optional,
org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)";visibility:=reexport
-Export-Package: org.eclipse.internal.net4j;version="4.1.0";
+Export-Package: org.eclipse.internal.net4j;version="4.1.100";
x-friends:="org.eclipse.net4j.http.server,
org.eclipse.net4j.jvm,
org.eclipse.net4j.tcp,
@@ -20,7 +20,7 @@ Export-Package: org.eclipse.internal.net4j;version="4.1.0";
org.eclipse.net4j.http.tests,
org.eclipse.net4j.tests,
org.eclipse.net4j.defs",
- org.eclipse.internal.net4j.buffer;version="4.1.0";
+ org.eclipse.internal.net4j.buffer;version="4.1.100";
x-friends:="org.eclipse.net4j.http.server,
org.eclipse.net4j.jvm,
org.eclipse.net4j.tcp,
@@ -29,15 +29,15 @@ Export-Package: org.eclipse.internal.net4j;version="4.1.0";
org.eclipse.net4j.http.tests,
org.eclipse.net4j.tests,
org.eclipse.net4j.defs",
- org.eclipse.internal.net4j.bundle;version="4.1.0";x-internal:=true,
- org.eclipse.net4j;version="4.1.0",
- org.eclipse.net4j.acceptor;version="4.1.0",
- org.eclipse.net4j.buffer;version="4.1.0",
- org.eclipse.net4j.channel;version="4.1.0",
- org.eclipse.net4j.connector;version="4.1.0",
- org.eclipse.net4j.protocol;version="4.1.0",
- org.eclipse.net4j.signal;version="4.1.0",
- org.eclipse.net4j.signal.heartbeat;version="4.1.0",
- org.eclipse.net4j.signal.wrapping;version="4.1.0",
- org.eclipse.spi.net4j;version="4.1.0"
+ org.eclipse.internal.net4j.bundle;version="4.1.100";x-internal:=true,
+ org.eclipse.net4j;version="4.1.100",
+ org.eclipse.net4j.acceptor;version="4.1.100",
+ org.eclipse.net4j.buffer;version="4.1.100",
+ org.eclipse.net4j.channel;version="4.1.100",
+ org.eclipse.net4j.connector;version="4.1.100",
+ org.eclipse.net4j.protocol;version="4.1.100",
+ org.eclipse.net4j.signal;version="4.1.100",
+ org.eclipse.net4j.signal.heartbeat;version="4.1.100",
+ org.eclipse.net4j.signal.wrapping;version="4.1.100",
+ org.eclipse.spi.net4j;version="4.1.100"
Eclipse-BuddyPolicy: registered
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/BufferPool.java b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/BufferPool.java
index 26d0fd85ae..15ef34c123 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/BufferPool.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/internal/net4j/buffer/BufferPool.java
@@ -1,243 +1,243 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.internal.net4j.buffer;
-
-import org.eclipse.net4j.buffer.IBuffer;
-import org.eclipse.net4j.buffer.IBufferPool;
-import org.eclipse.net4j.buffer.IBufferProvider;
-import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
-import org.eclipse.net4j.util.om.trace.ContextTracer;
-
-import org.eclipse.internal.net4j.bundle.OM;
-
-import org.eclipse.spi.net4j.InternalBuffer;
-
-import java.lang.ref.Reference;
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.SoftReference;
-import java.text.MessageFormat;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-/**
- * @author Eike Stepper
- */
-public class BufferPool extends BufferProvider implements IBufferPool.Introspection
-{
- private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_BUFFER, BufferPool.class);
-
- private final IBufferProvider provider;
-
- private int pooledBuffers;
-
- @ExcludeFromDump
- private final Queue<BufferRef> buffers = new ConcurrentLinkedQueue<BufferRef>();
-
- @ExcludeFromDump
- private final ReferenceQueue<IBuffer> referenceQueue = new ReferenceQueue<IBuffer>();
-
- @ExcludeFromDump
- private Monitor monitor;
-
- public BufferPool(IBufferProvider provider)
- {
- super(provider.getBufferCapacity());
- this.provider = provider;
- }
-
- public IBufferProvider getProvider()
- {
- return provider;
- }
-
- public ReferenceQueue<IBuffer> getReferenceQueue()
- {
- return referenceQueue;
- }
-
- public int getPooledBuffers()
- {
- return pooledBuffers;
- }
-
- public boolean evictOne()
- {
- for (;;)
- {
- BufferRef bufferRef = buffers.poll();
- if (bufferRef == null)
- {
- return false;
- }
-
- IBuffer buffer = bufferRef.get();
- if (buffer != null)
- {
- if (TRACER.isEnabled())
- {
- TRACER.trace("Evicting " + buffer); //$NON-NLS-1$
- }
-
- provider.retainBuffer(buffer);
- --pooledBuffers;
- return true;
- }
- }
- }
-
- public int evict(int survivors)
- {
- int evictedBuffers = 0;
- while (pooledBuffers > survivors)
- {
- if (evictOne())
- {
- ++evictedBuffers;
- }
- else
- {
- break;
- }
- }
-
- return evictedBuffers;
- }
-
- @Override
- public String toString()
- {
- return MessageFormat.format("BufferPool[{0}]", getBufferCapacity()); //$NON-NLS-1$
- }
-
- protected BufferRef createBufferRef(IBuffer buffer)
- {
- return new BufferRef(buffer, referenceQueue);
- }
-
- @Override
- protected IBuffer doProvideBuffer()
- {
- IBuffer buffer = null;
- BufferRef bufferRef = buffers.poll();
- if (bufferRef != null)
- {
- buffer = bufferRef.get();
- }
-
- if (buffer == null)
- {
- buffer = provider.provideBuffer();
- ((InternalBuffer)buffer).setBufferProvider(this);
- }
- else
- {
- --pooledBuffers;
- }
-
- buffer.clear();
- if (TRACER.isEnabled())
- {
- TRACER.trace("Obtained " + buffer); //$NON-NLS-1$
- }
-
- return buffer;
- }
-
- @Override
- protected void doRetainBuffer(IBuffer buffer)
- {
- if (buffer.getCapacity() != getBufferCapacity())
- {
- throw new IllegalArgumentException("buffer.getCapacity() != getBufferCapacity()"); //$NON-NLS-1$
- }
-
- if (TRACER.isEnabled())
- {
- TRACER.trace("Retaining " + buffer); //$NON-NLS-1$
- }
-
- BufferRef bufferRef = createBufferRef(buffer);
- buffers.add(bufferRef);
- ++pooledBuffers;
- }
-
- @Override
- protected void doActivate() throws Exception
- {
- super.doActivate();
- monitor = new Monitor();
- monitor.start();
- }
-
- @Override
- protected void doDeactivate() throws Exception
- {
- monitor.interrupt();
- monitor = null;
- super.doDeactivate();
- }
-
- private static final class BufferRef extends SoftReference<IBuffer>
- {
- public BufferRef(IBuffer buffer, ReferenceQueue<IBuffer> queue)
- {
- super(buffer, queue);
- }
- }
-
- private final class Monitor extends Thread
- {
- public Monitor()
- {
- setName("BufferPoolMonitor"); //$NON-NLS-1$
- setDaemon(true);
- }
-
- @Override
- public void run()
- {
- if (TRACER.isEnabled())
- {
- TRACER.trace("Start monitoring"); //$NON-NLS-1$
- }
-
- try
- {
- while (isActive() && !isInterrupted())
- {
- Reference<? extends IBuffer> bufferRef = referenceQueue.remove(200);
- if (bufferRef != null)
- {
- if (buffers.remove(bufferRef))
- {
- --pooledBuffers;
- if (TRACER.isEnabled())
- {
- TRACER.trace("Collected buffer"); //$NON-NLS-1$
- }
- }
- }
- }
- }
- catch (InterruptedException ex)
- {
- return;
- }
- finally
- {
- if (TRACER.isEnabled())
- {
- TRACER.trace("Stop monitoring"); //$NON-NLS-1$
- }
- }
- }
- }
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.internal.net4j.buffer;
+
+import org.eclipse.net4j.buffer.IBuffer;
+import org.eclipse.net4j.buffer.IBufferPool;
+import org.eclipse.net4j.buffer.IBufferProvider;
+import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
+import org.eclipse.net4j.util.om.trace.ContextTracer;
+
+import org.eclipse.internal.net4j.bundle.OM;
+
+import org.eclipse.spi.net4j.InternalBuffer;
+
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.SoftReference;
+import java.text.MessageFormat;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+/**
+ * @author Eike Stepper
+ */
+public class BufferPool extends BufferProvider implements IBufferPool.Introspection
+{
+ private static final ContextTracer TRACER = new ContextTracer(OM.DEBUG_BUFFER, BufferPool.class);
+
+ private final IBufferProvider provider;
+
+ private int pooledBuffers;
+
+ @ExcludeFromDump
+ private final Queue<BufferRef> buffers = new ConcurrentLinkedQueue<BufferRef>();
+
+ @ExcludeFromDump
+ private final ReferenceQueue<IBuffer> referenceQueue = new ReferenceQueue<IBuffer>();
+
+ @ExcludeFromDump
+ private Monitor monitor;
+
+ public BufferPool(IBufferProvider provider)
+ {
+ super(provider.getBufferCapacity());
+ this.provider = provider;
+ }
+
+ public IBufferProvider getProvider()
+ {
+ return provider;
+ }
+
+ public ReferenceQueue<IBuffer> getReferenceQueue()
+ {
+ return referenceQueue;
+ }
+
+ public int getPooledBuffers()
+ {
+ return pooledBuffers;
+ }
+
+ public boolean evictOne()
+ {
+ for (;;)
+ {
+ BufferRef bufferRef = buffers.poll();
+ if (bufferRef == null)
+ {
+ return false;
+ }
+
+ IBuffer buffer = bufferRef.get();
+ if (buffer != null)
+ {
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace("Evicting " + buffer); //$NON-NLS-1$
+ }
+
+ provider.retainBuffer(buffer);
+ --pooledBuffers;
+ return true;
+ }
+ }
+ }
+
+ public int evict(int survivors)
+ {
+ int evictedBuffers = 0;
+ while (pooledBuffers > survivors)
+ {
+ if (evictOne())
+ {
+ ++evictedBuffers;
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ return evictedBuffers;
+ }
+
+ @Override
+ public String toString()
+ {
+ return MessageFormat.format("BufferPool[{0}]", getBufferCapacity()); //$NON-NLS-1$
+ }
+
+ protected BufferRef createBufferRef(IBuffer buffer)
+ {
+ return new BufferRef(buffer, referenceQueue);
+ }
+
+ @Override
+ protected IBuffer doProvideBuffer()
+ {
+ IBuffer buffer = null;
+ BufferRef bufferRef = buffers.poll();
+ if (bufferRef != null)
+ {
+ buffer = bufferRef.get();
+ }
+
+ if (buffer == null)
+ {
+ buffer = provider.provideBuffer();
+ ((InternalBuffer)buffer).setBufferProvider(this);
+ }
+ else
+ {
+ --pooledBuffers;
+ }
+
+ buffer.clear();
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace("Obtained " + buffer); //$NON-NLS-1$
+ }
+
+ return buffer;
+ }
+
+ @Override
+ protected void doRetainBuffer(IBuffer buffer)
+ {
+ if (buffer.getCapacity() != getBufferCapacity())
+ {
+ throw new IllegalArgumentException("buffer.getCapacity() != getBufferCapacity()"); //$NON-NLS-1$
+ }
+
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace("Retaining " + buffer); //$NON-NLS-1$
+ }
+
+ BufferRef bufferRef = createBufferRef(buffer);
+ buffers.add(bufferRef);
+ ++pooledBuffers;
+ }
+
+ @Override
+ protected void doActivate() throws Exception
+ {
+ super.doActivate();
+ monitor = new Monitor();
+ monitor.start();
+ }
+
+ @Override
+ protected void doDeactivate() throws Exception
+ {
+ monitor.interrupt();
+ monitor = null;
+ super.doDeactivate();
+ }
+
+ private static final class BufferRef extends SoftReference<IBuffer>
+ {
+ public BufferRef(IBuffer buffer, ReferenceQueue<IBuffer> queue)
+ {
+ super(buffer, queue);
+ }
+ }
+
+ private final class Monitor extends Thread
+ {
+ public Monitor()
+ {
+ setName("Net4jBufferPoolMonitor"); //$NON-NLS-1$
+ setDaemon(true);
+ }
+
+ @Override
+ public void run()
+ {
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace("Start monitoring"); //$NON-NLS-1$
+ }
+
+ try
+ {
+ while (isActive() && !isInterrupted())
+ {
+ Reference<? extends IBuffer> bufferRef = referenceQueue.remove(200);
+ if (bufferRef != null)
+ {
+ if (buffers.remove(bufferRef))
+ {
+ --pooledBuffers;
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace("Collected buffer"); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+ }
+ catch (InterruptedException ex)
+ {
+ return;
+ }
+ finally
+ {
+ if (TRACER.isEnabled())
+ {
+ TRACER.trace("Stop monitoring"); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
index 44b0ccc8f5..09cafd650c 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
@@ -329,7 +329,7 @@ public class Channel extends Lifecycle implements InternalChannel
@Override
protected String getThreadName()
{
- return "ReceiveSerializer-" + Channel.this; //$NON-NLS-1$
+ return "Net4jReceiveSerializer-" + Channel.this; //$NON-NLS-1$
}
}

Back to the top