From 880d07bbb72c3ce98c130802d702dd5915e6dbea Mon Sep 17 00:00:00 2001 From: kimmking Date: Mon, 28 Oct 2013 16:26:04 +0800 Subject: [PATCH] initial code --- .gitignore | 16 + README.md | 91 + pom.xml | 180 + .../activemq/store/mongodb/MongoDBHelper.java | 209 + .../store/mongodb/MongodbMessageStore.java | 102 + .../mongodb/MongodbPersistenceAdapter.java | 199 + .../mongodb/MongodbTopicMessageStore.java | 90 + .../mongodb/MongodbTransactionStore.java | 54 + .../org/apache/activemq/broker/broker | 17 + .../org/apache/activemq/broker/properties | 17 + .../services/org/apache/activemq/broker/xbean | 17 + .../jdbc/apache_derby_embedded_jdbc_driver | 17 + .../activemq/store/jdbc/axion_jdbc_driver | 17 + .../store/jdbc/hsql_database_engine_driver | 17 + .../activemq/store/jdbc/i-net_sprinta_2000 | 17 + ...ibm_db2_jdbc_universal_driver_architecture | 17 + ...dbc_driver_for_ibm_informix_dynamic_server | 17 + .../store/jdbc/jconnect__tm__for_jdbc__tm_ | 17 + ...4_jdbc_driver_for_ms_sql_server_and_sybase | 17 + .../microsoft_sql_server_2005_jdbc_driver | 17 + .../lock/microsoft_sql_server_jdbc_driver_2_0 | 17 + .../lock/microsoft_sql_server_jdbc_driver_3_0 | 17 + .../microsoft_sql_server_2005_jdbc_driver | 17 + .../jdbc/microsoft_sql_server_jdbc_driver_2_0 | 17 + .../jdbc/microsoft_sql_server_jdbc_driver_3_0 | 17 + .../activemq/store/jdbc/mysql-ab_jdbc_driver | 17 + .../activemq/store/jdbc/oracle_jdbc_driver | 17 + .../store/jdbc/postgresql_native_driver | 17 + .../org/apache/activemq/store/jdbc/sap_db | 17 + .../org/apache/activemq/store/jdbc/sqlserver | 17 + .../org/apache/activemq/transport/discovery | 17 + .../transport/discoveryagent/multicast | 17 + .../transport/discoveryagent/rendezvous | 17 + .../activemq/transport/discoveryagent/simple | 17 + .../activemq/transport/discoveryagent/static | 17 + .../org/apache/activemq/transport/failover | 17 + .../org/apache/activemq/transport/fanout | 17 + .../frametranslator/jms-advisory-json | 17 + .../frametranslator/jms-advisory-xml | 17 + .../transport/frametranslator/jms-byte | 17 + .../transport/frametranslator/jms-json | 17 + .../transport/frametranslator/jms-map-json | 17 + .../transport/frametranslator/jms-map-xml | 17 + .../transport/frametranslator/jms-object-json | 17 + .../transport/frametranslator/jms-object-xml | 17 + .../transport/frametranslator/jms-xml | 17 + .../activemq/transport/logwriters/custom | 17 + .../activemq/transport/logwriters/default | 17 + .../org/apache/activemq/transport/mock | 17 + .../org/apache/activemq/transport/multicast | 17 + .../org/apache/activemq/transport/nio | 17 + .../org/apache/activemq/transport/peer | 17 + .../org/apache/activemq/transport/ssl | 17 + .../org/apache/activemq/transport/stomp | 17 + .../org/apache/activemq/transport/stomp+nio | 17 + .../org/apache/activemq/transport/stomp+ssl | 17 + .../org/apache/activemq/transport/tcp | 17 + .../org/apache/activemq/transport/udp | 17 + .../services/org/apache/activemq/transport/vm | 17 + .../org/apache/activemq/wireformat/default | 17 + .../org/apache/activemq/wireformat/stomp | 17 + .../http/activemq.apache.org/schema/core | 319 + src/main/resources/META-INF/spring.handlers | 4 + src/main/resources/META-INF/spring.schemas | 30 + src/main/resources/activemq-kaha.xml | 69 + src/main/resources/activemq-mysql.xml | 87 + src/main/resources/activemq.xml | 67 + src/main/resources/activemq.xsd | 8431 +++++++++++++++++ src/main/resources/docs.txt | 12 + src/main/resources/log4j.properties | 40 + src/main/resources/mysql.txt | 1 + src/main/resources/readme.txt | 10 + src/main/resources/task.txt | 2 + src/test/java/kaha/TestSenderKaha.java | 71 + src/test/java/kaha/TestServerKaha.java | 134 + src/test/java/kk/TestSenderMysql.java | 68 + src/test/java/kk/TestServerMysql.java | 134 + .../org/qsoft/activemq/test/TestReceiver.java | 133 + .../org/qsoft/activemq/test/TestSender.java | 67 + .../org/qsoft/activemq/test/TestServer.java | 130 + 80 files changed, 11651 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/main/java/org/qsoft/activemq/store/mongodb/MongoDBHelper.java create mode 100644 src/main/java/org/qsoft/activemq/store/mongodb/MongodbMessageStore.java create mode 100644 src/main/java/org/qsoft/activemq/store/mongodb/MongodbPersistenceAdapter.java create mode 100644 src/main/java/org/qsoft/activemq/store/mongodb/MongodbTopicMessageStore.java create mode 100644 src/main/java/org/qsoft/activemq/store/mongodb/MongodbTransactionStore.java create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/broker/broker create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/broker/properties create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/broker/xbean create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/apache_derby_embedded_jdbc_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/axion_jdbc_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/hsql_database_engine_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/i-net_sprinta_2000 create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_db2_jdbc_universal_driver_architecture create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_informix_jdbc_driver_for_ibm_informix_dynamic_server create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jconnect__tm__for_jdbc__tm_ create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jtds_type_4_jdbc_driver_for_ms_sql_server_and_sybase create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_2005_jdbc_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_2_0 create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_3_0 create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_2005_jdbc_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_2_0 create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_3_0 create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/mysql-ab_jdbc_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/oracle_jdbc_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/postgresql_native_driver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sap_db create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sqlserver create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/discovery create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/multicast create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/rendezvous create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/simple create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/static create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/failover create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/fanout create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-json create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-xml create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-byte create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-json create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-json create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-xml create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-json create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-xml create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-xml create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/custom create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/default create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/mock create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/multicast create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/nio create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/peer create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/ssl create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/stomp create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+nio create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+ssl create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/tcp create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/udp create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/transport/vm create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/wireformat/default create mode 100644 src/main/resources/META-INF/services/org/apache/activemq/wireformat/stomp create mode 100644 src/main/resources/META-INF/services/org/apache/xbean/spring/http/activemq.apache.org/schema/core create mode 100644 src/main/resources/META-INF/spring.handlers create mode 100644 src/main/resources/META-INF/spring.schemas create mode 100644 src/main/resources/activemq-kaha.xml create mode 100644 src/main/resources/activemq-mysql.xml create mode 100644 src/main/resources/activemq.xml create mode 100644 src/main/resources/activemq.xsd create mode 100644 src/main/resources/docs.txt create mode 100644 src/main/resources/log4j.properties create mode 100644 src/main/resources/mysql.txt create mode 100644 src/main/resources/readme.txt create mode 100644 src/main/resources/task.txt create mode 100644 src/test/java/kaha/TestSenderKaha.java create mode 100644 src/test/java/kaha/TestServerKaha.java create mode 100644 src/test/java/kk/TestSenderMysql.java create mode 100644 src/test/java/kk/TestServerMysql.java create mode 100644 src/test/java/org/qsoft/activemq/test/TestReceiver.java create mode 100644 src/test/java/org/qsoft/activemq/test/TestSender.java create mode 100644 src/test/java/org/qsoft/activemq/test/TestServer.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..51f1a20 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +*.class + +# Package Files # +*.jar + +.project +.classpath +data/ +.git/ +target/ +.settings + +*.log +*.swp +*.diff +*.patch diff --git a/README.md b/README.md new file mode 100644 index 0000000..943f9d0 --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +ActiveMQ Store MongoDB project +========= + +### Introduce + This project for creating an ActiveMQ Store by MongoDB. + +### Architecture + 1. modify activemq.xsd in activemq-core.jar, insert mongodb node after kahaDB node: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2. add mongodb in META-INF/services/org/apache/xbean/spring/http/activemq.apache.org/schema/core in activemq-core.jar: + mongodb = org.qsoft.activemq.store.mongodb.MongodbPersistenceAdapter + + 3. configure your mongodb server in your activemq.xml: + + + + 4. package this project to a jar to reference in your project \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..126c89c --- /dev/null +++ b/pom.xml @@ -0,0 +1,180 @@ + + + + 4.0.0 + + + org.apache.activemq + activemq-parent + 5.7.0 + + + activemq-store-mongodb + bundle + ActiveMQ :: Store :: Mongodb + A persistence adapter with mongodb. + + + + + + + + org.mongodb + mongo-java-driver + 2.10.1 + + + org.slf4j + slf4j-api + + + org.apache.geronimo.specs + geronimo-jms_1.1_spec + + + + ${project.groupId} + activemq-core + false + + + + org.apache.geronimo.specs + geronimo-j2ee-management_1.1_spec + + + org.apache.geronimo.specs + geronimo-annotation_1.0_spec + true + + + commons-pool + commons-pool + true + + + commons-dbcp + commons-dbcp + 1.4 + + + mysql + mysql-connector-java + 5.1.15 + + + com.thoughtworks.xstream + xstream + true + + + + + org.apache.xbean + xbean-spring + true + + + + + org.springframework + spring-context + + + + org.apache.derby + derby + true + + + xalan + xalan + true + + + commons-net + commons-net + + + + + + + junit + junit + test + + + org.hamcrest + hamcrest-all + test + + + org.slf4j + slf4j-log4j12 + test + + + log4j + log4j + test + + + ${project.groupId} + activeio-core + false + test-jar + + + org.springframework + spring-jms + test + + + org.springframework + spring-test + test + + + + commons-io + commons-io + test + + + + + + commons-collections + commons-collections + test + + + commons-primitives + commons-primitives + test + + + axion + axion + test + + + regexp + regexp + test + + + + + + diff --git a/src/main/java/org/qsoft/activemq/store/mongodb/MongoDBHelper.java b/src/main/java/org/qsoft/activemq/store/mongodb/MongoDBHelper.java new file mode 100644 index 0000000..212be39 --- /dev/null +++ b/src/main/java/org/qsoft/activemq/store/mongodb/MongoDBHelper.java @@ -0,0 +1,209 @@ +package org.qsoft.activemq.store.mongodb; + +import java.io.IOException; +import java.net.UnknownHostException; +import java.util.ArrayList; +import java.util.List; + +import org.apache.activemq.command.ActiveMQDestination; +import org.apache.activemq.command.Message; +import org.apache.activemq.command.MessageAck; +import org.apache.activemq.command.MessageId; +import org.apache.activemq.util.ByteSequence; +import org.apache.activemq.util.ByteSequenceData; +import org.apache.activemq.util.IOExceptionSupport; +import org.apache.activemq.wireformat.WireFormat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.mongodb.BasicDBObject; +import com.mongodb.DB; +import com.mongodb.DBCollection; +import com.mongodb.DBCursor; +import com.mongodb.DBObject; +import com.mongodb.Mongo; +import com.mongodb.MongoException; + +public class MongoDBHelper { + + protected static final String MSGS = "ACTIVEMQ_MSGS"; + protected static final String ACKS = "ACTIVEMQ_ACKS"; + protected static final String LOCK = "ACTIVEMQ_LOCK"; + + protected static final String MSG_COLUMN = "MSG"; + protected static final String DEST_COLUMN = "CONTAINER"; + + private static final Logger LOG = LoggerFactory.getLogger(MongoDBHelper.class); + + Mongo mongo; + DB db; + WireFormat wireFormat; + + public MongoDBHelper(String host, int port, String dbName, WireFormat wireFormat) { + LOG.info("Connect to MongoDB[" + host + ":" + port + ":" + dbName + "]"); + try { + mongo = new Mongo(host, port); + db = mongo.getDB(dbName); + } catch (UnknownHostException e) { + LOG.error("error host.", e); + throw new RuntimeException(e); + } catch (MongoException e) { + LOG.error("MongoException.", e); + throw new RuntimeException(e); + } + + this.wireFormat = wireFormat; + } + + public DBCollection getMsgsCollection() { + return this.db.getCollection(MSGS); + } + + public DBCollection getAcksCollection() { + return this.db.getCollection(ACKS); + } + + public DBCollection getLockCollection() { + return this.db.getCollection(LOCK); + } + + public Boolean addMessage(Message message) throws IOException { + BasicDBObject bo = new BasicDBObject(); + MessageId messageId = message.getMessageId(); + // Serialize the Message.. + byte data[]; + try { + ByteSequence packet = wireFormat.marshal(message); + data = ByteSequenceData.toByteArray(packet); + } catch (IOException e) { + throw IOExceptionSupport.create("Failed to broker message: " + messageId + " in container: " + e, e); + } + bo.append("ID", messageId.getBrokerSequenceId()); + bo.append(DEST_COLUMN, message.getDestination().getQualifiedName()); + bo.append("MSGID_PROD", messageId.getProducerId().toString()); + bo.append("MSGID_SEQ", messageId.getProducerSequenceId()); + bo.append("EXPIRATION", message.getExpiration()); + bo.append(MSG_COLUMN, data); + bo.append("PRIORITY", message.getPriority()); + getMsgsCollection().save(bo); + + return true; + } + + public static void main(String[] args) { + + } + + public void close() { + this.mongo.close(); + } + + public Message getMessage(MessageId messageId) throws IOException { + + BasicDBObject bo = new BasicDBObject(); + bo.append("MSGID_PROD", messageId.getProducerId().toString()); + bo.append("MSGID_SEQ", messageId.getProducerSequenceId()); + DBObject o = getMsgsCollection().findOne(bo); + if (o == null) + return null; + byte[] data = (byte[]) o.get(MSG_COLUMN); + if (data == null) + return null; + + Message answer = null; + try { + answer = (Message) wireFormat.unmarshal(new ByteSequence(data)); + } catch (IOException e) { + throw IOExceptionSupport.create("Failed to broker message: " + messageId + " in container: " + e, e); + } + return answer; + } + + public int count() { + return (int) getMsgsCollection().count(); + } + + public synchronized void removeMessage(ActiveMQDestination destination, MessageAck ack) { + MessageId messageId = ack.getLastMessageId(); + ack.getDestination(); + BasicDBObject bo = new BasicDBObject(); + bo.append(DEST_COLUMN, destination.getQualifiedName()); + bo.append("MSGID_PROD", messageId.getProducerId().toString()); + bo.append("MSGID_SEQ", messageId.getProducerSequenceId()); + DBObject o = getMsgsCollection().findOne(bo); + if(o != null){ + Object sequenceId = o.get("ID"); + getMsgsCollection().remove(new BasicDBObject("ID",sequenceId)); + //getMsgsCollection().remove(new BasicDBObject("ID",new BasicDBObject("$lte",sequenceId))); + }else{ + LOG.error(bo.toString() + " is not found."); + } + + } + + public synchronized void removeAllMessages() { + getMsgsCollection().drop(); + getAcksCollection().drop(); + getLockCollection().drop(); + } + + public Message findOne() throws IOException { + DBObject o = getMsgsCollection().findOne(); + if (o == null) + return null; + byte[] data = (byte[]) o.get(MSG_COLUMN); + if (data == null) + return null; + + Message answer = null; + try { + answer = (Message) wireFormat.unmarshal(new ByteSequence(data)); + } catch (IOException e) { + throw IOExceptionSupport.create("Failed to broker message in container: " + e, e); + } + return answer; + } + + public List find(int limit, String container, long sequenceId) throws IOException { + List msgs = new ArrayList(limit); + + BasicDBObject bo = new BasicDBObject(); + bo.append(DEST_COLUMN, container); + bo.append("ID", new BasicDBObject("$gt",sequenceId)); + + DBCursor c = getMsgsCollection().find(bo).sort(new BasicDBObject("ID",1)).limit(limit); + while (c.hasNext()) { + DBObject o = c.next(); + if (o == null) + return null; + byte[] data = (byte[]) o.get(MSG_COLUMN); + if (data == null) + return null; + Message answer = null; + try { + answer = (Message) wireFormat.unmarshal(new ByteSequence(data)); + msgs.add(answer); + } catch (IOException e) { + throw IOExceptionSupport.create("Failed to broker message in container: " + e, e); + } + } + return trim(msgs); + } + + private List trim(List msgs2) { + if(msgs2 == null || msgs2.size() == 0) + return null; + Message m = msgs2.get(msgs2.size()-1); + while(m==null && msgs2.size() > 0){ + m = msgs2.remove(msgs2.size()-1); + } + return msgs2; + } + + @SuppressWarnings("unchecked") + public List findDestinations() { + List dists = getMsgsCollection().distinct(DEST_COLUMN); + return dists; + } + +} diff --git a/src/main/java/org/qsoft/activemq/store/mongodb/MongodbMessageStore.java b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbMessageStore.java new file mode 100644 index 0000000..7a08a25 --- /dev/null +++ b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbMessageStore.java @@ -0,0 +1,102 @@ +package org.qsoft.activemq.store.mongodb; + +import java.io.IOException; +import java.util.List; +import java.util.concurrent.atomic.AtomicLong; + +import org.apache.activemq.broker.ConnectionContext; +import org.apache.activemq.command.ActiveMQDestination; +import org.apache.activemq.command.Message; +import org.apache.activemq.command.MessageAck; +import org.apache.activemq.command.MessageId; +import org.apache.activemq.store.AbstractMessageStore; +import org.apache.activemq.store.MessageRecoveryListener; +import org.apache.activemq.wireformat.WireFormat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MongodbMessageStore extends AbstractMessageStore { + + protected AtomicLong lastRecoveredSequenceId = new AtomicLong(-1); + protected final WireFormat wireFormat; + protected final MongoDBHelper helper; + private static final Logger LOG = LoggerFactory.getLogger(MongodbMessageStore.class); + + public MongodbMessageStore(ActiveMQDestination destination, WireFormat wireFormat, MongoDBHelper helper) { + super(destination); + this.wireFormat = wireFormat; + this.helper = helper; + } + + @Override + public void addMessage(ConnectionContext context, Message message) throws IOException { + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.addMessage: " + message); + this.helper.addMessage(message); + } + + @Override + public Message getMessage(MessageId identity) throws IOException { + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.getMessage:{0}", identity); + return this.helper.getMessage(identity); + } + + @Override + public void removeMessage(ConnectionContext context, MessageAck ack) throws IOException { + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.removeMessage: " + context + "," + ack); + this.helper.removeMessage(this.getDestination(), ack); + } + + @Override + public void removeAllMessages(ConnectionContext context) throws IOException { + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.removeAllMessages"); + this.helper.removeAllMessages(); + } + + @Override + public void recover(MessageRecoveryListener container) throws Exception { + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.recover: " + container); + // TODO ? what is this + } + + @Override + public int getMessageCount() throws IOException { + LOG.debug("MongodbMessageStore.getMessageCount"); + return this.helper.count(); + } + + @Override + public void resetBatching() { + LOG.debug("MongodbMessageStore.resetBatching"); + } + + @Override + public void recoverNextMessages(int maxReturned, MessageRecoveryListener listener) throws Exception { + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.recoverNextMessages: " + maxReturned + " from " + lastRecoveredSequenceId.get()); + //long start = System.currentTimeMillis(); + List msgs = this.helper.find(maxReturned, this.getDestination().getQualifiedName(), lastRecoveredSequenceId.get()); + //long end1 = System.currentTimeMillis(); + + if(msgs != null) { + for (Message message : msgs) { + listener.recoverMessage(message); + lastRecoveredSequenceId.set(message.getMessageId().getBrokerSequenceId()); + } + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.recoverNextMessages: " + msgs.size() + " ~ " + this.getDestination().getQualifiedName()); + } + else{ + if(LOG.isDebugEnabled()) + LOG.debug("MongodbMessageStore.recoverNextMessages: NONE ~ " + this.getDestination().getQualifiedName()); + } +// long end = System.currentTimeMillis(); +// System.out.println((end1-start)+" " + (end-end1)); + + } + +} diff --git a/src/main/java/org/qsoft/activemq/store/mongodb/MongodbPersistenceAdapter.java b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbPersistenceAdapter.java new file mode 100644 index 0000000..93de7c4 --- /dev/null +++ b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbPersistenceAdapter.java @@ -0,0 +1,199 @@ +package org.qsoft.activemq.store.mongodb; + +import java.io.File; +import java.io.IOException; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.broker.BrokerServiceAware; +import org.apache.activemq.broker.ConnectionContext; +import org.apache.activemq.command.ActiveMQDestination; +import org.apache.activemq.command.ActiveMQQueue; +import org.apache.activemq.command.ActiveMQTopic; +import org.apache.activemq.command.ProducerId; +import org.apache.activemq.openwire.OpenWireFormat; +import org.apache.activemq.store.MessageStore; +import org.apache.activemq.store.PersistenceAdapter; +import org.apache.activemq.store.TopicMessageStore; +import org.apache.activemq.store.TransactionStore; +import org.apache.activemq.usage.SystemUsage; +import org.apache.activemq.wireformat.WireFormat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MongodbPersistenceAdapter implements PersistenceAdapter, BrokerServiceAware { + + private static final Logger LOG = LoggerFactory.getLogger(MongodbPersistenceAdapter.class); + + ConcurrentHashMap topicStores = new ConcurrentHashMap(); + ConcurrentHashMap queueStores = new ConcurrentHashMap(); + + protected MongoDBHelper helper; + private WireFormat wireFormat = new OpenWireFormat(); + + private String host; + private int port; + private String db; + + // private BrokerService brokerService; + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getDb() { + return db; + } + + public void setDb(String db) { + this.db = db; + } + + @Override + public void start() throws Exception { + helper = new MongoDBHelper(host, port, db, wireFormat); + } + + @Override + public void stop() throws Exception { + if (this.helper != null) + this.helper.close(); + } + + @Override + public void deleteAllMessages() throws IOException { + this.helper.removeAllMessages(); + } + + @Override + public void setBrokerService(BrokerService brokerService) { + // this.brokerService = brokerService; + } + + @Override + public Set getDestinations() { + Set set = new HashSet(); + List destinations = this.helper.findDestinations(); + for(String dest : destinations){ + set.add(ActiveMQDestination.createDestination(dest, ActiveMQDestination.QUEUE_TYPE)); + } + return set; + } + + @Override + public MessageStore createQueueMessageStore(ActiveMQQueue destination) throws IOException { + if(LOG.isDebugEnabled()) + LOG.debug("Create QueueMessageStore for destination:[" + destination.getQualifiedName() + "]"); + MongodbMessageStore store = new MongodbMessageStore(destination, wireFormat, helper); + this.queueStores.put(destination, store); + return store; + } + + @Override + public TopicMessageStore createTopicMessageStore(ActiveMQTopic destination) throws IOException { + if(LOG.isDebugEnabled()) + LOG.debug("Create TopicMessageStore for destination:[" + destination.getQualifiedName() + "]"); + MongodbTopicMessageStore store = new MongodbTopicMessageStore(destination, wireFormat, helper); + this.topicStores.put(destination, store); + return store; + } + + @Override + public void removeQueueMessageStore(ActiveMQQueue destination) { + if(LOG.isDebugEnabled()) + LOG.debug("Remove QueueMessageStore for destination:[" + destination.getQualifiedName() + "]"); + this.queueStores.remove(destination); + } + + @Override + public void removeTopicMessageStore(ActiveMQTopic destination) { + if(LOG.isDebugEnabled()) + LOG.debug("Remove TopicMessageStore for destination:[" + destination.getQualifiedName() + "]"); + this.topicStores.remove(destination); + } + + @Override + public long size() { + // ignore + return 0; + } + + @Override + public void setUsageManager(SystemUsage usageManager) { + // ignore + } + + @Override + public void setBrokerName(String brokerName) { + // ignore + } + + @Override + public void setDirectory(File dir) { + // ignore + } + + @Override + public void checkpoint(boolean sync) throws IOException { + // TODO not supported + } + + @Override + public long getLastMessageBrokerSequenceId() throws IOException { + // TODO Auto-generated method stub + return 0; + } + + @Override + public long getLastProducerSequenceId(ProducerId id) throws IOException { + // TODO Auto-generated method stub + return 0; + } + + public String toString() { + return "MongodbPersistenceAdapter(" + host + ":" + port + "/" + db + ")"; + } + + // // =========== not supported for tx ========== + @Override + public TransactionStore createTransactionStore() throws IOException { + // TODO not supported + return new MongodbTransactionStore(); + } + + @Override + public void beginTransaction(ConnectionContext context) throws IOException { + // TODO not supported + } + + @Override + public void commitTransaction(ConnectionContext context) throws IOException { + // TODO not supported + } + + @Override + public void rollbackTransaction(ConnectionContext context) throws IOException { + // TODO not supported + } + + @Override + public File getDirectory() { + return null; + } + +} diff --git a/src/main/java/org/qsoft/activemq/store/mongodb/MongodbTopicMessageStore.java b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbTopicMessageStore.java new file mode 100644 index 0000000..3be53aa --- /dev/null +++ b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbTopicMessageStore.java @@ -0,0 +1,90 @@ +package org.qsoft.activemq.store.mongodb; + +import java.io.IOException; +import java.util.concurrent.Future; + +import org.apache.activemq.broker.ConnectionContext; +import org.apache.activemq.command.ActiveMQDestination; +import org.apache.activemq.command.Message; +import org.apache.activemq.command.MessageAck; +import org.apache.activemq.command.MessageId; +import org.apache.activemq.command.SubscriptionInfo; +import org.apache.activemq.store.MessageRecoveryListener; +import org.apache.activemq.store.TopicMessageStore; +import org.apache.activemq.usage.MemoryUsage; +import org.apache.activemq.wireformat.WireFormat; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MongodbTopicMessageStore extends MongodbMessageStore implements + TopicMessageStore { + + private static final Logger LOG = LoggerFactory + .getLogger(MongodbTopicMessageStore.class); + + public MongodbTopicMessageStore(ActiveMQDestination destination, + WireFormat wireFormat, MongoDBHelper helper) { + super(destination, wireFormat, helper); + } + + @Override + public void acknowledge(ConnectionContext context, String clientId, + String subscriptionName, MessageId messageId, MessageAck ack) + throws IOException { + if(LOG.isDebugEnabled()) + LOG.debug("MongodbTopicMessageStore.acknowledge: " + clientId + "," + + subscriptionName + "," + messageId); + + } + + @Override + public void deleteSubscription(String clientId, String subscriptionName) + throws IOException { + LOG.debug("MongodbTopicMessageStore.deleteSubscription"); + + } + + @Override + public void recoverSubscription(String clientId, String subscriptionName, + MessageRecoveryListener listener) throws Exception { + LOG.debug("MongodbTopicMessageStore.recoverSubscription"); + } + + @Override + public void recoverNextMessages(String clientId, String subscriptionName, + int maxReturned, MessageRecoveryListener listener) throws Exception { + LOG.debug("MongodbTopicMessageStore.recoverNextMessages"); + } + + @Override + public void resetBatching(String clientId, String subscriptionName) { + LOG.debug("MongodbTopicMessageStore.resetBatching"); + } + + @Override + public int getMessageCount(String clientId, String subscriberName) + throws IOException { + LOG.debug("MongodbTopicMessageStore.getMessageCount"); + return 0; + } + + @Override + public SubscriptionInfo lookupSubscription(String clientId, + String subscriptionName) throws IOException { + LOG.debug("MongodbTopicMessageStore.lookupSubscription"); + return null; + } + + @Override + public SubscriptionInfo[] getAllSubscriptions() throws IOException { + LOG.debug("MongodbTopicMessageStore.getAllSubscriptions"); + return new SubscriptionInfo[0]; + } + + @Override + public void addSubsciption(SubscriptionInfo subscriptionInfo, + boolean retroactive) throws IOException { + LOG.debug("MongodbTopicMessageStore.addSubsciption"); + } + +} diff --git a/src/main/java/org/qsoft/activemq/store/mongodb/MongodbTransactionStore.java b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbTransactionStore.java new file mode 100644 index 0000000..f9ac02a --- /dev/null +++ b/src/main/java/org/qsoft/activemq/store/mongodb/MongodbTransactionStore.java @@ -0,0 +1,54 @@ +package org.qsoft.activemq.store.mongodb; + +import java.io.IOException; + +import org.apache.activemq.command.TransactionId; +import org.apache.activemq.store.TransactionRecoveryListener; +import org.apache.activemq.store.TransactionStore; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class MongodbTransactionStore implements TransactionStore { + + private static final Logger LOG = LoggerFactory + .getLogger(MongodbMessageStore.class); + + @Override + public void start() throws Exception { + LOG.debug("MongodbTransactionStore.start"); + + } + + @Override + public void stop() throws Exception { + LOG.debug("MongodbTransactionStore.stop"); + + } + + @Override + public void prepare(TransactionId txid) throws IOException { + LOG.debug("MongodbTransactionStore.prepare"); + + } + + @Override + public void commit(TransactionId txid, boolean wasPrepared, + Runnable preCommit, Runnable postCommit) throws IOException { + LOG.debug("MongodbTransactionStore.commit"); + + } + + @Override + public void rollback(TransactionId txid) throws IOException { + LOG.debug("MongodbTransactionStore.rollback"); + + } + + @Override + public void recover(TransactionRecoveryListener listener) + throws IOException { + LOG.debug("MongodbTransactionStore.recover"); + + } + +} diff --git a/src/main/resources/META-INF/services/org/apache/activemq/broker/broker b/src/main/resources/META-INF/services/org/apache/activemq/broker/broker new file mode 100644 index 0000000..47b64ca --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/broker/broker @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.broker.DefaultBrokerFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/broker/properties b/src/main/resources/META-INF/services/org/apache/activemq/broker/properties new file mode 100644 index 0000000..6b7516b --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/broker/properties @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.broker.PropertiesBrokerFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/broker/xbean b/src/main/resources/META-INF/services/org/apache/activemq/broker/xbean new file mode 100644 index 0000000..baa4b1e --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/broker/xbean @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.xbean.XBeanBrokerFactory \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/apache_derby_embedded_jdbc_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/apache_derby_embedded_jdbc_driver new file mode 100644 index 0000000..59008c8 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/apache_derby_embedded_jdbc_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/axion_jdbc_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/axion_jdbc_driver new file mode 100644 index 0000000..ebd44ae --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/axion_jdbc_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.AxionJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/hsql_database_engine_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/hsql_database_engine_driver new file mode 100644 index 0000000..5d84ff8 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/hsql_database_engine_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.HsqldbJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/i-net_sprinta_2000 b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/i-net_sprinta_2000 new file mode 100644 index 0000000..18ae53d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/i-net_sprinta_2000 @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_db2_jdbc_universal_driver_architecture b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_db2_jdbc_universal_driver_architecture new file mode 100644 index 0000000..7c3b0d6 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_db2_jdbc_universal_driver_architecture @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_informix_jdbc_driver_for_ibm_informix_dynamic_server b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_informix_jdbc_driver_for_ibm_informix_dynamic_server new file mode 100644 index 0000000..14f612a --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/ibm_informix_jdbc_driver_for_ibm_informix_dynamic_server @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.InformixJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jconnect__tm__for_jdbc__tm_ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jconnect__tm__for_jdbc__tm_ new file mode 100644 index 0000000..72a2f45 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jconnect__tm__for_jdbc__tm_ @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.SybaseJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jtds_type_4_jdbc_driver_for_ms_sql_server_and_sybase b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jtds_type_4_jdbc_driver_for_ms_sql_server_and_sybase new file mode 100644 index 0000000..18ae53d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/jtds_type_4_jdbc_driver_for_ms_sql_server_and_sybase @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_2005_jdbc_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_2005_jdbc_driver new file mode 100644 index 0000000..8eb77e5 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_2005_jdbc_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_2_0 b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_2_0 new file mode 100644 index 0000000..8eb77e5 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_2_0 @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_3_0 b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_3_0 new file mode 100644 index 0000000..8eb77e5 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/lock/microsoft_sql_server_jdbc_driver_3_0 @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_2005_jdbc_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_2005_jdbc_driver new file mode 100644 index 0000000..18ae53d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_2005_jdbc_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_2_0 b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_2_0 new file mode 100644 index 0000000..18ae53d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_2_0 @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_3_0 b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_3_0 new file mode 100644 index 0000000..18ae53d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/microsoft_sql_server_jdbc_driver_3_0 @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/mysql-ab_jdbc_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/mysql-ab_jdbc_driver new file mode 100644 index 0000000..54ddcb4 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/mysql-ab_jdbc_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/oracle_jdbc_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/oracle_jdbc_driver new file mode 100644 index 0000000..0ab67f6 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/oracle_jdbc_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/postgresql_native_driver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/postgresql_native_driver new file mode 100644 index 0000000..d9b4438 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/postgresql_native_driver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.PostgresqlJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sap_db b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sap_db new file mode 100644 index 0000000..120a4ac --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sap_db @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.MaxDBJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sqlserver b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sqlserver new file mode 100644 index 0000000..18ae53d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/store/jdbc/sqlserver @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/discovery b/src/main/resources/META-INF/services/org/apache/activemq/transport/discovery new file mode 100644 index 0000000..929c938 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/discovery @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.discovery.DiscoveryTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/multicast b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/multicast new file mode 100644 index 0000000..966830f --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/multicast @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgentFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/rendezvous b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/rendezvous new file mode 100644 index 0000000..1c0358d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/rendezvous @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.discovery.rendezvous.RendezvousDiscoveryAgentFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/simple b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/simple new file mode 100644 index 0000000..9436f04 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/simple @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.discovery.simple.SimpleDiscoveryAgentFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/static b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/static new file mode 100644 index 0000000..9436f04 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/discoveryagent/static @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.discovery.simple.SimpleDiscoveryAgentFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/failover b/src/main/resources/META-INF/services/org/apache/activemq/transport/failover new file mode 100644 index 0000000..81c2151 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/failover @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.failover.FailoverTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/fanout b/src/main/resources/META-INF/services/org/apache/activemq/transport/fanout new file mode 100644 index 0000000..62d5dd6 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/fanout @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.fanout.FanoutTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-json b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-json new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-json @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-xml b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-xml new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-advisory-xml @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-byte b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-byte new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-byte @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-json b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-json new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-json @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-json b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-json new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-json @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-xml b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-xml new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-map-xml @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-json b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-json new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-json @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-xml b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-xml new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-object-xml @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-xml b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-xml new file mode 100644 index 0000000..e7fb9ad --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/frametranslator/jms-xml @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.JmsFrameTranslator \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/custom b/src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/custom new file mode 100644 index 0000000..d890090 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/custom @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.logwriters.CustomLogWriter diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/default b/src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/default new file mode 100644 index 0000000..af6c314 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/logwriters/default @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.logwriters.DefaultLogWriter diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/mock b/src/main/resources/META-INF/services/org/apache/activemq/transport/mock new file mode 100644 index 0000000..dd3c85a --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/mock @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.mock.MockTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/multicast b/src/main/resources/META-INF/services/org/apache/activemq/transport/multicast new file mode 100644 index 0000000..4665bbe --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/multicast @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.multicast.MulticastTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/nio b/src/main/resources/META-INF/services/org/apache/activemq/transport/nio new file mode 100644 index 0000000..4a0aa62 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/nio @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.nio.NIOTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/peer b/src/main/resources/META-INF/services/org/apache/activemq/transport/peer new file mode 100644 index 0000000..0825a9b --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/peer @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.peer.PeerTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/ssl b/src/main/resources/META-INF/services/org/apache/activemq/transport/ssl new file mode 100644 index 0000000..c2576c6 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/ssl @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.tcp.SslTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp b/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp new file mode 100644 index 0000000..4704ed9 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.StompTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+nio b/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+nio new file mode 100644 index 0000000..80a304c --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+nio @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.StompNIOTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+ssl b/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+ssl new file mode 100644 index 0000000..f62079b --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/stomp+ssl @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.StompSslTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/tcp b/src/main/resources/META-INF/services/org/apache/activemq/transport/tcp new file mode 100644 index 0000000..ab6badf --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/tcp @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.tcp.TcpTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/udp b/src/main/resources/META-INF/services/org/apache/activemq/transport/udp new file mode 100644 index 0000000..29d860d --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/udp @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.udp.UdpTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/transport/vm b/src/main/resources/META-INF/services/org/apache/activemq/transport/vm new file mode 100644 index 0000000..3ee3536 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/transport/vm @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.vm.VMTransportFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/wireformat/default b/src/main/resources/META-INF/services/org/apache/activemq/wireformat/default new file mode 100644 index 0000000..1b993e1 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/wireformat/default @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.openwire.OpenWireFormatFactory diff --git a/src/main/resources/META-INF/services/org/apache/activemq/wireformat/stomp b/src/main/resources/META-INF/services/org/apache/activemq/wireformat/stomp new file mode 100644 index 0000000..7f80527 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/activemq/wireformat/stomp @@ -0,0 +1,17 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +class=org.apache.activemq.transport.stomp.StompWireFormatFactory \ No newline at end of file diff --git a/src/main/resources/META-INF/services/org/apache/xbean/spring/http/activemq.apache.org/schema/core b/src/main/resources/META-INF/services/org/apache/xbean/spring/http/activemq.apache.org/schema/core new file mode 100644 index 0000000..70e9cd8 --- /dev/null +++ b/src/main/resources/META-INF/services/org/apache/xbean/spring/http/activemq.apache.org/schema/core @@ -0,0 +1,319 @@ +# NOTE: this file is autogenerated by Apache XBean + +# beans +abortSlowConsumerStrategy = org.apache.activemq.broker.region.policy.AbortSlowConsumerStrategy + +amqPersistenceAdapter = org.apache.activemq.store.amq.AMQPersistenceAdapter +amqPersistenceAdapter.indexPageSize.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +amqPersistenceAdapter.maxCheckpointMessageAddSize.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor +amqPersistenceAdapter.maxFileLength.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +amqPersistenceAdapter.maxReferenceFileLength.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor + +amqPersistenceAdapterFactory = org.apache.activemq.store.amq.AMQPersistenceAdapterFactory + +authenticationUser = org.apache.activemq.security.AuthenticationUser +org.apache.activemq.security.AuthenticationUser(java.lang.String,java.lang.String,java.lang.String).parameterNames = username password groups + +authorizationEntry = org.apache.activemq.security.AuthorizationEntry + +authorizationMap = org.apache.activemq.security.DefaultAuthorizationMap +org.apache.activemq.security.DefaultAuthorizationMap(java.util.List).parameterNames = authorizationEntries + +authorizationPlugin = org.apache.activemq.security.AuthorizationPlugin +org.apache.activemq.security.AuthorizationPlugin(org.apache.activemq.security.AuthorizationMap).parameterNames = map + +axionJDBCAdapter = org.apache.activemq.store.jdbc.adapter.AxionJDBCAdapter + +blobJDBCAdapter = org.apache.activemq.store.jdbc.adapter.BlobJDBCAdapter + +broker = org.apache.activemq.xbean.XBeanBrokerService +broker.initMethod = afterPropertiesSet +broker.destroyMethod = destroy + +brokerService = org.apache.activemq.broker.BrokerService + +bytesJDBCAdapter = org.apache.activemq.store.jdbc.adapter.BytesJDBCAdapter + +commandAgent = org.apache.activemq.broker.util.CommandAgent +commandAgent.initMethod = start +commandAgent.destroyMethod = stop + +compositeDemandForwardingBridge = org.apache.activemq.network.CompositeDemandForwardingBridge +org.apache.activemq.network.CompositeDemandForwardingBridge(org.apache.activemq.network.NetworkBridgeConfiguration,org.apache.activemq.transport.Transport,org.apache.activemq.transport.Transport).parameterNames = configuration localBroker remoteBroker + +compositeQueue = org.apache.activemq.broker.region.virtual.CompositeQueue + +compositeTopic = org.apache.activemq.broker.region.virtual.CompositeTopic + +connectionDotFilePlugin = org.apache.activemq.broker.view.ConnectionDotFilePlugin + +connectionFactory = org.apache.activemq.spring.ActiveMQConnectionFactory +connectionFactory.initMethod = afterPropertiesSet + +constantPendingMessageLimitStrategy = org.apache.activemq.broker.region.policy.ConstantPendingMessageLimitStrategy + +database-locker = org.apache.activemq.store.jdbc.DefaultDatabaseLocker +org.apache.activemq.store.jdbc.DefaultDatabaseLocker(org.apache.activemq.store.jdbc.JDBCPersistenceAdapter).parameterNames = persistenceAdapter + +db2JDBCAdapter = org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter + +defaultIOExceptionHandler = org.apache.activemq.util.DefaultIOExceptionHandler + +defaultJDBCAdapter = org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter + +defaultUsageCapacity = org.apache.activemq.usage.DefaultUsageCapacity + +demandForwardingBridge = org.apache.activemq.network.DemandForwardingBridge +org.apache.activemq.network.DemandForwardingBridge(org.apache.activemq.network.NetworkBridgeConfiguration,org.apache.activemq.transport.Transport,org.apache.activemq.transport.Transport).parameterNames = configuration localBroker remoteBroker + +destinationDotFilePlugin = org.apache.activemq.broker.view.DestinationDotFilePlugin + +destinationEntry = org.apache.activemq.filter.DefaultDestinationMapEntry + +discardingDLQBrokerPlugin = org.apache.activemq.plugin.DiscardingDLQBrokerPlugin + +fileCursor = org.apache.activemq.broker.region.policy.FilePendingSubscriberMessageStoragePolicy + +fileDurableSubscriberCursor = org.apache.activemq.broker.region.policy.FilePendingDurableSubscriberMessageStoragePolicy + +fileQueueCursor = org.apache.activemq.broker.region.policy.FilePendingQueueMessageStoragePolicy + +filteredDestination = org.apache.activemq.broker.region.virtual.FilteredDestination + +fixedCountSubscriptionRecoveryPolicy = org.apache.activemq.broker.region.policy.FixedCountSubscriptionRecoveryPolicy + +fixedSizedSubscriptionRecoveryPolicy = org.apache.activemq.broker.region.policy.FixedSizedSubscriptionRecoveryPolicy + +forcePersistencyModeBroker = org.apache.activemq.plugin.ForcePersistencyModeBroker +org.apache.activemq.plugin.ForcePersistencyModeBroker(org.apache.activemq.broker.Broker).parameterNames = next + +forcePersistencyModeBrokerPlugin = org.apache.activemq.plugin.ForcePersistencyModeBrokerPlugin + +forwardingBridge = org.apache.activemq.network.ForwardingBridge +org.apache.activemq.network.ForwardingBridge(org.apache.activemq.transport.Transport,org.apache.activemq.transport.Transport).parameterNames = localBroker remoteBroker + +hsqldb-jdbc-adapter = org.apache.activemq.store.jdbc.adapter.HsqldbJDBCAdapter + +imageBasedJDBCAdaptor = org.apache.activemq.store.jdbc.adapter.ImageBasedJDBCAdaptor + +inboundQueueBridge = org.apache.activemq.network.jms.InboundQueueBridge +org.apache.activemq.network.jms.InboundQueueBridge(java.lang.String).parameterNames = inboundQueueName + +inboundTopicBridge = org.apache.activemq.network.jms.InboundTopicBridge +org.apache.activemq.network.jms.InboundTopicBridge(java.lang.String).parameterNames = inboundTopicName + +individualDeadLetterStrategy = org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy + +informixJDBCAdapter = org.apache.activemq.store.jdbc.adapter.InformixJDBCAdapter + +jaasAuthenticationPlugin = org.apache.activemq.security.JaasAuthenticationPlugin + +jaasCertificateAuthenticationPlugin = org.apache.activemq.security.JaasCertificateAuthenticationPlugin + +jaasDualAuthenticationPlugin = org.apache.activemq.security.JaasDualAuthenticationPlugin + +jdbcPersistenceAdapter = org.apache.activemq.store.jdbc.JDBCPersistenceAdapter +org.apache.activemq.store.jdbc.JDBCPersistenceAdapter(javax.sql.DataSource,org.apache.activemq.wireformat.WireFormat).parameterNames = ds wireFormat + +jmsQueueConnector = org.apache.activemq.network.jms.JmsQueueConnector + +jmsTopicConnector = org.apache.activemq.network.jms.JmsTopicConnector + +journalPersistenceAdapter = org.apache.activemq.store.journal.JournalPersistenceAdapter +org.apache.activemq.store.journal.JournalPersistenceAdapter(org.apache.activeio.journal.Journal,org.apache.activemq.store.PersistenceAdapter,org.apache.activemq.thread.TaskRunnerFactory).parameterNames = journal longTermPersistence taskRunnerFactory + +journalPersistenceAdapterFactory = org.apache.activemq.store.journal.JournalPersistenceAdapterFactory +journalPersistenceAdapterFactory.journalLogFileSize.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor + +journaledJDBC = org.apache.activemq.store.PersistenceAdapterFactoryBean +journaledJDBC.journalLogFileSize.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor + +kahaDB = org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter +kahaDB.indexCacheSize.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +kahaDB.indexWriteBatchSize.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +kahaDB.journalMaxFileLength.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor +kahaDB.journalMaxWriteBatchSize.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor + +kahaPersistenceAdapter = org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter +kahaPersistenceAdapter.maxDataFileLength.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter(java.util.concurrent.atomic.AtomicLong).parameterNames = size + +lDAPAuthorizationMap = org.apache.activemq.security.LDAPAuthorizationMap +org.apache.activemq.security.LDAPAuthorizationMap(java.util.Map).parameterNames = options + +lastImageSubscriptionRecoveryPolicy = org.apache.activemq.broker.region.policy.LastImageSubscriptionRecoveryPolicy + +ldapNetworkConnector = org.apache.activemq.network.LdapNetworkConnector +ldapNetworkConnector.prefetchSize.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor + +loggingBrokerPlugin = org.apache.activemq.broker.util.LoggingBrokerPlugin +loggingBrokerPlugin.initMethod = afterPropertiesSet + +managementContext = org.apache.activemq.broker.jmx.ManagementContext +managementContext.connectorPort.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor +managementContext.rmiServerPort.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor +org.apache.activemq.broker.jmx.ManagementContext(javax.management.MBeanServer).parameterNames = server + +masterConnector = org.apache.activemq.broker.ft.MasterConnector +org.apache.activemq.broker.ft.MasterConnector(java.lang.String).parameterNames = remoteUri + +maxdb-jdbc-adapter = org.apache.activemq.store.jdbc.adapter.MaxDBJDBCAdapter + +memoryPersistenceAdapter = org.apache.activemq.store.memory.MemoryPersistenceAdapter + +memoryUsage = org.apache.activemq.usage.MemoryUsage +memoryUsage.limit.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +memoryUsage.percentUsageMinDelta.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +org.apache.activemq.usage.MemoryUsage(org.apache.activemq.usage.MemoryUsage).parameterNames = parent +org.apache.activemq.usage.MemoryUsage(java.lang.String).parameterNames = name +org.apache.activemq.usage.MemoryUsage(org.apache.activemq.usage.MemoryUsage,java.lang.String).parameterNames = parent name +org.apache.activemq.usage.MemoryUsage(org.apache.activemq.usage.MemoryUsage,java.lang.String,float).parameterNames = parent name portion + +messageGroupHashBucketFactory = org.apache.activemq.broker.region.group.MessageGroupHashBucketFactory + +mirroredQueue = org.apache.activemq.broker.region.virtual.MirroredQueue + +multicastNetworkConnector = org.apache.activemq.network.MulticastNetworkConnector +multicastNetworkConnector.prefetchSize.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor +org.apache.activemq.network.MulticastNetworkConnector(java.net.URI).parameterNames = remoteURI + +multicastTraceBrokerPlugin = org.apache.activemq.broker.util.MulticastTraceBrokerPlugin + +mysql-jdbc-adapter = org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter + +networkConnector = org.apache.activemq.network.DiscoveryNetworkConnector +networkConnector.prefetchSize.propertyEditor = org.apache.activemq.util.MemoryIntPropertyEditor +org.apache.activemq.network.DiscoveryNetworkConnector(java.net.URI).parameterNames = discoveryURI + +noSubscriptionRecoveryPolicy = org.apache.activemq.broker.region.policy.NoSubscriptionRecoveryPolicy + +oldestMessageEvictionStrategy = org.apache.activemq.broker.region.policy.OldestMessageEvictionStrategy + +oldestMessageWithLowestPriorityEvictionStrategy = org.apache.activemq.broker.region.policy.OldestMessageWithLowestPriorityEvictionStrategy + +oracleJDBCAdapter = org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter + +outboundQueueBridge = org.apache.activemq.network.jms.OutboundQueueBridge +org.apache.activemq.network.jms.OutboundQueueBridge(java.lang.String).parameterNames = outboundQueueName + +outboundTopicBridge = org.apache.activemq.network.jms.OutboundTopicBridge +org.apache.activemq.network.jms.OutboundTopicBridge(java.lang.String).parameterNames = outboundTopicName + +pListStore = org.apache.activemq.store.kahadb.plist.PListStore + +policyEntry = org.apache.activemq.broker.region.policy.PolicyEntry +policyEntry.memoryLimit.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor + +policyMap = org.apache.activemq.broker.region.policy.PolicyMap + +postgresql-jdbc-adapter = org.apache.activemq.store.jdbc.adapter.PostgresqlJDBCAdapter + +prefetchPolicy = org.apache.activemq.ActiveMQPrefetchPolicy + +prefetchRatePendingMessageLimitStrategy = org.apache.activemq.broker.region.policy.PrefetchRatePendingMessageLimitStrategy + +priorityNetworkDispatchPolicy = org.apache.activemq.broker.region.policy.PriorityNetworkDispatchPolicy + +proxyConnector = org.apache.activemq.proxy.ProxyConnector + +queryBasedSubscriptionRecoveryPolicy = org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy + +queue = org.apache.activemq.command.ActiveMQQueue +org.apache.activemq.command.ActiveMQQueue(java.lang.String).parameterNames = name + +queueDispatchSelector = org.apache.activemq.broker.region.QueueDispatchSelector +org.apache.activemq.broker.region.QueueDispatchSelector(org.apache.activemq.command.ActiveMQDestination).parameterNames = destination + +redeliveryPolicy = org.apache.activemq.RedeliveryPolicy + +roundRobinDispatchPolicy = org.apache.activemq.broker.region.policy.RoundRobinDispatchPolicy + +sharedDeadLetterStrategy = org.apache.activemq.broker.region.policy.SharedDeadLetterStrategy + +simpleAuthenticationPlugin = org.apache.activemq.security.SimpleAuthenticationPlugin +org.apache.activemq.security.SimpleAuthenticationPlugin(java.util.List).parameterNames = users + +simpleAuthorizationMap = org.apache.activemq.security.SimpleAuthorizationMap +org.apache.activemq.security.SimpleAuthorizationMap(org.apache.activemq.filter.DestinationMap,org.apache.activemq.filter.DestinationMap,org.apache.activemq.filter.DestinationMap).parameterNames = writeACLs readACLs adminACLs + +simpleDispatchPolicy = org.apache.activemq.broker.region.policy.SimpleDispatchPolicy + +simpleDispatchSelector = org.apache.activemq.broker.region.policy.SimpleDispatchSelector +org.apache.activemq.broker.region.policy.SimpleDispatchSelector(org.apache.activemq.command.ActiveMQDestination).parameterNames = destination + +simpleJmsMessageConvertor = org.apache.activemq.network.jms.SimpleJmsMessageConvertor + +simpleMessageGroupMapFactory = org.apache.activemq.broker.region.group.SimpleMessageGroupMapFactory + +sslContext = org.apache.activemq.spring.SpringSslContext +sslContext.initMethod = afterPropertiesSet + +statements = org.apache.activemq.store.jdbc.Statements + +statisticsBrokerPlugin = org.apache.activemq.plugin.StatisticsBrokerPlugin + +storeCursor = org.apache.activemq.broker.region.policy.StorePendingQueueMessageStoragePolicy + +storeDurableSubscriberCursor = org.apache.activemq.broker.region.policy.StorePendingDurableSubscriberMessageStoragePolicy + +storeUsage = org.apache.activemq.usage.StoreUsage +storeUsage.limit.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +storeUsage.percentUsageMinDelta.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +org.apache.activemq.usage.StoreUsage(java.lang.String,org.apache.activemq.store.PersistenceAdapter).parameterNames = name store +org.apache.activemq.usage.StoreUsage(org.apache.activemq.usage.StoreUsage,java.lang.String).parameterNames = parent name + +streamJDBCAdapter = org.apache.activemq.store.jdbc.adapter.StreamJDBCAdapter + +strictOrderDispatchPolicy = org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy + +sybase-jdbc-adapter = org.apache.activemq.store.jdbc.adapter.SybaseJDBCAdapter + +systemUsage = org.apache.activemq.usage.SystemUsage +org.apache.activemq.usage.SystemUsage(java.lang.String,org.apache.activemq.store.PersistenceAdapter,org.apache.activemq.store.kahadb.plist.PListStore).parameterNames = name adapter tempStore +org.apache.activemq.usage.SystemUsage(org.apache.activemq.usage.SystemUsage,java.lang.String).parameterNames = parent name + +tempDestinationAuthorizationEntry = org.apache.activemq.security.TempDestinationAuthorizationEntry + +tempUsage = org.apache.activemq.usage.TempUsage +tempUsage.limit.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +tempUsage.percentUsageMinDelta.propertyEditor = org.apache.activemq.util.MemoryPropertyEditor +org.apache.activemq.usage.TempUsage(java.lang.String,org.apache.activemq.store.kahadb.plist.PListStore).parameterNames = name store +org.apache.activemq.usage.TempUsage(org.apache.activemq.usage.TempUsage,java.lang.String).parameterNames = parent name + +timeStampingBrokerPlugin = org.apache.activemq.broker.util.TimeStampingBrokerPlugin + +timedSubscriptionRecoveryPolicy = org.apache.activemq.broker.region.policy.TimedSubscriptionRecoveryPolicy + +topic = org.apache.activemq.command.ActiveMQTopic +org.apache.activemq.command.ActiveMQTopic(java.lang.String).parameterNames = name + +traceBrokerPathPlugin = org.apache.activemq.broker.util.TraceBrokerPathPlugin + +transact-database-locker = org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker +org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker(org.apache.activemq.store.jdbc.JDBCPersistenceAdapter).parameterNames = persistenceAdapter + +transact-jdbc-adapter = org.apache.activemq.store.jdbc.adapter.TransactJDBCAdapter + +transportConnector = org.apache.activemq.broker.TransportConnector +org.apache.activemq.broker.TransportConnector(org.apache.activemq.transport.TransportServer).parameterNames = server + +udpTraceBrokerPlugin = org.apache.activemq.broker.util.UDPTraceBrokerPlugin + +usageCapacity = org.apache.activemq.usage.UsageCapacity + +virtualDestinationInterceptor = org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor + +virtualTopic = org.apache.activemq.broker.region.virtual.VirtualTopic + +vmCursor = org.apache.activemq.broker.region.policy.VMPendingSubscriberMessageStoragePolicy + +vmDurableCursor = org.apache.activemq.broker.region.policy.VMPendingDurableSubscriberMessageStoragePolicy + +vmQueueCursor = org.apache.activemq.broker.region.policy.VMPendingQueueMessageStoragePolicy + +xaConnectionFactory = org.apache.activemq.spring.ActiveMQXAConnectionFactory +xaConnectionFactory.initMethod = afterPropertiesSet + +mongodb = org.qsoft.activemq.store.mongodb.MongodbPersistenceAdapter + + diff --git a/src/main/resources/META-INF/spring.handlers b/src/main/resources/META-INF/spring.handlers new file mode 100644 index 0000000..e98dc5d --- /dev/null +++ b/src/main/resources/META-INF/spring.handlers @@ -0,0 +1,4 @@ +#Generated by xbean-spring +#Mon Mar 28 19:10:40 IST 2011 +http\://activemq.apache.org/schema/core=org.apache.xbean.spring.context.v2.XBeanNamespaceHandler + diff --git a/src/main/resources/META-INF/spring.schemas b/src/main/resources/META-INF/spring.schemas new file mode 100644 index 0000000..e3a2613 --- /dev/null +++ b/src/main/resources/META-INF/spring.schemas @@ -0,0 +1,30 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- +http\://activemq.org/config/1.0=activemq.xsd +http\://activemq.org/config/1.0/1.0.xsd=activemq.xsd +http\://activemq.apache.org/schema/core=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.1.0.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.2.0.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.3.0.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.3.1.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.3.2.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.4.0.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.4.1.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.4.2.xsd=activemq.xsd +http\://activemq.apache.org/schema/core/activemq-core-5.5.0.xsd=activemq.xsd diff --git a/src/main/resources/activemq-kaha.xml b/src/main/resources/activemq-kaha.xml new file mode 100644 index 0000000..c7a253d --- /dev/null +++ b/src/main/resources/activemq-kaha.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/activemq-mysql.xml b/src/main/resources/activemq-mysql.xml new file mode 100644 index 0000000..69a6bc7 --- /dev/null +++ b/src/main/resources/activemq-mysql.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/activemq.xml b/src/main/resources/activemq.xml new file mode 100644 index 0000000..7cdb6bd --- /dev/null +++ b/src/main/resources/activemq.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/activemq.xsd b/src/main/resources/activemq.xsd new file mode 100644 index 0000000..682cda4 --- /dev/null +++ b/src/main/resources/activemq.xsd @@ -0,0 +1,8431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + ]]>
    +
    + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mirrored +Queues should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + Virtual +Topics should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mirrored +Queues should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + Virtual +Topics should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DOT file creator plugin which +creates a DOT file showing the current connections + ]]> + + + + + + + + + + + + + + + + + Spring enhanced connection +factory which will automatically use the Spring bean name as the clientIDPrefix property +so that connections created have client IDs related to your Spring.xml file for +easier comprehension from JMX. + ]]> + + + + + + + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + connection +URL used to connect to the ActiveMQ broker. + ]]> + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + + + + + + + + + + + dispatched +synchronously or asynchronously by the broker. For non-durable +topics for example we typically dispatch synchronously by default to +minimize context switches which boost performance. However sometimes its +better to go slower to ensure that a single blocked consumer socket does +not block delivery to other consumers. + ]]> + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + Message Groups + ]]> + + + + + + Nested +Structures of Map and List objects + ]]> + + + + + + + + + + + + + + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Async Sends which +adds a massive performance boost; but means that the send() method will +return immediately whether the message has been sent or not which could +lead to message loss. + ]]> + + + + + + + + + + + + + + + + + + + + + + start +the connection so this option makes the default case to create a +warning if the user forgets. To disable the warning just set the value to < +0 (say -1). + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sub-classing is +encouraged to override the default implementation of methods to account for differences in JDBC Driver +implementations.

    The JDBCAdapter inserts and extracts BLOB data using the getBytes()/setBytes() operations.

    +The databases/JDBC drivers that use this adapter are: +

      +
    • +
    + ]]>
    +
    + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DOT +file creator plugin which creates a DOT file showing the current topic & queue hierarchies. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Sybase
  • +
  • MS SQL
  • + + ]]>
    +
    + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + container name field and subscription id field must be reduced to 150 characters. +Therefore be sure not to use longer names for container name and subscription id than 150 characters. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.security.auth.login.config system property +is not defined then it is set to the location of the login.config file on the classpath. + ]]> + + + + + + + + + + + + + + + + + + + + + + java.security.auth.login.config system property +is not defined then it is set to the location of the login.config file on the classpath. + ]]> + + + + + + + + + + + + + + + + + + + + + + java.security.auth.login.config system property +is not defined then it is set to the location of the login.config file on the classpath. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Master Slave for High +Availability of messages. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message +Groups functionality. + ]]> + + + + + + + + + + + + + + + + + Mirrored +Queue using a prefix and postfix to define the topic name on which to mirror the queue to. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + multicast://address:port + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Subclassing is encouraged to override the default +implementation of methods to account for differences +in JDBC Driver implementations. +

    +The JDBCAdapter inserts and extracts BLOB data using the +getBytes()/setBytes() operations. +

    +The databases/JDBC drivers that use this adapter are: +

      +
    • +
    + ]]>
    +
    + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message Groups +functionality. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message Groups +functionality. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Subclassing is encouraged to override the default +implementation of methods to account for differences +in JDBC Driver implementations. +

    +The JDBCAdapter inserts and extracts BLOB data using the +getBytes()/setBytes() operations. +

    +The databases/JDBC drivers that use this adapter are: +

      +
    • +
    + ]]>
    +
    + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message Groups functionality. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Axion
  • + + ]]>
    +
    + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual Topics. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + Virtual +Topics using a prefix and postfix. The virtual destination creates a +wildcard that is then used to look up all active queue subscriptions which +match. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Spring enhanced XA connection +factory which will automatically use the Spring bean name as the clientIDPrefix property +so that connections created have client IDs related to your Spring.xml file for +easier comprehension from JMX. + ]]> + + + + + + + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + connection +URL used to connect to the ActiveMQ broker. + ]]> + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + + + + + + + + + + + dispatched +synchronously or asynchronously by the broker. For non-durable +topics for example we typically dispatch synchronously by default to +minimize context switches which boost performance. However sometimes its +better to go slower to ensure that a single blocked consumer socket does +not block delivery to other consumers. + ]]> + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + Message Groups + ]]> + + + + + + Nested +Structures of Map and List objects + ]]> + + + + + + + + + + + + + + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Async Sends which +adds a massive performance boost; but means that the send() method will +return immediately whether the message has been sent or not which could +lead to message loss. + ]]> + + + + + + + + + + + + + + + + + + + + + + start +the connection so this option makes the default case to create a +warning if the user forgets. To disable the warning just set the value to < +0 (say -1). + ]]> + + + + + + + + + +
    diff --git a/src/main/resources/docs.txt b/src/main/resources/docs.txt new file mode 100644 index 0000000..440bfe4 --- /dev/null +++ b/src/main/resources/docs.txt @@ -0,0 +1,12 @@ +1\ +select id,container,msgid_prod,msgid_seq,expiration,msg,priority from activemq_msgs; + +2\ +select id,time,broker_name from activemq_lock; +time�ֶ�30s���� + + +����brokerʵ������������ʱ������һ�� mysql���ݿ���û������ġ� +����һ�������󣬾ͻ��msgs�е���Ϣ��load���������ѵ��ˡ� + + diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties new file mode 100644 index 0000000..d58502d --- /dev/null +++ b/src/main/resources/log4j.properties @@ -0,0 +1,40 @@ +## --------------------------------------------------------------------------- +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You under the Apache License, Version 2.0 +## (the "License"); you may not use this file except in compliance with +## the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## --------------------------------------------------------------------------- + +# +# The logging properties used by the standalone ActiveMQ broker +# +log4j.rootLogger=INFO, stdout, logfile + +# CONSOLE appender +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p %m%n + +# Log File appender +log4j.appender.logfile=org.apache.log4j.FileAppender +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout +log4j.appender.logfile.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n +log4j.appender.logfile.file=activemq.log +log4j.appender.logfile.append=true + +# +# You can change logger levels here. +# +log4j.logger.org.apache.activemq=INFO +log4j.logger.org.apache.activemq.spring=WARN +log4j.logger.org.qsoft.activemq.store.activemq=INFO \ No newline at end of file diff --git a/src/main/resources/mysql.txt b/src/main/resources/mysql.txt new file mode 100644 index 0000000..23114a8 --- /dev/null +++ b/src/main/resources/mysql.txt @@ -0,0 +1 @@ +select ID,CONTAINER,MSGID_PROD,MSGID_SEQ,EXPIRATION,PRIORITY from activemq_msgs; diff --git a/src/main/resources/readme.txt b/src/main/resources/readme.txt new file mode 100644 index 0000000..98dc4fa --- /dev/null +++ b/src/main/resources/readme.txt @@ -0,0 +1,10 @@ +readme + +����ʹ�÷�ʽ�� +1��ֱ��ʹ��activemq-all-5.5.0-mongo-0.1.jar +2���޸������õ�activemq 5.x�汾 +Ϊ��ʹactivemq�������ļ���֧��mongodb����Ҫ�޸�activemq��jar�е����������ļ��� +�޸ĺ���ļ�������activemq-all-5.5.0-mongo-0.1.jar���ҵ��� +�����ļ��ǣ� +activemq.xsd �����˶�mongodb�ڵ��schema���� +META-INF\services\org\apache\xbean\spring\http\activemq.apache.org\schema\core ������mongodb��ʵ���� diff --git a/src/main/resources/task.txt b/src/main/resources/task.txt new file mode 100644 index 0000000..7d1a9f9 --- /dev/null +++ b/src/main/resources/task.txt @@ -0,0 +1,2 @@ +1\ ������databaselocker + diff --git a/src/test/java/kaha/TestSenderKaha.java b/src/test/java/kaha/TestSenderKaha.java new file mode 100644 index 0000000..24d71ab --- /dev/null +++ b/src/test/java/kaha/TestSenderKaha.java @@ -0,0 +1,71 @@ +package kaha; + +import java.net.URI; + +import javax.jms.BytesMessage; +import javax.jms.Queue; +import javax.jms.QueueConnectionFactory; +import javax.jms.QueueSender; +import javax.jms.QueueSession; +import javax.jms.Session; + +import org.apache.activemq.ActiveMQConnection; +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.command.ActiveMQQueue; +import org.apache.activemq.xbean.XBeanBrokerFactory; + +public class TestSenderKaha { + + /** + * @param args + */ + public static void main(String[] args) { + try { +// XBeanBrokerFactory factory = new XBeanBrokerFactory(); +// BrokerService broker = factory.createBroker(new URI("activemq-mysql.xml")); +// broker.setUseJmx(true); +// broker.setStartAsync(false); +// broker.start(); + + QueueConnectionFactory connfactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616?wireFormat.maxInactivityDuration=3000000"); + Queue queue = new ActiveMQQueue("kk.kaha"); + ActiveMQConnection conn = (ActiveMQConnection) connfactory.createQueueConnection(); + conn.setOptimizeAcknowledge(true); + conn.setUseAsyncSend(true); + QueueSession session = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); + QueueSender sender = session.createSender(queue); + long start = System.currentTimeMillis(); + int count = 1000000; + int size = 128; + for (int i = 0; i < count; i++) { + //String msgText = "testMessage-" + i; + BytesMessage msg = session.createBytesMessage(); + //msg.writeBytes(createBytesMessage(size)); + msg.writeBytes(bytes); + //if(i%2 == 1)msg.setIntProperty("score", 10); + sender.send(msg); + } + long end = System.currentTimeMillis(); + System.out.println("send " + count + " messages with " + size + " bytes in " + (end-start)/1000.0 + " s"); + + session.close(); + conn.close(); + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + + } + + static byte[] bytes = createBytesMessage(1024); + + private static byte[] createBytesMessage(int i) { + byte[] bs = new byte[i]; + for (int j = 0; j < i; j++) { + bs[j] = 'A'; + } + return bs; + } + +} diff --git a/src/test/java/kaha/TestServerKaha.java b/src/test/java/kaha/TestServerKaha.java new file mode 100644 index 0000000..4ceb911 --- /dev/null +++ b/src/test/java/kaha/TestServerKaha.java @@ -0,0 +1,134 @@ +package kaha; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URI; + +import javax.jms.Connection; +import javax.jms.DeliveryMode; +import javax.jms.Destination; +import javax.jms.Message; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.xbean.XBeanBrokerFactory; + +public class TestServerKaha { + + private static final String url = "tcp://localhost:61616";; + private static final String QUEUE_NAME = "kk.kaha"; + //private static final String TOPIC_NAME = "mysql"; + + public static void main(String[] args) throws Exception { + + XBeanBrokerFactory factory = new XBeanBrokerFactory(); + BrokerService broker = factory.createBroker(new URI("activemq-kaha.xml")); + + // BrokerService broker = new BrokerService(); + // broker.setBrokerName("kk"); + // broker.setPersistent(false); + // broker.setUseJmx(true); + broker.start(); + + while(true){ + Thread.sleep(1000); + } + +// Connection connection = null; +// +// ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); +// connection = connectionFactory.createConnection(); +// +// connection.start(); +// Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); +// Destination queue = session.createQueue(QUEUE_NAME); +// Destination topic = session.createTopic(TOPIC_NAME); +// MessageProducer producer = session.createProducer(queue); +// MessageConsumer receiver = session.createConsumer(queue); +// +// MessageProducer producer1 = session.createProducer(topic); +// MessageConsumer receiver1 = session.createConsumer(topic); +// +// try { +// BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); +// while (true) { +// String line = reader.readLine(); +// if (line == null) +// continue; +// if (line.length() < 5) { +// System.out.println(" error command: " + line); +// continue; +// } +// +// if ("quit".equalsIgnoreCase(line)) { +// System.out.println(line); +// break; +// } +// +// String[] sline = line.split(" "); +// +// String command = sline[0]; +// String content = ""; +// long ct = 10; +// +// if (sline.length > 1) +// content = sline[1]; +// if (sline.length > 2) +// ct = Integer.parseInt(sline[2]); +// +// if ("send".equalsIgnoreCase(command)) { +// TextMessage message = session.createTextMessage(content); +// producer.send(message); +// System.out.println(" send message: " + message); +// } else if ("recv".equalsIgnoreCase(command)) { +// try { +// Message message = receiver.receive(1000); +// System.out.println(" receive message: " + message); +// } catch (Exception e) { +// System.out.println(" error: receive message "); +// e.printStackTrace(); +// } +// } else if ("sent".equalsIgnoreCase(command)) { +// TextMessage message = session.createTextMessage(content); +// message.setJMSDeliveryMode(DeliveryMode.PERSISTENT); +// for (int i = 0; i < ct; i++) { +// producer1.send(message); +// System.out.println(i + " send message: " + message); +// } +// } else if ("rect".equalsIgnoreCase(command)) { +// try { +// for (int i = 0; i < ct; i++) { +// Message message = receiver1.receive(); +// System.out.println(i +" receive message: " + message); +// } +// } catch (Exception e) { +// System.out.println(" error: receive message "); +// e.printStackTrace(); +// } +// } else { +// System.out.println(" error command: " + line); +// } +// } +// +// receiver.close(); +// producer.close(); +// +// receiver1.close(); +// producer1.close(); +// +// session.close(); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// connection.close(); +// } +// +// broker.stop(); + } + +} diff --git a/src/test/java/kk/TestSenderMysql.java b/src/test/java/kk/TestSenderMysql.java new file mode 100644 index 0000000..e6eaad8 --- /dev/null +++ b/src/test/java/kk/TestSenderMysql.java @@ -0,0 +1,68 @@ +package kk; + +import java.net.URI; + +import javax.jms.BytesMessage; +import javax.jms.Queue; +import javax.jms.QueueConnectionFactory; +import javax.jms.QueueSender; +import javax.jms.QueueSession; +import javax.jms.Session; + +import org.apache.activemq.ActiveMQConnection; +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.command.ActiveMQQueue; +import org.apache.activemq.xbean.XBeanBrokerFactory; + +public class TestSenderMysql { + + /** + * @param args + */ + public static void main(String[] args) { + try { +// XBeanBrokerFactory factory = new XBeanBrokerFactory(); +// BrokerService broker = factory.createBroker(new URI("activemq-mysql.xml")); +// broker.setUseJmx(true); +// broker.setStartAsync(false); +// broker.start(); + + QueueConnectionFactory connfactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616?wireFormat.maxInactivityDuration=3000000"); + Queue queue = new ActiveMQQueue("kk.mysql"); + ActiveMQConnection conn = (ActiveMQConnection) connfactory.createQueueConnection(); + conn.setOptimizeAcknowledge(true); + conn.setUseAsyncSend(true); + QueueSession session = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); + QueueSender sender = session.createSender(queue); + long start = System.currentTimeMillis(); + int count = 10000; + int size = 1024; + for (int i = 0; i < count; i++) { + //String msgText = "testMessage-" + i; + BytesMessage msg = session.createBytesMessage(); + msg.writeBytes(createBytesMessage(size)); + //if(i%2 == 1)msg.setIntProperty("score", 10); + sender.send(msg); + } + long end = System.currentTimeMillis(); + System.out.println("send " + count + " messages with " + size + " bytes in " + (end-start)/1000.0 + " s"); + + session.close(); + conn.close(); + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + + } + + private static byte[] createBytesMessage(int i) { + byte[] bs = new byte[i]; + for (int j = 0; j < i; j++) { + bs[j] = 'A'; + } + return bs; + } + +} diff --git a/src/test/java/kk/TestServerMysql.java b/src/test/java/kk/TestServerMysql.java new file mode 100644 index 0000000..56a6590 --- /dev/null +++ b/src/test/java/kk/TestServerMysql.java @@ -0,0 +1,134 @@ +package kk; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URI; + +import javax.jms.Connection; +import javax.jms.DeliveryMode; +import javax.jms.Destination; +import javax.jms.Message; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.xbean.XBeanBrokerFactory; + +public class TestServerMysql { + + private static final String url = "tcp://localhost:61616";; + private static final String QUEUE_NAME = "kk.mysql"; + //private static final String TOPIC_NAME = "mysql"; + + public static void main(String[] args) throws Exception { + + XBeanBrokerFactory factory = new XBeanBrokerFactory(); + BrokerService broker = factory.createBroker(new URI("activemq-mysql.xml")); + + // BrokerService broker = new BrokerService(); + // broker.setBrokerName("kk"); + // broker.setPersistent(false); + // broker.setUseJmx(true); + broker.start(); + + while(true){ + Thread.sleep(1000); + } + +// Connection connection = null; +// +// ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); +// connection = connectionFactory.createConnection(); +// +// connection.start(); +// Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); +// Destination queue = session.createQueue(QUEUE_NAME); +// Destination topic = session.createTopic(TOPIC_NAME); +// MessageProducer producer = session.createProducer(queue); +// MessageConsumer receiver = session.createConsumer(queue); +// +// MessageProducer producer1 = session.createProducer(topic); +// MessageConsumer receiver1 = session.createConsumer(topic); +// +// try { +// BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); +// while (true) { +// String line = reader.readLine(); +// if (line == null) +// continue; +// if (line.length() < 5) { +// System.out.println(" error command: " + line); +// continue; +// } +// +// if ("quit".equalsIgnoreCase(line)) { +// System.out.println(line); +// break; +// } +// +// String[] sline = line.split(" "); +// +// String command = sline[0]; +// String content = ""; +// long ct = 10; +// +// if (sline.length > 1) +// content = sline[1]; +// if (sline.length > 2) +// ct = Integer.parseInt(sline[2]); +// +// if ("send".equalsIgnoreCase(command)) { +// TextMessage message = session.createTextMessage(content); +// producer.send(message); +// System.out.println(" send message: " + message); +// } else if ("recv".equalsIgnoreCase(command)) { +// try { +// Message message = receiver.receive(1000); +// System.out.println(" receive message: " + message); +// } catch (Exception e) { +// System.out.println(" error: receive message "); +// e.printStackTrace(); +// } +// } else if ("sent".equalsIgnoreCase(command)) { +// TextMessage message = session.createTextMessage(content); +// message.setJMSDeliveryMode(DeliveryMode.PERSISTENT); +// for (int i = 0; i < ct; i++) { +// producer1.send(message); +// System.out.println(i + " send message: " + message); +// } +// } else if ("rect".equalsIgnoreCase(command)) { +// try { +// for (int i = 0; i < ct; i++) { +// Message message = receiver1.receive(); +// System.out.println(i +" receive message: " + message); +// } +// } catch (Exception e) { +// System.out.println(" error: receive message "); +// e.printStackTrace(); +// } +// } else { +// System.out.println(" error command: " + line); +// } +// } +// +// receiver.close(); +// producer.close(); +// +// receiver1.close(); +// producer1.close(); +// +// session.close(); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// connection.close(); +// } +// +// broker.stop(); + } + +} diff --git a/src/test/java/org/qsoft/activemq/test/TestReceiver.java b/src/test/java/org/qsoft/activemq/test/TestReceiver.java new file mode 100644 index 0000000..7d68525 --- /dev/null +++ b/src/test/java/org/qsoft/activemq/test/TestReceiver.java @@ -0,0 +1,133 @@ +package org.qsoft.activemq.test; + +import java.util.concurrent.atomic.AtomicInteger; + +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageListener; +import javax.jms.Queue; +import javax.jms.QueueConnection; +import javax.jms.QueueConnectionFactory; +import javax.jms.QueueReceiver; +import javax.jms.QueueSession; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.activemq.ActiveMQConnection; +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.command.ActiveMQQueue; + +public class TestReceiver { + + /** + * @param args + */ + public static void main(String[] args) { + + int a = 1; + if(a== 1) + listen(); + else + receive(); + + } + + private static void receive() { + try { + // init connection factory with activemq + QueueConnectionFactory factory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616"); + // specify the destination + Queue queue = new ActiveMQQueue("kk.mongo"); + // create connection,session,consumer and receive message + QueueConnection conn = factory.createQueueConnection(); + conn.start(); + QueueSession session = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); + QueueReceiver receiver = session.createReceiver(queue);//, "score=10"); + + int index = 0; + int count = 10000; + final long[] times = new long[3]; + times[2] = times[0] = System.currentTimeMillis(); + while (index++ < count) { + Message msg = receiver.receive(800); + if(msg == null) break; + //System.out.println("*********"); + //System.out.println(msg.getIntProperty("score")); + //System.out.println(msg.getText()); +// if((index+1) % 100 == 0) +// System.out.println((index+1)+ " - " + msg.getJMSMessageID()); + + int a = index; + if( a % 100 == 0) + { + times[1] = times[0]; + times[0] = System.currentTimeMillis(); + //System.out.println(times[0] - times[1]); + + System.out.println((times[0] - times[1]) + " -> " +((a+1)*1000.0)/(times[0] - times[2])); + + } + } + + long end = System.currentTimeMillis(); + System.out.println("receive " + (index-1) + " messages in " + (end-times[2])/1000.0 + " s"); + + session.close(); + conn.close(); + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + } + + private static void listen() { + try { + // init connection factory with activemq + QueueConnectionFactory factory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616"); + // specify the destination + Queue queue = new ActiveMQQueue("kk.mysql"); + // create connection,session,consumer and receive message + ActiveMQConnection conn = (ActiveMQConnection) factory.createQueueConnection(); + conn.setOptimizeAcknowledge(true); + conn.setOptimizeAcknowledgeTimeOut(4000); + conn.setOptimizedAckScheduledAckInterval(2000); + //conn.setSendAcksAsync(true); + conn.start(); + final int count = 10000; + // first receiver on broker1 + QueueSession sessionA1 = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); + QueueReceiver receiverA1 = sessionA1.createReceiver(queue); + final AtomicInteger a1 = new AtomicInteger(0); + final long[] times = new long[3]; + times[2] = times[0] = System.currentTimeMillis(); + MessageListener listenerA1 = new MessageListener(){ + public void onMessage(Message message) { + int a = a1.getAndIncrement(); + if( a % 100 == 0) + { + times[1] = times[0]; + times[0] = System.currentTimeMillis(); + //System.out.println(times[0] - times[1]); + + System.out.println((times[0] - times[1]) + " -> " +((a+1)*1000.0)/(times[0] - times[2])); + + } + if(a == count - 1){ + System.out.println("onMessage " + count + " message for " + (System.currentTimeMillis()-times[2])/1000.0 + " s"); + } + + +// try { +// System.out.println(aint1.incrementAndGet()+" => A1 receive from kk.mongo: " + ((TextMessage)message).getText()); +// } catch (JMSException e) { +// e.printStackTrace(); +// } + }}; + receiverA1.setMessageListener(listenerA1 ); + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + } + +} diff --git a/src/test/java/org/qsoft/activemq/test/TestSender.java b/src/test/java/org/qsoft/activemq/test/TestSender.java new file mode 100644 index 0000000..7fbc2e8 --- /dev/null +++ b/src/test/java/org/qsoft/activemq/test/TestSender.java @@ -0,0 +1,67 @@ +package org.qsoft.activemq.test; + +import javax.jms.BytesMessage; +import javax.jms.Queue; +import javax.jms.QueueConnection; +import javax.jms.QueueConnectionFactory; +import javax.jms.QueueSender; +import javax.jms.QueueSession; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.activemq.ActiveMQConnection; +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.command.ActiveMQQueue; +import org.apache.activemq.command.ActiveMQTextMessage; + +public class TestSender { + + /** + * @param args + */ + public static void main(String[] args) { + try { + // init connection factory with activemq + QueueConnectionFactory factory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616?wireFormat.maxInactivityDuration=300000"); + // specify the destination + Queue queue = new ActiveMQQueue("kk.mongo"); + // create connection,session,producer and deliver message + ActiveMQConnection conn = (ActiveMQConnection) factory.createQueueConnection(); + conn.setOptimizeAcknowledge(true); + conn.setUseAsyncSend(true); + //conn.setSendAcksAsync(true); + + QueueSession session = conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); + QueueSender sender = session.createSender(queue); + long start = System.currentTimeMillis(); + int count = 10000; + int size = 1024; + for (int i = 0; i < count; i++) { + //String msgText = "testMessage-" + i; + BytesMessage msg = session.createBytesMessage(); + msg.writeBytes(createBytesMessage(size)); + //if(i%2 == 1)msg.setIntProperty("score", 10); + sender.send(msg); + } + long end = System.currentTimeMillis(); + System.out.println("send " + count + " messages with " + size + " bytes in " + (end-start)/1000.0 + " s"); + + + session.close(); + conn.close(); + } catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + + } + + private static byte[] createBytesMessage(int i) { + byte[] bs = new byte[i]; + for (int j = 0; j < i; j++) { + bs[j] = 'A'; + } + return bs; + } + +} diff --git a/src/test/java/org/qsoft/activemq/test/TestServer.java b/src/test/java/org/qsoft/activemq/test/TestServer.java new file mode 100644 index 0000000..7b21356 --- /dev/null +++ b/src/test/java/org/qsoft/activemq/test/TestServer.java @@ -0,0 +1,130 @@ +package org.qsoft.activemq.test; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URI; + +import javax.jms.Connection; +import javax.jms.DeliveryMode; +import javax.jms.Destination; +import javax.jms.Message; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.xbean.XBeanBrokerFactory; + +public class TestServer { + + private static final String url = "tcp://localhost:61616";; + private static final String QUEUE_NAME = "kk.mongo"; + private static final String TOPIC_NAME = "kk.mongoTopic"; + + public static void main(String[] args) throws Exception { + + XBeanBrokerFactory factory = new XBeanBrokerFactory(); + BrokerService broker = factory.createBroker(new URI("activemq.xml")); + + // BrokerService broker = new BrokerService(); + // broker.setBrokerName("kk"); + // broker.setPersistent(false); + // broker.setUseJmx(true); + broker.start(); + +// Connection connection = null; +// +// ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); +// connection = connectionFactory.createConnection(); +// +// connection.start(); +// Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); +// Destination queue = session.createQueue(QUEUE_NAME); +// Destination topic = session.createTopic(TOPIC_NAME); +// MessageProducer producer = session.createProducer(queue); +// MessageConsumer receiver = session.createConsumer(queue); +// +// MessageProducer producer1 = session.createProducer(topic); +// MessageConsumer receiver1 = session.createConsumer(topic); +// +// try { +// BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); +// while (true) { +// String line = reader.readLine(); +// if (line == null) +// continue; +// if (line.length() < 5) { +// System.out.println(" error command: " + line); +// continue; +// } +// +// if ("quit".equalsIgnoreCase(line)) { +// System.out.println(line); +// break; +// } +// +// String[] sline = line.split(" "); +// +// String command = sline[0]; +// String content = ""; +// long ct = 10; +// +// if (sline.length > 1) +// content = sline[1]; +// if (sline.length > 2) +// ct = Integer.parseInt(sline[2]); +// +// if ("send".equalsIgnoreCase(command)) { +// TextMessage message = session.createTextMessage(content); +// producer.send(message); +// System.out.println(" send message: " + message); +// } else if ("recv".equalsIgnoreCase(command)) { +// try { +// Message message = receiver.receive(1000); +// System.out.println(" receive message: " + message); +// } catch (Exception e) { +// System.out.println(" error: receive message "); +// e.printStackTrace(); +// } +// } else if ("sent".equalsIgnoreCase(command)) { +// TextMessage message = session.createTextMessage(content); +// message.setJMSDeliveryMode(DeliveryMode.PERSISTENT); +// for (int i = 0; i < ct; i++) { +// producer1.send(message); +// System.out.println(i + " send message: " + message); +// } +// } else if ("rect".equalsIgnoreCase(command)) { +// try { +// for (int i = 0; i < ct; i++) { +// Message message = receiver1.receive(); +// System.out.println(i +" receive message: " + message); +// } +// } catch (Exception e) { +// System.out.println(" error: receive message "); +// e.printStackTrace(); +// } +// } else { +// System.out.println(" error command: " + line); +// } +// } +// +// receiver.close(); +// producer.close(); +// +// receiver1.close(); +// producer1.close(); +// +// session.close(); +// +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// connection.close(); +// } +// +// broker.stop(); + } + +}