All, Attached is a patch that makes the modifications to the JMS transport that we discussed in the Tuesday IRC chat. Mainly, it removes the SonicMQ usage from the sample code and replaces it with JNDI. Furthermore I have introduced a pluggable JMS vendor component that is used for vendor specific ConnectionFactory and Destination creation. This allows vendors that offer direct ConnectionFactory instantiation options to be used with Axis without requiring JNDI. Implementations are plugged in using a system property per Glen's suggestion. I have been unsuccessful in running 'ant clean all-tests' against it due to unrelated wsdl test failures. Would someone, such as James who has reviewed the code previously, commit the code once the all-tests results pass.
If you want to apply the patch, the instructions below should do it. - Remove src\org\apache\axis\transport\jms\SonicConstants.java - Place jndi-connection-factory.properties into samples\jms directory - Unzip jms.zip into org\apache\axis\components directory - Apply diff.txt Thanks, Jaime Meritt Sonic Software
jndi-connection-factory.properties
Description: Binary data
jms.zip
Description: Zip compressed data
cvs diff -w (in directory C:\CVSStore\xml-axis) ? java/samples/jms/jndi-connection-factory.properties ? java/src/org/apache/axis/components/jms cvs server: Diffing . cvs server: Diffing contrib cvs server: Diffing contrib/Axis-C++ cvs server: Diffing contrib/Axis-C++/Axis_Release cvs server: Diffing contrib/Axis-C++/Linux cvs server: Diffing contrib/Axis-C++/Linux/KDev cvs server: Diffing contrib/Axis-C++/Linux/KDev/axis cvs server: Diffing contrib/Axis-C++/Linux/KDev/axis/axtest cvs server: Diffing contrib/Axis-C++/TestHarnesses cvs server: Diffing contrib/Axis-C++/Win32 cvs server: Diffing contrib/Axis-C++/Win32/Axis_Release cvs server: Diffing contrib/Axis-C++/Win32/Calculator cvs server: Diffing contrib/Axis-C++/Win32/Fault cvs server: Diffing contrib/Axis-C++/Win32/TestHarness cvs server: Diffing contrib/Axis-C++/Win32/UserType cvs server: Diffing contrib/Axis-C++/Win32/axis-dll-not-finish cvs server: Diffing contrib/Axis-C++/docs cvs server: Diffing contrib/Axis-C++/docs/ApiDocs cvs server: Diffing contrib/Axis-C++/doxygen cvs server: Diffing contrib/Axis-C++/lib cvs server: Diffing contrib/Axis-C++/lib/AIX_4.3 cvs server: Diffing contrib/Axis-C++/lib/Linux cvs server: Diffing contrib/Axis-C++/lib/NT_4.0 cvs server: Diffing contrib/Axis-C++/lib/SunOS_5.6 cvs server: Diffing contrib/Axis-C++/lib/SunOS_5.7 cvs server: Diffing contrib/Axis-C++/lib/SunOS_5.8 cvs server: Diffing contrib/Axis-C++/objs cvs server: Diffing contrib/Axis-C++/objs/AIX_4.3 cvs server: Diffing contrib/Axis-C++/objs/AIX_4.3/common cvs server: Diffing contrib/Axis-C++/objs/Linux cvs server: Diffing contrib/Axis-C++/objs/Linux/common cvs server: Diffing contrib/Axis-C++/objs/NT_4.0 cvs server: Diffing contrib/Axis-C++/objs/SunOS_5.6 cvs server: Diffing contrib/Axis-C++/objs/SunOS_5.6/common cvs server: Diffing contrib/Axis-C++/objs/SunOS_5.7 cvs server: Diffing contrib/Axis-C++/objs/SunOS_5.7/common cvs server: Diffing contrib/Axis-C++/objs/SunOS_5.8 cvs server: Diffing contrib/Axis-C++/objs/SunOS_5.8/common cvs server: Diffing contrib/Axis-C++/src cvs server: Diffing contrib/Axis-C++/src/Client cvs server: Diffing contrib/Axis-C++/src/Encoding cvs server: Diffing contrib/Axis-C++/src/Message cvs server: Diffing contrib/Axis-C++/src/Transport cvs server: Diffing contrib/Axis-C++/src/Util cvs server: Diffing contrib/Axis-C++/src/Xml cvs server: Diffing contrib/Axis-C++/xerces-c cvs server: Diffing contrib/Axis-C++/xerces-c/bin cvs server: Diffing contrib/Axis-C++/xerces-c/include cvs server: Diffing contrib/Axis-C++/xerces-c/include/dom cvs server: Diffing contrib/Axis-C++/xerces-c/include/framework cvs server: Diffing contrib/Axis-C++/xerces-c/include/idom cvs server: Diffing contrib/Axis-C++/xerces-c/include/internal cvs server: Diffing contrib/Axis-C++/xerces-c/include/parsers cvs server: Diffing contrib/Axis-C++/xerces-c/include/sax cvs server: Diffing contrib/Axis-C++/xerces-c/include/sax2 cvs server: Diffing contrib/Axis-C++/xerces-c/include/util cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Compilers cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/MsgLoaders cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/MsgLoaders/ICU cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/MsgLoaders/InMemory cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/MsgLoaders/MsgCatalog cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/MsgLoaders/Win32 cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/AIX cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/HPUX cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/Linux cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/MacOS cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/OS2 cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/OS390 cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/PTX cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/Solaris cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/Tandem cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Platforms/Win32 cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Transcoders cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Transcoders/ICU cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Transcoders/Iconv cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/Transcoders/Win32 cvs server: Diffing contrib/Axis-C++/xerces-c/include/util/regx cvs server: Diffing contrib/Axis-C++/xerces-c/include/validators cvs server: Diffing contrib/Axis-C++/xerces-c/include/validators/DTD cvs server: Diffing contrib/Axis-C++/xerces-c/include/validators/common cvs server: Diffing contrib/Axis-C++/xerces-c/include/validators/datatype cvs server: Diffing contrib/Axis-C++/xerces-c/include/validators/schema cvs server: Diffing contrib/Axis-C++/xerces-c/lib cvs server: Diffing contrib/Axis-C++/xerces-c/lib/Linux cvs server: Diffing java Index: java/build.xml =================================================================== RCS file: /home/cvspublic/xml-axis/java/build.xml,v retrieving revision 1.192 diff -w -r1.192 build.xml 109a110 > <exclude name="**/org/apache/axis/components/jms/*" unless="jms.present"/> cvs server: Diffing java/docs cvs server: Diffing java/lib cvs server: Diffing java/samples cvs server: Diffing java/samples/addr cvs server: Diffing java/samples/attachments cvs server: Diffing java/samples/bidbuy cvs server: Diffing java/samples/echo cvs server: Diffing java/samples/encoding cvs server: Diffing java/samples/integrationGuide cvs server: Diffing java/samples/integrationGuide/example1 cvs server: Diffing java/samples/integrationGuide/example2 cvs server: Diffing java/samples/jaxm cvs server: Diffing java/samples/jaxrpc cvs server: Diffing java/samples/jaxrpc/address cvs server: Diffing java/samples/jaxrpc/hello cvs server: Diffing java/samples/jms Index: java/samples/jms/JMSTest.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/samples/jms/JMSTest.java,v retrieving revision 1.1 diff -w -r1.1 JMSTest.java 70d69 < import org.apache.axis.transport.jms.SonicConstants; 107c106 < if ((opts.isFlagSet('?') > 0) || (opts.isFlagSet('h') > 0)) { --- > if ((opts.isFlagSet('?') > 0) || (opts.isFlagSet('h') > 0)) 109d107 < } 110a109,113 > HashMap connectorMap = SimpleJMSListener.createConnectorMap(opts); > HashMap cfMap = SimpleJMSListener.createCFMap(opts); > String destination = opts.isValueSet('d'); > String username = opts.getUser(); > String password = opts.getPassword(); 112c115,120 < SimpleJMSListener listener = new SimpleJMSListener(opts); --- > SimpleJMSListener listener = new SimpleJMSListener(connectorMap, > cfMap, > destination, > username, > password, > false); 116c124 < if ( args == null ) { --- > if ( args == null || args.length == 0) 118,124d125 < } < < int numArgs = args.length; < String[] symbols = new String[numArgs]; < for (int i = 0; i < numArgs; i++) { < symbols[i] = args[i]; < } 128,152d128 < HashMap cfProps = new HashMap(); < cfProps.put(SonicConstants.BROKER_URL, opts.isValueSet('b')); < cfProps.put(SonicConstants.DEFAULT_USERNAME, opts.getUser()); < cfProps.put(SonicConstants.DEFAULT_PASSWORD, opts.getPassword()); < < // do we have a jndi name? < String jndiName = opts.isValueSet('n'); < if (jndiName != null) { < // w/ a jndi name, we can get the appropriate connection factory < cfProps.put(JMSConstants.CONNECTION_FACTORY_JNDI_NAME, jndiName); < } else { < // w/o a jndi name, we default to using the Sonic-specific method < // for creating a connection factory, which is by specifying the < // appropriate connection factory class from SonicConstants.java < < // topics or queues? < String cf = null; < if (opts.isFlagSet('t') > 0) { < cf = SonicConstants.TCF_CLASS; < } else { < cf = SonicConstants.QCF_CLASS; < } < cfProps.put(JMSConstants.CONNECTION_FACTORY_CLASS, cf); < } < 154c130 < JMSTransport transport = new JMSTransport(null, cfProps); --- > JMSTransport transport = new JMSTransport(connectorMap, cfMap); 165,168c141,142 < < //call.setUsername(opts.getUser() ); < //call.setPassword(opts.getPassword() ); < --- > //call.setUsername(username ); > //call.setPassword(password ); 175c149 < call.setProperty(JMSConstants.DESTINATION, "SampleQ1"); --- > call.setProperty(JMSConstants.DESTINATION, destination); 181,183c155,157 < for (int i = 0; i < symbols.length; i++) { < res = (Float) call.invoke(new Object[] {symbols[i]}); < System.out.println(symbols[i] + ": " + res); --- > for (int i = 0; i < args.length; i++) { > res = (Float) call.invoke(new Object[] {args[i]}); > System.out.println(args[i] + ": " + res); 197,200c171 < System.out.println(" -b brokerurl"); < System.out.println(" -u username"); < System.out.println(" -w password"); < System.out.println(); --- > System.out.println(" -c connection factory properties filename"); 204,205c175,176 < System.out.println(" -n jndi name for connection factory"); < System.out.println(" [jndi name obviates need for -t option]"); --- > System.out.println(" -u username"); > System.out.println(" -w password"); cvs server: Diffing java/samples/message cvs server: Diffing java/samples/misc cvs server: Diffing java/samples/proxy cvs server: Diffing java/samples/security cvs server: Diffing java/samples/stock cvs server: Diffing java/samples/transport cvs server: Diffing java/samples/transport/tcp cvs server: Diffing java/samples/userguide cvs server: Diffing java/samples/userguide/example1 cvs server: Diffing java/samples/userguide/example2 cvs server: Diffing java/samples/userguide/example3 cvs server: Diffing java/samples/userguide/example4 cvs server: Diffing java/samples/userguide/example5 cvs server: Diffing java/samples/userguide/example6 cvs server: Diffing java/src cvs server: Diffing java/src/javax cvs server: Diffing java/src/javax/xml cvs server: Diffing java/src/javax/xml/messaging cvs server: Diffing java/src/javax/xml/namespace cvs server: Diffing java/src/javax/xml/rpc cvs server: Diffing java/src/javax/xml/rpc/encoding cvs server: Diffing java/src/javax/xml/rpc/handler cvs server: Diffing java/src/javax/xml/rpc/handler/soap cvs server: Diffing java/src/javax/xml/rpc/holders cvs server: Diffing java/src/javax/xml/rpc/server cvs server: Diffing java/src/javax/xml/rpc/soap cvs server: Diffing java/src/javax/xml/soap cvs server: Diffing java/src/javax/xml/transform cvs server: Diffing java/src/javax/xml/transform/dom cvs server: Diffing java/src/javax/xml/transform/sax cvs server: Diffing java/src/javax/xml/transform/stream cvs server: Diffing java/src/org cvs server: Diffing java/src/org/apache cvs server: Diffing java/src/org/apache/axis cvs server: Diffing java/src/org/apache/axis/attachments cvs server: Diffing java/src/org/apache/axis/client cvs server: Diffing java/src/org/apache/axis/components cvs server: Diffing java/src/org/apache/axis/components/compiler cvs server: Diffing java/src/org/apache/axis/components/image cvs server: Diffing java/src/org/apache/axis/components/logger cvs server: Diffing java/src/org/apache/axis/components/net cvs server: Diffing java/src/org/apache/axis/configuration cvs server: Diffing java/src/org/apache/axis/deployment cvs server: Diffing java/src/org/apache/axis/deployment/wsdd cvs server: Diffing java/src/org/apache/axis/deployment/wsdd/providers cvs server: Diffing java/src/org/apache/axis/description cvs server: Diffing java/src/org/apache/axis/encoding cvs server: Diffing java/src/org/apache/axis/encoding/ser cvs server: Diffing java/src/org/apache/axis/enum cvs server: Diffing java/src/org/apache/axis/handlers cvs server: Diffing java/src/org/apache/axis/handlers/http cvs server: Diffing java/src/org/apache/axis/handlers/soap cvs server: Diffing java/src/org/apache/axis/holders cvs server: Diffing java/src/org/apache/axis/message cvs server: Diffing java/src/org/apache/axis/monitor cvs server: Diffing java/src/org/apache/axis/providers cvs server: Diffing java/src/org/apache/axis/providers/java cvs server: Diffing java/src/org/apache/axis/schema cvs server: Diffing java/src/org/apache/axis/security cvs server: Diffing java/src/org/apache/axis/security/servlet cvs server: Diffing java/src/org/apache/axis/security/simple cvs server: Diffing java/src/org/apache/axis/server cvs server: Diffing java/src/org/apache/axis/session cvs server: Diffing java/src/org/apache/axis/soap cvs server: Diffing java/src/org/apache/axis/strategies cvs server: Diffing java/src/org/apache/axis/transport cvs server: Diffing java/src/org/apache/axis/transport/http cvs server: Diffing java/src/org/apache/axis/transport/java cvs server: Diffing java/src/org/apache/axis/transport/jms Index: java/src/org/apache/axis/transport/jms/JMSConnector.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/transport/jms/JMSConnector.java,v retrieving revision 1.1 diff -w -r1.1 JMSConnector.java 80a81,82 > import org.apache.axis.components.jms.JMSVendorAdapter; > 107c109 < private Context m_context; --- > protected JMSVendorAdapter m_adapter; 119c121 < Context context) --- > JMSVendorAdapter adapter) 129c131 < m_context = context; --- > m_adapter = adapter; 207,219c209 < public JMSEndpoint createEndpoint(String destinationName) < throws JMSException, NamingException < { < if(m_context == null) < return internalCreateEndpoint(destinationName); < else < { < Destination destination = (Destination)m_context.lookup(destinationName); < return createEndpoint(destination); < } < } < < protected abstract JMSEndpoint internalCreateEndpoint(String destinationName) --- > public abstract JMSEndpoint createEndpoint(String destinationName) 328c318 < catch(JMSException e) --- > catch(Exception e) 400c390 < throws JMSException --- > throws Exception 419c409 < protected abstract void onConnect()throws JMSException; --- > protected abstract void onConnect()throws Exception; 478c468 < throws JMSException --- > throws Exception 531c521 < throws JMSException --- > throws Exception 657c647 < throws JMSException --- > throws Exception 681c671 < throws JMSException --- > throws Exception 805c795 < throws JMSException; --- > throws Exception; 832c822 < throws JMSException --- > throws Exception 929c919 < throws JMSException --- > throws Exception 971c961 < throws JMSException --- > throws Exception Index: java/src/org/apache/axis/transport/jms/JMSConnectorFactory.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/transport/jms/JMSConnectorFactory.java,v retrieving revision 1.1 diff -w -r1.1 JMSConnectorFactory.java 69,74c69,70 < import javax.naming.Context; < import javax.naming.InitialContext; < < import org.apache.axis.utils.ClassUtils; < import org.apache.axis.utils.BeanUtils; < import org.apache.axis.utils.BeanPropertyDescriptor; --- > import org.apache.axis.components.jms.JMSVendorAdapterFactory; > import org.apache.axis.components.jms.JMSVendorAdapter; 161a158,160 > String domain = MapUtils.removeStringProperty(connectorConfig, > JMSConstants.DOMAIN, > JMSConstants.DOMAIN_DEFAULT); 166,180c165,166 < ConnectionFactory factory = null; < Context context = null; < if(cfConfig.containsKey(JMSConstants.CONNECTION_FACTORY_JNDI_NAME)) < { < context = getContext(cfConfig); < factory = getConnectionFactoryFromJNDI(cfConfig, context); < } < else if(cfConfig.containsKey(JMSConstants.CONNECTION_FACTORY_CLASS)) < { < factory = getConnectionFactoryFromBean(cfConfig); < } < else < throw new IllegalArgumentException("invalidCfConfig"); < < if(factory instanceof QueueConnectionFactory) --- > JMSVendorAdapter adapter = JMSVendorAdapterFactory.getJMSVendorAdapter(); > if(domain.equals(JMSConstants.DOMAIN_QUEUE)) 182c168 < return new QueueConnector((QueueConnectionFactory)factory, --- > return new QueueConnector(adapter.getQueueConnectionFactory(cfConfig), 185c171,172 < allowReceive, clientID, username, password, context); --- > allowReceive, clientID, username, password, > adapter); 187c174 < else // (factory instanceof TopicConnectionFactory) --- > else // domain is Topic 189c176 < return new TopicConnector((TopicConnectionFactory)factory, --- > return new TopicConnector(adapter.getTopicConnectionFactory(cfConfig), 192c179,180 < allowReceive, clientID, username, password, context); --- > allowReceive, clientID, username, password, > adapter); 195,247d182 < < private static ConnectionFactory getConnectionFactoryFromBean(HashMap cfConfig) < throws Exception < { < String classname = (String)cfConfig.get(JMSConstants.CONNECTION_FACTORY_CLASS); < Class factoryClass = ClassUtils.forName(classname); < ConnectionFactory factory = (ConnectionFactory)factoryClass.newInstance(); < callSetters(cfConfig, factoryClass, factory); < return factory; < < } < < private static Context getContext(HashMap cfConfig) < throws Exception < { < Hashtable environment = new Hashtable(cfConfig); < return new InitialContext(environment); < } < < private static ConnectionFactory getConnectionFactoryFromJNDI(HashMap cfConfig, Context context) < throws Exception < { < String jndiName = (String)cfConfig.get(JMSConstants.CONNECTION_FACTORY_JNDI_NAME); < return (ConnectionFactory)context.lookup(jndiName); < } < < private static void callSetters(HashMap cfConfig, < Class factoryClass, < ConnectionFactory factory) < throws Exception < { < BeanPropertyDescriptor[] bpd = BeanUtils.getPd(factoryClass); < for(int i = 0; i < bpd.length; i++) < { < BeanPropertyDescriptor thisBPD = bpd[i]; < String propName = thisBPD.getName(); < if(cfConfig.containsKey(propName)) < { < Object value = cfConfig.get(propName); < String validType = thisBPD.getType().getName(); < if(!value.getClass().getName().equals(validType)) < throw new IllegalArgumentException("badType"); < if(!thisBPD.isWriteable()) < throw new IllegalArgumentException("notWriteable"); < if(thisBPD.isIndexed()) < throw new IllegalArgumentException("noIndexedSupport"); < thisBPD.set(factory, value); < } < } < } < < < Index: java/src/org/apache/axis/transport/jms/JMSConstants.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/transport/jms/JMSConstants.java,v retrieving revision 1.1 diff -w -r1.1 JMSConstants.java 92c92 < * <code>SonicConnectionFactory</code> parameter valid for either domain. This should --- > * <code>JMSConnectorFactory</code> parameter valid for either domain. This >should 105,106c105 < final static String CONNECTION_FACTORY_CLASS = < "transport.jms.ConnectionFactoryClass"; --- > final static String DOMAIN = "transport.jms.Domain"; 108,109c107,111 < final static String CONNECTION_FACTORY_JNDI_NAME = < "transport.jms.ConnectionFactoryJNDIName"; --- > final static String DOMAIN_QUEUE = "QUEUE"; > > final static String DOMAIN_TOPIC = "TOPIC"; > > final static String DOMAIN_DEFAULT = DOMAIN_QUEUE; Index: java/src/org/apache/axis/transport/jms/JMSEndpoint.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/transport/jms/JMSEndpoint.java,v retrieving revision 1.1 diff -w -r1.1 JMSEndpoint.java 82c82 < throws JMSException; --- > throws Exception; 92c92 < public byte[] call(byte[] message, long timeout)throws JMSException --- > public byte[] call(byte[] message, long timeout)throws Exception 107c107 < throws JMSException --- > throws Exception 120c120 < public void send(byte[] message)throws JMSException --- > public void send(byte[] message)throws Exception 133c133 < throws JMSException --- > throws Exception 147c147 < throws JMSException --- > throws Exception 160c160 < throws JMSException --- > throws Exception Index: java/src/org/apache/axis/transport/jms/QueueConnector.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/transport/jms/QueueConnector.java,v retrieving revision 1.1 diff -w -r1.1 QueueConnector.java 75,76d74 < import javax.naming.Context; < 78a77,78 > import org.apache.axis.components.jms.JMSVendorAdapter; > 100c100 < Context context) --- > JMSVendorAdapter adapter) 105c105 < username, password, context); --- > username, password, adapter); 108c108 < protected JMSEndpoint internalCreateEndpoint(String destination) --- > public JMSEndpoint createEndpoint(String destination) 163c163 < throws JMSException --- > throws Exception 165c165 < return session.createQueue(subject); --- > return m_adapter.getQueue(session, subject); 251c251 < throws JMSException --- > throws Exception 324c324 < throws JMSException --- > throws Exception Index: java/src/org/apache/axis/transport/jms/SimpleJMSListener.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/transport/jms/SimpleJMSListener.java,v retrieving revision 1.3 diff -w -r1.3 SimpleJMSListener.java 60a61,63 > import java.io.FileInputStream; > import java.io.BufferedInputStream; > import java.io.IOException; 62a66 > import java.util.Properties; 78a83 > 80a86 > 100c106 < private static boolean doThreads = true; --- > private static boolean doThreads; 106c112,114 < public SimpleJMSListener(Options options) --- > public SimpleJMSListener(HashMap connectorMap, HashMap cfMap, > String destination, String username, > String password, boolean doThreads) 109,130c117 < HashMap cfMap = new HashMap(); < cfMap.put(SonicConstants.BROKER_URL, options.isValueSet('b')); < < // do we have a jndi name? < String jndiName = options.isValueSet('n'); < if (jndiName != null) { < cfMap.put(JMSConstants.CONNECTION_FACTORY_JNDI_NAME, jndiName); < } else { < // topics or queues? < String cf = null; < if (options.isFlagSet('t') > 0) { < cf = SonicConstants.TCF_CLASS; < } else { < cf = SonicConstants.QCF_CLASS; < } < cfMap.put(JMSConstants.CONNECTION_FACTORY_CLASS, cf); < } < < // single-threaded? < if (options.isFlagSet('s') > 0) { < doThreads = false; < } --- > this.doThreads = doThreads; 134c121 < createServerConnector(null, --- > createServerConnector(connectorMap, 136,137c123,124 < options.getUser(), < options.getPassword()); --- > username, > password); 144,145c131 < endpoint = connector.createEndpoint(options.isValueSet('d')); < endpoint.registerListener(this); --- > endpoint = connector.createEndpoint(destination); 190a177 > throws Exception 191a179 > endpoint.registerListener(this); 195a184 > throws Exception 196a186 > endpoint.unregisterListener(this); 200a191,214 > public static final HashMap createConnectorMap(Options options) > { > HashMap connectorMap = new HashMap(); > if (options.isFlagSet('t') > 0) > { > //queue is default so only setup map if topic domain is required > connectorMap.put(JMSConstants.DOMAIN, JMSConstants.DOMAIN_TOPIC); > } > return connectorMap; > } > > public static final HashMap createCFMap(Options options) > throws IOException > { > String cfFile = options.isValueSet('c'); > if(cfFile == null) > return null; > > Properties cfProps = new Properties(); > cfProps.load(new BufferedInputStream(new FileInputStream(cfFile))); > HashMap cfMap = new HashMap(cfProps); > return cfMap; > } > 206c220 < if ((options.isFlagSet('?') > 0) || (options.isFlagSet('h') > 0)) { --- > if ((options.isFlagSet('?') > 0) || (options.isFlagSet('h') > 0)) 208d221 < } 210c223,228 < SimpleJMSListener listener = new SimpleJMSListener(options); --- > SimpleJMSListener listener = new >SimpleJMSListener(createConnectorMap(options), > createCFMap(options), > options.isValueSet('d'), > options.getUser(), > options.getPassword(), > options.isFlagSet('s') > >0); 218,221c236 < System.out.println(" -b brokerurl"); < System.out.println(" -u username"); < System.out.println(" -w password"); < System.out.println(); --- > System.out.println(" -c connection factory properties filename"); 225,226c240,241 < System.out.println(" -n jndi name for connection factory"); < System.out.println(" [jndi name obviates need for -t option]"); --- > System.out.println(" -u username"); > System.out.println(" -w password"); Index: java/src/org/apache/axis/transport/jms/TopicConnector.java =================================================================== RCS file: /home/cvspublic/xml-axis/java/src/org/apache/axis/transport/jms/TopicConnector.java,v retrieving revision 1.1 diff -w -r1.1 TopicConnector.java 84c84 < import javax.naming.Context; --- > import org.apache.axis.components.jms.JMSVendorAdapter; 106c106 < Context context) --- > JMSVendorAdapter adapter) 111c111 < clientID, username, password, context); --- > clientID, username, password, adapter); 153c153 < protected JMSEndpoint internalCreateEndpoint(String destination) --- > public JMSEndpoint createEndpoint(String destination) 181c181 < throws JMSException --- > throws Exception 183c183 < return session.createTopic(subject); --- > return m_adapter.getTopic(session, subject); 188c188 < throws JMSException --- > throws Exception 244c244 < throws JMSException --- > throws Exception 260c260 < throws JMSException --- > throws Exception 363c363 < throws JMSException --- > throws Exception cvs server: Diffing java/src/org/apache/axis/transport/local cvs server: Diffing java/src/org/apache/axis/types cvs server: Diffing java/src/org/apache/axis/utils cvs server: Diffing java/src/org/apache/axis/utils/bytecode cvs server: Diffing java/src/org/apache/axis/utils/cache cvs server: Diffing java/src/org/apache/axis/wsdl cvs server: Diffing java/src/org/apache/axis/wsdl/fromJava cvs server: Diffing java/src/org/apache/axis/wsdl/gen cvs server: Diffing java/src/org/apache/axis/wsdl/symbolTable cvs server: Diffing java/src/org/apache/axis/wsdl/toJava cvs server: Diffing java/test cvs server: Diffing java/test/RPCDispatch cvs server: Diffing java/test/chains cvs server: Diffing java/test/concurrency cvs server: Diffing java/test/doesntWork cvs server: Diffing java/test/dynamic cvs server: Diffing java/test/encoding cvs server: Diffing java/test/encoding/beans cvs server: Diffing java/test/faults cvs server: Diffing java/test/functional cvs server: Diffing java/test/functional/ant cvs server: Diffing java/test/httpunit cvs server: Diffing java/test/httpunit/lib cvs server: Diffing java/test/httpunit/src cvs server: Diffing java/test/httpunit/src/test cvs server: Diffing java/test/inheritance cvs server: Diffing java/test/lib cvs server: Diffing java/test/md5attach cvs server: Diffing java/test/message cvs server: Diffing java/test/outparams cvs server: Diffing java/test/properties cvs server: Diffing java/test/saaj cvs server: Diffing java/test/session cvs server: Diffing java/test/soap cvs server: Diffing java/test/soap12 cvs server: Diffing java/test/templateTest cvs server: Diffing java/test/types cvs server: Diffing java/test/utils cvs server: Diffing java/test/utils/cache cvs server: Diffing java/test/wsdd cvs server: Diffing java/test/wsdl cvs server: Diffing java/test/wsdl/_import cvs server: Diffing java/test/wsdl/addrNoImplSEI cvs server: Diffing java/test/wsdl/arrays cvs server: Diffing java/test/wsdl/attachments cvs server: Diffing java/test/wsdl/clash cvs server: Diffing java/test/wsdl/datatypes cvs server: Diffing java/test/wsdl/echo cvs server: Diffing java/test/wsdl/extensibility cvs server: Diffing java/test/wsdl/faults cvs server: Diffing java/test/wsdl/filegen cvs server: Diffing java/test/wsdl/getPort cvs server: Diffing java/test/wsdl/import2 cvs server: Diffing java/test/wsdl/import2/interface1 cvs server: Diffing java/test/wsdl/import2/interface1/interface2 cvs server: Diffing java/test/wsdl/import2/service1 cvs server: Diffing java/test/wsdl/import2/service1/service2 cvs server: Diffing java/test/wsdl/import2/types1 cvs server: Diffing java/test/wsdl/import2/types1/types2 cvs server: Diffing java/test/wsdl/import2/types1/types3 cvs server: Diffing java/test/wsdl/import3 cvs server: Diffing java/test/wsdl/import3/MultiImpIncl cvs server: Diffing java/test/wsdl/import3/MultiImpIncl/cmp cvs server: Diffing java/test/wsdl/import3/MultiImpIncl/includes cvs server: Diffing java/test/wsdl/import3/MultiImpIncl/tbl1 cvs server: Diffing java/test/wsdl/import3/MultiImpIncl/tbl2 cvs server: Diffing java/test/wsdl/import3/MultiImpIncl/wsdl cvs server: Diffing java/test/wsdl/include cvs server: Diffing java/test/wsdl/include/address cvs server: Diffing java/test/wsdl/include/state cvs server: Diffing java/test/wsdl/inheritance cvs server: Diffing java/test/wsdl/inout cvs server: Diffing java/test/wsdl/interop cvs server: Diffing java/test/wsdl/interop3 cvs server: Diffing java/test/wsdl/interop3/compound1 cvs server: Diffing java/test/wsdl/interop3/compound2 cvs server: Diffing java/test/wsdl/interop3/docLit cvs server: Diffing java/test/wsdl/interop3/docLitParam cvs server: Diffing java/test/wsdl/interop3/groupE cvs server: Diffing java/test/wsdl/interop3/groupE/client cvs server: Diffing java/test/wsdl/interop3/import1 cvs server: Diffing java/test/wsdl/interop3/import1/imported cvs server: Diffing java/test/wsdl/interop3/import2 cvs server: Diffing java/test/wsdl/interop3/import2/imported cvs server: Diffing java/test/wsdl/interop3/import3 cvs server: Diffing java/test/wsdl/interop3/import3/imported cvs server: Diffing java/test/wsdl/interop3/rpcEnc cvs server: Diffing java/test/wsdl/jaxrpchandler cvs server: Diffing java/test/wsdl/literal cvs server: Diffing java/test/wsdl/marrays cvs server: Diffing java/test/wsdl/multibinding cvs server: Diffing java/test/wsdl/multiref cvs server: Diffing java/test/wsdl/multithread cvs server: Diffing java/test/wsdl/names cvs server: Diffing java/test/wsdl/nested cvs server: Diffing java/test/wsdl/omit cvs server: Diffing java/test/wsdl/oneway cvs server: Diffing java/test/wsdl/opStyles cvs server: Diffing java/test/wsdl/parameterOrder cvs server: Diffing java/test/wsdl/polymorphism cvs server: Diffing java/test/wsdl/qualify cvs server: Diffing java/test/wsdl/qualify2 cvs server: Diffing java/test/wsdl/ram cvs server: Diffing java/test/wsdl/refattr cvs server: Diffing java/test/wsdl/roundtrip cvs server: Diffing java/test/wsdl/roundtrip/holders cvs server: Diffing java/test/wsdl/sequence cvs server: Diffing java/test/wsdl/session cvs server: Diffing java/test/wsdl/terra cvs server: Diffing java/test/wsdl/types cvs server: Diffing java/test/wsdl/wrapped cvs server: Diffing java/tools cvs server: Diffing java/tools/org cvs server: Diffing java/tools/org/apache cvs server: Diffing java/tools/org/apache/axis cvs server: Diffing java/tools/org/apache/axis/tools cvs server: Diffing java/tools/org/apache/axis/tools/ant cvs server: Diffing java/tools/org/apache/axis/tools/ant/axis cvs server: Diffing java/tools/org/apache/axis/tools/ant/foreach cvs server: Diffing java/tools/org/apache/axis/tools/ant/wsdl cvs server: Diffing java/webapps cvs server: Diffing java/webapps/axis cvs server: Diffing java/webapps/axis/WEB-INF cvs server: Diffing java/wsdd cvs server: Diffing java/wsdd/docs cvs server: Diffing java/wsdd/examples cvs server: Diffing java/wsdd/examples/chaining_examples cvs server: Diffing java/wsdd/examples/from_SOAP_v2 cvs server: Diffing java/wsdd/examples/serviceConfiguration_examples cvs server: Diffing java/wsdd/providers cvs server: Diffing java/xmls Index: java/xmls/targets.xml =================================================================== RCS file: /home/cvspublic/xml-axis/java/xmls/targets.xml,v retrieving revision 1.35 diff -w -r1.35 targets.xml cvs server: Diffing proposals cvs server: Diffing proposals/arch cvs server: Diffing proposals/arch/docs cvs server: Diffing proposals/arch/src cvs server: Diffing proposals/arch/src/org cvs server: Diffing proposals/arch/src/org/apache cvs server: Diffing proposals/arch/src/org/apache/axis cvs server: Diffing proposals/arch/src/org/apache/axis/flow cvs server: Diffing proposals/arch/test cvs server: Diffing proposals/arch/test/flow cvs server: Diffing proposals/async cvs server: Diffing proposals/async/samples cvs server: Diffing proposals/async/samples/async cvs server: Diffing proposals/async/src cvs server: Diffing proposals/async/src/org cvs server: Diffing proposals/async/src/org/apache cvs server: Diffing proposals/async/src/org/apache/axis cvs server: Diffing proposals/async/src/org/apache/axis/client cvs server: Diffing proposals/async/src/org/apache/axis/client/async cvs server: Diffing proposals/async/src/org/apache/axis/client/async/simple cvs server: Diffing proposals/async/test cvs server: Diffing proposals/async/test/functional cvs server: Diffing proposals/async_sonic cvs server: Diffing proposals/async_sonic/samples cvs server: Diffing proposals/async_sonic/samples/jms cvs server: Diffing proposals/async_sonic/src cvs server: Diffing proposals/async_sonic/src/org cvs server: Diffing proposals/async_sonic/src/org/apache cvs server: Diffing proposals/async_sonic/src/org/apache/axis cvs server: Diffing proposals/async_sonic/src/org/apache/axis/transport cvs server: Diffing proposals/async_sonic/src/org/apache/axis/transport/jms cvs server: Diffing proposals/async_sonic/src/org/apache/axis/utils cvs server: Diffing proposals/async_sonic/xmls *****CVS exited normally with code 1*****