Return-Path: X-Original-To: apmail-activemq-commits-archive@www.apache.org Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1709C113EE for ; Thu, 24 Jul 2014 14:22:58 +0000 (UTC) Received: (qmail 21829 invoked by uid 500); 24 Jul 2014 14:22:53 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 21750 invoked by uid 500); 24 Jul 2014 14:22:53 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 19835 invoked by uid 99); 24 Jul 2014 14:22:51 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Jul 2014 14:22:51 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 940469B2CBE; Thu, 24 Jul 2014 14:22:51 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: tabish@apache.org To: commits@activemq.apache.org Date: Thu, 24 Jul 2014 14:23:34 -0000 Message-Id: In-Reply-To: <1bc8382c8f4c487380c559ebaef9b02d@git.apache.org> References: <1bc8382c8f4c487380c559ebaef9b02d@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [45/51] [partial] https://issues.apache.org/jira/browse/OPENWIRE-1 http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DataResponseMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DataResponseMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DataResponseMarshaller.java new file mode 100644 index 0000000..f010577 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DataResponseMarshaller.java @@ -0,0 +1,123 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataResponse; +import org.apache.activemq.openwire.commands.DataStructure; + +public class DataResponseMarshaller extends ResponseMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return DataResponse.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new DataResponse(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + DataResponse info = (DataResponse) o; + info.setData(tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + DataResponse info = (DataResponse) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalNestedObject1(wireFormat, info.getData(), 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + DataResponse info = (DataResponse) o; + tightMarshalNestedObject2(wireFormat, info.getData(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + DataResponse info = (DataResponse) o; + info.setData(looseUnmarsalNestedObject(wireFormat, dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + DataResponse info = (DataResponse) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalNestedObject(wireFormat, info.getData(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DestinationInfoMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DestinationInfoMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DestinationInfoMarshaller.java new file mode 100644 index 0000000..978509a --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DestinationInfoMarshaller.java @@ -0,0 +1,165 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.BrokerId; +import org.apache.activemq.openwire.commands.ConnectionId; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.DestinationInfo; +import org.apache.activemq.openwire.commands.OpenWireDestination; + +public class DestinationInfoMarshaller extends BaseCommandMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return DestinationInfo.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new DestinationInfo(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + DestinationInfo info = (DestinationInfo) o; + info.setConnectionId((ConnectionId) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + info.setDestination((OpenWireDestination) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + info.setOperationType(dataIn.readByte()); + info.setTimeout(tightUnmarshalLong(wireFormat, dataIn, bs)); + + if (bs.readBoolean()) { + short size = dataIn.readShort(); + BrokerId value[] = new BrokerId[size]; + for (int i = 0; i < size; i++) { + value[i] = (BrokerId) tightUnmarsalNestedObject(wireFormat, dataIn, bs); + } + info.setBrokerPath(value); + } else { + info.setBrokerPath(null); + } + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + DestinationInfo info = (DestinationInfo) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalCachedObject1(wireFormat, info.getConnectionId(), bs); + rc += tightMarshalCachedObject1(wireFormat, info.getDestination(), bs); + rc += tightMarshalLong1(wireFormat, info.getTimeout(), bs); + rc += tightMarshalObjectArray1(wireFormat, info.getBrokerPath(), bs); + + return rc + 1; + } + + /** + * 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + DestinationInfo info = (DestinationInfo) o; + tightMarshalCachedObject2(wireFormat, info.getConnectionId(), dataOut, bs); + tightMarshalCachedObject2(wireFormat, info.getDestination(), dataOut, bs); + dataOut.writeByte(info.getOperationType()); + tightMarshalLong2(wireFormat, info.getTimeout(), dataOut, bs); + tightMarshalObjectArray2(wireFormat, info.getBrokerPath(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + DestinationInfo info = (DestinationInfo) o; + info.setConnectionId((ConnectionId) looseUnmarsalCachedObject(wireFormat, dataIn)); + info.setDestination((OpenWireDestination) looseUnmarsalCachedObject(wireFormat, dataIn)); + info.setOperationType(dataIn.readByte()); + info.setTimeout(looseUnmarshalLong(wireFormat, dataIn)); + + if (dataIn.readBoolean()) { + short size = dataIn.readShort(); + BrokerId value[] = new BrokerId[size]; + for (int i = 0; i < size; i++) { + value[i] = (BrokerId) looseUnmarsalNestedObject(wireFormat, dataIn); + } + info.setBrokerPath(value); + } else { + info.setBrokerPath(null); + } + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + DestinationInfo info = (DestinationInfo) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalCachedObject(wireFormat, info.getConnectionId(), dataOut); + looseMarshalCachedObject(wireFormat, info.getDestination(), dataOut); + dataOut.writeByte(info.getOperationType()); + looseMarshalLong(wireFormat, info.getTimeout(), dataOut); + looseMarshalObjectArray(wireFormat, info.getBrokerPath(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DiscoveryEventMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DiscoveryEventMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DiscoveryEventMarshaller.java new file mode 100644 index 0000000..4796429 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/DiscoveryEventMarshaller.java @@ -0,0 +1,129 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BaseDataStreamMarshaller; +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.DiscoveryEvent; + +public class DiscoveryEventMarshaller extends BaseDataStreamMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return DiscoveryEvent.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new DiscoveryEvent(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + DiscoveryEvent info = (DiscoveryEvent) o; + info.setServiceName(tightUnmarshalString(dataIn, bs)); + info.setBrokerName(tightUnmarshalString(dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + DiscoveryEvent info = (DiscoveryEvent) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalString1(info.getServiceName(), bs); + rc += tightMarshalString1(info.getBrokerName(), 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + DiscoveryEvent info = (DiscoveryEvent) o; + tightMarshalString2(info.getServiceName(), dataOut, bs); + tightMarshalString2(info.getBrokerName(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + DiscoveryEvent info = (DiscoveryEvent) o; + info.setServiceName(looseUnmarshalString(dataIn)); + info.setBrokerName(looseUnmarshalString(dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + DiscoveryEvent info = (DiscoveryEvent) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalString(info.getServiceName(), dataOut); + looseMarshalString(info.getBrokerName(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/ExceptionResponseMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/ExceptionResponseMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/ExceptionResponseMarshaller.java new file mode 100644 index 0000000..d88daf0 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/ExceptionResponseMarshaller.java @@ -0,0 +1,123 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.ExceptionResponse; + +public class ExceptionResponseMarshaller extends ResponseMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return ExceptionResponse.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new ExceptionResponse(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + ExceptionResponse info = (ExceptionResponse) o; + info.setException(tightUnmarsalThrowable(wireFormat, dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + ExceptionResponse info = (ExceptionResponse) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalThrowable1(wireFormat, info.getException(), 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + ExceptionResponse info = (ExceptionResponse) o; + tightMarshalThrowable2(wireFormat, info.getException(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + ExceptionResponse info = (ExceptionResponse) o; + info.setException(looseUnmarsalThrowable(wireFormat, dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + ExceptionResponse info = (ExceptionResponse) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalThrowable(wireFormat, info.getException(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/FlushCommandMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/FlushCommandMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/FlushCommandMarshaller.java new file mode 100644 index 0000000..cfb6393 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/FlushCommandMarshaller.java @@ -0,0 +1,108 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.FlushCommand; + +public class FlushCommandMarshaller extends BaseCommandMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return FlushCommand.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new FlushCommand(); + } + + /** + * 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/IntegerResponseMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/IntegerResponseMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/IntegerResponseMarshaller.java new file mode 100644 index 0000000..35d5378 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/IntegerResponseMarshaller.java @@ -0,0 +1,119 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.IntegerResponse; + +public class IntegerResponseMarshaller extends ResponseMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return IntegerResponse.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new IntegerResponse(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + IntegerResponse info = (IntegerResponse) o; + info.setResult(dataIn.readInt()); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + int rc = super.tightMarshal1(wireFormat, o, bs); + return rc + 4; + } + + /** + * 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + IntegerResponse info = (IntegerResponse) o; + dataOut.writeInt(info.getResult()); + } + + /** + * 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + IntegerResponse info = (IntegerResponse) o; + info.setResult(dataIn.readInt()); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + IntegerResponse info = (IntegerResponse) o; + + super.looseMarshal(wireFormat, o, dataOut); + dataOut.writeInt(info.getResult()); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalQueueAckMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalQueueAckMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalQueueAckMarshaller.java new file mode 100644 index 0000000..5017e62 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalQueueAckMarshaller.java @@ -0,0 +1,131 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BaseDataStreamMarshaller; +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.JournalQueueAck; +import org.apache.activemq.openwire.commands.MessageAck; +import org.apache.activemq.openwire.commands.OpenWireDestination; + +public class JournalQueueAckMarshaller extends BaseDataStreamMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return JournalQueueAck.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new JournalQueueAck(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + JournalQueueAck info = (JournalQueueAck) o; + info.setDestination((OpenWireDestination) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + info.setMessageAck((MessageAck) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + JournalQueueAck info = (JournalQueueAck) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalNestedObject1(wireFormat, info.getDestination(), bs); + rc += tightMarshalNestedObject1(wireFormat, info.getMessageAck(), 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + JournalQueueAck info = (JournalQueueAck) o; + tightMarshalNestedObject2(wireFormat, info.getDestination(), dataOut, bs); + tightMarshalNestedObject2(wireFormat, info.getMessageAck(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + JournalQueueAck info = (JournalQueueAck) o; + info.setDestination((OpenWireDestination) looseUnmarsalNestedObject(wireFormat, dataIn)); + info.setMessageAck((MessageAck) looseUnmarsalNestedObject(wireFormat, dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + JournalQueueAck info = (JournalQueueAck) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalNestedObject(wireFormat, info.getDestination(), dataOut); + looseMarshalNestedObject(wireFormat, info.getMessageAck(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTopicAckMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTopicAckMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTopicAckMarshaller.java new file mode 100644 index 0000000..d5dd037 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTopicAckMarshaller.java @@ -0,0 +1,152 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BaseDataStreamMarshaller; +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.JournalTopicAck; +import org.apache.activemq.openwire.commands.MessageId; +import org.apache.activemq.openwire.commands.OpenWireDestination; +import org.apache.activemq.openwire.commands.TransactionId; + +public class JournalTopicAckMarshaller extends BaseDataStreamMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return JournalTopicAck.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new JournalTopicAck(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + JournalTopicAck info = (JournalTopicAck) o; + info.setDestination((OpenWireDestination) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + info.setMessageId((MessageId) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + info.setMessageSequenceId(tightUnmarshalLong(wireFormat, dataIn, bs)); + info.setSubscritionName(tightUnmarshalString(dataIn, bs)); + info.setClientId(tightUnmarshalString(dataIn, bs)); + info.setTransactionId((TransactionId) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + JournalTopicAck info = (JournalTopicAck) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalNestedObject1(wireFormat, info.getDestination(), bs); + rc += tightMarshalNestedObject1(wireFormat, info.getMessageId(), bs); + rc += tightMarshalLong1(wireFormat, info.getMessageSequenceId(), bs); + rc += tightMarshalString1(info.getSubscritionName(), bs); + rc += tightMarshalString1(info.getClientId(), bs); + rc += tightMarshalNestedObject1(wireFormat, info.getTransactionId(), 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + JournalTopicAck info = (JournalTopicAck) o; + tightMarshalNestedObject2(wireFormat, info.getDestination(), dataOut, bs); + tightMarshalNestedObject2(wireFormat, info.getMessageId(), dataOut, bs); + tightMarshalLong2(wireFormat, info.getMessageSequenceId(), dataOut, bs); + tightMarshalString2(info.getSubscritionName(), dataOut, bs); + tightMarshalString2(info.getClientId(), dataOut, bs); + tightMarshalNestedObject2(wireFormat, info.getTransactionId(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + JournalTopicAck info = (JournalTopicAck) o; + info.setDestination((OpenWireDestination) looseUnmarsalNestedObject(wireFormat, dataIn)); + info.setMessageId((MessageId) looseUnmarsalNestedObject(wireFormat, dataIn)); + info.setMessageSequenceId(looseUnmarshalLong(wireFormat, dataIn)); + info.setSubscritionName(looseUnmarshalString(dataIn)); + info.setClientId(looseUnmarshalString(dataIn)); + info.setTransactionId((TransactionId) looseUnmarsalNestedObject(wireFormat, dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + JournalTopicAck info = (JournalTopicAck) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalNestedObject(wireFormat, info.getDestination(), dataOut); + looseMarshalNestedObject(wireFormat, info.getMessageId(), dataOut); + looseMarshalLong(wireFormat, info.getMessageSequenceId(), dataOut); + looseMarshalString(info.getSubscritionName(), dataOut); + looseMarshalString(info.getClientId(), dataOut); + looseMarshalNestedObject(wireFormat, info.getTransactionId(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTraceMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTraceMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTraceMarshaller.java new file mode 100644 index 0000000..1100320 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTraceMarshaller.java @@ -0,0 +1,124 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BaseDataStreamMarshaller; +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.JournalTrace; + +public class JournalTraceMarshaller extends BaseDataStreamMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return JournalTrace.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new JournalTrace(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + JournalTrace info = (JournalTrace) o; + info.setMessage(tightUnmarshalString(dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + JournalTrace info = (JournalTrace) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalString1(info.getMessage(), 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + JournalTrace info = (JournalTrace) o; + tightMarshalString2(info.getMessage(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + JournalTrace info = (JournalTrace) o; + info.setMessage(looseUnmarshalString(dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + JournalTrace info = (JournalTrace) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalString(info.getMessage(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTransactionMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTransactionMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTransactionMarshaller.java new file mode 100644 index 0000000..36d2d7d --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/JournalTransactionMarshaller.java @@ -0,0 +1,134 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BaseDataStreamMarshaller; +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.JournalTransaction; +import org.apache.activemq.openwire.commands.TransactionId; + +public class JournalTransactionMarshaller extends BaseDataStreamMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return JournalTransaction.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new JournalTransaction(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + JournalTransaction info = (JournalTransaction) o; + info.setTransactionId((TransactionId) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + info.setType(dataIn.readByte()); + info.setWasPrepared(bs.readBoolean()); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + JournalTransaction info = (JournalTransaction) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalNestedObject1(wireFormat, info.getTransactionId(), bs); + bs.writeBoolean(info.getWasPrepared()); + + return rc + 1; + } + + /** + * 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + JournalTransaction info = (JournalTransaction) o; + tightMarshalNestedObject2(wireFormat, info.getTransactionId(), dataOut, bs); + dataOut.writeByte(info.getType()); + 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + JournalTransaction info = (JournalTransaction) o; + info.setTransactionId((TransactionId) looseUnmarsalNestedObject(wireFormat, dataIn)); + info.setType(dataIn.readByte()); + info.setWasPrepared(dataIn.readBoolean()); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + JournalTransaction info = (JournalTransaction) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalNestedObject(wireFormat, info.getTransactionId(), dataOut); + dataOut.writeByte(info.getType()); + dataOut.writeBoolean(info.getWasPrepared()); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/KeepAliveInfoMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/KeepAliveInfoMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/KeepAliveInfoMarshaller.java new file mode 100644 index 0000000..2c2f2e2 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/KeepAliveInfoMarshaller.java @@ -0,0 +1,108 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.KeepAliveInfo; + +public class KeepAliveInfoMarshaller extends BaseCommandMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return KeepAliveInfo.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new KeepAliveInfo(); + } + + /** + * 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LastPartialCommandMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LastPartialCommandMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LastPartialCommandMarshaller.java new file mode 100644 index 0000000..e4e4410 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LastPartialCommandMarshaller.java @@ -0,0 +1,108 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.LastPartialCommand; + +public class LastPartialCommandMarshaller extends PartialCommandMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return LastPartialCommand.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new LastPartialCommand(); + } + + /** + * 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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 + */ + @Override + 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-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LocalTransactionIdMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LocalTransactionIdMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LocalTransactionIdMarshaller.java new file mode 100644 index 0000000..baefe7b --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/LocalTransactionIdMarshaller.java @@ -0,0 +1,129 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.ConnectionId; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.LocalTransactionId; + +public class LocalTransactionIdMarshaller extends TransactionIdMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return LocalTransactionId.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new LocalTransactionId(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + LocalTransactionId info = (LocalTransactionId) o; + info.setValue(tightUnmarshalLong(wireFormat, dataIn, bs)); + info.setConnectionId((ConnectionId) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + LocalTransactionId info = (LocalTransactionId) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalLong1(wireFormat, info.getValue(), bs); + rc += tightMarshalCachedObject1(wireFormat, info.getConnectionId(), 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + LocalTransactionId info = (LocalTransactionId) o; + tightMarshalLong2(wireFormat, info.getValue(), dataOut, bs); + tightMarshalCachedObject2(wireFormat, info.getConnectionId(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + LocalTransactionId info = (LocalTransactionId) o; + info.setValue(looseUnmarshalLong(wireFormat, dataIn)); + info.setConnectionId((ConnectionId) looseUnmarsalCachedObject(wireFormat, dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + LocalTransactionId info = (LocalTransactionId) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalLong(wireFormat, info.getValue(), dataOut); + looseMarshalCachedObject(wireFormat, info.getConnectionId(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MarshallerFactory.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MarshallerFactory.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MarshallerFactory.java new file mode 100644 index 0000000..3235255 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MarshallerFactory.java @@ -0,0 +1,95 @@ +/** + * 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.codec.v10; + +import org.apache.activemq.openwire.codec.DataStreamMarshaller; +import org.apache.activemq.openwire.codec.OpenWireFormat; + +public class MarshallerFactory { + + /** + * Creates a Map of command type -> Marshallers + */ + static final private DataStreamMarshaller marshaller[] = new DataStreamMarshaller[256]; + static { + + add(new OpenWireBlobMessageMarshaller()); + add(new OpenWireBytesMessageMarshaller()); + add(new OpenWireMapMessageMarshaller()); + add(new OpenWireMessageMarshaller()); + add(new OpenWireObjectMessageMarshaller()); + add(new OpenWireQueueMarshaller()); + add(new OpenWireStreamMessageMarshaller()); + add(new OpenWireTempQueueMarshaller()); + add(new OpenWireTempTopicMarshaller()); + add(new OpenWireTextMessageMarshaller()); + add(new OpenWireTopicMarshaller()); + add(new BrokerIdMarshaller()); + add(new BrokerInfoMarshaller()); + add(new ConnectionControlMarshaller()); + add(new ConnectionErrorMarshaller()); + add(new ConnectionIdMarshaller()); + add(new ConnectionInfoMarshaller()); + add(new ConsumerControlMarshaller()); + add(new ConsumerIdMarshaller()); + add(new ConsumerInfoMarshaller()); + add(new ControlCommandMarshaller()); + add(new DataArrayResponseMarshaller()); + add(new DataResponseMarshaller()); + add(new DestinationInfoMarshaller()); + add(new DiscoveryEventMarshaller()); + add(new ExceptionResponseMarshaller()); + add(new FlushCommandMarshaller()); + add(new IntegerResponseMarshaller()); + add(new JournalQueueAckMarshaller()); + add(new JournalTopicAckMarshaller()); + add(new JournalTraceMarshaller()); + add(new JournalTransactionMarshaller()); + add(new KeepAliveInfoMarshaller()); + add(new LastPartialCommandMarshaller()); + add(new LocalTransactionIdMarshaller()); + add(new MessageAckMarshaller()); + add(new MessageDispatchMarshaller()); + add(new MessageDispatchNotificationMarshaller()); + add(new MessageIdMarshaller()); + add(new MessagePullMarshaller()); + add(new NetworkBridgeFilterMarshaller()); + add(new PartialCommandMarshaller()); + add(new ProducerAckMarshaller()); + add(new ProducerIdMarshaller()); + add(new ProducerInfoMarshaller()); + add(new RemoveInfoMarshaller()); + add(new RemoveSubscriptionInfoMarshaller()); + add(new ReplayCommandMarshaller()); + add(new ResponseMarshaller()); + add(new SessionIdMarshaller()); + add(new SessionInfoMarshaller()); + add(new ShutdownInfoMarshaller()); + add(new SubscriptionInfoMarshaller()); + add(new TransactionInfoMarshaller()); + add(new WireFormatInfoMarshaller()); + add(new XATransactionIdMarshaller()); + } + + static private void add(DataStreamMarshaller dsm) { + marshaller[dsm.getDataStructureType()] = dsm; + } + + static public DataStreamMarshaller[] createMarshallerMap(OpenWireFormat wireFormat) { + return marshaller; + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageAckMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageAckMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageAckMarshaller.java new file mode 100644 index 0000000..2a8e030 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageAckMarshaller.java @@ -0,0 +1,160 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.ConsumerId; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.MessageAck; +import org.apache.activemq.openwire.commands.MessageId; +import org.apache.activemq.openwire.commands.OpenWireDestination; +import org.apache.activemq.openwire.commands.TransactionId; + +public class MessageAckMarshaller extends BaseCommandMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return MessageAck.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new MessageAck(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + MessageAck info = (MessageAck) o; + info.setDestination((OpenWireDestination) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + info.setTransactionId((TransactionId) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + info.setConsumerId((ConsumerId) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + info.setAckType(dataIn.readByte()); + info.setFirstMessageId((MessageId) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + info.setLastMessageId((MessageId) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + info.setMessageCount(dataIn.readInt()); + info.setPoisonCause(tightUnmarsalThrowable(wireFormat, dataIn, bs)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + MessageAck info = (MessageAck) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalCachedObject1(wireFormat, info.getDestination(), bs); + rc += tightMarshalCachedObject1(wireFormat, info.getTransactionId(), bs); + rc += tightMarshalCachedObject1(wireFormat, info.getConsumerId(), bs); + rc += tightMarshalNestedObject1(wireFormat, info.getFirstMessageId(), bs); + rc += tightMarshalNestedObject1(wireFormat, info.getLastMessageId(), bs); + rc += tightMarshalThrowable1(wireFormat, info.getPoisonCause(), bs); + + return rc + 5; + } + + /** + * 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + MessageAck info = (MessageAck) o; + tightMarshalCachedObject2(wireFormat, info.getDestination(), dataOut, bs); + tightMarshalCachedObject2(wireFormat, info.getTransactionId(), dataOut, bs); + tightMarshalCachedObject2(wireFormat, info.getConsumerId(), dataOut, bs); + dataOut.writeByte(info.getAckType()); + tightMarshalNestedObject2(wireFormat, info.getFirstMessageId(), dataOut, bs); + tightMarshalNestedObject2(wireFormat, info.getLastMessageId(), dataOut, bs); + dataOut.writeInt(info.getMessageCount()); + tightMarshalThrowable2(wireFormat, info.getPoisonCause(), 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + MessageAck info = (MessageAck) o; + info.setDestination((OpenWireDestination) looseUnmarsalCachedObject(wireFormat, dataIn)); + info.setTransactionId((TransactionId) looseUnmarsalCachedObject(wireFormat, dataIn)); + info.setConsumerId((ConsumerId) looseUnmarsalCachedObject(wireFormat, dataIn)); + info.setAckType(dataIn.readByte()); + info.setFirstMessageId((MessageId) looseUnmarsalNestedObject(wireFormat, dataIn)); + info.setLastMessageId((MessageId) looseUnmarsalNestedObject(wireFormat, dataIn)); + info.setMessageCount(dataIn.readInt()); + info.setPoisonCause(looseUnmarsalThrowable(wireFormat, dataIn)); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + MessageAck info = (MessageAck) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalCachedObject(wireFormat, info.getDestination(), dataOut); + looseMarshalCachedObject(wireFormat, info.getTransactionId(), dataOut); + looseMarshalCachedObject(wireFormat, info.getConsumerId(), dataOut); + dataOut.writeByte(info.getAckType()); + looseMarshalNestedObject(wireFormat, info.getFirstMessageId(), dataOut); + looseMarshalNestedObject(wireFormat, info.getLastMessageId(), dataOut); + dataOut.writeInt(info.getMessageCount()); + looseMarshalThrowable(wireFormat, info.getPoisonCause(), dataOut); + } +} http://git-wip-us.apache.org/repos/asf/activemq-openwire/blob/7ae454fa/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageDispatchMarshaller.java ---------------------------------------------------------------------- diff --git a/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageDispatchMarshaller.java b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageDispatchMarshaller.java new file mode 100644 index 0000000..9a9e9f7 --- /dev/null +++ b/openwire-core/src/main/java/org/apache/activemq/openwire/codec/v10/MessageDispatchMarshaller.java @@ -0,0 +1,140 @@ +/** + * 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.codec.v10; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.activemq.openwire.codec.BooleanStream; +import org.apache.activemq.openwire.codec.OpenWireFormat; +import org.apache.activemq.openwire.commands.ConsumerId; +import org.apache.activemq.openwire.commands.DataStructure; +import org.apache.activemq.openwire.commands.Message; +import org.apache.activemq.openwire.commands.MessageDispatch; +import org.apache.activemq.openwire.commands.OpenWireDestination; + +public class MessageDispatchMarshaller extends BaseCommandMarshaller { + + /** + * Return the type of Data Structure we marshal + * + * @return short representation of the type data structure + */ + @Override + public byte getDataStructureType() { + return MessageDispatch.DATA_STRUCTURE_TYPE; + } + + /** + * @return a new object instance + */ + @Override + public DataStructure createObject() { + return new MessageDispatch(); + } + + /** + * 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 + */ + @Override + public void tightUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn, BooleanStream bs) throws IOException { + super.tightUnmarshal(wireFormat, o, dataIn, bs); + + MessageDispatch info = (MessageDispatch) o; + info.setConsumerId((ConsumerId) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + info.setDestination((OpenWireDestination) tightUnmarsalCachedObject(wireFormat, dataIn, bs)); + info.setMessage((Message) tightUnmarsalNestedObject(wireFormat, dataIn, bs)); + info.setRedeliveryCounter(dataIn.readInt()); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public int tightMarshal1(OpenWireFormat wireFormat, Object o, BooleanStream bs) throws IOException { + MessageDispatch info = (MessageDispatch) o; + + int rc = super.tightMarshal1(wireFormat, o, bs); + rc += tightMarshalCachedObject1(wireFormat, info.getConsumerId(), bs); + rc += tightMarshalCachedObject1(wireFormat, info.getDestination(), bs); + rc += tightMarshalNestedObject1(wireFormat, info.getMessage(), bs); + + return rc + 4; + } + + /** + * 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 + */ + @Override + public void tightMarshal2(OpenWireFormat wireFormat, Object o, DataOutput dataOut, BooleanStream bs) throws IOException { + super.tightMarshal2(wireFormat, o, dataOut, bs); + + MessageDispatch info = (MessageDispatch) o; + tightMarshalCachedObject2(wireFormat, info.getConsumerId(), dataOut, bs); + tightMarshalCachedObject2(wireFormat, info.getDestination(), dataOut, bs); + tightMarshalNestedObject2(wireFormat, info.getMessage(), dataOut, bs); + dataOut.writeInt(info.getRedeliveryCounter()); + } + + /** + * 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 + */ + @Override + public void looseUnmarshal(OpenWireFormat wireFormat, Object o, DataInput dataIn) throws IOException { + super.looseUnmarshal(wireFormat, o, dataIn); + + MessageDispatch info = (MessageDispatch) o; + info.setConsumerId((ConsumerId) looseUnmarsalCachedObject(wireFormat, dataIn)); + info.setDestination((OpenWireDestination) looseUnmarsalCachedObject(wireFormat, dataIn)); + info.setMessage((Message) looseUnmarsalNestedObject(wireFormat, dataIn)); + info.setRedeliveryCounter(dataIn.readInt()); + } + + /** + * Write the booleans that this object uses to a BooleanStream + */ + @Override + public void looseMarshal(OpenWireFormat wireFormat, Object o, DataOutput dataOut) throws IOException { + MessageDispatch info = (MessageDispatch) o; + + super.looseMarshal(wireFormat, o, dataOut); + looseMarshalCachedObject(wireFormat, info.getConsumerId(), dataOut); + looseMarshalCachedObject(wireFormat, info.getDestination(), dataOut); + looseMarshalNestedObject(wireFormat, info.getMessage(), dataOut); + dataOut.writeInt(info.getRedeliveryCounter()); + } +}