[prev in list] [next in list] [prev in thread] [next in thread] 

List:       activemq-dev
Subject:    Re: svn commit: r390200 - in /incubator/activemq/trunk: activemq-core/src/main/java/org/apache/activ
From:       "James Strachan" <james.strachan () gmail ! com>
Date:       2006-03-30 18:16:00
Message-ID: ec6e67fd0603301016m5485d13cy70b3a5a98329fbc9 () mail ! gmail ! com
[Download RAW message or body]

Cool! I was going to suggest we make that change so that we can use
commandId counters on the KeepAliveInfo packets - so when we send them
we can help detect missed packets near time of inactivity when using
UDP/multicast etc.

James

On 3/30/06, chirino@apache.org <chirino@apache.org> wrote:
> Author: chirino
> Date: Thu Mar 30 10:06:06 2006
> New Revision: 390200
> 
> URL: http://svn.apache.org/viewcvs?rev=390200&view=rev
> Log:
> Changed the KeepAliveInfo packet so that it extends BaseCommand so that a reply can \
> be requested.  Should will allow for a broker or a client to get almost imediate \
> feedback to see if the connection is down. 
> 
> Modified:
> incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/KeepAliveInfo.java
>  incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v1/KeepAliveInfoMarshaller.java
>  incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v1/KeepAliveInfoTest.java
>  incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/Commands/KeepAliveInfo.cs
>  incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/OpenWire/V1/KeepAliveInfoMarshaller.cs
>  incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.c
> incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.h
> incubator/activemq/trunk/openwire-cpp/src/command/KeepAliveInfo.hpp
> incubator/activemq/trunk/openwire-cpp/src/marshal/KeepAliveInfoMarshaller.hpp
> 
> Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/KeepAliveInfo.java
>                 
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/j \
> ava/org/apache/activemq/command/KeepAliveInfo.java?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/KeepAliveInfo.java \
>                 (original)
> +++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/KeepAliveInfo.java \
> Thu Mar 30 10:06:06 2006 @@ -23,7 +23,7 @@
> * @openwire:marshaller code="10"
> * @version $Revision$
> */
> -public class KeepAliveInfo implements Command {
> +public class KeepAliveInfo extends BaseCommand {
> 
> public static final byte DATA_STRUCTURE_TYPE=CommandTypes.KEEP_ALIVE_INFO;
> 
> @@ -32,20 +32,6 @@
> 
> public byte getDataStructureType() {
> return DATA_STRUCTURE_TYPE;
> -    }
> -
> -    public void setCommandId(int value) {
> -    }
> -
> -    public int getCommandId() {
> -        return 0;
> -    }
> -
> -    public void setResponseRequired(boolean responseRequired) {
> -    }
> -
> -    public boolean isResponseRequired() {
> -        return false;
> }
> 
> public boolean isResponse() {
> 
> Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v1/KeepAliveInfoMarshaller.java
>                 
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/j \
> ava/org/apache/activemq/openwire/v1/KeepAliveInfoMarshaller.java?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v1/KeepAliveInfoMarshaller.java \
>                 (original)
> +++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/openwire/v1/KeepAliveInfoMarshaller.java \
> Thu Mar 30 10:06:06 2006 @@ -37,7 +37,7 @@
> *
> * @version $Revision$
> */
> -public class KeepAliveInfoMarshaller extends BaseDataStreamMarshaller {
> +public class KeepAliveInfoMarshaller extends BaseCommandMarshaller {
> 
> /**
> * Return the type of Data Structure we marshal
> 
> Modified: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v1/KeepAliveInfoTest.java
>                 
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/test/j \
> ava/org/apache/activemq/openwire/v1/KeepAliveInfoTest.java?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v1/KeepAliveInfoTest.java \
>                 (original)
> +++ incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/openwire/v1/KeepAliveInfoTest.java \
> Thu Mar 30 10:06:06 2006 @@ -35,7 +35,7 @@
> *
> * @version $Revision$
> */
> -public class KeepAliveInfoTest extends DataFileGeneratorTestSupport {
> +public class KeepAliveInfoTest extends BaseCommandTestSupport {
> 
> 
> public static KeepAliveInfoTest SINGLETON = new KeepAliveInfoTest();
> 
> Modified: incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/Commands/KeepAliveInfo.cs
>                 
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-dotnet/src/main \
> /csharp/ActiveMQ/Commands/KeepAliveInfo.cs?rev=390200&r1=390199&r2=390200&view=diff \
>                 ==============================================================================
>                 
> --- incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/Commands/KeepAliveInfo.cs \
>                 (original)
> +++ incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/Commands/KeepAliveInfo.cs \
> Thu Mar 30 10:06:06 2006 @@ -32,7 +32,7 @@
> /// <summary>
> ///  The ActiveMQ KeepAliveInfo Command
> /// </summary>
> -    public class KeepAliveInfo : BaseDataStructure, Command
> +    public class KeepAliveInfo : BaseCommand
> {
> public const byte ID_KeepAliveInfo = 10;
> 
> 
> Modified: incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/OpenWire/V1/KeepAliveInfoMarshaller.cs
>                 
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-dotnet/src/main \
> /csharp/ActiveMQ/OpenWire/V1/KeepAliveInfoMarshaller.cs?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/OpenWire/V1/KeepAliveInfoMarshaller.cs \
>                 (original)
> +++ incubator/activemq/trunk/activemq-dotnet/src/main/csharp/ActiveMQ/OpenWire/V1/KeepAliveInfoMarshaller.cs \
> Thu Mar 30 10:06:06 2006 @@ -34,7 +34,7 @@
> /// <summary>
> ///  Marshalling code for Open Wire Format for KeepAliveInfo
> /// </summary>
> -  class KeepAliveInfoMarshaller : BaseDataStreamMarshaller
> +  class KeepAliveInfoMarshaller : BaseCommandMarshaller
> {
> 
> 
> 
> Modified: incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.c
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.c?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.c (original)
> +++ incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.c Thu Mar 30 \
> 10:06:06 2006 @@ -2223,20 +2223,20 @@
> 
> apr_status_t ow_marshal1_KeepAliveInfo(ow_bit_buffer *buffer, ow_KeepAliveInfo \
> *object) {
> -   ow_marshal1_DataStructure(buffer, (ow_DataStructure*)object);
> +   ow_marshal1_BaseCommand(buffer, (ow_BaseCommand*)object);
> 
> return APR_SUCCESS;
> }
> apr_status_t ow_marshal2_KeepAliveInfo(ow_byte_buffer *buffer, ow_bit_buffer \
> *bitbuffer, ow_KeepAliveInfo *object) {
> -   ow_marshal2_DataStructure(buffer, bitbuffer, (ow_DataStructure*)object);
> +   ow_marshal2_BaseCommand(buffer, bitbuffer, (ow_BaseCommand*)object);
> 
> return APR_SUCCESS;
> }
> 
> apr_status_t ow_unmarshal_KeepAliveInfo(ow_byte_array *buffer, ow_bit_buffer \
> *bitbuffer, ow_KeepAliveInfo *object, apr_pool_t *pool) {
> -   ow_unmarshal_DataStructure(buffer, bitbuffer, (ow_DataStructure*)object, pool);
> +   ow_unmarshal_BaseCommand(buffer, bitbuffer, (ow_BaseCommand*)object, pool);
> 
> return APR_SUCCESS;
> }
> @@ -2384,6 +2384,7 @@
> case OW_DESTINATIONINFO_TYPE:
> case OW_SHUTDOWNINFO_TYPE:
> case OW_DATARESPONSE_TYPE:
> +   case OW_KEEPALIVEINFO_TYPE:
> case OW_FLUSHCOMMAND_TYPE:
> case OW_MESSAGEDISPATCH_TYPE:
> case OW_ACTIVEMQMAPMESSAGE_TYPE:
> 
> Modified: incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.h
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.h?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.h (original)
> +++ incubator/activemq/trunk/openwire-c/src/libopenwire/ow_commands_v1.h Thu Mar 30 \
> 10:06:06 2006 @@ -653,6 +653,8 @@
> typedef struct ow_KeepAliveInfo {
> 
> ow_byte structType;
> +   ow_int commandId;
> +   ow_boolean responseRequired;
> 
> } ow_KeepAliveInfo;
> ow_KeepAliveInfo *ow_KeepAliveInfo_create(apr_pool_t *pool);
> 
> Modified: incubator/activemq/trunk/openwire-cpp/src/command/KeepAliveInfo.hpp
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-cpp/src/command/KeepAliveInfo.hpp?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/openwire-cpp/src/command/KeepAliveInfo.hpp (original)
> +++ incubator/activemq/trunk/openwire-cpp/src/command/KeepAliveInfo.hpp Thu Mar 30 \
> 10:06:06 2006 @@ -1 +1 @@
> -/*
> * Copyright 2006 The Apache Software Foundation or its licensors, as
> * applicable.
> *
> * Licensed 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.
> */
> #ifndef KeepAliveInfo_hpp_
> #define KeepAliveInfo_hpp_
> 
> #include <string>
> #include "command/BaseDataStructure.hpp"
> 
> 
> #include "util/ifr/ap.hpp"
> #include "util/ifr/p.hpp"
> 
> namespace apache
> {
> namespace activemq
> {
> namespace client
> {
> namespace command
> {
> using namespace ifr;
> using namespace std;
> using names
> pace apache::activemq::client;
> 
> /*
> *
> *  Marshalling code for Open Wire Format for KeepAliveInfo
> *
> *
> *  NOTE!: This file is autogenerated - do not modify!
> *         if you need to make a change, please see the Groovy scripts in the
> *         activemq-core module
> *
> */
> class KeepAliveInfo : public BaseDataStructure
> {
> private:
> 
> public:
> const static int TYPE = 10;
> 
> public:
> KeepAliveInfo() ;
> virtual ~KeepAliveInfo() ;
> 
> virtual int getCommandType() ;
> 
> 
> } ;
> 
> /* namespace */
> }
> }
> }
> }
> 
> #endif /*KeepAliveInfo_hpp_*/
> \ No newline at end of file
> +/*
> * Copyright 2006 The Apache Software Foundation or its licensors, as
> * applicable.
> *
> * Licensed 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.
> */
> #ifndef KeepAliveInfo_hpp_
> #define KeepAliveInfo_hpp_
> 
> #include <string>
> #include "command/BaseCommand.hpp"
> 
> 
> #include "util/ifr/ap.hpp"
> #include "util/ifr/p.hpp"
> 
> namespace apache
> {
> namespace activemq
> {
> namespace client
> {
> namespace command
> {
> using namespace ifr;
> using namespace std;
> using namespace a
> pache::activemq::client;
> 
> /*
> *
> *  Marshalling code for Open Wire Format for KeepAliveInfo
> *
> *
> *  NOTE!: This file is autogenerated - do not modify!
> *         if you need to make a change, please see the Groovy scripts in the
> *         activemq-core module
> *
> */
> class KeepAliveInfo : public BaseCommand
> {
> private:
> 
> public:
> const static int TYPE = 10;
> 
> public:
> KeepAliveInfo() ;
> virtual ~KeepAliveInfo() ;
> 
> virtual int getCommandType() ;
> 
> 
> } ;
> 
> /* namespace */
> }
> }
> }
> }
> 
> #endif /*KeepAliveInfo_hpp_*/
> \ No newline at end of file
> 
> Modified: incubator/activemq/trunk/openwire-cpp/src/marshal/KeepAliveInfoMarshaller.hpp
>                 
> URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-cpp/src/marshal/KeepAliveInfoMarshaller.hpp?rev=390200&r1=390199&r2=390200&view=diff
>  ==============================================================================
> --- incubator/activemq/trunk/openwire-cpp/src/marshal/KeepAliveInfoMarshaller.hpp \
>                 (original)
> +++ incubator/activemq/trunk/openwire-cpp/src/marshal/KeepAliveInfoMarshaller.hpp \
> Thu Mar 30 10:06:06 2006 @@ -1 +1 @@
> -/*
> * Copyright 2006 The Apache Software Foundation or its licensors, as
> * applicable.
> *
> * Licensed 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.
> */
> #ifndef KeepAliveInfoMarshaller_hpp_
> #define KeepAliveInfoMarshaller_hpp_
> 
> #include <string>
> 
> #include "command/IDataStructure.hpp"
> 
> /* we could cut this down  - for now include all possible headers */
> #include "command/BrokerId.hpp"
> #include "command/ConnectionId.hpp"
> #include "command/ConsumerId.hpp"
> #include "command/ProducerId.hpp"
> #include "comman
> d/SessionId.hpp"
> 
> #include "io/BinaryReader.hpp"
> #include "io/BinaryWriter.hpp"
> 
> #include "command/BaseDataStreamMarshaller.hpp"
> #include "util/ifr/p.hpp"
> 
> #include "protocol/ProtocolFormat.hpp"
> 
> namespace apache
> {
> namespace activemq
> {
> namespace client
> {
> namespace marshal
> {
> using namespace ifr ;
> using namespace apache::activemq::client::command;
> using namespace apache::activemq::client::io;
> using namespace apache::activemq::client::protocol;
> 
> /*
> *
> */
> class KeepAliveInfoMarshaller : public BaseDataStreamMarshaller
> {
> public:
> KeepAliveInfoMarshaller() ;
> virtual ~KeepAliveInfoMarshaller() ;
> 
> virtual IDataStructure* createCommand() ;
> virtual char getDataStructureType() ;
> 
> virtual void unmarshal(ProtocolFormat& wireFormat, Object o, BinaryReader& dataIn, \
> BooleanStream& bs) ; virtual int marshal1(ProtocolFormat& wireFormat, Object& o, \
> BooleanStream& bs) ; virtual void marshal2(ProtocolFormat&
> wireFormat, Object& o, BinaryWriter& dataOut, BooleanStream& bs) ;
> } ;
> 
> /* namespace */
> }
> }
> }
> }
> #endif /*KeepAliveInfoMarshaller_hpp_*/
> \ No newline at end of file
> +/*
> * Copyright 2006 The Apache Software Foundation or its licensors, as
> * applicable.
> *
> * Licensed 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.
> */
> #ifndef KeepAliveInfoMarshaller_hpp_
> #define KeepAliveInfoMarshaller_hpp_
> 
> #include <string>
> 
> #include "command/IDataStructure.hpp"
> 
> /* we could cut this down  - for now include all possible headers */
> #include "command/BrokerId.hpp"
> #include "command/ConnectionId.hpp"
> #include "command/ConsumerId.hpp"
> #include "command/ProducerId.hpp"
> #include "comman
> d/SessionId.hpp"
> 
> #include "io/BinaryReader.hpp"
> #include "io/BinaryWriter.hpp"
> 
> #include "command/BaseCommandMarshaller.hpp"
> #include "util/ifr/p.hpp"
> 
> #include "protocol/ProtocolFormat.hpp"
> 
> namespace apache
> {
> namespace activemq
> {
> namespace client
> {
> namespace marshal
> {
> using namespace ifr ;
> using namespace apache::activemq::client::command;
> using namespace apache::activemq::client::io;
> using namespace apache::activemq::client::protocol;
> 
> /*
> *
> */
> class KeepAliveInfoMarshaller : public BaseCommandMarshaller
> {
> public:
> KeepAliveInfoMarshaller() ;
> virtual ~KeepAliveInfoMarshaller() ;
> 
> virtual IDataStructure* createCommand() ;
> virtual char getDataStructureType() ;
> 
> virtual void unmarshal(ProtocolFormat& wireFormat, Object o, BinaryReader& dataIn, \
> BooleanStream& bs) ; virtual int marshal1(ProtocolFormat& wireFormat, Object& o, \
> BooleanStream& bs) ; virtual void marshal2(ProtocolFormat& wireFo
> rmat, Object& o, BinaryWriter& dataOut, BooleanStream& bs) ;
> } ;
> 
> /* namespace */
> }
> }
> }
> }
> #endif /*KeepAliveInfoMarshaller_hpp_*/
> \ No newline at end of file
> 
> 
> 


--

James
-------
http://radio.weblogs.com/0112098/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic