Author: peterjones
Date: Mon Sep 14 14:29:10 2009
New Revision: 814661
URL: http://svn.apache.org/viewvc?rev=814661&view=rev
Log:
Some ibm jdk 5 fixes.
DataBindingProviderTest - string comparison of xml in test fails for ibm jdk.
JMSConduitTest - work-around for ibm jdk finalizing the conduit while it is
still in scope in the test.
AegisDatabinding - Need to add a null check so that the simple frontend
dependency can be excluded with the ibm jdk.
Modified:
cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingProviderTest.java
cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
Modified:
cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java?rev=814661&r1=814660&r2=814661&view=diff
==============================================================================
---
cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
(original)
+++
cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
Mon Sep 14 14:29:10 2009
@@ -644,6 +644,14 @@
private Method getMethod(Service s, OperationInfo op) {
MethodDispatcher md =
(MethodDispatcher)s.get(MethodDispatcher.class.getName());
+ // The ibm jdk requires the simple frontend dependency to be
+ // present for the SimpleMethodDispatcher cast below even if
+ // md is null (sun jdk does not). So, for the jaxrs frontend,
+ // we can exclude the simple frontend from the aegis databinding
+ // dependency as long as this null check is here.
+ if (md == null) {
+ return null;
+ }
SimpleMethodDispatcher smd = (SimpleMethodDispatcher)md;
return smd != null ? smd.getPrimaryMethod(op) : null;
}
Modified:
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingProviderTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingProviderTest.java?rev=814661&r1=814660&r2=814661&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingProviderTest.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/DataBindingProviderTest.java
Mon Sep 14 14:29:10 2009
@@ -77,15 +77,19 @@
ByteArrayOutputStream bos = new ByteArrayOutputStream();
p.writeTo(b, Book.class, Book.class,
new Annotation[0], MediaType.TEXT_XML_TYPE, new
MetadataMap<String, Object>(), bos);
- assertEquals(properties.getProperty("testAegisWriteXml"),
bos.toString());
+ doTestAegisRead(bos.toString());
}
- @SuppressWarnings("unchecked")
@Test
public void testAegisRead() throws Exception {
String data = "<ns1:Book
xmlns:ns1=\"http://resources.jaxrs.cxf.apache.org\" "
+ "xmlns:ns2=\"http://www.w3.org/2001/XMLSchema-instance\"
ns2:type=\"ns1:Book\">"
+
"<ns1:id>127</ns1:id><ns1:name>CXF</ns1:name><ns1:state></ns1:state></ns1:Book>";
+ doTestAegisRead(data);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void doTestAegisRead(String data) throws Exception {
Service s = new JAXRSServiceImpl(Collections.singletonList(c), true);
s.put("readXsiType", true);
AegisDatabinding binding = new AegisDatabinding();
Modified:
cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java?rev=814661&r1=814660&r2=814661&view=diff
==============================================================================
---
cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
(original)
+++
cxf/trunk/rt/transports/jms/src/test/java/org/apache/cxf/transport/jms/JMSConduitTest.java
Mon Sep 14 14:29:10 2009
@@ -168,6 +168,12 @@
return JMSUtils.createAndSetPayload(testBytes, session,
JMSConstants.BYTE_MESSAGE_TYPE);
}
});
+
+ // The ibm jdk finalizes conduit (during most runs of this test) and
+ // causes it to fail unless we reference the conduit here after the
+ // jmsTemplate.execute() call.
+ assertNotNull("Conduit is null", conduit);
+
assertTrue("Message should have been of type BytesMessage ", message
instanceof BytesMessage);
}