From celix-dev-return-566-apmail-incubator-celix-dev-archive=incubator.apache.org@incubator.apache.org Mon Aug 19 22:41:41 2013 Return-Path: X-Original-To: apmail-incubator-celix-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-celix-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 966DC10DE2 for ; Mon, 19 Aug 2013 22:41:41 +0000 (UTC) Received: (qmail 8397 invoked by uid 500); 19 Aug 2013 22:41:41 -0000 Delivered-To: apmail-incubator-celix-dev-archive@incubator.apache.org Received: (qmail 8363 invoked by uid 500); 19 Aug 2013 22:41:41 -0000 Mailing-List: contact celix-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: celix-dev@incubator.apache.org Delivered-To: mailing list celix-dev@incubator.apache.org Received: (qmail 8355 invoked by uid 99); 19 Aug 2013 22:41:41 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Aug 2013 22:41:41 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of s.zelzer@dkfz-heidelberg.de designates 193.174.53.139 as permitted sender) Received: from [193.174.53.139] (HELO mailhost4.inet.dkfz-heidelberg.de) (193.174.53.139) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Aug 2013 22:41:32 +0000 Received: from mx1.inet.dkfz-heidelberg.de (mx1.inet.dkfz-heidelberg.de [193.174.53.113]) by mailhost2.inet.dkfz-heidelberg.de (8.13.8/8.13.8) with ESMTP id r7JMfB2W002950 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 20 Aug 2013 00:41:11 +0200 X-External-Mail: Yes MX X-Envelope-Sender: s.zelzer@dkfz-heidelberg.de X-Envelope-Recipient: unknown Received: from mx-ext.inet.dkfz-heidelberg.de (mx-ext.inet.dkfz-heidelberg.de [192.54.49.101]) by mx1.inet.dkfz-heidelberg.de (8.13.8/8.13.8) with ESMTP id r7JMfBVY022824 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 20 Aug 2013 00:41:11 +0200 Received: from [192.168.11.2] (HSI-KBW-109-192-202-207.hsi6.kabel-badenwuerttemberg.de [109.192.202.207]) (authenticated bits=0) by mx-ext.inet.dkfz-heidelberg.de (8.13.8/8.13.8/smtpin) with ESMTP id r7JMf6iw007783 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 20 Aug 2013 00:41:07 +0200 Message-ID: <52129F02.5010609@dkfz-heidelberg.de> Date: Tue, 20 Aug 2013 00:41:06 +0200 From: Sascha Zelzer User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130623 Thunderbird/17.0.7 MIME-Version: 1.0 To: "celix-dev@incubator.apache.org" CC: Erik Jansman Subject: Re: event admin headers References: <5208A6D9.9090605@jansman.eu> <5208D5D4.8010302@dkfz-heidelberg.de> <520944B9.60800@dkfz-heidelberg.de> <520952D9.1080809@dkfz-heidelberg.de> <520A5A12.1070705@jansman.eu> In-Reply-To: <520A5A12.1070705@jansman.eu> Content-Type: multipart/mixed; boundary="------------020303050108070606070109" X-Virus-Scanned: by amavisd-new X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-3.0 (mx-ext.inet.dkfz-heidelberg.de [192.54.49.101]); Tue, 20 Aug 2013 00:41:10 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on mx-ext.inet.dkfz-heidelberg.de X-Virus-Checked: Checked by ClamAV on apache.org X-Old-Spam-Status: No, score=-101.4 required=5.0 tests=ALL_TRUSTED,LOCAL_AUTH_GREY autolearn=disabled version=3.2.5 --------------020303050108070606070109 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 08/13/2013 06:08 PM, Erik Jansman wrote: > > For the implementation I have taken a look at the Felix version and I > will continue to do so but seeing this discussion I makes me unsure if > it's the right thing to do. I would like to see the test bundle and if > possible more of the test results regarding Felix and Knopflerfish so I > can better understand what is being tested and how. > > You should definitely try to produce your own test results and do some profiling. I attached my test bundle which should run in any OSGi container providing the framework and event admin dependencies, plus the sources. I would also be interested in your findings, so please keep me posted. In case the attachments are not going through to the mailing list, I added Erik's Email address CC. Best, Sascha --------------020303050108070606070109 Content-Type: application/x-java-archive; name="perftest_1.0.0.jar" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="perftest_1.0.0.jar" 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 asxf1fVv+Lva1j38DHX+nnNu/wFQSwECFAMKAAAIAADXtZJBAAAAAAAAAAAAAAAACQAEAAAA AAAAABAA7UEAAAAATUVUQS1JTkYv/soAAFBLAQIUAwoAAAgIANa1kkFk7bHK0gAAAGEBAAAU AAAAAAAAAAAAAACkgSsAAABNRVRBLUlORi9NQU5JRkVTVC5NRlBLAQIUAwoAAAgAANe1kkEA AAAAAAAAAAAAAAAJAAAAAAAAAAAAEADtQS8BAABwZXJmdGVzdC9QSwECFAMKAAAICADXtZJB lnML7XUBAACPAgAAGAAAAAAAAAAAAAAApIFWAQAAcGVyZnRlc3QvQWN0aXZhdG9yLmNsYXNz UEsBAhQDCgAACAgA17WSQeAxSJuXAAAAwwAAABkAAAAAAAAAAAAAAKSBAQMAAHBlcmZ0ZXN0 L0RpY3Rpb25hcnkuY2xhc3NQSwECFAMKAAAICADXtZJBz+fi0TsCAAAABAAAHQAAAAAAAAAA AAAApIHPAwAAcGVyZnRlc3QvRGljdGlvbmFyeUltcGwuY2xhc3NQSwECFAMKAAAICADXtZJB j8tfLKwAAAD7AAAAIAAAAAAAAAAAAAAApIFFBgAAcGVyZnRlc3QvRGljdGlvbmFyeVNlcnZp Y2UuY2xhc3NQSwECFAMKAAAICADXtZJBbN5BJ2kCAAB4BAAAJAAAAAAAAAAAAAAApIEvBwAA cGVyZnRlc3QvRGljdGlvbmFyeVNlcnZpY2VJbXBsLmNsYXNzUEsBAhQDCgAACAgA17WSQQWp AONhAAAAcgAAABsAAAAAAAAAAAAAAKSB2gkAAHBlcmZ0ZXN0L0lUZXN0U2VydmljZS5jbGFz c1BLAQIUAwoAAAgIANe1kkH7Z21dNwIAAMwDAAAeAAAAAAAAAAAAAACkgXQKAABwZXJmdGVz dC9QZXJmVGVzdFN1aXRlJDEuY2xhc3NQSwECFAMKAAAICADXtZJBGGpdEk4BAAAOAgAAHgAA AAAAAAAAAAAApIHnDAAAcGVyZnRlc3QvUGVyZlRlc3RTdWl0ZSQyLmNsYXNzUEsBAhQDCgAA CAgA17WSQbPtJAqDCgAAfBYAABwAAAAAAAAAAAAAAKSBcQ4AAHBlcmZ0ZXN0L1BlcmZUZXN0 U3VpdGUuY2xhc3NQSwUGAAAAAAwADABXAwAALhkAAAAA --------------020303050108070606070109 Content-Type: text/x-java; name="Activator.java" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Activator.java" package eventtest; import java.util.Dictionary; import java.util.Hashtable; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; import org.osgi.service.event.Event; import org.osgi.service.event.EventAdmin; public class Activator implements BundleActivator { /* * (non-Javadoc) * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) */ public void start(BundleContext context) throws Exception { EventAdmin ea = null; ServiceReference sr = context.getServiceReference(EventAdmin.class.getName()); if (sr != null) { ea = context.getService(sr); } if (ea != null) { new EventAdminTest(context, ea); } else { System.err.println("Event admin service not available"); } } /* * (non-Javadoc) * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) */ public void stop(BundleContext context) throws Exception { System.out.println("Goodbye World!!"); } } --------------020303050108070606070109 Content-Type: text/x-java; name="EventAdminTest.java" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="EventAdminTest.java" package eventtest; import java.util.Dictionary; import java.util.Hashtable; import org.osgi.framework.BundleContext; import org.osgi.service.event.Event; import org.osgi.service.event.EventAdmin; import org.osgi.service.event.EventConstants; import org.osgi.service.event.EventHandler; public class EventAdminTest { int event1Handled = 0; int event2Handled = 0; public EventAdminTest(BundleContext bc, EventAdmin ea) { addHandler(bc); runSendEvents(ea); runPostEvents(ea); } private void runSendEvents(EventAdmin ea) { long start = System.currentTimeMillis(); sendEvents(ea); long time = System.currentTimeMillis() - start; if(event1Handled != 100000) throw new RuntimeException("event1Handled != 100000 but is " + event1Handled); if(event2Handled != 300000) throw new RuntimeException("event2Handled != 300000 but is " + event2Handled); System.out.println("sending sync events took " + time + "ms"); } private void runPostEvents(EventAdmin ea) { long start = System.currentTimeMillis(); postEvents(ea); long time = System.currentTimeMillis() - start; System.out.println("sending async events took " + time + "ms"); } private void addHandler(BundleContext bc) { System.out.println("Adding event handler"); for (int i = 0; i < 100; ++i) { EventHandler h1 = new EventHandler() { @Override public void handleEvent(Event e) { event1Handled++; } }; Dictionary props = new Hashtable(); props.put(EventConstants.EVENT_TOPIC, "org/mbi/1"); bc.registerService(EventHandler.class.getName(), h1, props); EventHandler h2 = new EventHandler() { @Override public void handleEvent(Event e) { event2Handled++; } }; props = new Hashtable(); props.put(EventConstants.EVENT_TOPIC, "org/mbi/*"); bc.registerService(EventHandler.class.getName(), h2, props); EventHandler h3 = new EventHandler() { @Override public void handleEvent(Event e) { event2Handled++; } }; props = new Hashtable(); props.put(EventConstants.EVENT_TOPIC, "org/mbi/*"); props.put(EventConstants.EVENT_FILTER, "(name=bla)"); bc.registerService(EventHandler.class.getName(), h3, props); } } private void sendEvents(EventAdmin ea) { Dictionary props = null; Event event1 = new Event("org/mbi/1", props); for (int i = 0; i < 1000; ++i) { ea.sendEvent(event1); } for (int i = 0; i < 1000; ++i) { props = new Hashtable(); props.put("name", "bla"); props.put("level", i); Event event2 = new Event("org/mbi/2", props); ea.sendEvent(event2); } } private void postEvents(EventAdmin ea) { Dictionary props = null; Event event1 = new Event("org/mbi/1", props); for (int i = 0; i < 1000; ++i) { ea.postEvent(event1); } for (int i = 0; i < 1000; ++i) { props = new Hashtable(); props.put("name", "bla"); props.put("level", i); Event event2 = new Event("org/mbi/2", props); ea.postEvent(event2); } } } --------------020303050108070606070109--