You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2011/10/26 09:53:31 UTC
svn commit: r1189058 - in /cxf/trunk/rt/ws/rm/src:
main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java
Author: ay
Date: Wed Oct 26 07:53:31 2011
New Revision: 1189058
URL: http://svn.apache.org/viewvc?rev=1189058&view=rev
Log:
[CXF-3845] avoid using setBoolean in RMTxStore to increase compatibility
Modified:
cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
cxf/trunk/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java
Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java?rev=1189058&r1=1189057&r2=1189058&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java Wed Oct 26 07:53:31 2011
@@ -179,7 +179,7 @@ public class RMTxStore implements RMStor
public String getUserName() {
return userName;
- }
+ }
public void setConnection(Connection c) {
connection = c;
@@ -547,8 +547,10 @@ public class RMTxStore implements RMStor
String id = sid.getValue();
long nr = msg.getMessageNumber();
String to = msg.getTo();
- LOG.log(Level.FINE, "Storing {0} message number {1} for sequence {2}, to = {3}",
- new Object[] {outbound ? "outbound" : "inbound", nr, id, to});
+ if (LOG.isLoggable(Level.FINE)) {
+ LOG.log(Level.FINE, "Storing {0} message number {1} for sequence {2}, to = {3}",
+ new Object[] {outbound ? "outbound" : "inbound", nr, id, to});
+ }
PreparedStatement stmt = outbound ? createOutboundMessageStmt : createInboundMessageStmt;
if (null == stmt) {
stmt = connection.prepareStatement(MessageFormat.format(CREATE_MESSAGE_STMT_STR,
@@ -565,8 +567,10 @@ public class RMTxStore implements RMStor
stmt.setString(i++, to);
stmt.setBinaryStream(i++, msg.getInputStream(), msg.getSize());
stmt.execute();
- LOG.log(Level.FINE, "Successfully stored {0} message number {1} for sequence {2}",
- new Object[] {outbound ? "outbound" : "inbound", nr, id});
+ if (LOG.isLoggable(Level.FINE)) {
+ LOG.log(Level.FINE, "Successfully stored {0} message number {1} for sequence {2}",
+ new Object[] {outbound ? "outbound" : "inbound", nr, id});
+ }
}
@@ -576,7 +580,7 @@ public class RMTxStore implements RMStor
updateSrcSequenceStmt = connection.prepareStatement(UPDATE_SRC_SEQUENCE_STMT_STR);
}
updateSrcSequenceStmt.setLong(1, seq.getCurrentMessageNr());
- updateSrcSequenceStmt.setBoolean(2, seq.isLastMessage());
+ updateSrcSequenceStmt.setString(2, seq.isLastMessage() ? "1" : "0");
updateSrcSequenceStmt.setString(3, seq.getIdentifier().getValue());
updateSrcSequenceStmt.execute();
}
Modified: cxf/trunk/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java?rev=1189058&r1=1189057&r2=1189058&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java (original)
+++ cxf/trunk/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java Wed Oct 26 07:53:31 2011
@@ -26,6 +26,7 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
+import java.util.List;
import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.ws.addressing.EndpointReferenceType;
@@ -441,10 +442,12 @@ public class RMTxStoreTest extends Asser
seq = store.getDestinationSequence(sid1, ProtocolVariation.RM10WSA200408);
assertNotNull(seq);
+ verifyDestinationSequence("sequence1", seq);
sid2 = setupDestinationSequence("sequence2");
seq = store.getDestinationSequence(sid2, ProtocolVariation.RM10WSA200408);
assertNotNull(seq);
+ verifyDestinationSequence("sequence2", seq);
} finally {
if (null != sid1) {
store.removeDestinationSequence(sid1);
@@ -470,10 +473,12 @@ public class RMTxStoreTest extends Asser
seq = store.getSourceSequence(sid1, ProtocolVariation.RM10WSA200408);
assertNotNull(seq);
-
+ verifySourceSequence("sequence1", seq);
+
sid2 = setupSourceSequence("sequence2");
seq = store.getSourceSequence(sid2, ProtocolVariation.RM10WSA200408);
assertNotNull(seq);
+ verifySourceSequence("sequence2", seq);
} finally {
if (null != sid1) {
store.removeSourceSequence(sid1);
@@ -596,6 +601,52 @@ public class RMTxStoreTest extends Asser
return sid;
}
+
+ private void verifyDestinationSequence(String s, DestinationSequence seq) {
+ Identifier sid = seq.getIdentifier();
+ assertNotNull(sid);
+ assertEquals(s, sid.getValue());
+ if ("sequence1".equals(s)) {
+ assertEquals(0, seq.getLastMessageNumber());
+ SequenceAcknowledgement sa = seq.getAcknowledgment();
+ assertNotNull(sa);
+ verifyAcknowledgementRanges(sa.getAcknowledgementRange(), new long[]{1, 1});
+ } else if ("sequence2".equals(s)) {
+ assertEquals(10, seq.getLastMessageNumber());
+ SequenceAcknowledgement sa = seq.getAcknowledgment();
+ assertNotNull(sa);
+ verifyAcknowledgementRanges(sa.getAcknowledgementRange(), new long[]{1, 1, 3, 10});
+ }
+ }
+
+ private void verifySourceSequence(String s, SourceSequence seq) {
+ Identifier sid = seq.getIdentifier();
+ assertNotNull(sid);
+ assertEquals(s, sid.getValue());
+ if ("sequence1".equals(s)) {
+ assertNull(seq.getExpires());
+ assertEquals(1, seq.getCurrentMessageNr());
+ assertFalse(seq.isLastMessage());
+ } else if ("sequence2".equals(s)) {
+ Date expires = seq.getExpires();
+ assertNotNull(expires);
+ expires.after(new Date());
+ assertEquals(10, seq.getCurrentMessageNr());
+ assertTrue(seq.isLastMessage());
+ }
+ }
+
+ private void verifyAcknowledgementRanges(List<SequenceAcknowledgement.AcknowledgementRange> ranges,
+ long[] values) {
+ assertNotNull(ranges);
+ assertEquals(values.length / 2, ranges.size());
+
+ int v = 0;
+ for (SequenceAcknowledgement.AcknowledgementRange range : ranges) {
+ assertEquals(values[v++], (long)range.getLower());
+ assertEquals(values[v++], (long)range.getUpper());
+ }
+ }
private void setupMessage(Identifier sid, Long mn, String to, boolean outbound)
throws IOException, SQLException {