Author: davsclaus
Date: Mon May 2 13:02:42 2011
New Revision: 1098545
URL: http://svn.apache.org/viewvc?rev=1098545&view=rev
Log:
Fixed scala type converter tests on linux.
Modified:
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/converter/ScalaTypeConverterTest.scala
Modified:
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala?rev=1098545&r1=1098544&r2=1098545&view=diff
==============================================================================
---
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala
(original)
+++
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/converter/ScalaTypeConverter.scala
Mon May 2 13:02:42 2011
@@ -16,10 +16,11 @@
*/
package org.apache.camel.scala.converter;
-import _root_.scala.xml.Elem
+import java.io.InputStream
-import org.apache.camel.converter.jaxp.XmlConverter
+import scala.xml.Elem
import scala.xml.XML
+
import org.w3c.dom.Document
import org.w3c.dom.Node
import org.apache.camel.{Exchange, Converter}
@@ -27,19 +28,29 @@ import org.apache.camel.{Exchange, Conve
/**
* Converter implementation for supporting some common Scala types within
Apache Camel
*/
-@Converter object ScalaTypeConverter {
-
- val converter = new XmlConverter()
-
+@Converter
+class ScalaTypeConverter {
+
+ // static classes in Scala don't work on linux with Camel type converter as
for some reason
+ // camel-core cannot see the methods have static modifiers
+
@Converter
- def convertToDocument(xml: Elem) = converter.toDOMDocument(xml.toString)
+ def convertToDocument(xml: Elem, exchange : Exchange) : Document = {
+ exchange.getContext.getTypeConverter.convertTo(classOf[Document],
exchange, xml.toString)
+ }
@Converter
- def convertToElem(xmlString: String) = XML.loadString(xmlString)
+ def convertToElem(xmlString: String) : Elem = {
+ XML.loadString(xmlString)
+ }
@Converter
- def domDocumentToElem(doc: Document, exchange : Exchange) =
XML.load(converter.toInputStream(doc, exchange))
+ def domDocumentToElem(doc: Document, exchange : Exchange) : Elem = {
+
XML.load(exchange.getContext.getTypeConverter.convertTo(classOf[InputStream],
exchange, doc))
+ }
@Converter
- def domNodeToElem(node: Node, exchange : Exchange) =
XML.loadString(converter.toString(node, exchange))
+ def domNodeToElem(node: Node, exchange : Exchange) : Elem = {
+
XML.loadString(exchange.getContext.getTypeConverter.convertTo(classOf[String],
exchange, node))
+ }
}
Modified:
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/converter/ScalaTypeConverterTest.scala
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/converter/ScalaTypeConverterTest.scala?rev=1098545&r1=1098544&r2=1098545&view=diff
==============================================================================
---
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/converter/ScalaTypeConverterTest.scala
(original)
+++
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/converter/ScalaTypeConverterTest.scala
Mon May 2 13:02:42 2011
@@ -17,7 +17,6 @@
package org.apache.camel.scala.converter;
import org.junit.Assert._
-import org.junit.Ignore
import org.apache.camel.ContextTestSupport
import scala.xml.Elem
@@ -28,40 +27,47 @@ import org.w3c.dom.Document
/**
* Test case for ScalaTypeConverter
*/
-@Ignore("Fails on CI servers")
class ScalaTypeConverterTest extends ContextTestSupport {
def testDocumentConverter = {
- val result = context.getTypeConverter.convertTo(classOf[Document],
<persons/>)
+ val exchange = context.getEndpoint("direct:start").createExchange
+
+ val result = context.getTypeConverter.convertTo(classOf[Document],
exchange, <persons/>)
assertNotNull(result)
assertNotNull(result.getElementsByTagName("persons"))
}
def testXmlStringToElemConverter = {
- val result = context.getTypeConverter.convertTo(classOf[Elem],
"<persons/>")
+ val exchange = context.getEndpoint("direct:start").createExchange
+
+ val result = context.getTypeConverter.convertTo(classOf[Elem], exchange,
"<persons/>")
assertNotNull(result)
assertEquals(<persons/>, result)
}
def testDomDocumentToElemConverter = {
+ val exchange = context.getEndpoint("direct:start").createExchange
+
val factory = DocumentBuilderFactory.newInstance()
val parser = factory.newDocumentBuilder()
val doc = parser.newDocument()
val root = doc.createElement("persons")
doc.appendChild(root)
- val result = context.getTypeConverter.convertTo(classOf[Elem], doc)
+ val result = context.getTypeConverter.convertTo(classOf[Elem], exchange,
doc)
assertNotNull(result)
assertEquals(<persons/>, result)
}
def testDomNodeToElemConverter = {
+ val exchange = context.getEndpoint("direct:start").createExchange
+
val factory = DocumentBuilderFactory.newInstance()
val parser = factory.newDocumentBuilder()
val doc = parser.newDocument()
val node = doc.createElement("persons")
- val result = context.getTypeConverter.convertTo(classOf[Elem], node)
+ val result = context.getTypeConverter.convertTo(classOf[Elem], exchange,
node)
assertNotNull(result)
assertEquals(<persons/>, result)
}