Author: ay Date: Mon Nov 21 23:52:05 2011 New Revision: 1204754 URL: http://svn.apache.org/viewvc?rev=1204754&view=rev Log: Merged revisions 1204585 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.4.x-fixes
................ r1204585 | ay | 2011-11-21 17:43:29 +0100 (Mon, 21 Nov 2011) | 13 lines Merged revisions 1204500,1204537 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1204500 | ay | 2011-11-21 14:59:23 +0100 (Mon, 21 Nov 2011) | 1 line [CXF-3921] makingRMTxStore's tabel-exists error state configurable ........ r1204537 | ay | 2011-11-21 16:19:36 +0100 (Mon, 21 Nov 2011) | 1 line fixing jdk15 build for CXF-3921 ........ ................ Added: cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/txstore-custom-error-bean.xml - copied unchanged from r1204585, cxf/branches/2.4.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/txstore-custom-error-bean.xml Modified: cxf/branches/2.3.x-fixes/ (props changed) cxf/branches/2.3.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreConfigurationTest.java cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Mon Nov 21 23:52:05 2011 @@ -0,0 +1,2 @@ +/cxf/branches/2.4.x-fixes:1204585 +/cxf/trunk:1204500,1204537 Propchange: cxf/branches/2.3.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.3.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java?rev=1204754&r1=1204753&r2=1204754&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java (original) +++ cxf/branches/2.3.x-fixes/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStore.java Mon Nov 21 23:52:05 2011 @@ -144,6 +144,9 @@ public class RMTxStore implements RMStor private String userName; private String password; + private String tableExistsState = DERBY_TABLE_EXISTS_STATE; + private int tableExistsCode = ORACLE_TABLE_EXISTS_CODE; + // configuration public void setDriverClassName(String dcn) { @@ -178,6 +181,22 @@ public class RMTxStore implements RMStor return userName; } + public String getTableExistsState() { + return tableExistsState; + } + + public void setTableExistsState(String tableExistsState) { + this.tableExistsState = tableExistsState; + } + + public int getTableExistsCode() { + return tableExistsCode; + } + + public void setTableExistsCode(int tableExistsCode) { + this.tableExistsCode = tableExistsCode; + } + public void setConnection(Connection c) { connection = c; } @@ -684,8 +703,9 @@ public class RMTxStore implements RMStor } protected boolean isTableExistsError(SQLException ex) { - return DERBY_TABLE_EXISTS_STATE.equals(ex.getSQLState()) - || ORACLE_TABLE_EXISTS_CODE == ex.getErrorCode(); + // we could be deriving the state/code from the driver url to avoid explicit setting of them + return (null != tableExistsState && tableExistsState.equals(ex.getSQLState())) + || tableExistsCode == ex.getErrorCode(); } Modified: cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreConfigurationTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreConfigurationTest.java?rev=1204754&r1=1204753&r2=1204754&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreConfigurationTest.java (original) +++ cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreConfigurationTest.java Mon Nov 21 23:52:05 2011 @@ -19,6 +19,8 @@ package org.apache.cxf.ws.rm.persistence.jdbc; +import java.sql.SQLException; + import org.apache.cxf.Bus; import org.apache.cxf.bus.spring.SpringBusFactory; import org.apache.cxf.ws.rm.RMManager; @@ -46,4 +48,16 @@ public class RMTxStoreConfigurationTest assertEquals("jdbc:derby://localhost:1527/rmdb;create=true", store.getUrl()); } + @Test + public void testSetCustomTableExistsState() { + SpringBusFactory factory = new SpringBusFactory(); + Bus bus = factory.createBus("org/apache/cxf/ws/rm/persistence/jdbc/txstore-custom-error-bean.xml"); + RMManager manager = bus.getExtension(RMManager.class); + assertNotNull(manager); + RMTxStore store = (RMTxStore)manager.getStore(); + + assertTrue(store.isTableExistsError(new SQLException("Table exists", "I6000", 288))); + + assertFalse(store.isTableExistsError(new SQLException("Unknown error", "00000", -1))); + } } Modified: cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java?rev=1204754&r1=1204753&r2=1204754&view=diff ============================================================================== --- cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java (original) +++ cxf/branches/2.3.x-fixes/rt/ws/rm/src/test/java/org/apache/cxf/ws/rm/persistence/jdbc/RMTxStoreTest.java Mon Nov 21 23:52:05 2011 @@ -25,7 +25,6 @@ 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.v200408.EndpointReferenceType; @@ -519,7 +518,7 @@ public class RMTxStoreTest extends Asser return sid; } - + /* private void verifyDestinationSequence(String s, DestinationSequence seq) { Identifier sid = seq.getIdentifier(); assertNotNull(sid); @@ -553,7 +552,7 @@ public class RMTxStoreTest extends Asser assertTrue(seq.isLastMessage()); } } - + private void verifyAcknowledgementRanges(List<SequenceAcknowledgement.AcknowledgementRange> ranges, long[] values) { assertNotNull(ranges); @@ -565,7 +564,7 @@ public class RMTxStoreTest extends Asser assertEquals(values[v++], (long)range.getUpper().longValue()); } } - + */ private void setupMessage(Identifier sid, BigInteger mn, String to, boolean outbound) throws IOException, SQLException { RMMessage msg = control.createMock(RMMessage.class);
