| 1 21 package com.presumo.jms.client; 22 23 import com.presumo.jms.router.Router; 24 import com.presumo.jms.persistence.PersistentQueue; 25 import com.presumo.jms.plugin.MessageQueue; 26 import com.presumo.jms.plugin.implementation.MemoryMessageQueue; 27 28 import java.io.File ; 29 30 import javax.jms.ConnectionFactory ; 31 import javax.jms.JMSException ; 32 33 37 public class JmsConnectionFactory 38 implements ConnectionFactory , java.io.Serializable  39 { 40 41 protected String host; 42 43 44 protected int port; 45 46 47 protected File persistentDir; 48 49 50 protected String persistentFilePrefix = "presumo"; 51 52 53 protected int persistentLogSize = 100000; 54 55 59 public JmsConnectionFactory() 60 { 61 } 62 63 67 68 public void setHost(String host) 69 { 70 this.host = host; 71 } 72 73 public void setPort(int port) 74 { 75 this.port = port; 76 } 77 78 public void setPersistentDir(String directory) throws JMSException  79 { 80 File temp = new File (directory); 81 82 if (! temp.isDirectory()) { 83 throw new JMSException ("Specified directory for persistent messages"+ 84 " either is not a directory or does not exist: "+ 85 directory); 86 } 87 this.persistentDir = temp; 88 } 89 90 public void setPersistentPrefix(String prefix) 91 { 92 this.persistentFilePrefix = prefix; 93 } 94 95 public void setPersistentLogSize(int bytes) 96 { 97 this.persistentLogSize = bytes; 98 } 99 100 101 102 106 protected Router getRouter() throws JMSException  107 { 108 return new Router(createQueue()); 109 } 110 111 112 113 117 private MessageQueue createQueue() throws JMSException  118 { 119 if (persistentDir == null) { 120 return new MemoryMessageQueue(); 121 } 122 else { 123 return new PersistentQueue(persistentDir, 124 persistentFilePrefix, 125 persistentLogSize); 126 } 127 } 128 } 129 130 | Popular Tags |