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)
   }


Reply via email to