Author: rgodfrey
Date: Wed Oct 17 16:24:21 2012
New Revision: 1399329
URL: http://svn.apache.org/viewvc?rev=1399329&view=rev
Log:
PROTON-81 : Expose send/receive settle mode on links
Removed:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/Accepted.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryStateConverter.java
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/type/messaging/Accepted.java
qpid/proton/trunk/proton-j/src/main/scripts/proton.py
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java?rev=1399329&r1=1399328&r2=1399329&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java
Wed Oct 17 16:24:21 2012
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.proton.engine;
+import org.apache.qpid.proton.type.transport.DeliveryState;
/**
* Delivery
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java?rev=1399329&r1=1399328&r2=1399329&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
Wed Oct 17 16:24:21 2012
@@ -21,7 +21,7 @@
package org.apache.qpid.proton.engine.impl;
import org.apache.qpid.proton.engine.Delivery;
-import org.apache.qpid.proton.engine.DeliveryState;
+import org.apache.qpid.proton.type.transport.DeliveryState;
public class DeliveryImpl implements Delivery
{
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java?rev=1399329&r1=1399328&r2=1399329&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/LinkImpl.java
Wed Oct 17 16:24:21 2012
@@ -23,6 +23,7 @@ package org.apache.qpid.proton.engine.im
import java.util.EnumSet;
import org.apache.qpid.proton.engine.EndpointState;
import org.apache.qpid.proton.engine.Link;
+import org.apache.qpid.proton.type.UnsignedByte;
import org.apache.qpid.proton.type.transport.Source;
import org.apache.qpid.proton.type.transport.Target;
@@ -43,6 +44,13 @@ public abstract class LinkImpl extends E
private int _credit;
private int _unsettled;
+
+ private UnsignedByte _senderSettleMode;
+ private UnsignedByte _remoteSenderSettleMode;
+ private UnsignedByte _receiverSettleMode;
+ private UnsignedByte _remoteReceiverSettleMode;
+
+
private final LinkNode<LinkImpl> _node;
private boolean _drain;
@@ -288,4 +296,43 @@ public abstract class LinkImpl extends E
return _drain;
}
+ public UnsignedByte getSenderSettleMode()
+ {
+ return _senderSettleMode;
+ }
+
+ public void setSenderSettleMode(UnsignedByte senderSettleMode)
+ {
+ _senderSettleMode = senderSettleMode;
+ }
+
+ public UnsignedByte getRemoteSenderSettleMode()
+ {
+ return _remoteSenderSettleMode;
+ }
+
+ void setRemoteSenderSettleMode(UnsignedByte remoteSenderSettleMode)
+ {
+ _remoteSenderSettleMode = remoteSenderSettleMode;
+ }
+
+ public UnsignedByte getReceiverSettleMode()
+ {
+ return _receiverSettleMode;
+ }
+
+ public void setReceiverSettleMode(UnsignedByte receiverSettleMode)
+ {
+ _receiverSettleMode = receiverSettleMode;
+ }
+
+ public UnsignedByte getRemoteReceiverSettleMode()
+ {
+ return _remoteReceiverSettleMode;
+ }
+
+ void setRemoteReceiverSettleMode(UnsignedByte remoteReceiverSettleMode)
+ {
+ _remoteReceiverSettleMode = remoteReceiverSettleMode;
+ }
}
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java?rev=1399329&r1=1399328&r2=1399329&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportImpl.java
Wed Oct 17 16:24:21 2012
@@ -24,9 +24,7 @@ import org.apache.qpid.proton.codec.Comp
import org.apache.qpid.proton.codec.DecoderImpl;
import org.apache.qpid.proton.codec.EncoderImpl;
import org.apache.qpid.proton.codec.WritableBuffer;
-import org.apache.qpid.proton.engine.Accepted;
import org.apache.qpid.proton.engine.Connection;
-import org.apache.qpid.proton.engine.DeliveryState;
import org.apache.qpid.proton.engine.EndpointState;
import org.apache.qpid.proton.engine.FrameTransport;
import org.apache.qpid.proton.engine.Sasl;
@@ -339,15 +337,7 @@ public class TransportImpl extends Endpo
{
transportDelivery.settled();
}
- DeliveryState deliveryState = delivery.getLocalState();
- if(deliveryState == Accepted.getInstance())
- {
- disposition.setState(ACCEPTED);
- }
- else
- {
- // TODO
- }
+ disposition.setState(delivery.getLocalState());
int frameBytes = writeFrame(buffer,
delivery.getLink().getSession()
.getTransportSession().getLocalChannel(),
disposition, null, null);
@@ -467,15 +457,8 @@ public class TransportImpl extends Endpo
disposition.setLast(transportDelivery.getDeliveryId());
disposition.setRole(Role.RECEIVER);
disposition.setSettled(delivery.isSettled());
- DeliveryState deliveryState = delivery.getLocalState();
- if(deliveryState == Accepted.getInstance())
- {
- disposition.setState(ACCEPTED);
- }
- else
- {
- // TODO
- }
+
+ disposition.setState(delivery.getLocalState());
int frameBytes = writeFrame(buffer,
delivery.getLink().getSession()
.getTransportSession().getLocalChannel(),
disposition, null, null);
@@ -606,6 +589,16 @@ public class TransportImpl extends Endpo
attach.setHandle(localHandle);
attach.setName(transportLink.getName());
+ if(link.getSenderSettleMode() != null)
+ {
+
attach.setSndSettleMode(link.getSenderSettleMode());
+ }
+
+ if(link.getReceiverSettleMode() != null)
+ {
+
attach.setRcvSettleMode(link.getReceiverSettleMode());
+ }
+
if(link.getSource() != null)
{
attach.setSource(link.getSource());
@@ -995,6 +988,9 @@ public class TransportImpl extends Endpo
link.setRemoteSource(attach.getSource());
link.setRemoteTarget(attach.getTarget());
+ link.setRemoteReceiverSettleMode(attach.getRcvSettleMode());
+ link.setRemoteSenderSettleMode(attach.getSndSettleMode());
+
transportLink.setName(attach.getName());
transportLink.setRemoteHandle(attach.getHandle());
transportSession.addLinkRemoteHandle(transportLink,
attach.getHandle());
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java?rev=1399329&r1=1399328&r2=1399329&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/TransportSession.java
Wed Oct 17 16:24:21 2012
@@ -328,7 +328,7 @@ class TransportSession
{
if(disposition.getState() != null)
{
-
delivery.setRemoteDeliveryState(DeliveryStateConverter.convert(disposition.getState()));
+ delivery.setRemoteDeliveryState(disposition.getState());
}
if(Boolean.TRUE.equals(disposition.getSettled()))
{
Modified:
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/type/messaging/Accepted.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/type/messaging/Accepted.java?rev=1399329&r1=1399328&r2=1399329&view=diff
==============================================================================
---
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/type/messaging/Accepted.java
(original)
+++
qpid/proton/trunk/proton-j/src/main/java/org/apache/qpid/proton/type/messaging/Accepted.java
Wed Oct 17 16:24:21 2012
@@ -34,6 +34,8 @@ import org.apache.qpid.proton.type.*;
public class Accepted
implements DescribedType ,
org.apache.qpid.proton.type.transport.DeliveryState, Outcome
{
+ private static final Accepted INSTANCE = new Accepted();
+
private static final Object[] DESCRIPTORS =
{
UnsignedLong.valueOf(0x0000000000000024L),
Symbol.valueOf("amqp:accepted:list"),
@@ -85,6 +87,7 @@ public class Accepted
private static class AcceptedConstructor implements
DescribedTypeConstructor<Accepted>
{
+
public Accepted newInstance(Object described)
{
List l = (List) described;
@@ -92,7 +95,7 @@ public class Accepted
Accepted o = new Accepted();
- return o;
+ return INSTANCE;
}
public Class<Accepted> getTypeClass()
@@ -116,4 +119,9 @@ public class Accepted
{
return "Accepted{}";
}
+
+ public static Accepted getInstance()
+ {
+ return INSTANCE;
+ }
}
Modified: qpid/proton/trunk/proton-j/src/main/scripts/proton.py
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/main/scripts/proton.py?rev=1399329&r1=1399328&r2=1399329&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/src/main/scripts/proton.py (original)
+++ qpid/proton/trunk/proton-j/src/main/scripts/proton.py Wed Oct 17 16:24:21
2012
@@ -17,11 +17,12 @@
# under the License.
#
-from org.apache.qpid.proton.engine import EndpointState, Accepted,
TransportException
+from org.apache.qpid.proton.engine import EndpointState, TransportException
from org.apache.qpid.proton.engine.impl import ConnectionImpl, SessionImpl, \
SenderImpl, ReceiverImpl, TransportImpl
from org.apache.qpid.proton.message import Message as MessageImpl, \
MessageFormat
+from org.apache.qpid.proton.type.messaging import Source, Target, Accepted
from jarray import zeros
from java.util import EnumSet
@@ -179,11 +180,15 @@ class Link(Endpoint):
@property
def source(self):
- return Terminus(self.impl, "LocalSource")
+ if self.impl.getSource() is None:
+ self.impl.setSource( Source() )
+ return Terminus(self.impl, "Source")
@property
def target(self):
- return Terminus(self.impl, "LocalTarget")
+ if self.impl.getTarget() is None:
+ self.impl.setTarget( Target() )
+ return Terminus(self.impl, "Target")
@property
def remote_source(self):
@@ -251,9 +256,9 @@ class Terminus(object):
self.capabilities = DataDummy()
def _get_address(self):
- return getattr(self.impl, "get%sAddress" % self.prefix)()
+ return getattr(self.impl, "get%s" % self.prefix)().getAddress()
def _set_address(self, address):
- getattr(self.impl, "set%sAddress" % self.prefix)(address)
+ getattr(self.impl, "get%s" % self.prefix)().setAddress(address)
address = property(_get_address, _set_address)
def copy(self, src):
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]