You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jg...@apache.org on 2006/09/17 14:35:47 UTC
svn commit: r447058 [1/4] - in /geronimo/sandbox/gcache/openwire: ./
src/main/java/org/apache/geronimo/openwire/command/
src/main/java/org/apache/geronimo/openwire/state/
src/main/java/org/apache/geronimo/openwire/thread/
src/main/java/org/apache/geron...
Author: jgenender
Date: Sun Sep 17 05:35:45 2006
New Revision: 447058
URL: http://svn.apache.org/viewvc?view=rev&rev=447058
Log:
GERONIMO-2410 - patch to add discovery
Added:
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerInfo.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/RemoveInfo.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/SessionId.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/SessionInfo.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/TransactionId.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/TransactionInfo.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/ConnectionState.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/ConnectionStateTracker.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/ConsumerState.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/ProducerState.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/SessionState.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/Tracked.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/TransactionState.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/thread/DedicatedTaskRunner.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/thread/DefaultThreadPools.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/thread/PooledTaskRunner.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/thread/Task.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/thread/TaskRunner.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/thread/TaskRunnerFactory.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/thread/Valve.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/MutexTransport.java.orig (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/DiscoveryAgent.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/DiscoveryAgentFactory.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/DiscoveryListener.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/DiscoveryTransport.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/DiscoveryTransportFactory.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/multicast/
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/multicast/MulticastDiscoveryAgent.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/multicast/MulticastDiscoveryAgentFactory.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/package.html (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/simple/
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/simple/SimpleDiscoveryAgent.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/simple/SimpleDiscoveryAgentFactory.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/discovery/simple/package.html (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/failover/
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/failover/FailoverTransport.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/failover/FailoverTransportFactory.java (with props)
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/failover/package.html (with props)
Modified:
geronimo/sandbox/gcache/openwire/pom.xml
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/state/CommandVisitor.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/InactivityMonitor.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/MarshallingTransportFilter.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/MutexTransport.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/ResponseCorrelator.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/Transport.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/TransportFactory.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/TransportFilter.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/TransportLogger.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/TransportServerSupport.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/TransportServerThreadSupport.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/TransportSupport.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/WireFormatNegotiator.java
geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/transport/tcp/TcpTransportServer.java
Modified: geronimo/sandbox/gcache/openwire/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/pom.xml?view=diff&rev=447058&r1=447057&r2=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/pom.xml (original)
+++ geronimo/sandbox/gcache/openwire/pom.xml Sun Sep 17 05:35:45 2006
@@ -31,6 +31,11 @@
<artifactId>junit</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.gcache</groupId>
+ <artifactId>gcache-server</artifactId>
+ </dependency>
+
</dependencies>
</project>
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,89 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+
+/**
+ *
+ * @openwire:marshaller code="120"
+ * @version $Revision$
+ */
+public class ConnectionId implements DataStructure {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.CONNECTION_ID;
+
+ protected String value;
+
+ public ConnectionId() {
+ }
+
+ public ConnectionId(String connectionId) {
+ this.value = connectionId;
+ }
+
+ public ConnectionId(ConnectionId id) {
+ this.value = id.getValue();
+ }
+
+ public ConnectionId(SessionId id) {
+ this.value = id.getConnectionId();
+ }
+
+// public ConnectionId(ProducerId id) {
+// this.value = id.getConnectionId();
+// }
+//
+// public ConnectionId(ConsumerId id) {
+// this.value = id.getConnectionId();
+// }
+
+ public int hashCode() {
+ return value.hashCode();
+ }
+
+ public boolean equals(Object o) {
+ if( this == o )
+ return true;
+ if( o == null || o.getClass()!=ConnectionId.class )
+ return false;
+ ConnectionId id = (ConnectionId) o;
+ return value.equals(id.value);
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ public String toString() {
+ return value;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getValue() {
+ return value;
+ }
+ public void setValue(String connectionId) {
+ this.value = connectionId;
+ }
+
+ public boolean isMarshallAware() {
+ return false;
+ }
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionId.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,169 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+import org.apache.geronimo.openwire.state.CommandVisitor;
+
+
+/**
+ *
+ * @openwire:marshaller code="3"
+ * @version $Revision$
+ */
+public class ConnectionInfo extends BaseCommand {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.CONNECTION_INFO;
+
+ protected ConnectionId connectionId;
+ protected String clientId;
+ protected String userName;
+ protected String password;
+ protected NodeId[] nodePath;
+ protected boolean brokerMasterConnector;
+ protected boolean manageable;
+ protected transient Object transportContext;
+
+ public ConnectionInfo() {
+ }
+ public ConnectionInfo(ConnectionId connectionId) {
+ this.connectionId=connectionId;
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ public void copy(ConnectionInfo copy) {
+ super.copy(copy);
+ copy.clientId = clientId;
+ copy.userName = userName;
+ copy.password = password;
+ copy.nodePath = nodePath;
+ copy.brokerMasterConnector = brokerMasterConnector;
+ copy.manageable = manageable;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public ConnectionId getConnectionId() {
+ return connectionId;
+ }
+ public void setConnectionId(ConnectionId connectionId) {
+ this.connectionId = connectionId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getClientId() {
+ return clientId;
+ }
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
+ }
+
+// public RemoveInfo createRemoveCommand() {
+// RemoveInfo command = new RemoveInfo(getConnectionId());
+// command.setResponseRequired(isResponseRequired());
+// return command;
+// }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getPassword() {
+ return password;
+ }
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getUserName() {
+ return userName;
+ }
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ /**
+ * The route of brokers the command has moved through.
+ *
+ * @openwire:property version=1 cache=true
+ */
+ public NodeId[] getNodePath() {
+ return nodePath;
+ }
+ public void setBrokerPath(NodeId[] brokerPath) {
+ this.nodePath = brokerPath;
+ }
+
+ public Response visit(CommandVisitor visitor) throws Exception {
+ return visitor.processAddConnection( this );
+ }
+ /**
+ * @openwire:property version=1
+ */
+ public boolean isBrokerMasterConnector(){
+ return brokerMasterConnector;
+ }
+ /**
+ * @param brokerMasterConnector The brokerMasterConnector to set.
+ */
+ public void setBrokerMasterConnector(boolean slaveBroker){
+ this.brokerMasterConnector=slaveBroker;
+ }
+ /**
+ * @openwire:property version=1
+ */
+ public boolean isManageable(){
+ return manageable;
+ }
+ /**
+ * @param manageable The manageable to set.
+ */
+ public void setManageable(boolean manageable){
+ this.manageable=manageable;
+ }
+
+ /**
+ * Transports may wish to associate additional data with the connection. For
+ * example, an SSL transport may use this field to attach the client certificates
+ * used when the conection was established.
+ *
+ * @return the transport context.
+ */
+ public Object getTransportContext() {
+ return transportContext;
+ }
+
+ /**
+ * Transports may wish to associate additional data with the connection. For
+ * example, an SSL transport may use this field to attach the client certificates
+ * used when the conection was established.
+ *
+ * @param transportContext value used to set the transport context
+ */
+ public void setTransportContext(Object transportContext) {
+ this.transportContext = transportContext;
+ }
+
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConnectionInfo.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java Sun Sep 17 05:35:45 2006
@@ -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.geronimo.openwire.command;
+
+
+/**
+ *
+ * @openwire:marshaller code="122"
+ * @version $Revision$
+ */
+public class ConsumerId implements DataStructure {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.CONSUMER_ID;
+
+ protected String connectionId;
+ protected long sessionId;
+ protected long value;
+
+ protected transient int hashCode;
+ protected transient String key;
+ protected transient SessionId parentId;
+
+ public ConsumerId() {
+ }
+
+ public ConsumerId(SessionId sessionId, long consumerId) {
+ this.connectionId = sessionId.getConnectionId();
+ this.sessionId = sessionId.getValue();
+ this.value=consumerId;
+ }
+
+ public ConsumerId(ConsumerId id) {
+ this.connectionId = id.getConnectionId();
+ this.sessionId = id.getSessionId();
+ this.value=id.getValue();
+ }
+
+ public SessionId getParentId() {
+ if( parentId == null ) {
+ parentId = new SessionId(this);
+ }
+ return parentId;
+ }
+
+ public int hashCode() {
+ if( hashCode == 0 ) {
+ hashCode = connectionId.hashCode() ^ (int)sessionId ^ (int)value;
+ }
+ return hashCode;
+ }
+
+ public boolean equals(Object o) {
+ if( this == o )
+ return true;
+ if( o == null || o.getClass()!=ConsumerId.class )
+ return false;
+ ConsumerId id = (ConsumerId) o;
+ return sessionId==id.sessionId
+ && value==id.value
+ && connectionId.equals(id.connectionId);
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ public String toString() {
+ if( key==null ) {
+ key = connectionId+":"+sessionId+":"+value;
+ }
+ return key;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getConnectionId() {
+ return connectionId;
+ }
+ public void setConnectionId(String connectionId) {
+ this.connectionId = connectionId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getSessionId() {
+ return sessionId;
+ }
+ public void setSessionId(long sessionId) {
+ this.sessionId = sessionId;
+ }
+
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getValue() {
+ return value;
+ }
+ public void setValue(long consumerId) {
+ this.value = consumerId;
+ }
+
+ public boolean isMarshallAware() {
+ return false;
+ }
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerId.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,344 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+import org.apache.geronimo.openwire.state.CommandVisitor;
+
+import sun.tools.tree.BooleanExpression;
+
+
+/**
+ *
+ * @openwire:marshaller code="5"
+ * @version $Revision$
+ */
+public class ConsumerInfo extends BaseCommand {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.CONSUMER_INFO;
+
+ public static final byte HIGH_PRIORITY = 10;
+ public static final byte NORMAL_PRIORITY = 0;
+ public static final byte NETWORK_CONSUMER_PRIORITY = -5;
+ public static final byte LOW_PRIORITY = -10;
+
+
+ protected ConsumerId consumerId;
+ protected int prefetchSize;
+ protected int maximumPendingMessageLimit;
+ protected boolean browser;
+ protected boolean dispatchAsync;
+ protected String selector;
+ protected String subcriptionName;
+ protected boolean noLocal;
+ protected boolean exclusive;
+ protected boolean retroactive;
+ protected byte priority;
+ protected NodeId[] nodePath;
+ protected boolean optimizedAcknowledge;
+ protected transient int currentPrefetchSize;//used by the broker
+ protected boolean noRangeAcks; // if true, the consumer will not send range acks.
+
+ protected BooleanExpression additionalPredicate;
+ protected transient boolean networkSubscription; //this subscription originated from a network connection
+
+ public ConsumerInfo() {
+ }
+
+ public ConsumerInfo(ConsumerId consumerId) {
+ this.consumerId=consumerId;
+ }
+
+ public ConsumerInfo(SessionInfo sessionInfo, long consumerId) {
+ this.consumerId = new ConsumerId(sessionInfo.getSessionId(), consumerId);
+ }
+
+ public ConsumerInfo copy() {
+ ConsumerInfo info = new ConsumerInfo();
+ copy(info);
+ return info;
+ }
+
+ public void copy(ConsumerInfo info) {
+ super.copy(info);
+ info.consumerId = consumerId;
+ info.prefetchSize = prefetchSize;
+ info.maximumPendingMessageLimit = maximumPendingMessageLimit;
+ info.browser = browser;
+ info.dispatchAsync = dispatchAsync;
+ info.selector = selector;
+ info.subcriptionName=subcriptionName;
+ info.noLocal = noLocal;
+ info.exclusive = exclusive;
+ info.retroactive = retroactive;
+ info.priority = priority;
+ info.nodePath=nodePath;
+ }
+
+ public boolean isDurable() {
+ return subcriptionName!=null;
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * Is used to uniquely identify the consumer to the broker.
+ *
+ * @openwire:property version=1 cache=true
+ */
+ public ConsumerId getConsumerId() {
+ return consumerId;
+ }
+ public void setConsumerId(ConsumerId consumerId) {
+ this.consumerId = consumerId;
+ }
+
+ /**
+ * Is this consumer a queue browser?
+ *
+ * @openwire:property version=1
+ */
+ public boolean isBrowser() {
+ return browser;
+ }
+ public void setBrowser(boolean browser) {
+ this.browser = browser;
+ }
+
+ /**
+ * How many messages a broker will send to the client without receiving an ack before
+ * he stops dispatching messages to the client.
+ *
+ * @openwire:property version=1
+ */
+ public int getPrefetchSize() {
+ return prefetchSize;
+ }
+
+ public void setPrefetchSize(int prefetchSize) {
+ this.prefetchSize = prefetchSize;
+ this.currentPrefetchSize = prefetchSize;
+ }
+
+ /**
+ * How many messages a broker will keep around, above the prefetch limit, for non-durable
+ * topics before starting to discard older messages.
+ *
+ * @openwire:property version=1
+ */
+ public int getMaximumPendingMessageLimit() {
+ return maximumPendingMessageLimit;
+ }
+
+ public void setMaximumPendingMessageLimit(int maximumPendingMessageLimit) {
+ this.maximumPendingMessageLimit = maximumPendingMessageLimit;
+ }
+
+ /**
+ * Should the broker dispatch a message to the consumer async? If he does it async, then
+ * he uses a more SEDA style of processing while if it is not done async, then he broker
+ * use a STP style of processing. STP is more appropriate in high bandwidth situations or when
+ * being used by and in vm transport.
+ *
+ * @openwire:property version=1
+ */
+ public boolean isDispatchAsync() {
+ return dispatchAsync;
+ }
+ public void setDispatchAsync(boolean dispatchAsync) {
+ this.dispatchAsync = dispatchAsync;
+ }
+
+ /**
+ * The JMS selector used to filter out messages that this consumer
+ * is interested in.
+ *
+ * @openwire:property version=1
+ */
+ public String getSelector() {
+ return selector;
+ }
+ public void setSelector(String selector) {
+ this.selector = selector;
+ }
+
+ /**
+ * Used to identify the name of a durable subscription.
+ *
+ * @openwire:property version=1
+ */
+ public String getSubcriptionName() {
+ return subcriptionName;
+ }
+ public void setSubcriptionName(String durableSubscriptionId) {
+ this.subcriptionName = durableSubscriptionId;
+ }
+
+ /**
+ * Set noLocal to true to avoid receiving messages that were published locally on the same connection.
+ *
+ * @openwire:property version=1
+ */
+ public boolean isNoLocal() {
+ return noLocal;
+ }
+ public void setNoLocal(boolean noLocal) {
+ this.noLocal = noLocal;
+ }
+
+ /**
+ * An exclusive consumer locks out other consumers from being able to receive messages
+ * from the destination. If there are multiple exclusive consumers for a destination, the first one
+ * created will be the exclusive consumer of the destination.
+ *
+ * @openwire:property version=1
+ */
+ public boolean isExclusive() {
+ return exclusive;
+ }
+ public void setExclusive(boolean exclusive) {
+ this.exclusive = exclusive;
+ }
+
+ /**
+ * A retroactive consumer only has meaning for Topics. It allows a consumer
+ * to retroactively see messages sent prior to the consumer being created. If the
+ * consumer is not durable, it will be delivered the last message published to the topic.
+ * If the consumer is durable then it will receive all persistent messages that are
+ * still stored in persistent storage for that topic.
+ *
+ * @openwire:property version=1
+ */
+ public boolean isRetroactive() {
+ return retroactive;
+ }
+ public void setRetroactive(boolean retroactive) {
+ this.retroactive = retroactive;
+ }
+
+ public RemoveInfo createRemoveCommand() {
+ RemoveInfo command = new RemoveInfo(getConsumerId());
+ command.setResponseRequired(isResponseRequired());
+ return command;
+ }
+
+ /**
+ * The broker will avoid dispatching to a lower priority consumer if there are other higher priority
+ * consumers available to dispatch to. This allows letting the broker to have an affinity to
+ * higher priority consumers. Default priority is 0.
+ *
+ * @openwire:property version=1
+ */
+ public byte getPriority() {
+ return priority;
+ }
+ public void setPriority(byte priority) {
+ this.priority = priority;
+ }
+
+ /**
+ * The route of brokers the command has moved through.
+ *
+ * @openwire:property version=1 cache=true
+ */
+ public NodeId[] getNodePath() {
+ return nodePath;
+ }
+ public void setNodePath(NodeId[] nodePath) {
+ this.nodePath = nodePath;
+ }
+
+ /**
+ * A transient additional predicate that can be used it inject additional predicates
+ * into the selector on the fly. Handy if if say a Security Broker interceptor wants to
+ * filter out messages based on security level of the consumer.
+ *
+ * @openwire:property version=1
+ */
+ public BooleanExpression getAdditionalPredicate() {
+ return additionalPredicate;
+ }
+ public void setAdditionalPredicate(BooleanExpression additionalPredicate) {
+ this.additionalPredicate = additionalPredicate;
+ }
+
+ public Response visit(CommandVisitor visitor) throws Exception {
+ return visitor.processAddConsumer( this );
+ }
+
+ /**
+ * @openwire:property version=1
+ * @return Returns the networkSubscription.
+ */
+ public boolean isNetworkSubscription(){
+ return networkSubscription;
+ }
+
+ /**
+ * @param networkSubscription The networkSubscription to set.
+ */
+ public void setNetworkSubscription(boolean networkSubscription){
+ this.networkSubscription=networkSubscription;
+ }
+
+ /**
+ * @openwire:property version=1
+ * @return Returns the optimizedAcknowledge.
+ */
+ public boolean isOptimizedAcknowledge(){
+ return optimizedAcknowledge;
+ }
+
+ /**
+ * @param optimizedAcknowledge The optimizedAcknowledge to set.
+ */
+ public void setOptimizedAcknowledge(boolean optimizedAcknowledge){
+ this.optimizedAcknowledge=optimizedAcknowledge;
+ }
+
+ /**
+ * @return Returns the currentPrefetchSize.
+ */
+ public int getCurrentPrefetchSize(){
+ return currentPrefetchSize;
+ }
+
+ /**
+ * @param currentPrefetchSize The currentPrefetchSize to set.
+ */
+ public void setCurrentPrefetchSize(int currentPrefetchSize){
+ this.currentPrefetchSize=currentPrefetchSize;
+ }
+
+ /**
+ * The broker may be able to optimize it's processing or provides better
+ * QOS if it knows the consumer will not be sending ranged acks.
+ *
+ * @return true if the consumer will not send range acks.
+ * @openwire:property version=1
+ */
+ public boolean isNoRangeAcks() {
+ return noRangeAcks;
+ }
+
+ public void setNoRangeAcks(boolean noRangeAcks) {
+ this.noRangeAcks = noRangeAcks;
+ }
+
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ConsumerInfo.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,115 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+import java.io.IOException;
+
+import org.apache.geronimo.openwire.state.CommandVisitor;
+
+/**
+ * Used to create and destroy destinations on the broker.
+ *
+ * @openwire:marshaller code="8"
+ * @version $Revision$
+ */
+public class DestinationInfo extends BaseCommand {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.DESTINATION_INFO;
+
+ public static final byte ADD_OPERATION_TYPE=0;
+ public static final byte REMOVE_OPERATION_TYPE=1;
+
+ protected ConnectionId connectionId;
+ protected byte operationType;
+ protected long timeout;
+ protected NodeId[] nodePath;
+
+ public DestinationInfo() {
+ }
+
+ public DestinationInfo(ConnectionId connectionId, byte operationType) {
+ this.connectionId=connectionId;
+ this.operationType=operationType;
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ public boolean isAddOperation() {
+ return operationType == ADD_OPERATION_TYPE;
+ }
+
+ public boolean isRemoveOperation() {
+ return operationType == REMOVE_OPERATION_TYPE;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public ConnectionId getConnectionId() {
+ return connectionId;
+ }
+ public void setConnectionId(ConnectionId connectionId) {
+ this.connectionId = connectionId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public byte getOperationType() {
+ return operationType;
+ }
+
+ public void setOperationType(byte operationType) {
+ this.operationType = operationType;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getTimeout() {
+ return timeout;
+ }
+
+ public void setTimeout(long timeout) {
+ this.timeout = timeout;
+ }
+
+ /**
+ * The route of brokers the command has moved through.
+ *
+ * @openwire:property version=1 cache=true
+ */
+ public NodeId[] getNodePath() {
+ return nodePath;
+ }
+ public void setNodePath(NodeId[] nodePath) {
+ this.nodePath = nodePath;
+ }
+
+ public Response visit(CommandVisitor visitor) throws Exception {
+ if( isAddOperation() ) {
+ return visitor.processAddDestination( this );
+ } else if( isRemoveOperation() ) {
+ return visitor.processRemoveDestination( this );
+ }
+ throw new IOException("Unknown operation type: "+getOperationType());
+ }
+
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DestinationInfo.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,67 @@
+/*
+ * 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.geronimo.openwire.command;
+
+
+/**
+ * Represents a discovery event containing the details of the service
+ *
+ * @openwire:marshaller code="40"
+ * @version $Revision:$
+ */
+public class DiscoveryEvent implements DataStructure {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.DISCOVERY_EVENT;
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ protected String serviceName;
+ protected String brokerName;
+
+ public DiscoveryEvent() {
+ }
+
+ public DiscoveryEvent(String serviceName) {
+ this.serviceName = serviceName;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getServiceName() {
+ return serviceName;
+ }
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getBrokerName(){
+ return brokerName;
+ }
+ public void setBrokerName(String name){
+ this.brokerName = name;
+ }
+
+ public boolean isMarshallAware() {
+ return false;
+ }
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/DiscoveryEvent.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,631 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.geronimo.openwire.util.ByteArrayInputStream;
+import org.apache.geronimo.openwire.util.ByteArrayOutputStream;
+import org.apache.geronimo.openwire.util.ByteSequence;
+import org.apache.geronimo.openwire.util.MarshallingSupport;
+import org.apache.geronimo.openwire.wireformat.WireFormat;
+
+/**
+ * Represents an ActiveMQ message
+ *
+ * @openwire:marshaller
+ * @version $Revision$
+ */
+abstract public class Message extends BaseCommand implements MarshallAware /*, MessageReference */ {
+
+ public static final int AVERAGE_MESSAGE_SIZE_OVERHEAD = 300;
+
+ protected MessageId messageId;
+// TODO: need a destination alternative that is not AMQDestination
+ //protected ActiveMQDestination originalDestination;
+ protected TransactionId originalTransactionId;
+
+ protected ProducerId producerId;
+// TODO: need a destination alternative that is not AMQDestination
+ //protected ActiveMQDestination destination;
+ protected TransactionId transactionId;
+
+ protected long expiration;
+ protected long timestamp;
+ protected long arrival;
+ protected String correlationId;
+// TODO: need a destination alternative that is not AMQDestination
+ //protected ActiveMQDestination replyTo;
+ protected boolean persistent;
+ protected String type;
+ protected byte priority;
+ protected String groupID;
+ protected int groupSequence;
+ protected ConsumerId targetConsumerId;
+ protected boolean compressed = false;
+ protected String userID;
+
+ protected ByteSequence content;
+ protected ByteSequence marshalledProperties;
+ protected DataStructure dataStructure;
+ protected int redeliveryCounter;
+
+ protected int size;
+ protected Map properties;
+ protected boolean readOnlyProperties = false;
+ protected boolean readOnlyBody = false;
+ protected transient boolean recievedByDFBridge = false;
+
+ private transient short referenceCount;
+ //private transient ActiveMQConnection connection;
+ //private transient org.apache.activemq.broker.region.Destination regionDestination;
+ private transient WireFormat cachedWireFormat;
+ private transient ByteSequence cachedWireFormatData;
+
+ private NodeId [] nodePath;
+
+ abstract public Message copy();
+
+ protected void copy(Message copy) {
+ super.copy(copy);
+ copy.producerId = producerId;
+ copy.transactionId = transactionId;
+ //copy.destination = destination;
+ copy.messageId = messageId;
+ //copy.originalDestination = originalDestination;
+ copy.originalTransactionId = originalTransactionId;
+ copy.expiration = expiration;
+ copy.timestamp = timestamp;
+ copy.correlationId = correlationId;
+ //copy.replyTo = replyTo;
+ copy.persistent = persistent;
+ copy.redeliveryCounter = redeliveryCounter;
+ copy.type = type;
+ copy.priority = priority;
+ copy.size = size;
+ copy.groupID = groupID;
+ copy.userID = userID;
+ copy.groupSequence = groupSequence;
+
+ if( properties!=null )
+ copy.properties = new HashMap(properties);
+ else
+ copy.properties = properties;
+
+ copy.content = content;
+ copy.marshalledProperties = marshalledProperties;
+ copy.dataStructure = dataStructure;
+ copy.readOnlyProperties = readOnlyProperties;
+ copy.readOnlyBody = readOnlyBody;
+ copy.compressed = compressed;
+ copy.recievedByDFBridge = recievedByDFBridge;
+
+ copy.arrival = arrival;
+ //copy.connection = connection;
+ //copy.regionDestination = regionDestination;
+ copy.cachedWireFormat = cachedWireFormat;
+ copy.cachedWireFormatData = cachedWireFormatData;
+ }
+
+ public Object getProperty(String name) throws IOException {
+ if( properties == null ) {
+ if( marshalledProperties ==null )
+ return null;
+ properties = unmarsallProperties(marshalledProperties);
+ }
+ return properties.get(name);
+ }
+
+ public Map getProperties() throws IOException {
+ if( properties == null ) {
+ if( marshalledProperties==null )
+ return Collections.EMPTY_MAP;
+ properties = unmarsallProperties(marshalledProperties);
+ }
+ return Collections.unmodifiableMap(properties);
+ }
+
+ public void clearProperties() {
+ marshalledProperties = null;
+ properties=null;
+ }
+
+
+ public void setProperty(String name, Object value) throws IOException {
+ lazyCreateProperties();
+ properties.put(name, value);
+ }
+
+ protected void lazyCreateProperties() throws IOException {
+ if( properties == null ) {
+ if( marshalledProperties == null ) {
+ properties = new HashMap();
+ } else {
+ properties = unmarsallProperties(marshalledProperties);
+ marshalledProperties = null;
+ }
+ }
+ }
+
+ private Map unmarsallProperties(ByteSequence marshalledProperties) throws IOException {
+ return MarshallingSupport.unmarshalPrimitiveMap(new DataInputStream(new ByteArrayInputStream(marshalledProperties)));
+ }
+
+ public void beforeMarshall(WireFormat wireFormat) throws IOException {
+ // Need to marshal the properties.
+ if( marshalledProperties==null && properties!=null ) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DataOutputStream os = new DataOutputStream(baos);
+ MarshallingSupport.marshalPrimitiveMap(properties, os);
+ os.close();
+ marshalledProperties = baos.toByteSequence();
+ }
+ }
+
+ public void afterMarshall(WireFormat wireFormat) throws IOException {
+ }
+
+ public void beforeUnmarshall(WireFormat wireFormat) throws IOException {
+ }
+
+ public void afterUnmarshall(WireFormat wireFormat) throws IOException {
+ }
+
+
+ ///////////////////////////////////////////////////////////////////
+ //
+ // Simple Field accessors
+ //
+ ///////////////////////////////////////////////////////////////////
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public ProducerId getProducerId() {
+ return producerId;
+ }
+ public void setProducerId(ProducerId producerId) {
+ this.producerId = producerId;
+ }
+
+ /**
+ * @-openwire:property version=1 cache=true
+ */
+// public ActiveMQDestination getDestination() {
+// return destination;
+// }
+// public void setDestination(ActiveMQDestination destination) {
+// this.destination = destination;
+// }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public TransactionId getTransactionId() {
+ return transactionId;
+ }
+ public void setTransactionId(TransactionId transactionId) {
+ this.transactionId = transactionId;
+ }
+
+ public boolean isInTransaction() {
+ return transactionId!=null;
+ }
+
+
+ /**
+ * @-openwire:property version=1 cache=true
+ */
+// public ActiveMQDestination getOriginalDestination() {
+// return originalDestination;
+// }
+// public void setOriginalDestination(ActiveMQDestination destination) {
+// this.originalDestination = destination;
+// }
+
+ /**
+ * @openwire:property version=1
+ */
+ public MessageId getMessageId() {
+ return messageId;
+ }
+
+ public void setMessageId(MessageId messageId) {
+ this.messageId = messageId;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public TransactionId getOriginalTransactionId() {
+ return originalTransactionId;
+ }
+ public void setOriginalTransactionId(TransactionId transactionId) {
+ this.originalTransactionId = transactionId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getGroupID() {
+ return groupID;
+ }
+ public void setGroupID(String groupID) {
+ this.groupID = groupID;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public int getGroupSequence() {
+ return groupSequence;
+ }
+ public void setGroupSequence(int groupSequence) {
+ this.groupSequence = groupSequence;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getCorrelationId() {
+ return correlationId;
+ }
+ public void setCorrelationId(String correlationId) {
+ this.correlationId = correlationId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public boolean isPersistent() {
+ return persistent;
+ }
+ public void setPersistent(boolean deliveryMode) {
+ this.persistent = deliveryMode;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getExpiration() {
+ return expiration;
+ }
+ public void setExpiration(long expiration) {
+ this.expiration = expiration;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public byte getPriority() {
+ return priority;
+ }
+ public void setPriority(byte priority) {
+ this.priority = priority;
+ }
+
+ /**
+ * @-openwire:property version=1
+ */
+// public ActiveMQDestination getReplyTo() {
+// return replyTo;
+// }
+// public void setReplyTo(ActiveMQDestination replyTo) {
+// this.replyTo = replyTo;
+// }
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getTimestamp() {
+ return timestamp;
+ }
+ public void setTimestamp(long timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public String getType() {
+ return type;
+ }
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public ByteSequence getContent() {
+ return content;
+ }
+ public void setContent(ByteSequence content) {
+ this.content = content;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public ByteSequence getMarshalledProperties() {
+ return marshalledProperties;
+ }
+ public void setMarshalledProperties(ByteSequence marshalledProperties) {
+ this.marshalledProperties = marshalledProperties;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public DataStructure getDataStructure() {
+ return dataStructure;
+ }
+ public void setDataStructure(DataStructure data) {
+ this.dataStructure = data;
+ }
+
+ /**
+ * Can be used to route the message to a specific consumer. Should
+ * be null to allow the broker use normal JMS routing semantics. If
+ * the target consumer id is an active consumer on the broker, the message
+ * is dropped. Used by the AdvisoryBroker to replay advisory messages
+ * to a specific consumer.
+ *
+ * @openwire:property version=1 cache=true
+ */
+ public ConsumerId getTargetConsumerId() {
+ return targetConsumerId;
+ }
+ public void setTargetConsumerId(ConsumerId targetConsumerId) {
+ this.targetConsumerId = targetConsumerId;
+ }
+
+ public boolean isExpired() {
+ // TODO: need to be implemented.
+ return false;
+ }
+
+// public boolean isAdvisory(){
+// return type != null && type.equals(AdvisorySupport.ADIVSORY_MESSAGE_TYPE);
+// }
+
+ /**
+ * @openwire:property version=1
+ */
+ public boolean isCompressed() {
+ return compressed;
+ }
+ public void setCompressed(boolean compressed) {
+ this.compressed = compressed;
+ }
+
+ public boolean isRedelivered() {
+ return redeliveryCounter>0;
+ }
+
+ public void setRedelivered(boolean redelivered) {
+ if( redelivered ) {
+ if( !isRedelivered() ) {
+ setRedeliveryCounter(1);
+ }
+ } else {
+ if( isRedelivered() ) {
+ setRedeliveryCounter(0);
+ }
+ }
+ }
+
+ public void incrementRedeliveryCounter() {
+ redeliveryCounter++;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public int getRedeliveryCounter() {
+ return redeliveryCounter;
+ }
+ public void setRedeliveryCounter(int deliveryCounter) {
+ this.redeliveryCounter = deliveryCounter;
+ }
+
+ /**
+ * The route of nodes the command has moved through.
+ *
+ * @openwire:property version=1 cache=true
+ */
+ public NodeId[] getNodePath() {
+ return nodePath;
+ }
+ public void setNodePath(NodeId[] nodePath) {
+ this.nodePath = nodePath;
+ }
+
+ public boolean isReadOnlyProperties() {
+ return readOnlyProperties;
+ }
+ public void setReadOnlyProperties(boolean readOnlyProperties) {
+ this.readOnlyProperties = readOnlyProperties;
+ }
+ public boolean isReadOnlyBody() {
+ return readOnlyBody;
+ }
+ public void setReadOnlyBody(boolean readOnlyBody) {
+ this.readOnlyBody = readOnlyBody;
+ }
+
+// public ActiveMQConnection getConnection() {
+// return this.connection;
+// }
+// public void setConnection(ActiveMQConnection connection) {
+// this.connection = connection;
+// }
+
+ /**
+ * Used to schedule the arrival time of a message to a broker. The broker will
+ * not dispatch a message to a consumer until it's arrival time has elapsed.
+ *
+ * @openwire:property version=1
+ */
+ public long getArrival() {
+ return arrival;
+ }
+ public void setArrival(long arrival) {
+ this.arrival = arrival;
+ }
+
+
+ /**
+ * Only set by the broker and defines the userID of the producer connection who
+ * sent this message. This is an optional field, it needs to be enabled on the
+ * broker to have this field populated.
+ *
+ * @openwire:property version=1
+ */
+ public String getUserID() {
+ return userID;
+ }
+
+ public void setUserID(String jmsxUserID) {
+ this.userID = jmsxUserID;
+ }
+
+ public int getReferenceCount() {
+ return referenceCount;
+ }
+
+ public Message getMessageHardRef() {
+ return this;
+ }
+
+ public Message getMessage() throws IOException {
+ return this;
+ }
+
+// public org.apache.activemq.broker.region.Destination getRegionDestination() {
+// return regionDestination;
+// }
+//
+// public void setRegionDestination(org.apache.activemq.broker.region.Destination destination) {
+// this.regionDestination = destination;
+// }
+
+ public boolean isMarshallAware() {
+ return true;
+ }
+
+ synchronized public ByteSequence getCachedMarshalledForm(WireFormat wireFormat) {
+ if( cachedWireFormat == null || !cachedWireFormat.equals(wireFormat) ) {
+ return null;
+ }
+ return cachedWireFormatData;
+ }
+
+ synchronized public void evictMarshlledForm() {
+ cachedWireFormat = null;
+ cachedWireFormatData = null;
+ }
+
+ synchronized public void setCachedMarshalledForm(WireFormat wireFormat, ByteSequence data) {
+ cachedWireFormat = wireFormat;
+ cachedWireFormatData = data;
+
+ int sizeChange=0;
+ synchronized (this) {
+ if( referenceCount > 0 ) {
+ sizeChange = getSize();
+ this.size=0;
+ sizeChange -= getSize();
+ }
+ }
+
+// TODO: need a destination alternative that is not AMQDestination
+// if( sizeChange!=0 && regionDestination!=null )
+// regionDestination.getUsageManager().decreaseUsage(sizeChange);
+
+ }
+
+ public int incrementReferenceCount() {
+ int rc;
+ int size;
+ synchronized (this) {
+ rc = ++referenceCount;
+ size = getSize();
+ }
+
+// TODO: need a destination alternative that is not AMQDestination
+// if( rc==1 && regionDestination!=null )
+// regionDestination.getUsageManager().increaseUsage(size);
+
+ return rc;
+ }
+
+ synchronized public int decrementReferenceCount() {
+ int rc;
+ int size;
+ synchronized (this) {
+ rc = --referenceCount;
+ size = getSize();
+ }
+
+// TODO: need a destination alternative that is not AMQDestination
+// if( rc==0 && regionDestination!=null )
+// regionDestination.getUsageManager().decreaseUsage(size);
+
+ return rc;
+ }
+
+ public int getSize() {
+ if( size == 0 ) {
+ size = AVERAGE_MESSAGE_SIZE_OVERHEAD;
+ if( marshalledProperties!=null )
+ size += marshalledProperties.getLength();
+ if( content!=null )
+ size += content.getLength();
+ if( cachedWireFormatData !=null )
+ size += cachedWireFormatData.getLength() + 12;
+ else
+ size *= 2; // Estimate what the cached data will add.
+ }
+ return size;
+ }
+
+ /**
+ * @openwire:property version=1
+ * @return Returns the recievedByDFBridge.
+ */
+ public boolean isRecievedByDFBridge(){
+ return recievedByDFBridge;
+ }
+
+ /**
+ * @param recievedByDFBridge The recievedByDFBridge to set.
+ */
+ public void setRecievedByDFBridge(boolean recievedByDFBridge){
+ this.recievedByDFBridge=recievedByDFBridge;
+ }
+
+ public void onMessageRolledBack() {
+ incrementRedeliveryCounter();
+ }
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/Message.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,191 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+import org.apache.geronimo.openwire.state.CommandVisitor;
+
+
+/**
+ *
+ * @openwire:marshaller code="22"
+ * @version $Revision$
+ */
+public class MessageAck extends BaseCommand {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.MESSAGE_ACK;
+
+ /**
+ * Used to let the broker know that the message has been delivered to the
+ * client. Message will still be retained until an standard ack is received.
+ * This is used get the broker to send more messages past prefetch limits when
+ * an standard ack has not been sent.
+ */
+ public static final byte DELIVERED_ACK_TYPE=0;
+
+ /**
+ * The standard ack case where a client wants the message to be discarded.
+ */
+ public static final byte STANDARD_ACK_TYPE=2;
+
+ /**
+ * In case the client want's to explicitly let the broker know that a
+ * message was not processed and the message was considered a poison message.
+ */
+ public static final byte POSION_ACK_TYPE=1;
+
+ protected byte ackType;
+ protected ConsumerId consumerId;
+ protected MessageId firstMessageId;
+ protected MessageId lastMessageId;
+// protected ActiveMQDestination destination;
+ protected TransactionId transactionId;
+ protected int messageCount;
+
+ protected transient String consumerKey;
+
+ public MessageAck() {
+ }
+
+ public MessageAck(MessageDispatch md, byte ackType, int messageCount) {
+ this.ackType = ackType;
+ this.consumerId = md.getConsumerId();
+// this.destination = md.getDestination();
+ this.lastMessageId = md.getMessage().getMessageId();
+ this.messageCount=messageCount;
+ }
+
+ public void copy(MessageAck copy) {
+ super.copy(copy);
+ copy.firstMessageId = firstMessageId;
+ copy.lastMessageId = lastMessageId;
+// copy.destination = destination;
+ copy.transactionId = transactionId;
+ copy.ackType = ackType;
+ copy.consumerId = consumerId;
+ }
+
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ public boolean isMessageAck() {
+ return true;
+ }
+
+ public boolean isPoisonAck() {
+ return ackType==POSION_ACK_TYPE;
+ }
+
+ public boolean isStandardAck() {
+ return ackType==STANDARD_ACK_TYPE;
+ }
+
+ public boolean isDeliveredAck() {
+ return ackType==DELIVERED_ACK_TYPE;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+// public ActiveMQDestination getDestination() {
+// return destination;
+// }
+// public void setDestination(ActiveMQDestination destination) {
+// this.destination = destination;
+// }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public TransactionId getTransactionId() {
+ return transactionId;
+ }
+ public void setTransactionId(TransactionId transactionId) {
+ this.transactionId = transactionId;
+ }
+
+ public boolean isInTransaction() {
+ return transactionId!=null;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public ConsumerId getConsumerId() {
+ return consumerId;
+ }
+ public void setConsumerId(ConsumerId consumerId) {
+ this.consumerId = consumerId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public byte getAckType() {
+ return ackType;
+ }
+ public void setAckType(byte ackType) {
+ this.ackType = ackType;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public MessageId getFirstMessageId() {
+ return firstMessageId;
+ }
+ public void setFirstMessageId(MessageId firstMessageId) {
+ this.firstMessageId = firstMessageId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public MessageId getLastMessageId() {
+ return lastMessageId;
+ }
+ public void setLastMessageId(MessageId lastMessageId) {
+ this.lastMessageId = lastMessageId;
+ }
+
+ /**
+ * The number of messages being acknowledged in the range.
+ * @openwire:property version=1
+ */
+ public int getMessageCount() {
+ return messageCount;
+ }
+ public void setMessageCount(int messageCount) {
+ this.messageCount = messageCount;
+ }
+
+ public Response visit(CommandVisitor visitor) throws Exception {
+ return visitor.processMessageAck( this );
+ }
+
+ /**
+ * A helper method to allow a single message ID to be acknowledged
+ */
+ public void setMessageID(MessageId messageID) {
+ setFirstMessageId(messageID);
+ setLastMessageId(messageID);
+ setMessageCount(1);
+ }
+
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageAck.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,107 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+import org.apache.geronimo.openwire.state.CommandVisitor;
+
+
+/**
+ *
+ * @openwire:marshaller code="21"
+ * @version $Revision$
+ */
+public class MessageDispatch extends BaseCommand {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.MESSAGE_DISPATCH;
+
+ protected ConsumerId consumerId;
+ //protected ActiveMQDestination destination;
+ protected Message message;
+ protected int redeliveryCounter;
+
+ transient protected long deliverySequenceId;
+ transient protected Object consumer;
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ public boolean isMessageDispatch() {
+ return true;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public ConsumerId getConsumerId() {
+ return consumerId;
+ }
+ public void setConsumerId(ConsumerId consumerId) {
+ this.consumerId = consumerId;
+ }
+
+ /**
+ * @-openwire:property version=1 cache=true
+ */
+// public ActiveMQDestination getDestination() {
+// return destination;
+// }
+// public void setDestination(ActiveMQDestination destination) {
+// this.destination = destination;
+// }
+
+ /**
+ * @openwire:property version=1
+ */
+ public Message getMessage() {
+ return message;
+ }
+ public void setMessage(Message message) {
+ this.message = message;
+ }
+
+ public long getDeliverySequenceId() {
+ return deliverySequenceId;
+ }
+ public void setDeliverySequenceId(long deliverySequenceId) {
+ this.deliverySequenceId = deliverySequenceId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public int getRedeliveryCounter() {
+ return redeliveryCounter;
+ }
+ public void setRedeliveryCounter(int deliveryCounter) {
+ this.redeliveryCounter = deliveryCounter;
+ }
+
+ public Object getConsumer() {
+ return consumer;
+ }
+
+ public void setConsumer(Object consumer) {
+ this.consumer = consumer;
+ }
+
+ public Response visit(CommandVisitor visitor) throws Exception {
+ return null;
+ }
+
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageDispatch.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,142 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+
+/**
+ * @openwire:marshaller code="110"
+ * @version $Revision$
+ */
+public class MessageId implements DataStructure {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.MESSAGE_ID;
+
+ protected ProducerId producerId;
+ protected long producerSequenceId;
+ protected long brokerSequenceId;
+
+ transient private String key;
+ transient private int hashCode;
+
+ public MessageId() {
+ this.producerId = new ProducerId();
+ }
+
+ public MessageId(ProducerInfo producerInfo, long producerSequenceId) {
+ this.producerId = producerInfo.getProducerId();
+ this.producerSequenceId = producerSequenceId;
+ }
+
+ public MessageId(String messageKey) {
+ setValue(messageKey);
+ }
+
+ public MessageId(String producerId, long producerSequenceId) {
+ this( new ProducerId(producerId), producerSequenceId);
+ }
+
+ public MessageId(ProducerId producerId, long producerSequenceId) {
+ this.producerId=producerId;
+ this.producerSequenceId = producerSequenceId;
+ }
+
+ /**
+ * Sets the value as a String
+ */
+ public void setValue(String messageKey) {
+ key = messageKey;
+ // Parse off the sequenceId
+ int p = messageKey.lastIndexOf(":");
+ if( p >= 0 ) {
+ producerSequenceId = Long.parseLong(messageKey.substring(p+1));
+ messageKey = messageKey.substring(0,p);
+ }
+ producerId = new ProducerId(messageKey);
+ }
+
+ /**
+ * Sets the transient text view of the message which will be ignored
+ * if the message is marshaled on a transport; so is only for in-JVM changes
+ * to accommodate foreign JMS message IDs
+ */
+ public void setTextView(String key) {
+ this.key = key;
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ public boolean equals(Object o) {
+ if( this == o )
+ return true;
+ if( o==null || o.getClass() != getClass() )
+ return false;
+
+ MessageId id = (MessageId) o;
+ return producerSequenceId==id.producerSequenceId && producerId.equals(id.producerId);
+ }
+
+ public int hashCode() {
+ if( hashCode == 0 ) {
+ hashCode = producerId.hashCode() ^ (int)producerSequenceId;
+ }
+ return hashCode;
+ }
+
+ public String toString() {
+ if(key==null) {
+ key = producerId.toString()+":"+producerSequenceId;
+ }
+ return key;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public ProducerId getProducerId() {
+ return producerId;
+ }
+ public void setProducerId(ProducerId producerId) {
+ this.producerId = producerId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getProducerSequenceId() {
+ return producerSequenceId;
+ }
+ public void setProducerSequenceId(long producerSequenceId) {
+ this.producerSequenceId = producerSequenceId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getBrokerSequenceId() {
+ return brokerSequenceId;
+ }
+ public void setBrokerSequenceId(long brokerSequenceId) {
+ this.brokerSequenceId = brokerSequenceId;
+ }
+
+ public boolean isMarshallAware() {
+ return false;
+ }
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/MessageId.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,144 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+/**
+ *
+ * @openwire:marshaller code="123"
+ * @version $Revision$
+ */
+public class ProducerId implements DataStructure {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.PRODUCER_ID;
+
+ protected String connectionId;
+ protected long sessionId;
+ protected long value;
+
+ protected transient int hashCode;
+ protected transient String key;
+ protected transient SessionId parentId;
+
+ public ProducerId() {
+ }
+
+ public ProducerId(SessionId sessionId, long producerId) {
+ this.connectionId = sessionId.getConnectionId();
+ this.sessionId = sessionId.getValue();
+ this.value=producerId;
+ }
+
+ public ProducerId(ProducerId id) {
+ this.connectionId = id.getConnectionId();
+ this.sessionId = id.getSessionId();
+ this.value=id.getValue();
+ }
+
+ public ProducerId(String producerKey) {
+ // Parse off the producerId
+ int p = producerKey.lastIndexOf(":");
+ if( p >= 0 ) {
+ value = Long.parseLong(producerKey.substring(p+1));
+ producerKey = producerKey.substring(0,p);
+ }
+ setProducerSessionKey(producerKey);
+ }
+
+ public SessionId getParentId() {
+ if( parentId == null ) {
+ parentId = new SessionId(this);
+ }
+ return parentId;
+ }
+
+ public int hashCode() {
+ if( hashCode == 0 ) {
+ hashCode = connectionId.hashCode() ^ (int)sessionId ^ (int)value;
+ }
+ return hashCode;
+ }
+
+ public boolean equals(Object o) {
+ if( this == o )
+ return true;
+ if( o == null || o.getClass()!=ProducerId.class )
+ return false;
+ ProducerId id = (ProducerId) o;
+ return sessionId==id.sessionId
+ && value==id.value
+ && connectionId.equals(id.connectionId);
+ }
+
+
+ /**
+ * @param sessionKey
+ */
+ private void setProducerSessionKey(String sessionKey) {
+ // Parse off the value
+ int p = sessionKey.lastIndexOf(":");
+ if( p >= 0 ) {
+ sessionId = Long.parseLong(sessionKey.substring(p+1));
+ sessionKey = sessionKey.substring(0,p);
+ }
+ // The rest is the value
+ connectionId = sessionKey;
+ }
+
+ public String toString() {
+ if( key == null ) {
+ key=connectionId+":"+sessionId+":"+value;
+ }
+ return key;
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public String getConnectionId() {
+ return connectionId;
+ }
+ public void setConnectionId(String connectionId) {
+ this.connectionId = connectionId;
+ }
+ /**
+ * @openwire:property version=1
+ */
+ public long getValue() {
+ return value;
+ }
+ public void setValue(long producerId) {
+ this.value = producerId;
+ }
+
+ /**
+ * @openwire:property version=1
+ */
+ public long getSessionId() {
+ return sessionId;
+ }
+ public void setSessionId(long sessionId) {
+ this.sessionId = sessionId;
+ }
+
+ public boolean isMarshallAware() {
+ return false;
+ }
+}
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerId.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerInfo.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerInfo.java?view=auto&rev=447058
==============================================================================
--- geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerInfo.java (added)
+++ geronimo/sandbox/gcache/openwire/src/main/java/org/apache/geronimo/openwire/command/ProducerInfo.java Sun Sep 17 05:35:45 2006
@@ -0,0 +1,92 @@
+/**
+ *
+ * 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.geronimo.openwire.command;
+
+import org.apache.geronimo.openwire.state.CommandVisitor;
+
+/**
+ *
+ * @openwire:marshaller code="6"
+ * @version $Revision$
+ */
+public class ProducerInfo extends BaseCommand {
+
+ public static final byte DATA_STRUCTURE_TYPE=CommandTypes.PRODUCER_INFO;
+
+ protected ProducerId producerId;
+ protected NodeId[] nodePath;
+
+ public ProducerInfo() {
+ }
+
+ public ProducerInfo(ProducerId producerId) {
+ this.producerId = producerId;
+ }
+
+ public ProducerInfo(SessionInfo sessionInfo, long producerId) {
+ this.producerId = new ProducerId(sessionInfo.getSessionId(), producerId);
+ }
+
+ public ProducerInfo copy() {
+ ProducerInfo info = new ProducerInfo();
+ copy(info);
+ return info;
+ }
+
+ public void copy(ProducerInfo info) {
+ super.copy(info);
+ info.producerId = producerId;
+ }
+
+ public byte getDataStructureType() {
+ return DATA_STRUCTURE_TYPE;
+ }
+
+ /**
+ * @openwire:property version=1 cache=true
+ */
+ public ProducerId getProducerId() {
+ return producerId;
+ }
+ public void setProducerId(ProducerId producerId) {
+ this.producerId = producerId;
+ }
+
+// public RemoveInfo createRemoveCommand() {
+// RemoveInfo command = new RemoveInfo(getProducerId());
+// command.setResponseRequired(isResponseRequired());
+// return command;
+// }
+
+ /**
+ * The route of brokers the command has moved through.
+ *
+ * @openwire:property version=1 cache=true
+ */
+ public NodeId[] getNodePath() {
+ return nodePath;
+ }
+ public void setNodePath(NodeId[] brokerPath) {
+ this.nodePath = brokerPath;
+ }
+
+ public Response visit(CommandVisitor visitor) throws Exception {
+ return visitor.processAddProducer( this );
+ }
+
+}