You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cs...@apache.org on 2016/07/25 15:58:07 UTC
[6/6] activemq git commit:
https://issues.apache.org/jira/browse/AMQ-6373
https://issues.apache.org/jira/browse/AMQ-6373
Adding a new OpenWire command called BrokerSubscriptionInfo in order to
help synchronize durable subs across a network bridge. Added OpenWire
version 12. For dynamicallyIncludedDestination durable subs will now be
synchronized on a bridge reconnect as long as the bridge supports
conduitSubscriptions and dynamicOnly=false
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/3953b9aa
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/3953b9aa
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/3953b9aa
Branch: refs/heads/master
Commit: 3953b9aaefaee914bdd0702f27aef47c021ceb27
Parents: a65f5e7
Author: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Authored: Wed Jul 20 12:36:41 2016 -0400
Committer: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Committed: Mon Jul 25 11:56:13 2016 -0400
----------------------------------------------------------------------
.../activemq/broker/TransportConnection.java | 60 +-
.../network/DemandForwardingBridgeSupport.java | 99 ++-
.../activemq/network/DurableConduitBridge.java | 2 +-
.../network/NetworkBridgeConfiguration.java | 9 +
activemq-client/pom.xml | 2 +-
.../org/apache/activemq/command/BrokerInfo.java | 22 +-
.../command/BrokerSubscriptionInfo.java | 99 +++
.../apache/activemq/command/CommandTypes.java | 8 +-
.../v12/ActiveMQBlobMessageMarshaller.java | 139 ++++
.../v12/ActiveMQBytesMessageMarshaller.java | 114 ++++
.../v12/ActiveMQDestinationMarshaller.java | 114 ++++
.../v12/ActiveMQMapMessageMarshaller.java | 114 ++++
.../openwire/v12/ActiveMQMessageMarshaller.java | 114 ++++
.../v12/ActiveMQObjectMessageMarshaller.java | 114 ++++
.../openwire/v12/ActiveMQQueueMarshaller.java | 114 ++++
.../v12/ActiveMQStreamMessageMarshaller.java | 114 ++++
.../v12/ActiveMQTempDestinationMarshaller.java | 99 +++
.../v12/ActiveMQTempQueueMarshaller.java | 114 ++++
.../v12/ActiveMQTempTopicMarshaller.java | 114 ++++
.../v12/ActiveMQTextMessageMarshaller.java | 114 ++++
.../openwire/v12/ActiveMQTopicMarshaller.java | 114 ++++
.../openwire/v12/BaseCommandMarshaller.java | 118 ++++
.../openwire/v12/BaseDataStreamMarshaller.java | 644 +++++++++++++++++++
.../openwire/v12/BrokerIdMarshaller.java | 129 ++++
.../openwire/v12/BrokerInfoMarshaller.java | 206 ++++++
.../v12/BrokerSubscriptionInfoMarshaller.java | 161 +++++
.../v12/ConnectionControlMarshaller.java | 169 +++++
.../openwire/v12/ConnectionErrorMarshaller.java | 134 ++++
.../openwire/v12/ConnectionIdMarshaller.java | 129 ++++
.../openwire/v12/ConnectionInfoMarshaller.java | 201 ++++++
.../openwire/v12/ConsumerControlMarshaller.java | 158 +++++
.../openwire/v12/ConsumerIdMarshaller.java | 139 ++++
.../openwire/v12/ConsumerInfoMarshaller.java | 260 ++++++++
.../openwire/v12/ControlCommandMarshaller.java | 129 ++++
.../v12/DataArrayResponseMarshaller.java | 151 +++++
.../openwire/v12/DataResponseMarshaller.java | 129 ++++
.../openwire/v12/DestinationInfoMarshaller.java | 170 +++++
.../openwire/v12/DiscoveryEventMarshaller.java | 134 ++++
.../v12/ExceptionResponseMarshaller.java | 129 ++++
.../openwire/v12/FlushCommandMarshaller.java | 114 ++++
.../openwire/v12/IntegerResponseMarshaller.java | 128 ++++
.../openwire/v12/JournalQueueAckMarshaller.java | 134 ++++
.../openwire/v12/JournalTopicAckMarshaller.java | 154 +++++
.../openwire/v12/JournalTraceMarshaller.java | 129 ++++
.../v12/JournalTransactionMarshaller.java | 138 ++++
.../openwire/v12/KeepAliveInfoMarshaller.java | 114 ++++
.../v12/LastPartialCommandMarshaller.java | 114 ++++
.../v12/LocalTransactionIdMarshaller.java | 134 ++++
.../openwire/v12/MarshallerFactory.java | 110 ++++
.../openwire/v12/MessageAckMarshaller.java | 162 +++++
.../openwire/v12/MessageDispatchMarshaller.java | 143 ++++
.../MessageDispatchNotificationMarshaller.java | 144 +++++
.../openwire/v12/MessageIdMarshaller.java | 144 +++++
.../openwire/v12/MessageMarshaller.java | 316 +++++++++
.../openwire/v12/MessagePullMarshaller.java | 149 +++++
.../v12/NetworkBridgeFilterMarshaller.java | 137 ++++
.../openwire/v12/PartialCommandMarshaller.java | 133 ++++
.../openwire/v12/ProducerAckMarshaller.java | 133 ++++
.../openwire/v12/ProducerIdMarshaller.java | 139 ++++
.../openwire/v12/ProducerInfoMarshaller.java | 170 +++++
.../openwire/v12/RemoveInfoMarshaller.java | 134 ++++
.../v12/RemoveSubscriptionInfoMarshaller.java | 139 ++++
.../openwire/v12/ReplayCommandMarshaller.java | 132 ++++
.../openwire/v12/ResponseMarshaller.java | 128 ++++
.../openwire/v12/SessionIdMarshaller.java | 134 ++++
.../openwire/v12/SessionInfoMarshaller.java | 129 ++++
.../openwire/v12/ShutdownInfoMarshaller.java | 114 ++++
.../v12/SubscriptionInfoMarshaller.java | 154 +++++
.../openwire/v12/TransactionIdMarshaller.java | 99 +++
.../openwire/v12/TransactionInfoMarshaller.java | 138 ++++
.../openwire/v12/WireFormatInfoMarshaller.java | 154 +++++
.../openwire/v12/XATransactionIdMarshaller.java | 138 ++++
.../apache/activemq/state/CommandVisitor.java | 3 +
.../activemq/state/CommandVisitorAdapter.java | 44 ++
.../network/DurableSyncNetworkBridgeTest.java | 604 +++++++++++++++++
75 files changed, 10324 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
index 92133e8..5288dc9 100755
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/TransportConnection.java
@@ -20,6 +20,7 @@ import java.io.EOFException;
import java.io.IOException;
import java.net.SocketException;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
@@ -27,7 +28,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
-import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
@@ -41,9 +41,12 @@ import javax.transaction.xa.XAResource;
import org.apache.activemq.advisory.AdvisorySupport;
import org.apache.activemq.broker.region.ConnectionStatistics;
+import org.apache.activemq.broker.region.DurableTopicSubscription;
import org.apache.activemq.broker.region.RegionBroker;
+import org.apache.activemq.broker.region.TopicRegion;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.BrokerInfo;
+import org.apache.activemq.command.BrokerSubscriptionInfo;
import org.apache.activemq.command.Command;
import org.apache.activemq.command.CommandTypes;
import org.apache.activemq.command.ConnectionControl;
@@ -100,6 +103,7 @@ import org.apache.activemq.transport.Transport;
import org.apache.activemq.transport.TransportDisposedIOException;
import org.apache.activemq.util.IntrospectionSupport;
import org.apache.activemq.util.MarshallingSupport;
+import org.apache.activemq.util.SubscriptionKey;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
@@ -1373,20 +1377,58 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
this.pendingStop = pendingStop;
}
+ public static BrokerSubscriptionInfo getBrokerSubscriptionInfo(final BrokerService brokerService) {
+ RegionBroker regionBroker = (RegionBroker) brokerService.getRegionBroker();
+ TopicRegion topicRegion = (TopicRegion) regionBroker.getTopicRegion();
+ List<ConsumerInfo> subscriptionInfos = new ArrayList<>();
+ for (SubscriptionKey key : topicRegion.getDurableSubscriptions().keySet()) {
+ DurableTopicSubscription sub = topicRegion.getDurableSubscriptions().get(key);
+ if (sub != null) {
+ ConsumerInfo ci = sub.getConsumerInfo().copy();
+ ci.setClientId(key.getClientId());
+ subscriptionInfos.add(ci);
+ }
+ }
+ BrokerSubscriptionInfo bsi = new BrokerSubscriptionInfo(brokerService.getBrokerName());
+ bsi.setSubscriptionInfos(subscriptionInfos.toArray(new ConsumerInfo[0]));
+ return bsi;
+ }
+
+ private NetworkBridgeConfiguration getNetworkConfiguration(final BrokerInfo info) throws IOException {
+ Properties properties = MarshallingSupport.stringToProperties(info.getNetworkProperties());
+ Map<String, String> props = createMap(properties);
+ NetworkBridgeConfiguration config = new NetworkBridgeConfiguration();
+ IntrospectionSupport.setProperties(config, props, "");
+ return config;
+ }
+
@Override
public Response processBrokerInfo(BrokerInfo info) {
if (info.isSlaveBroker()) {
LOG.error(" Slave Brokers are no longer supported - slave trying to attach is: {}", info.getBrokerName());
+ } else if (info.isNetworkConnection() && !info.isDuplexConnection()) {
+ try {
+ NetworkBridgeConfiguration config = getNetworkConfiguration(info);
+ if (config.isSyncDurableSubs() && protocolVersion.get() >= CommandTypes.PROTOCOL_VERSION_DURABLE_SYNC) {
+ LOG.debug("SyncDurableSubs is enabled, Sending BrokerSubscriptionInfo");
+ dispatchSync(getBrokerSubscriptionInfo(this.broker.getBrokerService()));
+ }
+ } catch (Exception e) {
+ LOG.error("Failed to respond to network bridge creation from broker {}", info.getBrokerId(), e);
+ return null;
+ }
} else if (info.isNetworkConnection() && info.isDuplexConnection()) {
// so this TransportConnection is the rear end of a network bridge
// We have been requested to create a two way pipe ...
try {
- Properties properties = MarshallingSupport.stringToProperties(info.getNetworkProperties());
- Map<String, String> props = createMap(properties);
- NetworkBridgeConfiguration config = new NetworkBridgeConfiguration();
- IntrospectionSupport.setProperties(config, props, "");
+ NetworkBridgeConfiguration config = getNetworkConfiguration(info);
config.setBrokerName(broker.getBrokerName());
+ if (config.isSyncDurableSubs() && protocolVersion.get() >= 12) {
+ LOG.debug("SyncDurableSubs is enabled, Sending BrokerSubscriptionInfo");
+ dispatchSync(getBrokerSubscriptionInfo(this.broker.getBrokerService()));
+ }
+
// check for existing duplex connection hanging about
// We first look if existing network connection already exists for the same broker Id and network connector name
@@ -1698,4 +1740,12 @@ public class TransportConnection implements Connection, Task, CommandVisitor {
public WireFormatInfo getRemoteWireFormatInfo() {
return wireFormatInfo;
}
+
+ /* (non-Javadoc)
+ * @see org.apache.activemq.state.CommandVisitor#processBrokerSubscriptionInfo(org.apache.activemq.command.BrokerSubscriptionInfo)
+ */
+ @Override
+ public Response processBrokerSubscriptionInfo(BrokerSubscriptionInfo info) throws Exception {
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java b/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
index e22b265..865e60e 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
@@ -57,7 +57,9 @@ import org.apache.activemq.command.ActiveMQTempDestination;
import org.apache.activemq.command.ActiveMQTopic;
import org.apache.activemq.command.BrokerId;
import org.apache.activemq.command.BrokerInfo;
+import org.apache.activemq.command.BrokerSubscriptionInfo;
import org.apache.activemq.command.Command;
+import org.apache.activemq.command.CommandTypes;
import org.apache.activemq.command.ConnectionError;
import org.apache.activemq.command.ConnectionId;
import org.apache.activemq.command.ConnectionInfo;
@@ -127,11 +129,12 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
protected ActiveMQDestination[] dynamicallyIncludedDestinations;
protected ActiveMQDestination[] staticallyIncludedDestinations;
protected ActiveMQDestination[] durableDestinations;
- protected final ConcurrentMap<ConsumerId, DemandSubscription> subscriptionMapByLocalId = new ConcurrentHashMap<ConsumerId, DemandSubscription>();
- protected final ConcurrentMap<ConsumerId, DemandSubscription> subscriptionMapByRemoteId = new ConcurrentHashMap<ConsumerId, DemandSubscription>();
+ protected final ConcurrentMap<ConsumerId, DemandSubscription> subscriptionMapByLocalId = new ConcurrentHashMap<>();
+ protected final ConcurrentMap<ConsumerId, DemandSubscription> subscriptionMapByRemoteId = new ConcurrentHashMap<>();
protected final BrokerId localBrokerPath[] = new BrokerId[]{null};
protected final CountDownLatch startedLatch = new CountDownLatch(2);
protected final CountDownLatch localStartedLatch = new CountDownLatch(1);
+ protected final CountDownLatch staticDestinationsLatch = new CountDownLatch(1);
protected final AtomicBoolean lastConnectSucceeded = new AtomicBoolean(false);
protected NetworkBridgeConfiguration configuration;
protected final NetworkBridgeFilterFactory defaultFilterFactory = new DefaultNetworkBridgeFilterFactory();
@@ -311,6 +314,7 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
startedLatch.countDown();
startedLatch.countDown();
localStartedLatch.countDown();
+ staticDestinationsLatch.countDown();
ss.throwFirstException();
}
@@ -440,6 +444,7 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
try {
if (safeWaitUntilStarted()) {
setupStaticDestinations();
+ staticDestinationsLatch.countDown();
}
} catch (Throwable e) {
serviceLocalException(e);
@@ -549,6 +554,10 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
brokerInfo.setNetworkProperties(str);
brokerInfo.setBrokerId(this.localBrokerId);
remoteBroker.oneway(brokerInfo);
+ if (configuration.isSyncDurableSubs() &&
+ remoteBroker.getWireFormat().getVersion() >= CommandTypes.PROTOCOL_VERSION_DURABLE_SYNC) {
+ remoteBroker.oneway(TransportConnection.getBrokerSubscriptionInfo(brokerService));
+ }
}
if (remoteConnectionInfo != null) {
remoteBroker.oneway(remoteConnectionInfo.createRemoveCommand());
@@ -617,6 +626,31 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
ackAdvisory(md.getMessage());
} else if (command.isBrokerInfo()) {
futureRemoteBrokerInfo.set((BrokerInfo) command);
+ } else if (command instanceof BrokerSubscriptionInfo) {
+ staticDestinationsLatch.await();
+ BrokerSubscriptionInfo subInfo = (BrokerSubscriptionInfo) command;
+ LOG.debug("Received Remote BrokerSubscriptionInfo on {} from {}",
+ this.brokerService.getBrokerName(), subInfo.getBrokerName());
+
+ if (configuration.isSyncDurableSubs() && configuration.isConduitSubscriptions()
+ && !configuration.isDynamicOnly() && subInfo.getSubscriptionInfos() != null) {
+ if (started.get()) {
+ for (ConsumerInfo info : subInfo.getSubscriptionInfos()) {
+ if(!info.getSubscriptionName().startsWith(DURABLE_SUB_PREFIX) &&
+ matchesDynamicallyIncludedDestinations(info.getDestination())) {
+ serviceRemoteConsumerAdvisory(info);
+ }
+ }
+
+ //After re-added, clean up any empty durables
+ for (Iterator<DemandSubscription> i = subscriptionMapByLocalId.values().iterator(); i.hasNext(); ) {
+ DemandSubscription ds = i.next();
+ if (matchesDynamicallyIncludedDestinations(ds.getLocalInfo().getDestination())) {
+ cleanupDurableSub(ds, i);
+ }
+ }
+ }
+ }
} else if (command.getClass() == ConnectionError.class) {
ConnectionError ce = (ConnectionError) command;
serviceRemoteException(ce.getException());
@@ -831,24 +865,29 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
DemandSubscription ds = i.next();
boolean removed = ds.getDurableRemoteSubs().remove(subscriptionInfo);
if (removed) {
- if (ds.getDurableRemoteSubs().isEmpty()) {
+ cleanupDurableSub(ds, i);
+ }
+ }
+ }
+ }
- // deactivate subscriber
- RemoveInfo removeInfo = new RemoveInfo(ds.getLocalInfo().getConsumerId());
- localBroker.oneway(removeInfo);
+ private void cleanupDurableSub(final DemandSubscription ds,
+ Iterator<DemandSubscription> i) throws IOException {
+ if (ds != null && ds.getLocalDurableSubscriber() != null && ds.getDurableRemoteSubs().isEmpty()) {
- // remove subscriber
- RemoveSubscriptionInfo sending = new RemoveSubscriptionInfo();
- sending.setClientId(localClientId);
- sending.setSubscriptionName(ds.getLocalDurableSubscriber().getSubscriptionName());
- sending.setConnectionId(this.localConnectionInfo.getConnectionId());
- localBroker.oneway(sending);
+ // deactivate subscriber
+ RemoveInfo removeInfo = new RemoveInfo(ds.getLocalInfo().getConsumerId());
+ localBroker.oneway(removeInfo);
- //remove subscriber from map
- i.remove();
- }
- }
- }
+ // remove subscriber
+ RemoveSubscriptionInfo sending = new RemoveSubscriptionInfo();
+ sending.setClientId(localClientId);
+ sending.setSubscriptionName(ds.getLocalDurableSubscriber().getSubscriptionName());
+ sending.setConnectionId(this.localConnectionInfo.getConnectionId());
+ localBroker.oneway(sending);
+
+ //remove subscriber from map
+ i.remove();
}
}
@@ -1002,7 +1041,7 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
});
if (isDuplex() && NetworkBridgeFilter.isAdvisoryInterpretedByNetworkBridge(message)) {
try {
- // never request b/c they are eventually acked async
+ // never request b/c they are eventually acked async
remoteBroker.oneway(message);
} finally {
sub.decrementOutstandingResponses();
@@ -1064,6 +1103,8 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
switch (command.getDataStructureType()) {
case WireFormatInfo.DATA_STRUCTURE_TYPE:
break;
+ case BrokerSubscriptionInfo.DATA_STRUCTURE_TYPE:
+ break;
default:
LOG.warn("Unexpected local command: {}", command);
}
@@ -1155,16 +1196,24 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
dests = dynamicallyIncludedDestinations;
if (dests != null && dests.length > 0) {
+ return matchesDynamicallyIncludedDestinations(destination);
+ }
+
+ return true;
+ }
+
+ private boolean matchesDynamicallyIncludedDestinations(ActiveMQDestination destination) {
+ ActiveMQDestination[] dests = dynamicallyIncludedDestinations;
+ if (dests != null && dests.length > 0) {
for (ActiveMQDestination dest : dests) {
DestinationFilter inclusionFilter = DestinationFilter.parseFilter(dest);
if (dest != null && inclusionFilter.matches(destination) && dest.getDestinationType() == destination.getDestinationType()) {
return true;
}
}
-
- return false;
}
- return true;
+
+ return false;
}
/**
@@ -1175,7 +1224,7 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
if (dests != null) {
for (ActiveMQDestination dest : dests) {
if (isPermissableDestination(dest)) {
- DemandSubscription sub = createDemandSubscription(dest);
+ DemandSubscription sub = createDemandSubscription(dest, null);
sub.setStaticallyIncluded(true);
try {
addSubscription(sub);
@@ -1348,11 +1397,15 @@ public abstract class DemandForwardingBridgeSupport implements NetworkBridge, Br
return result;
}
- final protected DemandSubscription createDemandSubscription(ActiveMQDestination destination) {
+ final protected DemandSubscription createDemandSubscription(ActiveMQDestination destination, final String subscriptionName) {
ConsumerInfo info = new ConsumerInfo();
info.setNetworkSubscription(true);
info.setDestination(destination);
+ if (subscriptionName != null) {
+ info.setSubscriptionName(subscriptionName);
+ }
+
// Indicate that this subscription is being made on behalf of the remote broker.
info.setBrokerPath(new BrokerId[]{remoteBrokerId});
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java b/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
index 4b6a6c7..237e272 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/network/DurableConduitBridge.java
@@ -73,7 +73,7 @@ public class DurableConduitBridge extends ConduitBridge {
for (Subscription subscription : topicRegion.getDurableSubscriptions().values()) {
String subName = subscription.getConsumerInfo().getSubscriptionName();
if (subName != null && subName.equals(candidateSubName)) {
- DemandSubscription sub = createDemandSubscription(dest);
+ DemandSubscription sub = createDemandSubscription(dest, subName);
sub.getLocalInfo().setSubscriptionName(getSubscriberName(dest));
sub.setStaticallyIncluded(true);
addSubscription(sub);
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
----------------------------------------------------------------------
diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
index 039aba0..9e596d4 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkBridgeConfiguration.java
@@ -31,6 +31,7 @@ public class NetworkBridgeConfiguration {
private boolean conduitSubscriptions = true;
private boolean useVirtualDestSubs;
private boolean dynamicOnly;
+ private boolean syncDurableSubs;
private boolean dispatchAsync = true;
private boolean decreaseNetworkConsumerPriority;
private int consumerPriorityBase = ConsumerInfo.NETWORK_CONSUMER_PRIORITY;
@@ -98,6 +99,14 @@ public class NetworkBridgeConfiguration {
this.dynamicOnly = dynamicOnly;
}
+ public boolean isSyncDurableSubs() {
+ return syncDurableSubs;
+ }
+
+ public void setSyncDurableSubs(boolean syncDurableSubs) {
+ this.syncDurableSubs = syncDurableSubs;
+ }
+
/**
* @return the bridgeTempDestinations
*/
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/pom.xml
----------------------------------------------------------------------
diff --git a/activemq-client/pom.xml b/activemq-client/pom.xml
index c634674..ef7aa12 100755
--- a/activemq-client/pom.xml
+++ b/activemq-client/pom.xml
@@ -308,7 +308,7 @@
<tasks>
<echo>Running OpenWire Generator</echo>
<taskdef name="generate" classname="org.apache.activemq.openwire.tool.JavaGeneratorTask" classpathref="maven.compile.classpath" />
- <generate version="11" basedir="${basedir}" generateTests="false" />
+ <generate version="12" basedir="${basedir}" generateTests="false" />
</tasks>
</configuration>
<dependencies>
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/command/BrokerInfo.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/command/BrokerInfo.java b/activemq-client/src/main/java/org/apache/activemq/command/BrokerInfo.java
index b542e61..685d204 100755
--- a/activemq-client/src/main/java/org/apache/activemq/command/BrokerInfo.java
+++ b/activemq-client/src/main/java/org/apache/activemq/command/BrokerInfo.java
@@ -26,9 +26,9 @@ import org.apache.activemq.util.MarshallingSupport;
* so that the client knows which broker node he's talking to and also any peers
* that the node has in his cluster. This is the broker helping the client out
* in discovering other nodes in the cluster.
- *
+ *
* @openwire:marshaller code="2"
- *
+ *
*/
public class BrokerInfo extends BaseCommand {
private static final String PASSIVE_SLAVE_KEY = "passiveSlave";
@@ -46,13 +46,13 @@ public class BrokerInfo extends BaseCommand {
String brokerUploadUrl;
String networkProperties;
transient int refCount = 0;
-
+
public BrokerInfo copy() {
BrokerInfo copy = new BrokerInfo();
copy(copy);
return copy;
}
-
+
private void copy(BrokerInfo copy) {
super.copy(copy);
copy.brokerId = this.brokerId;
@@ -67,13 +67,14 @@ public class BrokerInfo extends BaseCommand {
copy.connectionId = this.connectionId;
copy.brokerUploadUrl = this.brokerUploadUrl;
copy.networkProperties = this.networkProperties;
- }
+ }
@Override
public boolean isBrokerInfo() {
return true;
}
+ @Override
public byte getDataStructureType() {
return DATA_STRUCTURE_TYPE;
}
@@ -122,6 +123,7 @@ public class BrokerInfo extends BaseCommand {
this.brokerName = brokerName;
}
+ @Override
public Response visit(CommandVisitor visitor) throws Exception {
return visitor.processBrokerInfo(this);
}
@@ -198,7 +200,7 @@ public class BrokerInfo extends BaseCommand {
/**
* The broker assigns a each connection it accepts a connection id.
- *
+ *
* @openwire:property version=2
*/
public long getConnectionId() {
@@ -212,7 +214,7 @@ public class BrokerInfo extends BaseCommand {
/**
* The URL to use when uploading BLOBs to the broker or some other external
* file/http server
- *
+ *
* @openwire:property version=3
*/
public String getBrokerUploadUrl() {
@@ -237,7 +239,7 @@ public class BrokerInfo extends BaseCommand {
public void setNetworkProperties(String networkProperties) {
this.networkProperties = networkProperties;
}
-
+
public boolean isPassiveSlave() {
boolean result = false;
Properties props = getProperties();
@@ -246,7 +248,7 @@ public class BrokerInfo extends BaseCommand {
}
return result;
}
-
+
public void setPassiveSlave(boolean value) {
Properties props = new Properties();
props.put(PASSIVE_SLAVE_KEY, Boolean.toString(value));
@@ -256,7 +258,7 @@ public class BrokerInfo extends BaseCommand {
e.printStackTrace();
}
}
-
+
public Properties getProperties() {
Properties result = null;
try {
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/command/BrokerSubscriptionInfo.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/command/BrokerSubscriptionInfo.java b/activemq-client/src/main/java/org/apache/activemq/command/BrokerSubscriptionInfo.java
new file mode 100644
index 0000000..57f854a
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/command/BrokerSubscriptionInfo.java
@@ -0,0 +1,99 @@
+/**
+ * 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.
+ */
+package org.apache.activemq.command;
+
+import org.apache.activemq.state.CommandVisitor;
+
+/**
+ * Used to represent a durable subscription.
+ *
+ * @openwire:marshaller code="92"
+ *
+ */
+public class BrokerSubscriptionInfo extends BaseCommand {
+
+ public static final byte DATA_STRUCTURE_TYPE = CommandTypes.BROKER_SUBSCRIPTION_INFO;
+
+ BrokerId brokerId;
+ String brokerName;
+ ConsumerInfo subscriptionInfos[];
+
+ public BrokerSubscriptionInfo() {
+
+ }
+
+ public BrokerSubscriptionInfo(String brokerName) {
+ this.brokerName = brokerName;
+ }
+
+ public BrokerSubscriptionInfo copy() {
+ BrokerSubscriptionInfo copy = new BrokerSubscriptionInfo();
+ copy(copy);
+ return copy;
+ }
+
+ private void copy(BrokerSubscriptionInfo copy) {
+ super.copy(copy);
+ copy.subscriptionInfos = this.subscriptionInfos;
+ copy.brokerName = this.brokerName;
+ copy.brokerId = this.brokerId;
+ }
+
+ @Override
+ public Response visit(CommandVisitor visitor) throws Exception {
+ return visitor.processBrokerSubscriptionInfo(this);
+ }
+
+ @Override
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @openwire:property version=12
+ */
+ public BrokerId getBrokerId() {
+ return brokerId;
+ }
+
+ public void setBrokerId(BrokerId brokerId) {
+ this.brokerId = brokerId;
+ }
+
+ /**
+ * @openwire:property version=12
+ */
+ public String getBrokerName() {
+ return brokerName;
+ }
+
+ public void setBrokerName(String brokerName) {
+ this.brokerName = brokerName;
+ }
+
+ /**
+ * @openwire:property version=12
+ */
+ public ConsumerInfo[] getSubscriptionInfos() {
+ return subscriptionInfos;
+ }
+
+ public void setSubscriptionInfos(ConsumerInfo[] subscriptionInfos) {
+ this.subscriptionInfos = subscriptionInfos;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/command/CommandTypes.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/command/CommandTypes.java b/activemq-client/src/main/java/org/apache/activemq/command/CommandTypes.java
index e4bf463..67337fc 100755
--- a/activemq-client/src/main/java/org/apache/activemq/command/CommandTypes.java
+++ b/activemq-client/src/main/java/org/apache/activemq/command/CommandTypes.java
@@ -24,7 +24,7 @@ package org.apache.activemq.command;
public interface CommandTypes {
// What is the latest version of the openwire protocol
- byte PROTOCOL_VERSION = 11;
+ byte PROTOCOL_VERSION = 12;
// What is the latest version of the openwire protocol used in the stores
byte PROTOCOL_STORE_VERSION = 11;
@@ -32,6 +32,9 @@ public interface CommandTypes {
// What is the legacy version that old KahaDB store's most commonly used
byte PROTOCOL_LEGACY_STORE_VERSION = 6;
+ // What is the first version that BROKER_SUBSCRIPTION_INFO is supported
+ byte PROTOCOL_VERSION_DURABLE_SYNC = 12;
+
// A marshaling layer can use this type to specify a null object.
byte NULL = 0;
@@ -93,7 +96,7 @@ public interface CommandTypes {
//
// Used by discovery
//
- // /////////////////////////////////////////////////
+ // /////////////////////////////////////////////////BROKER_SUBSCRIPTION_INFO
byte DISCOVERY_EVENT = 40;
// /////////////////////////////////////////////////
@@ -141,6 +144,7 @@ public interface CommandTypes {
byte MESSAGE_DISPATCH_NOTIFICATION = 90;
byte NETWORK_BRIDGE_FILTER = 91;
+ byte BROKER_SUBSCRIPTION_INFO = 92;
// /////////////////////////////////////////////////
//
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBlobMessageMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBlobMessageMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBlobMessageMarshaller.java
new file mode 100644
index 0000000..56d1b3a
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBlobMessageMarshaller.java
@@ -0,0 +1,139 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQBlobMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQBlobMessageMarshaller extends ActiveMQMessageMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQBlobMessage.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQBlobMessage();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+ info.setRemoteBlobUrl(tightUnmarshalString(dataIn, bs));
+ info.setMimeType(tightUnmarshalString(dataIn, bs));
+ info.setDeletedByBroker(bs.readBoolean());
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+ rc += tightMarshalString1(info.getRemoteBlobUrl(), bs);
+ rc += tightMarshalString1(info.getMimeType(), bs);
+ bs.writeBoolean(info.isDeletedByBroker());
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+ tightMarshalString2(info.getRemoteBlobUrl(), dataOut, bs);
+ tightMarshalString2(info.getMimeType(), dataOut, bs);
+ bs.readBoolean();
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+ info.setRemoteBlobUrl(looseUnmarshalString(dataIn));
+ info.setMimeType(looseUnmarshalString(dataIn));
+ info.setDeletedByBroker(dataIn.readBoolean());
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ ActiveMQBlobMessage info = (ActiveMQBlobMessage)o;
+
+ super.looseMarshal(wireFormat, o, dataOut);
+ looseMarshalString(info.getRemoteBlobUrl(), dataOut);
+ looseMarshalString(info.getMimeType(), dataOut);
+ dataOut.writeBoolean(info.isDeletedByBroker());
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBytesMessageMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBytesMessageMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBytesMessageMarshaller.java
new file mode 100644
index 0000000..f8272c0
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQBytesMessageMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQBytesMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQBytesMessageMarshaller extends ActiveMQMessageMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQBytesMessage.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQBytesMessage();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQDestinationMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQDestinationMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQDestinationMarshaller.java
new file mode 100644
index 0000000..c75b700
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQDestinationMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQDestinationMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public abstract class ActiveMQDestinationMarshaller extends BaseDataStreamMarshaller {
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ ActiveMQDestination info = (ActiveMQDestination)o;
+ info.setPhysicalName(tightUnmarshalString(dataIn, bs));
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ ActiveMQDestination info = (ActiveMQDestination)o;
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+ rc += tightMarshalString1(info.getPhysicalName(), bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ ActiveMQDestination info = (ActiveMQDestination)o;
+ tightMarshalString2(info.getPhysicalName(), dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ ActiveMQDestination info = (ActiveMQDestination)o;
+ info.setPhysicalName(looseUnmarshalString(dataIn));
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ ActiveMQDestination info = (ActiveMQDestination)o;
+
+ super.looseMarshal(wireFormat, o, dataOut);
+ looseMarshalString(info.getPhysicalName(), dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMapMessageMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMapMessageMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMapMessageMarshaller.java
new file mode 100644
index 0000000..3df89ea
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMapMessageMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQMapMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQMapMessageMarshaller extends ActiveMQMessageMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQMapMessage.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQMapMessage();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMessageMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMessageMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMessageMarshaller.java
new file mode 100644
index 0000000..cda644c
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQMessageMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQMessageMarshaller extends MessageMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQMessage.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQMessage();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQObjectMessageMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQObjectMessageMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQObjectMessageMarshaller.java
new file mode 100644
index 0000000..c815a56
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQObjectMessageMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQObjectMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQObjectMessageMarshaller extends ActiveMQMessageMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQObjectMessage.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQObjectMessage();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQQueueMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQQueueMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQQueueMarshaller.java
new file mode 100644
index 0000000..00fa9ca
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQQueueMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQQueueMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQQueueMarshaller extends ActiveMQDestinationMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQQueue.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQQueue();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQStreamMessageMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQStreamMessageMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQStreamMessageMarshaller.java
new file mode 100644
index 0000000..b8acc6f
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQStreamMessageMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQStreamMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQStreamMessageMarshaller extends ActiveMQMessageMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQStreamMessage.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQStreamMessage();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempDestinationMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempDestinationMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempDestinationMarshaller.java
new file mode 100644
index 0000000..de52962
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempDestinationMarshaller.java
@@ -0,0 +1,99 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQTempDestinationMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public abstract class ActiveMQTempDestinationMarshaller extends ActiveMQDestinationMarshaller {
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempQueueMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempQueueMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempQueueMarshaller.java
new file mode 100644
index 0000000..334db89
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempQueueMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQTempQueueMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQTempQueueMarshaller extends ActiveMQTempDestinationMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQTempQueue.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQTempQueue();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempTopicMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempTopicMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempTopicMarshaller.java
new file mode 100644
index 0000000..2ba15c9
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTempTopicMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQTempTopicMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQTempTopicMarshaller extends ActiveMQTempDestinationMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQTempTopic.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQTempTopic();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/activemq/blob/3953b9aa/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTextMessageMarshaller.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTextMessageMarshaller.java b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTextMessageMarshaller.java
new file mode 100644
index 0000000..971cb96
--- /dev/null
+++ b/activemq-client/src/main/java/org/apache/activemq/openwire/v12/ActiveMQTextMessageMarshaller.java
@@ -0,0 +1,114 @@
+/**
+ *
+ * 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.
+ */
+
+package org.apache.activemq.openwire.v12;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.activemq.openwire.*;
+import org.apache.activemq.command.*;
+
+
+
+/**
+ * Marshalling code for Open Wire Format for ActiveMQTextMessageMarshaller
+ *
+ *
+ * NOTE!: This file is auto generated - do not modify!
+ * if you need to make a change, please see the modify the groovy scripts in the
+ * under src/gram/script and then use maven openwire:generate to regenerate
+ * this file.
+ *
+ *
+ */
+public class ActiveMQTextMessageMarshaller extends ActiveMQMessageMarshaller {
+
+ /**
+ * Return the type of Data Structure we marshal
+ * @return short representation of the type data structure
+ */
+ public byte getDataStructureType() {
+ return ActiveMQTextMessage.DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @return a new object instance
+ */
+ public DataStructure createObject() {
+ return new ActiveMQTextMessage();
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException {
+ super.tightUnmarshal(wireFormat, o, dataIn, bs);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException {
+
+ int rc = super.tightMarshal1(wireFormat, o, bs);
+
+ return rc + 0;
+ }
+
+ /**
+ * Write a object instance to data output stream
+ *
+ * @param o the instance to be marshaled
+ * @param dataOut the output stream
+ * @throws IOException thrown if an error occurs
+ */
+ public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException {
+ super.tightMarshal2(wireFormat, o, dataOut, bs);
+
+ }
+
+ /**
+ * Un-marshal an object instance from the data input stream
+ *
+ * @param o the object to un-marshal
+ * @param dataIn the data input stream to build the object from
+ * @throws IOException
+ */
+ public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException {
+ super.looseUnmarshal(wireFormat, o, dataIn);
+
+ }
+
+
+ /**
+ * Write the booleans that this object uses to a BooleanStream
+ */
+ public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException {
+
+ super.looseMarshal(wireFormat, o, dataOut);
+
+ }
+}