Return-Path: X-Original-To: apmail-tuscany-commits-archive@www.apache.org Delivered-To: apmail-tuscany-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 631319DDA for ; Tue, 24 Jan 2012 12:29:27 +0000 (UTC) Received: (qmail 50395 invoked by uid 500); 24 Jan 2012 12:29:27 -0000 Delivered-To: apmail-tuscany-commits-archive@tuscany.apache.org Received: (qmail 50325 invoked by uid 500); 24 Jan 2012 12:29:26 -0000 Mailing-List: contact commits-help@tuscany.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tuscany.apache.org Delivered-To: mailing list commits@tuscany.apache.org Received: (qmail 50318 invoked by uid 99); 24 Jan 2012 12:29:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Jan 2012 12:29:25 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Jan 2012 12:29:24 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 853ED23888D2 for ; Tue, 24 Jan 2012 12:29:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1235221 - /tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorUtil.java Date: Tue, 24 Jan 2012 12:29:04 -0000 To: commits@tuscany.apache.org From: antelder@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120124122904.853ED23888D2@eris.apache.org> Author: antelder Date: Tue Jan 24 12:29:04 2012 New Revision: 1235221 URL: http://svn.apache.org/viewvc?rev=1235221&view=rev Log: Change the JMS binding MessageProcessor discovery to use ServiceDiscovery so that additional processors can be added in OSGi Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorUtil.java Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorUtil.java URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorUtil.java?rev=1235221&r1=1235220&r2=1235221&view=diff ============================================================================== --- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorUtil.java (original) +++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/JMSMessageProcessorUtil.java Tue Jan 24 12:29:04 2012 @@ -24,6 +24,7 @@ import java.lang.reflect.Constructor; import org.apache.tuscany.sca.binding.jms.JMSBinding; import org.apache.tuscany.sca.binding.jms.JMSBindingException; import org.apache.tuscany.sca.core.ExtensionPointRegistry; +import org.apache.tuscany.sca.extensibility.ServiceDeclaration; /** * Utility methods to load JMS message processors. @@ -74,32 +75,19 @@ public class JMSMessageProcessorUtil { // } // private static Object instantiate(ClassLoader cl, String className, JMSBinding binding, ExtensionPointRegistry registry) { - Object instance; - if (cl == null) { - cl = binding.getClass().getClassLoader(); - } - try { - Class clazz; - - try { - clazz = cl.loadClass(className); - } catch (ClassNotFoundException e) { - // MJE 07/12/2010 - for OSGi the default message processor belongs to the same bundle as - // this JMSMessageProcessorUtil itself and so the "correct" classloader to use is the classloader - // for THIS class, and not the binding class (which is a different bundle) - // clazz = binding.getClass().getClassLoader().loadClass(className); - clazz = JMSMessageProcessorUtil.class.getClassLoader().loadClass(className); + for (ServiceDeclaration sd : registry.getServiceDiscovery().getServiceDeclarations(JMSMessageProcessor.class)) { + if (className.equals(sd.getClassName())) { + Class clazz = sd.loadClass(); + Constructor constructor = clazz.getDeclaredConstructor(new Class[] {JMSBinding.class, ExtensionPointRegistry.class}); + return constructor.newInstance(binding, registry); + } + } - - Constructor constructor = clazz.getDeclaredConstructor(new Class[] {JMSBinding.class, ExtensionPointRegistry.class}); - instance = constructor.newInstance(binding, registry); - + throw new JMSBindingException("Class not found: " + className); } catch (Throwable e) { throw new JMSBindingException("Exception instantiating OperationAndDataBinding class", e); } - - return instance; } public static JMSMessageProcessor getRequestMessageProcessor(ExtensionPointRegistry registry, JMSBinding binding) {