summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2007-12-13 08:55:57 (EST)
committerEike Stepper2007-12-13 08:55:57 (EST)
commit7f3c6ede4f07183f0dbe553a59b489db46909575 (patch)
tree72a13d864d0fbbd5e087ed9907a00270d41327af
parent38c637a620383d02f89a3c81b9c6e077bd4138d0 (diff)
downloadcdo-7f3c6ede4f07183f0dbe553a59b489db46909575.zip
cdo-7f3c6ede4f07183f0dbe553a59b489db46909575.tar.gz
cdo-7f3c6ede4f07183f0dbe553a59b489db46909575.tar.bz2
[210868] Chunking Collection not working
https://bugs.eclipse.org/bugs/show_bug.cgi?id=210868
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStore.java110
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java131
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreChunkReader.java56
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreFactory.java37
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java18
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadChunkIndication.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreChunkReader.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java205
-rw-r--r--plugins/org.eclipse.net4j.tests/Net4j OSGi.launch196
10 files changed, 661 insertions, 106 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStore.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStore.java
new file mode 100644
index 0000000..7ea0d62
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStore.java
@@ -0,0 +1,110 @@
+/***************************************************************************
+ * 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:
+ * Simon McDuff - initial API and implementation
+ * Eike Stepper - maintenance
+ **************************************************************************/
+package org.eclipse.emf.cdo.internal.server;
+
+import org.eclipse.emf.cdo.protocol.CDOID;
+import org.eclipse.emf.cdo.protocol.revision.CDORevision;
+import org.eclipse.emf.cdo.server.ISession;
+import org.eclipse.emf.cdo.server.IView;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Simon McDuff
+ */
+public class MEMStore extends Store
+{
+ public static final String TYPE = "mem";
+
+ private Map<CDOID, List<CDORevision>> mapOfRevisions = new HashMap<CDOID, List<CDORevision>>();
+
+ public MEMStore()
+ {
+ super(TYPE);
+ }
+
+ public synchronized CDORevision getRevision(CDOID rev)
+ {
+ List<CDORevision> list = getList(rev);
+ if (list.size() == 0)
+ {
+ return null;
+ }
+
+ return list.get(list.size() - 1);
+ }
+
+ public synchronized List<CDORevision> getList(CDOID rev)
+ {
+ List<CDORevision> list = mapOfRevisions.get(rev);
+ if (list == null)
+ {
+ list = new ArrayList<CDORevision>();
+ mapOfRevisions.put(rev, list);
+ }
+
+ return list;
+ }
+
+ public synchronized CDORevision getRevision(CDOID rev, int version)
+ {
+ List<CDORevision> list = getList(rev);
+
+ for (CDORevision revision : list)
+ {
+ if (revision.getVersion() == version) return revision;
+ }
+ return null;
+ }
+
+ public synchronized void addRevision(CDORevision revision)
+ {
+
+ CDORevision rev = getRevision(revision.getID(), revision.getVersion());
+ if (rev == null)
+ {
+ getList(revision.getID()).add(revision);
+ }
+ }
+
+ public boolean hasAuditingSupport()
+ {
+ return true;
+ }
+
+ public boolean hasBranchingSupport()
+ {
+ return false;
+ }
+
+ public boolean hasEfficientTypeLookup()
+ {
+ return true;
+ }
+
+ public void repairAfterCrash()
+ {
+ }
+
+ public MEMStoreAccessor getReader(ISession session)
+ {
+ return new MEMStoreAccessor(this, session);
+ }
+
+ public MEMStoreAccessor getWriter(IView view)
+ {
+ return new MEMStoreAccessor(this, view);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
new file mode 100644
index 0000000..1d1056a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreAccessor.java
@@ -0,0 +1,131 @@
+/***************************************************************************
+ * 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:
+ * Simon McDuff - initial API and implementation
+ * Eike Stepper - maintenance
+ **************************************************************************/
+package org.eclipse.emf.cdo.internal.server;
+
+import org.eclipse.emf.cdo.internal.protocol.model.CDOPackageImpl;
+import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl;
+import org.eclipse.emf.cdo.protocol.CDOID;
+import org.eclipse.emf.cdo.protocol.model.CDOClassRef;
+import org.eclipse.emf.cdo.protocol.model.CDOFeature;
+import org.eclipse.emf.cdo.protocol.model.CDOPackageInfo;
+import org.eclipse.emf.cdo.protocol.revision.CDORevision;
+import org.eclipse.emf.cdo.server.ISession;
+import org.eclipse.emf.cdo.server.IStoreChunkReader;
+import org.eclipse.emf.cdo.server.IStoreWriter;
+import org.eclipse.emf.cdo.server.IView;
+
+import org.eclipse.net4j.util.io.CloseableIterator;
+import org.eclipse.net4j.util.transaction.ITransaction;
+
+import java.util.Collection;
+import java.util.Collections;
+
+/**
+ * @author Simon McDuff
+ */
+public class MEMStoreAccessor extends StoreAccessor
+{
+ public MEMStoreAccessor(MEMStore store, ISession session)
+ {
+ super(store, session);
+ }
+
+ public MEMStoreAccessor(MEMStore store, IView view)
+ {
+ super(store, view);
+ }
+
+ @Override
+ public MEMStore getStore()
+ {
+ return (MEMStore)super.getStore();
+ }
+
+ public IStoreChunkReader createChunkReader(CDORevision revision, CDOFeature feature)
+ {
+ return new MEMStoreChunkReader(this, revision, feature);
+ }
+
+ public Collection<CDOPackageInfo> readPackageInfos()
+ {
+ return Collections.emptySet();
+ }
+
+ public void readPackage(CDOPackageImpl cdoPackage)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public CloseableIterator<CDOID> readObjectIDs(boolean withTypes)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public CDOClassRef readObjectType(CDOID id)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public CDORevision readRevision(CDOID id, int referenceChunk)
+ {
+ CDORevisionImpl revStore = (CDORevisionImpl)getStore().getRevision(id);
+ CDORevisionImpl newRevision = new CDORevisionImpl(this.getStore().getRepository().getRevisionManager(), revStore
+ .getCDOClass(), revStore.getID());
+ newRevision.setResourceID(revStore.getResourceID());
+
+ for (CDOFeature feature : revStore.getCDOClass().getAllFeatures())
+ {
+ if (feature.isMany())
+ {
+ newRevision.setListSize(feature, revStore.getList(feature).size());
+ for (int i = 0; i < referenceChunk; i++)
+ {
+ newRevision.getList(feature).set(i, revStore.get(feature, i));
+ }
+ }
+ }
+ return newRevision;
+ }
+
+ public CDORevision readRevisionByTime(CDOID id, int referenceChunk, long timeStamp)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public CDORevision readRevisionByVersion(CDOID id, int referenceChunk, int version)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public CDOID readResourceID(String path)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public String readResourcePath(CDOID id)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void writePackages(CDOPackageImpl... cdoPackages)
+ {
+ }
+
+ public void writeRevision(CDORevisionImpl revision)
+ {
+ getStore().addRevision(revision);
+ }
+
+ public void rollback(IView view, ITransaction<IStoreWriter> storeTransaction)
+ {
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreChunkReader.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreChunkReader.java
new file mode 100644
index 0000000..9dc4a92
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreChunkReader.java
@@ -0,0 +1,56 @@
+/***************************************************************************
+ * 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:
+ * Simon McDuff - initial API and implementation
+ * Eike Stepper - maintenance
+ **************************************************************************/
+package org.eclipse.emf.cdo.internal.server;
+
+import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl;
+import org.eclipse.emf.cdo.protocol.CDOID;
+import org.eclipse.emf.cdo.protocol.model.CDOFeature;
+import org.eclipse.emf.cdo.protocol.revision.CDORevision;
+import org.eclipse.emf.cdo.server.IStoreAccessor;
+
+import java.util.List;
+
+/**
+ * @author Simon McDuff
+ */
+public class MEMStoreChunkReader extends StoreChunkReader
+{
+ public MEMStoreChunkReader(IStoreAccessor storeAccessor, CDORevision revision, CDOFeature feature)
+ {
+ super(storeAccessor, revision, feature);
+ }
+
+ public List<Chunk> executeRead()
+ {
+ for (Chunk chunk : this.getChunks())
+ {
+ int startIndex = chunk.getStartIndex();
+ int size = chunk.size();
+ CDORevisionImpl revisionMEM = (CDORevisionImpl)this.getStoreAccessor().getStore().getRevision(
+ this.getRevision().getID());
+
+ for (int i = 0; i < size; i++)
+ {
+ Object object = revisionMEM.get(this.getFeature(), startIndex + i);
+ chunk.addID(i, (CDOID)object);
+ }
+ }
+
+ return this.getChunks();
+ }
+
+ @Override
+ public MEMStoreAccessor getStoreAccessor()
+ {
+ return (MEMStoreAccessor)super.getStoreAccessor();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreFactory.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreFactory.java
new file mode 100644
index 0000000..7359877
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/MEMStoreFactory.java
@@ -0,0 +1,37 @@
+/***************************************************************************
+ * 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:
+ * Simon McDuff - initial API and implementation
+ * Eike Stepper - maintenance
+ **************************************************************************/
+package org.eclipse.emf.cdo.internal.server;
+
+import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.server.IStoreFactory;
+
+import org.w3c.dom.Element;
+
+/**
+ * @author Simon McDuff
+ */
+public class MEMStoreFactory implements IStoreFactory
+{
+ public MEMStoreFactory()
+ {
+ }
+
+ public String getStoreType()
+ {
+ return MEMStore.TYPE;
+ }
+
+ public IStore createStore(Element storeConfig)
+ {
+ return new MEMStore();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
index 41cc4ef..6065a6f 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/RevisionManager.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
+ * Simon McDuff - bug 210868
**************************************************************************/
package org.eclipse.emf.cdo.internal.server;
@@ -103,7 +104,14 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
}
}
}
-
+
+ public IStoreReader ensureChunk(CDORevisionImpl revision, CDOFeature feature, int chunkStart, int chunkEnd)
+ {
+ MoveableList list = revision.getList(feature);
+ chunkEnd = Math.min(chunkEnd, list.size());
+ return this.ensureChunk(revision, feature, StoreUtil.getReader(), list, chunkStart, chunkEnd);
+ }
+
protected IStoreReader ensureChunk(CDORevisionImpl revision, CDOFeature feature, IStoreReader storeReader,
MoveableList list, int chunkStart, int chunkEnd)
{
@@ -132,8 +140,8 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
chunkReader = storeReader.createChunkReader(revision, feature);
}
- int toIndex = j - 1;
- if (fromIndex == toIndex)
+ int toIndex = j;
+ if (fromIndex == toIndex - 1)
{
chunkReader.addSimpleChunk(fromIndex);
}
@@ -160,8 +168,8 @@ public class RevisionManager extends CDORevisionResolverImpl implements IRevisio
chunkReader = storeReader.createChunkReader(revision, feature);
}
- int toIndex = chunkEnd - 1;
- if (fromIndex == toIndex)
+ int toIndex = chunkEnd;
+ if (fromIndex == toIndex - 1)
{
chunkReader.addSimpleChunk(fromIndex);
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadChunkIndication.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadChunkIndication.java
index 0dc3cc9..fe24129 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadChunkIndication.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/protocol/LoadChunkIndication.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
+ * Simon McDuff - bug 210868
**************************************************************************/
package org.eclipse.emf.cdo.internal.server.protocol;
@@ -80,10 +81,12 @@ public class LoadChunkIndication extends CDOReadIndication
protected void responding(ExtendedDataOutputStream out) throws IOException
{
CDORevisionImpl revision = getRevisionManager().getRevisionByVersion(id, 0, version);
+ getRevisionManager().ensureChunk(revision, feature, fromIndex, toIndex + 1);
+
MoveableList list = revision.getList(feature);
for (int i = fromIndex; i <= toIndex; i++)
{
- CDOIDImpl.write(out, (CDOID)list.get(i));
+ CDOIDImpl.write(out, getSession().provideCDOID(list.get(i)));
}
}
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreChunkReader.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreChunkReader.java
index 96c7ff8..4581628 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreChunkReader.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreChunkReader.java
@@ -7,6 +7,7 @@
*
* Contributors:
* Eike Stepper - initial API and implementation
+ * Simon McDuff - bug 210868
**************************************************************************/
package org.eclipse.emf.cdo.server;
@@ -58,7 +59,7 @@ public interface IStoreChunkReader
public int size()
{
- if (ids instanceof CDOID)
+ if (ids instanceof CDOID || ids == null)
{
return 1;
}
@@ -68,7 +69,7 @@ public interface IStoreChunkReader
public CDOID getID(int indexInChunk)
{
- if (ids instanceof CDOID)
+ if (ids instanceof CDOID || ids == null)
{
if (indexInChunk == 0)
{
@@ -83,11 +84,12 @@ public interface IStoreChunkReader
public void addID(int indexInChunk, CDOID id)
{
- if (ids instanceof CDOID)
+ if (ids instanceof CDOID || ids == null)
{
if (indexInChunk == 0)
{
ids = id;
+ return;
}
throw new ArrayIndexOutOfBoundsException(indexInChunk);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
index 39be924..980d211 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
@@ -30,6 +30,7 @@ public class AllTests
suite.addTestSuite(RollbackTest.class);
suite.addTestSuite(CrossReferenceTest.class);
suite.addTestSuite(ChunkingTest.class);
+ suite.addTestSuite(ChunkingWithMEMTest.class);
suite.addTestSuite(RandomDeadLockTest.class);
suite.addTestSuite(PackageRegistryTest.class);
// TODO suite.addTestSuite(GeneratedEcoreTest.class);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java
new file mode 100644
index 0000000..0038f75
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ChunkingWithMEMTest.java
@@ -0,0 +1,205 @@
+/***************************************************************************
+ * 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:
+ * Simon McDuff - initial API and implementation
+ * Eike Stepper - maintenance
+ **************************************************************************/
+package org.eclipse.emf.cdo.tests;
+
+import org.eclipse.emf.cdo.CDOSession;
+import org.eclipse.emf.cdo.CDOTransaction;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.internal.server.MEMStore;
+import org.eclipse.emf.cdo.internal.server.Repository;
+import org.eclipse.emf.cdo.internal.server.RepositoryFactory;
+import org.eclipse.emf.cdo.internal.server.RevisionManager;
+import org.eclipse.emf.cdo.protocol.revision.CDORevision;
+import org.eclipse.emf.cdo.server.IStore;
+import org.eclipse.emf.cdo.tests.model1.Customer;
+import org.eclipse.emf.cdo.tests.model1.Model1Factory;
+import org.eclipse.emf.cdo.tests.model1.SalesOrder;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.net4j.util.io.IOUtil;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * @author Simon McDuff
+ */
+public class ChunkingWithMEMTest extends AbstractCDOTest
+{
+ @Override
+ protected IStore createStore()
+ {
+ return new MEMStore();
+ }
+
+ @Override
+ protected Repository createRepository()
+ {
+ Map<String, String> props = new HashMap<String, String>();
+ IStore store = createStore();
+ Repository repository = new Repository()
+ {
+ @Override
+ protected RevisionManager createRevisionManager()
+ {
+ return new TestRevisionManager(this);
+ }
+ };
+
+ repository.setName(REPOSITORY_NAME);
+ repository.setProperties(props);
+ repository.setStore(store);
+ store.setRepository(repository);
+ return repository;
+ }
+
+ public void testReadNative() throws Exception
+ {
+ CDORevision revisionToRemove = null;
+
+ {
+ msg("Opening session");
+ CDOSession session = openModel1Session();
+
+ msg("Attaching transaction");
+ CDOTransaction transaction = session.openTransaction(new ResourceSetImpl());
+
+ msg("Creating resource");
+ CDOResource resource = transaction.createResource("/test1");
+
+ msg("Creating customer");
+ Customer customer = Model1Factory.eINSTANCE.createCustomer();
+ customer.setName("customer");
+ resource.getContents().add(customer);
+ revisionToRemove = customer.cdoRevision();
+ for (int i = 0; i < 100; i++)
+ {
+ msg("Creating salesOrder" + i);
+ SalesOrder salesOrder = Model1Factory.eINSTANCE.createSalesOrder();
+ salesOrder.setId(i);
+ salesOrder.setCustomer(customer);
+ resource.getContents().add(salesOrder);
+ }
+
+ msg("Committing");
+ transaction.commit();
+ }
+
+ // ************************************************************* //
+ Repository repos = (Repository)container.getElement(RepositoryFactory.PRODUCT_GROUP, RepositoryFactory.TYPE,
+ REPOSITORY_NAME);
+ TestRevisionManager revManagerTest = (TestRevisionManager)repos.getRevisionManager();
+ // Remove a specific version
+ revManagerTest.removeRevision(revisionToRemove);
+
+ msg("Opening session");
+ CDOSession session = openModel1Session();
+ session.setReferenceChunkSize(10);
+
+ msg("Attaching transaction");
+ CDOTransaction transaction = session.openTransaction(new ResourceSetImpl());
+ msg("Loading resource");
+ CDOResource resource = transaction.getResource("/test1");
+
+ Customer customer = (Customer)resource.getContents().get(0);
+ EList<SalesOrder> salesOrders = customer.getSalesOrders();
+ int i = 0;
+ for (Iterator<SalesOrder> it = salesOrders.iterator(); it.hasNext();)
+ {
+ IOUtil.OUT().println(i++);
+ SalesOrder salesOrder = it.next();
+ IOUtil.OUT().println(salesOrder);
+ }
+ }
+
+ public void testWriteNative() throws Exception
+ {
+ CDORevision revisionToRemove = null;
+
+ {
+ msg("Opening session");
+ CDOSession session = openModel1Session();
+
+ msg("Attaching transaction");
+ CDOTransaction transaction = session.openTransaction(new ResourceSetImpl());
+
+ msg("Creating resource");
+ CDOResource resource = transaction.createResource("/test1");
+
+ msg("Creating customer");
+ Customer customer = Model1Factory.eINSTANCE.createCustomer();
+ customer.setName("customer");
+ resource.getContents().add(customer);
+
+ for (int i = 0; i < 100; i++)
+ {
+ msg("Creating salesOrder" + i);
+ SalesOrder salesOrder = Model1Factory.eINSTANCE.createSalesOrder();
+ salesOrder.setId(i);
+ salesOrder.setCustomer(customer);
+ resource.getContents().add(salesOrder);
+ }
+
+ msg("Committing");
+ transaction.commit();
+ revisionToRemove = customer.cdoRevision();
+ }
+
+ // ************************************************************* //
+ Repository repos = (Repository)container.getElement(RepositoryFactory.PRODUCT_GROUP, RepositoryFactory.TYPE,
+ REPOSITORY_NAME);
+ TestRevisionManager revManagerTest = (TestRevisionManager)repos.getRevisionManager();
+
+ revManagerTest.removeRevision(revisionToRemove);
+
+ msg("Opening session");
+ CDOSession session = openModel1Session();
+ session.setReferenceChunkSize(10);
+
+ msg("Attaching transaction");
+ CDOTransaction transaction = session.openTransaction(new ResourceSetImpl());
+
+ msg("Loading resource");
+ CDOResource resource = transaction.getResource("/test1");
+
+ Customer customer = (Customer)resource.getContents().get(0);
+ EList<SalesOrder> salesOrders = customer.getSalesOrders();
+ for (int i = 50; i < 70; i++)
+ {
+ SalesOrder salesOrder = Model1Factory.eINSTANCE.createSalesOrder();
+ salesOrder.setId(i + 1000);
+ resource.getContents().add(salesOrder);
+ salesOrders.set(i, salesOrder);
+ }
+
+ transaction.commit();
+ }
+
+ /**
+ * @author Simon McDuff
+ */
+ private class TestRevisionManager extends RevisionManager
+ {
+ public TestRevisionManager(Repository repository)
+ {
+ super(repository);
+ }
+
+ public void removeRevision(CDORevision revision)
+ {
+ super.removeRevision(revision.getID(), revision.getVersion());
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.tests/Net4j OSGi.launch b/plugins/org.eclipse.net4j.tests/Net4j OSGi.launch
index 2beabaf..8fed774 100644
--- a/plugins/org.eclipse.net4j.tests/Net4j OSGi.launch
+++ b/plugins/org.eclipse.net4j.tests/Net4j OSGi.launch
@@ -1,23 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="false"/>
+<booleanAttribute key="automaticValidate" value="true"/>
<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<stringAttribute key="selectedPlugin" value="org.eclipse.net4j"/>
+<stringAttribute key="checked" value="org.eclipse.net4j"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.net4j.tests"/>
+<booleanAttribute key="default" value="false"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.cdo.jdbc,org.eclipse.emf.cdo.dbgen.editor,org.eclipse.emf.cdo.utilities.migrator,template,org.eclipse.emf.cdo.examples.server,org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.examples.client,org.eclipse.emf.cdo.mapping,org.eclipse.emf.cdo.core,org.eclipse.emf.cdo.examples.ui,org.eclipse.emf.cdo.client,org.eclipse.emf.cdo.dbgen,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.client.ocl,org.eclipse.emf.cdo.dbgen.edit,org.eclipse.emf.cdo.examples.library,org.eclipse.emf.cdo.examples.library.ui,org.eclipse.emf.cdo.client.edit,org.eclipse.emf.cdo.jdbc.derby,org.eclipse.emf.cdo.dbgen.derby,org.eclipse.emf.cdo.dbgen.oracle,org.eclipse.emf.cdo.jdbc.hsqldb,org.eclipse.emf.cdo.jdbc.mysql,org.eclipse.emf.cdo.dbgen.ansi92,org.eclipse.emf.cdo.dbgen.mysql,org.eclipse.emf.cdo.dbgen.hsqldb"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.net4j.tests/src/org/eclipse/net4j/tests/SignalTest.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.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.SignalTest"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-Ddebug&#13;&#10;-Dconsole&#13;&#10;-DconsoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.net4j.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<stringAttribute key="selectedPlugin" value="org.eclipse.net4j"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.expressions,org.eclipse.core.jobs,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.emf.common,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.jdt.junit.runtime,org.eclipse.jface,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde.junit.runtime,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.ui,org.eclipse.ui.workbench,org.junit"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.net4j.tests,org.eclipse.net4j"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<booleanAttribute key="tracing" value="true"/>
-<stringAttribute key="pde.version" value="3.2a"/>
<mapAttribute key="tracingOptions">
<mapEntry key="org.eclipse.core.runtime/debug/context" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/beginend" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/completion" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.ui/debug" value="true"/>
-<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.figures/debug/dnd/tracing" value="false"/>
+<mapEntry key="org.eclipse.ui/trace/sources" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/indexmanager" value="false"/>
<mapEntry key="org.eclipse.team.ftp/requests" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.action/debug" value="true"/>
@@ -30,12 +55,12 @@
<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.gmf.runtime.common.ui.services/debug" value="true"/>
-<mapEntry key="org.eclipse.gmf.runtime.emf.ui/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.emf.clipboard.core/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.core/debug" value="true"/>
+<mapEntry key="org.eclipse.gmf.runtime.emf.clipboard.core/debug" value="true"/>
+<mapEntry key="org.eclipse.gmf.runtime.emf.ui/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.notation.providers/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.team.cvs.core/dirtycaching" value="false"/>
<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.ui.intro/trace/printHTML" value="false"/>
@@ -45,44 +70,44 @@
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPerspectiveListener" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/debug" value="false"/>
<mapEntry key="org.eclipse.team.core/refreshjob" value="false"/>
-<mapEntry key="org.eclipse.ui/debug" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/installhandler" value="false"/>
+<mapEntry key="org.eclipse.ui/debug" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.action/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.help.ui/debug/infopop" value="false"/>
<mapEntry key="org.eclipse.pde.core/classpath" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.emf.ui.properties/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.team.cvs.core/threading" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.emf.ui.properties/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/general" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.performance" value="false"/>
<mapEntry key="org.eclipse.ui/trace/operations.verbose" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render.awt/debug/dnd/tracing" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/constraints" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.diagram.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render.awt/debug/dnd/tracing" value="false"/>
<mapEntry key="org.eclipse.osgi/trace/activation" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/workbench.restore" value="30000"/>
+<mapEntry key="org.eclipse.gmf.runtime.diagram.ui/debug/exceptions/throwing" 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.gmf.runtime.draw2d.ui.figures/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/methods/exiting" 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.ui/trace/graphics" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/services/execute" value="false"/>
<mapEntry key="org.eclipse.osgi/defaultprofile/logsynchronously" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/services/execute" value="false"/>
<mapEntry key="org.eclipse.emf.query/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.osgi/monitor/activation" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.clipboard.core/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render/debug" value="true"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.dnd/debug/services/config" value="false"/>
<mapEntry key="org.eclipse.debug.ui/debug" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.dnd/debug/services/config" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.notation.providers/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/buffermanager" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.figures/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.help.base/debug/search" 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.jface.text/debug/ContentAssistSubjectAdapters" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/search/participants" value="300"/>
<mapEntry key="org.eclipse.emf.validation/debug/parsers" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render/debug/exceptions/throwing" value="false"/>
@@ -90,43 +115,43 @@
<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.ui/listeners/IWorkbenchPage.IPropertyChangeListener" value="false"/>
-<mapEntry key="org.eclipse.osgi/resolver/generics" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug/methods/exiting" 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.gmf.runtime.emf.core/debug/resources" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.emf.commands.core/debug/events/tracing" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.notation.providers/debug" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.action/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.notation.providers/debug" value="true"/>
+<mapEntry key="org.eclipse.gmf.runtime.emf.commands.core/debug/events/tracing" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/requires" value="false"/>
-<mapEntry key="org.eclipse.core.resources/refresh" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/exceptions/throwing" 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.help.webapp/debug" value="true"/>
<mapEntry key="org.eclipse.jdt.ui/debug/ASTProvider" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug" value="true"/>
<mapEntry key="org.eclipse.ui/debug/showSystemJobs" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug" value="true"/>
<mapEntry key="org.eclipse.emf.validation/debug/constraints/disabled" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers" value="false"/>
<mapEntry key="org.eclipse.ui/trace/contexts.performance" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/plugin/ondemand/loading" value="false"/>
-<mapEntry key="org.eclipse.team.cvs.core/metafiles" 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.osgi/profile/startup" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.commands.core/debug/methods/exiting" 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.core.resources/perf/save.participants" value="500"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.services/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.net4j/perf" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/services/activate" value="false"/>
<mapEntry key="org.eclipse.help.base/debug" value="true"/>
<mapEntry key="org.eclipse.net4j/debug" value="true"/>
<mapEntry key="org.eclipse.team.ftp/debug" value="false"/>
-<mapEntry key="org.eclipse.emf.query/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.emf.query/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/dnd/tracing" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/timing" value="false"/>
<mapEntry key="org.eclipse.jdt.core/formatter/enable_new" value="false"/>
@@ -134,41 +159,41 @@
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/commands/execute" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.ui/debug/model/operations" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPageListener" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.action/debug/services/config" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.action/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.action/debug/services/config" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype/cache" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.ui.properties/debug" value="true"/>
-<mapEntry key="org.eclipse.update.core/debug/configuration" 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.gmf.runtime.emf.ui.properties/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.notation.providers/debug/exceptions/catching" value="false"/>
-<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"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.services/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.pde.core/debug" value="true"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchPartReference" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.diagram.ui/debug/filter/events" value="false"/>
<mapEntry key="org.eclipse.ui/debug/job.stale" value="false"/>
-<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
+<mapEntry key="org.eclipse.gmf.runtime.diagram.ui/debug/filter/events" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui/debug/actions/run" value="false"/>
+<mapEntry key="org.eclipse.jdt.ui/perf/explorer/createPartControl" value="1300"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.core/debug/events/tracing" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/hierarchy" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.ui/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
<mapEntry key="org.eclipse.jdt.core/perf/variableinitializer" value="5000"/>
+<mapEntry key="org.eclipse.ui.ide/debug/internalerror/openDialog" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render.awt/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.ui.actions/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/methods/exiting" 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.core.resources/preferences" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/javadelta" value="false"/>
+<mapEntry key="org.eclipse.core.resources/preferences" 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.gmf.runtime.emf.core/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug" value="true"/>
@@ -188,10 +213,10 @@
<mapEntry key="org.eclipse.gmf.runtime.emf.commands.core/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.update.core/debug" value="true"/>
<mapEntry key="org.eclipse.osgi/debug/security" 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.core.resources/restore/metainfo" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.type.core/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.core.resources/perf/builders" value="10000"/>
<mapEntry key="com.soyatec.uml.core/trace/level" value="error"/>
<mapEntry key="org.eclipse.ui/perf/perspective.listeners" value="200"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.ui.actions/debug/methods/entering" value="false"/>
@@ -209,8 +234,8 @@
<mapEntry key="org.eclipse.core.resources/restore/snapshots" value="false"/>
<mapEntry key="org.eclipse.ui/perf/perspective.switch" value="800"/>
<mapEntry key="org.eclipse.help.webapp/debug/workingsets" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.emf.clipboard.core/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.ui.properties/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.emf.clipboard.core/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/bundleTime" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/commands/redo" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore/markers" value="false"/>
@@ -221,27 +246,27 @@
<mapEntry key="org.eclipse.gmf.runtime.diagram.core/debug/exceptions/catching" value="false"/>
<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.gmf.runtime.draw2d.ui.render/debug/methods/exiting" 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.gmf.runtime.diagram.ui/debug/filter/persistencemgr" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/startlevel" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.clipboard.core/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.core.resources/restore" value="false"/>
<mapEntry key="org.eclipse.osgi/resolver/wiring" value="false"/>
-<mapEntry key="org.eclipse.core.resources/perf/snapshot" value="1000"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render.awt/debug/exceptions/throwing" 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.gmf.runtime.draw2d.ui.figures/debug" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render/debug/dnd/tracing" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.figures/debug" value="true"/>
+<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.jdt.ui/perf/explorer/makeActions" value="1000"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.ui/debug/dnd/tracing" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.commands.core/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.dnd/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.ui/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.dnd/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.core.resources/save/markers" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/platformadmin/resolver" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render/debug/methods/entering" value="false"/>
@@ -258,11 +283,11 @@
<mapEntry key="org.eclipse.gmf.runtime.common.ui/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.action/debug" value="true"/>
<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.gmf.runtime.common.ui.printing/debug/exceptions/catching" value="false"/>
-<mapEntry key="org.eclipse.emf.validation/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.ui/perf/contentTypes" value="200"/>
+<mapEntry key="org.eclipse.emf.validation/debug/methods/entering" value="false"/>
<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"/>
@@ -286,35 +311,35 @@
<mapEntry key="org.eclipse.team.core/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.core.jobs/jobs/errorondeadlock" 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.emf.transaction/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.core.resources/contenttype" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug/methods/entering" value="false"/>
<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.jdt.core/debug/compiler" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.notation.providers/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/events" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.notation.providers/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.ui/trace/commands" value="false"/>
<mapEntry key="org.eclipse.equinox.preferences/get" value="false"/>
-<mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.core/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.osgi/debug/monitorbundles" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/debug/ResultCollector" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.figures/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.emf.workspace/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.dnd/debug/dnd/tracing" value="false"/>
+<mapEntry key="org.eclipse.debug.ui/debug/viewers/model" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.commands.core/debug/exceptions/throwing" value="false"/>
<mapEntry key="org.eclipse.equinox.registry/debug" value="false"/>
<mapEntry key="org.eclipse.ui.intro/debug" value="true"/>
<mapEntry key="org.eclipse.emf.transaction/debug/locking" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.emf.core/debug" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.ui/debug/methods/entering" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.emf.core/debug" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.ui.actions/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug/actions/run" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/providers" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug/actions/run" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/converter/debug" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render/debug/exceptions/catching" value="false"/>
<mapEntry key="com.soyatec.uml.core/trace/module/viewEvent" value="false"/>
@@ -345,21 +370,21 @@
<mapEntry key="org.eclipse.jdt.core/debug/cpresolution" 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.core.resources/build/stacktrace" value="false"/>
-<mapEntry key="org.eclipse.ui/perf/part.create" value="800"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui/debug/methods/exiting" 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.intro/trace/logInfo" value="true"/>
<mapEntry key="org.eclipse.team.core/streams" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/services/config" value="false"/>
<mapEntry key="org.eclipse.jdt.ui/perf/explorer/RefactorActionGroup" value="150"/>
<mapEntry key="org.eclipse.ui/experimental/menus" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.type.core/debug/methods/entering" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.emf.type.core/debug/methods/exiting" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug/actions/admin" value="false"/>
<mapEntry key="org.eclipse.core.jobs/jobs/shutdown" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug/actions/admin" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.emf.type.core/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.osgi/debug/packageadmin" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug" value="true"/>
<mapEntry key="org.eclipse.core.runtime/compatibility/debug" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui.printing/debug" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.type.core/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.ui/debug/declaredImages" value="false"/>
<mapEntry key="org.eclipse.update.core/debug/reconciler" value="false"/>
@@ -380,33 +405,33 @@
<mapEntry key="org.eclipse.team.cvs.core/debug" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.ui.actions/debug" value="true"/>
<mapEntry key="org.eclipse.help/debug" value="true"/>
-<mapEntry key="org.eclipse.team.ftp/list" value="true"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.core.runtime/perf" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui/debug/exceptions/catching" value="false"/>
+<mapEntry key="org.eclipse.team.ftp/list" value="true"/>
<mapEntry key="org.eclipse.osgi/trace/filters" value="trace.properties"/>
<mapEntry key="org.eclipse.emf.ocl/debug/methods/entering" value="false"/>
<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.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.ui/perf/page.listeners" value="200"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/exceptions/throwing" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.dnd/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.emf.core/debug/exceptions/throwing" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui.services.dnd/debug/exceptions/catching" value="false"/>
<mapEntry key="org.eclipse.ui/trace/handlers.verbose" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug" value="true"/>
-<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
-<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render.awt/debug" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.common.ui.action/debug/methods/exiting" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.draw2d.ui.render.awt/debug" value="true"/>
+<mapEntry key="org.eclipse.osgi/monitor/resources" value="false"/>
<mapEntry key="org.eclipse.emf.validation/debug/constraints/evaluation" value="false"/>
<mapEntry key="org.eclipse.ui/perf/part.control" value="800"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug" value="true"/>
<mapEntry key="org.eclipse.ui/perf/uijob" value="200"/>
<mapEntry key="org.eclipse.core.runtime/url/debug/cachelookup" value="false"/>
-<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
<mapEntry key="com.soyatec.uml.std/trace/module/modelJavaEvent" value="false"/>
+<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener2" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.gef.ui/debug" value="true"/>
<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/commands/undo" value="false"/>
<mapEntry key="org.eclipse.core.resources/build/delta" value="false"/>
@@ -415,46 +440,23 @@
<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.gmf.runtime.common.core/debug/commands/admin" value="false"/>
<mapEntry key="org.eclipse.ui/listeners/IWorkbenchWindow.IPartListener" value="false"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.core/debug/commands/admin" value="false"/>
<mapEntry key="org.eclipse.jdt.core/debug/resolution" value="false"/>
<mapEntry key="org.eclipse.update.configurator/debug" 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.help.ui/debug" value="true"/>
<mapEntry key="org.eclipse.emf.query.ocl/debug/methods/exiting" value="false"/>
<mapEntry key="org.eclipse.osgi/eclipseadaptor/debug/location" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.core/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.emf.transaction/debug/methods/entering" value="false"/>
<mapEntry key="org.eclipse.ui.intro.universal/trace/logInfo" value="true"/>
-<mapEntry key="org.eclipse.gmf.runtime.common.ui/debug/resource/tracing" value="false"/>
<mapEntry key="org.eclipse.emf.ocl/debug" value="true"/>
+<mapEntry key="org.eclipse.gmf.runtime.common.ui/debug/resource/tracing" value="false"/>
<mapEntry key="org.eclipse.gmf.runtime.diagram.core/debug/methods/exiting" value="false"/>
</mapAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-Ddebug&#13;&#10;-Dconsole&#13;&#10;-DconsoleLog"/>
<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.expressions,org.eclipse.core.jobs,org.eclipse.core.runtime,org.eclipse.core.runtime.compatibility.auth,org.eclipse.core.runtime.compatibility.registry,org.eclipse.emf.common,org.eclipse.equinox.common,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.help,org.eclipse.jdt.junit.runtime,org.eclipse.jface,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.pde.junit.runtime,org.eclipse.swt,org.eclipse.swt.win32.win32.x86,org.eclipse.ui,org.eclipse.ui.workbench,org.junit"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.net4j.tests"/>
-</listAttribute>
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="automaticValidate" value="true"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.emf.cdo.jdbc,org.eclipse.emf.cdo.dbgen.editor,org.eclipse.emf.cdo.utilities.migrator,template,org.eclipse.emf.cdo.examples.server,org.eclipse.emf.cdo.tests,org.eclipse.emf.cdo.examples.client,org.eclipse.emf.cdo.mapping,org.eclipse.emf.cdo.core,org.eclipse.emf.cdo.examples.ui,org.eclipse.emf.cdo.client,org.eclipse.emf.cdo.dbgen,org.eclipse.emf.cdo.server,org.eclipse.emf.cdo.client.ocl,org.eclipse.emf.cdo.dbgen.edit,org.eclipse.emf.cdo.examples.library,org.eclipse.emf.cdo.examples.library.ui,org.eclipse.emf.cdo.client.edit,org.eclipse.emf.cdo.jdbc.derby,org.eclipse.emf.cdo.dbgen.derby,org.eclipse.emf.cdo.dbgen.oracle,org.eclipse.emf.cdo.jdbc.hsqldb,org.eclipse.emf.cdo.jdbc.mysql,org.eclipse.emf.cdo.dbgen.ansi92,org.eclipse.emf.cdo.dbgen.mysql,org.eclipse.emf.cdo.dbgen.hsqldb"/>
-<booleanAttribute key="askclear" value="false"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.net4j.tests.SignalTest"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.net4j.tests,org.eclipse.net4j"/>
-<booleanAttribute key="default" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="4"/>
-</listAttribute>
-<stringAttribute key="checked" value="org.eclipse.net4j"/>
<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="automaticAdd" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<booleanAttribute key="useNamedJRE" value="true"/>
+<booleanAttribute key="useProduct" value="false"/>
</launchConfiguration>