diff options
author | Markus Alexander Kuppe | 2013-07-04 08:08:25 +0000 |
---|---|---|
committer | Markus Alexander Kuppe | 2013-07-04 12:06:00 +0000 |
commit | 4e252b22a27185acf76a2a641ec2396afa55581c (patch) | |
tree | fba630d6705b2f67d5b3d6d83da4a4ec5c7ce22f /tests/bundles/org.eclipse.ecf.tests.remoteserivce.eventadmin | |
parent | f4756887baf1a54d54d63b84e3d796d0394ebe54 (diff) | |
download | org.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')
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); + } + +} |