Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_359992_Test.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_359992_Test.java482
1 files changed, 241 insertions, 241 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_359992_Test.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_359992_Test.java
index 0c1c29abcc..103067f8ba 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_359992_Test.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/bugzilla/Bugzilla_359992_Test.java
@@ -1,241 +1,241 @@
-/*
- * 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.tests.bugzilla;
-
-import org.eclipse.emf.cdo.CDOInvalidationNotification;
-import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.internal.net4j.protocol.CommitTransactionRequest;
-import org.eclipse.emf.cdo.net4j.CDONet4jSession;
-import org.eclipse.emf.cdo.net4j.CDONet4jSession.Options;
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.tests.AbstractCDOTest;
-import org.eclipse.emf.cdo.tests.config.IModelConfig;
-import org.eclipse.emf.cdo.tests.legacy.model1.Model1Factory;
-import org.eclipse.emf.cdo.tests.model1.Customer;
-import org.eclipse.emf.cdo.tests.model1.SalesOrder;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.util.CDOUtil;
-import org.eclipse.emf.cdo.util.CommitException;
-import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-import java.util.Collections;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Bug 359992.
- *
- * @author Martin Fluegge
- */
-public class Bugzilla_359992_Test extends AbstractCDOTest
-{
- private static final String RESOURCE_PATH = "/test1";
-
- private CountDownLatch latch;
-
- @Override
- protected void doSetUp() throws Exception
- {
- super.doSetUp();
- latch = new CountDownLatch(1);
- }
-
- @Requires(IModelConfig.CAPABILITY_LEGACY)
- @CleanRepositoriesBefore
- public void testInvalidationNotification() throws Exception
- {
- CDOSession session = openSession();
- CDOUtil.setLegacyModeDefault(true);
- CDONet4jSession.Options options = (Options)session.options();
- options.setCommitTimeout(10 * CommitTransactionRequest.DEFAULT_MONITOR_TIMEOUT_SECONDS);
-
- CDOTransaction transaction1 = session.openTransaction();
- transaction1.options().setInvalidationNotificationEnabled(true);
-
- CDOResource resource1 = transaction1.createResource(getResourcePath(RESOURCE_PATH));
-
- // 1. Create a example model
- Customer customer1 = initializeModel(resource1);
-
- resource1.getContents().add(customer1);
- resource1.save(Collections.emptyMap());
-
- transaction1.close();
- session.close();
-
- session = openSession();
- CDOUtil.setLegacyModeDefault(true);
-
- transaction1 = session.openTransaction();
- transaction1.options().setInvalidationNotificationEnabled(true);
-
- resource1 = transaction1.getResource(getResourcePath(RESOURCE_PATH));
- customer1 = (Customer)resource1.getContents().get(1);
-
- TestAdapter adapter = new TestAdapter();
- customer1.eAdapters().add(adapter);
-
- doClient2();
-
- latch.await(10 * DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS);
- assertEquals(true, adapter.notified());
- assertEquals(adapter.getFailureMessage(), true, adapter.assertCorrectNotification());
- }
-
- @Requires(IModelConfig.CAPABILITY_LEGACY)
- @CleanRepositoriesBefore
- public void testDeltaNotification() throws Exception
- {
- CDOSession session = openSession();
- CDOUtil.setLegacyModeDefault(true);
- CDONet4jSession.Options options = (Options)session.options();
- options.setCommitTimeout(10 * CommitTransactionRequest.DEFAULT_MONITOR_TIMEOUT_SECONDS);
-
- CDOTransaction transaction1 = session.openTransaction();
- transaction1.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);
-
- CDOResource resource1 = transaction1.createResource(getResourcePath(RESOURCE_PATH));
-
- // 1. Create a example model
- Customer customer1 = initializeModel(resource1);
-
- resource1.getContents().add(customer1);
- resource1.save(Collections.emptyMap());
-
- transaction1.close();
- session.close();
-
- session = openSession();
- CDOUtil.setLegacyModeDefault(true);
-
- transaction1 = session.openTransaction();
- transaction1.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);
-
- resource1 = transaction1.getResource(getResourcePath(RESOURCE_PATH));
- customer1 = (Customer)resource1.getContents().get(1);
-
- TestAdapter adapter = new TestAdapter();
- customer1.eAdapters().add(adapter);
-
- doClient2();
-
- latch.await(10 * DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS);
- assertEquals(true, adapter.notified());
- assertEquals(adapter.getFailureMessage(), true, adapter.assertCorrectNotification());
- }
-
- private Customer initializeModel(CDOResource resource1)
- {
- Customer customer1 = Model1Factory.eINSTANCE.createCustomer();
- customer1.setName("Martin Fluegge");
- customer1.setStreet("ABC Street 7");
- customer1.setCity("Berlin");
-
- SalesOrder salesOrder = Model1Factory.eINSTANCE.createSalesOrder();
- customer1.getSalesOrders().add(salesOrder);
- resource1.getContents().add(salesOrder);
-
- return customer1;
- }
-
- private void doClient2() throws CommitException
- {
- CDOSession session = openSession();
- CDOUtil.setLegacyModeDefault(true);
- CDONet4jSession.Options options = (Options)session.options();
- options.setCommitTimeout(10 * CommitTransactionRequest.DEFAULT_MONITOR_TIMEOUT_SECONDS);
- CDOTransaction transaction2 = session.openTransaction();
-
- Resource resource2 = transaction2.getResource(getResourcePath(RESOURCE_PATH));
- Customer customer2 = (Customer)resource2.getContents().get(1);
-
- SalesOrder existingSalesOrder = customer2.getSalesOrders().get(0);
- EcoreUtil.delete(existingSalesOrder);
-
- SalesOrder newSalesOrder = Model1Factory.eINSTANCE.createSalesOrder();
- customer2.getSalesOrders().add(newSalesOrder);
- resource2.getContents().add(newSalesOrder);
-
- transaction2.commit();
- }
-
- /**
- * @author Martin Fluegge
- */
- class TestAdapter extends AdapterImpl
- {
- private boolean assertCorrectNotification;
-
- private boolean notified;
-
- private String failureMessage;
-
- @Override
- public void notifyChanged(Notification notification)
- {
- // If a previous received notification was incorrect we doesn't checks anymore
- if (!notified || notified && assertCorrectNotification)
- {
- Object notifier = notification.getNotifier();
- assertCorrectNotification = notifier instanceof Customer;
- if (!assertCorrectNotification)
- {
- failureMessage = "Notifier is not the expected type : " + notifier.getClass().getName();
- }
- if (!(notification instanceof CDOInvalidationNotification) && assertCorrectNotification)
- {
- int eventType = notification.getEventType();
- if (Notification.ADD == eventType)
- {
- Object newValue = notification.getNewValue();
- assertCorrectNotification = newValue instanceof SalesOrder;
- if (!assertCorrectNotification)
- {
- failureMessage = "Notification.getNewValue() is not the expected type : " + newValue.getClass().getName();
- }
- }
- else if (Notification.REMOVE == eventType)
- {
- Object oldValue = notification.getOldValue();
- assertCorrectNotification = oldValue instanceof SalesOrder;
- if (!assertCorrectNotification)
- {
- failureMessage = "Notification.getOldValue() is not the expected type : " + oldValue.getClass().getName();
- }
- }
- }
-
- notified = true;
- latch.countDown();
- }
- }
-
- public boolean notified()
- {
- return notified;
- }
-
- public boolean assertCorrectNotification()
- {
- return assertCorrectNotification;
- }
-
- public String getFailureMessage()
- {
- return failureMessage;
- }
- }
-}
+/*
+ * 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.tests.bugzilla;
+
+import org.eclipse.emf.cdo.CDOInvalidationNotification;
+import org.eclipse.emf.cdo.eresource.CDOResource;
+import org.eclipse.emf.cdo.internal.net4j.protocol.CommitTransactionRequest;
+import org.eclipse.emf.cdo.net4j.CDONet4jSession;
+import org.eclipse.emf.cdo.net4j.CDONet4jSession.Options;
+import org.eclipse.emf.cdo.session.CDOSession;
+import org.eclipse.emf.cdo.tests.AbstractCDOTest;
+import org.eclipse.emf.cdo.tests.config.IModelConfig;
+import org.eclipse.emf.cdo.tests.legacy.model1.Model1Factory;
+import org.eclipse.emf.cdo.tests.model1.Customer;
+import org.eclipse.emf.cdo.tests.model1.SalesOrder;
+import org.eclipse.emf.cdo.transaction.CDOTransaction;
+import org.eclipse.emf.cdo.util.CDOUtil;
+import org.eclipse.emf.cdo.util.CommitException;
+import org.eclipse.emf.cdo.view.CDOAdapterPolicy;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import java.util.Collections;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Bug 359992.
+ *
+ * @author Martin Fluegge
+ */
+public class Bugzilla_359992_Test extends AbstractCDOTest
+{
+ private static final String RESOURCE_PATH = "/test1";
+
+ private CountDownLatch latch;
+
+ @Override
+ protected void doSetUp() throws Exception
+ {
+ super.doSetUp();
+ latch = new CountDownLatch(1);
+ }
+
+ @Requires(IModelConfig.CAPABILITY_LEGACY)
+ @CleanRepositoriesBefore
+ public void testInvalidationNotification() throws Exception
+ {
+ CDOSession session = openSession();
+ CDOUtil.setLegacyModeDefault(true);
+ CDONet4jSession.Options options = (Options)session.options();
+ options.setCommitTimeout(10 * CommitTransactionRequest.DEFAULT_MONITOR_TIMEOUT_SECONDS);
+
+ CDOTransaction transaction1 = session.openTransaction();
+ transaction1.options().setInvalidationNotificationEnabled(true);
+
+ CDOResource resource1 = transaction1.createResource(getResourcePath(RESOURCE_PATH));
+
+ // 1. Create a example model
+ Customer customer1 = initializeModel(resource1);
+
+ resource1.getContents().add(customer1);
+ resource1.save(Collections.emptyMap());
+
+ transaction1.close();
+ session.close();
+
+ session = openSession();
+ CDOUtil.setLegacyModeDefault(true);
+
+ transaction1 = session.openTransaction();
+ transaction1.options().setInvalidationNotificationEnabled(true);
+
+ resource1 = transaction1.getResource(getResourcePath(RESOURCE_PATH));
+ customer1 = (Customer)resource1.getContents().get(1);
+
+ TestAdapter adapter = new TestAdapter();
+ customer1.eAdapters().add(adapter);
+
+ doClient2();
+
+ latch.await(10 * DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS);
+ assertEquals(true, adapter.notified());
+ assertEquals(adapter.getFailureMessage(), true, adapter.assertCorrectNotification());
+ }
+
+ @Requires(IModelConfig.CAPABILITY_LEGACY)
+ @CleanRepositoriesBefore
+ public void testDeltaNotification() throws Exception
+ {
+ CDOSession session = openSession();
+ CDOUtil.setLegacyModeDefault(true);
+ CDONet4jSession.Options options = (Options)session.options();
+ options.setCommitTimeout(10 * CommitTransactionRequest.DEFAULT_MONITOR_TIMEOUT_SECONDS);
+
+ CDOTransaction transaction1 = session.openTransaction();
+ transaction1.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);
+
+ CDOResource resource1 = transaction1.createResource(getResourcePath(RESOURCE_PATH));
+
+ // 1. Create a example model
+ Customer customer1 = initializeModel(resource1);
+
+ resource1.getContents().add(customer1);
+ resource1.save(Collections.emptyMap());
+
+ transaction1.close();
+ session.close();
+
+ session = openSession();
+ CDOUtil.setLegacyModeDefault(true);
+
+ transaction1 = session.openTransaction();
+ transaction1.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL);
+
+ resource1 = transaction1.getResource(getResourcePath(RESOURCE_PATH));
+ customer1 = (Customer)resource1.getContents().get(1);
+
+ TestAdapter adapter = new TestAdapter();
+ customer1.eAdapters().add(adapter);
+
+ doClient2();
+
+ latch.await(10 * DEFAULT_TIMEOUT, TimeUnit.MILLISECONDS);
+ assertEquals(true, adapter.notified());
+ assertEquals(adapter.getFailureMessage(), true, adapter.assertCorrectNotification());
+ }
+
+ private Customer initializeModel(CDOResource resource1)
+ {
+ Customer customer1 = Model1Factory.eINSTANCE.createCustomer();
+ customer1.setName("Martin Fluegge");
+ customer1.setStreet("ABC Street 7");
+ customer1.setCity("Berlin");
+
+ SalesOrder salesOrder = Model1Factory.eINSTANCE.createSalesOrder();
+ customer1.getSalesOrders().add(salesOrder);
+ resource1.getContents().add(salesOrder);
+
+ return customer1;
+ }
+
+ private void doClient2() throws CommitException
+ {
+ CDOSession session = openSession();
+ CDOUtil.setLegacyModeDefault(true);
+ CDONet4jSession.Options options = (Options)session.options();
+ options.setCommitTimeout(10 * CommitTransactionRequest.DEFAULT_MONITOR_TIMEOUT_SECONDS);
+ CDOTransaction transaction2 = session.openTransaction();
+
+ Resource resource2 = transaction2.getResource(getResourcePath(RESOURCE_PATH));
+ Customer customer2 = (Customer)resource2.getContents().get(1);
+
+ SalesOrder existingSalesOrder = customer2.getSalesOrders().get(0);
+ EcoreUtil.delete(existingSalesOrder);
+
+ SalesOrder newSalesOrder = Model1Factory.eINSTANCE.createSalesOrder();
+ customer2.getSalesOrders().add(newSalesOrder);
+ resource2.getContents().add(newSalesOrder);
+
+ transaction2.commit();
+ }
+
+ /**
+ * @author Martin Fluegge
+ */
+ class TestAdapter extends AdapterImpl
+ {
+ private boolean assertCorrectNotification;
+
+ private boolean notified;
+
+ private String failureMessage;
+
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ // If a previous received notification was incorrect we doesn't checks anymore
+ if (!notified || notified && assertCorrectNotification)
+ {
+ Object notifier = notification.getNotifier();
+ assertCorrectNotification = notifier instanceof Customer;
+ if (!assertCorrectNotification)
+ {
+ failureMessage = "Notifier is not the expected type : " + notifier.getClass().getName();
+ }
+ if (!(notification instanceof CDOInvalidationNotification) && assertCorrectNotification)
+ {
+ int eventType = notification.getEventType();
+ if (Notification.ADD == eventType)
+ {
+ Object newValue = notification.getNewValue();
+ assertCorrectNotification = newValue instanceof SalesOrder;
+ if (!assertCorrectNotification)
+ {
+ failureMessage = "Notification.getNewValue() is not the expected type : " + newValue.getClass().getName();
+ }
+ }
+ else if (Notification.REMOVE == eventType)
+ {
+ Object oldValue = notification.getOldValue();
+ assertCorrectNotification = oldValue instanceof SalesOrder;
+ if (!assertCorrectNotification)
+ {
+ failureMessage = "Notification.getOldValue() is not the expected type : " + oldValue.getClass().getName();
+ }
+ }
+ }
+
+ notified = true;
+ latch.countDown();
+ }
+ }
+
+ public boolean notified()
+ {
+ return notified;
+ }
+
+ public boolean assertCorrectNotification()
+ {
+ return assertCorrectNotification;
+ }
+
+ public String getFailureMessage()
+ {
+ return failureMessage;
+ }
+ }
+}

Back to the top