Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Alexander Kuppe2013-07-04 08:08:25 +0000
committerMarkus Alexander Kuppe2013-07-04 12:06:00 +0000
commit4e252b22a27185acf76a2a641ec2396afa55581c (patch)
treefba630d6705b2f67d5b3d6d83da4a4ec5c7ce22f /tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin
parentf4756887baf1a54d54d63b84e3d796d0394ebe54 (diff)
downloadorg.eclipse.ecf-4e252b22a27185acf76a2a641ec2396afa55581c.tar.gz
org.eclipse.ecf-4e252b22a27185acf76a2a641ec2396afa55581c.tar.xz
org.eclipse.ecf-4e252b22a27185acf76a2a641ec2396afa55581c.zip
NEW - bug 412261: [Distributed EventAdmin] Allow to only log
serialization failures https://bugs.eclipse.org/bugs/show_bug.cgi?id=412261
Diffstat (limited to 'tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin')
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.classpath7
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.gitignore1
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.project28
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.pde.core.prefs4
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/META-INF/MANIFEST.MF13
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/build.properties4
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/DistributedEventAdminTest.java70
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/TestDistributedEventAdmin.java29
9 files changed, 163 insertions, 0 deletions
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.classpath b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.classpath
new file mode 100644
index 000000000..64c5e31b7
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.gitignore b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.gitignore
new file mode 100644
index 000000000..5e56e040e
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.project b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.project
new file mode 100644
index 000000000..e3557c4d7
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ecf.tests.remoteserivce.eventadmin</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.jdt.core.prefs b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..af0f20f97
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.pde.core.prefs b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..e8ff8be0b
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/META-INF/MANIFEST.MF b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..a98baa65a
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Eventadmin tests
+Bundle-SymbolicName: org.eclipse.ecf.tests.remoteserivce.eventadmin
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Require-Bundle: org.junit;bundle-version="4.0.0",
+ org.eclipse.equinox.common;bundle-version="3.6.200",
+ org.eclipse.ecf;bundle-version="3.2.0",
+ org.eclipse.ecf.sharedobject;bundle-version="2.3.0",
+ org.eclipse.ecf.remoteservice.eventadmin;bundle-version="1.2.0"
+Import-Package: org.osgi.framework;version="1.7.0",
+ org.osgi.service.event;version="1.3.0"
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/build.properties b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/build.properties
new file mode 100644
index 000000000..34d2e4d2d
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/build.properties
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/DistributedEventAdminTest.java b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/DistributedEventAdminTest.java
new file mode 100644
index 000000000..8bd4686f9
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/DistributedEventAdminTest.java
@@ -0,0 +1,70 @@
+/****************************************************************************
+ * Copyright (c) 2013 Markus Alexander Kuppe 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:
+ * Markus Alexander Kuppe - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.remoteservice.eventadmin;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.ServiceException;
+import org.osgi.service.event.Event;
+
+public class DistributedEventAdminTest {
+
+ private TestDistributedEventAdmin dea;
+ private Event eventToSend;
+
+ @Before
+ public void setup() {
+ final String aTopic = "non/serializable";
+ final Object nonSerializable = new Object();
+
+ final Map<String, Object> map = new HashMap<String, Object>();
+ map.put("key", nonSerializable);
+
+ eventToSend = new Event(aTopic, map);
+
+ dea = new TestDistributedEventAdmin();
+ }
+
+ /**
+ * Default behavior where non-serializable objects throw an exception
+ */
+ @Test
+ public void testSendMessage() {
+ try {
+ dea.sendMessage(eventToSend);
+ } catch (ServiceException e) {
+ return;
+ }
+ Assert.fail("Should throw a service exception");
+ }
+
+
+ /**
+ * @see https://bugs.eclipse.org/412261
+ */
+ @Test
+ public void testSendMessageIgnore() {
+
+ // turn on ignoring of serialization exceptions explicitly
+ dea.setIgnoreSerializationFailures(true);
+
+ try {
+ dea.sendMessage(eventToSend);
+ // will still cause a warning to be printed on the console
+ } catch (ServiceException e) {
+ Assert.fail("Should not throw a service exception");
+ }
+ }
+}
diff --git a/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/TestDistributedEventAdmin.java b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/TestDistributedEventAdmin.java
new file mode 100644
index 000000000..e42a62436
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin/src/org/eclipse/ecf/remoteservice/eventadmin/TestDistributedEventAdmin.java
@@ -0,0 +1,29 @@
+/****************************************************************************
+ * Copyright (c) 2013 Markus Alexander Kuppe 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:
+ * Markus Alexander Kuppe - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.remoteservice.eventadmin;
+
+import org.osgi.service.event.Event;
+
+public class TestDistributedEventAdmin extends DistributedEventAdmin {
+
+ public void setIgnoreSerializationFailures(boolean ignore) {
+ DistributedEventAdmin.ignoreSerializationExceptions = ignore;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ecf.remoteservice.eventadmin.DistributedEventAdmin#sendMessage(org.osgi.service.event.Event)
+ */
+ @Override
+ public void sendMessage(Event eventToSend) {
+ super.sendMessage(eventToSend);
+ }
+
+}

Back to the top