Author: jstrachan
Date: Mon Jul 14 10:35:40 2008
New Revision: 676659

URL: http://svn.apache.org/viewvc?rev=676659&view=rev
Log:
added support for both fixed width and delimited endpoints for CAMEL-717

Added:
    
activemq/camel/trunk/components/camel-flatpack/src/main/resources/META-INF/services/org/apache/camel/component/flatpack
      - copied unchanged from r676643, 
activemq/camel/trunk/components/camel-flatpack/src/main/resources/META-INF/services/org/apache/camel/component/fp-delim
    
activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/DelimitedTest.java
      - copied, changed from r676643, 
activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthTest.java
    
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/DelimitedTest-context.xml
      - copied, changed from r676643, 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml
Removed:
    
activemq/camel/trunk/components/camel-flatpack/src/main/resources/META-INF/services/org/apache/camel/component/fp-fixed
Modified:
    
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/DelimitedEndpoint.java
    
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackComponent.java
    
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml

Modified: 
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/DelimitedEndpoint.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/DelimitedEndpoint.java?rev=676659&r1=676658&r2=676659&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/DelimitedEndpoint.java
 (original)
+++ 
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/DelimitedEndpoint.java
 Mon Jul 14 10:35:40 2008
@@ -33,7 +33,7 @@
 public class DelimitedEndpoint extends FixedLengthEndpoint {
     private char delimiter = ',';
     private char textQualifier = '"';
-    private boolean ignoreFirstRecord = false;
+    private boolean ignoreFirstRecord = true;
 
     public DelimitedEndpoint(String uri, Resource resource) {
         super(uri, resource);

Modified: 
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackComponent.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackComponent.java?rev=676659&r1=676658&r2=676659&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackComponent.java
 (original)
+++ 
activemq/camel/trunk/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackComponent.java
 Mon Jul 14 10:35:40 2008
@@ -18,6 +18,7 @@
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.component.ResourceBasedComponent;
 import org.springframework.core.io.Resource;
 
@@ -32,14 +33,32 @@
 public class FlatpackComponent extends ResourceBasedComponent {
 
     protected Endpoint<Exchange> createEndpoint(String uri, String remaining, 
Map parameters) throws Exception {
-        Resource resource = resolveMandatoryResource(remaining);
+        boolean fixed = false;
+        if (remaining.startsWith("fixed:")) {
+            fixed = true;
+            remaining = remaining.substring("fixed:".length());
+        } else if (remaining.startsWith("delim:")) {
+            remaining = remaining.substring("delim:".length());
+        }
+        Resource resource = null;
+        if (fixed) {
+            resource = resolveMandatoryResource(remaining);
+        } else {
+            if (ObjectHelper.isNotNullAndNonEmpty(remaining)) {
+                resource = getResourceLoader().getResource(remaining);
+            }
+        }
         if (log.isDebugEnabled()) {
             log.debug(this + " using flatpack map resource: " + resource);
         }
-        FixedLengthEndpoint answer = new FixedLengthEndpoint(uri, resource);
+        FixedLengthEndpoint answer;
+        if (fixed) {
+            answer = new FixedLengthEndpoint(uri, resource);
+        } else {
+            answer = new DelimitedEndpoint(uri, resource);
+        }
         answer.setCamelContext(getCamelContext());
         setProperties(answer, parameters);
         return answer;
     }
-
 }
\ No newline at end of file

Copied: 
activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/DelimitedTest.java
 (from r676643, 
activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthTest.java)
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/DelimitedTest.java?p2=activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/DelimitedTest.java&p1=activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthTest.java&r1=676643&r2=676659&rev=676659&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthTest.java
 (original)
+++ 
activemq/camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/DelimitedTest.java
 Mon Jul 14 10:35:40 2008
@@ -34,13 +34,13 @@
  * @version $Revision: 1.1 $
  */
 @ContextConfiguration
-public class FixedLengthTest extends AbstractJUnit38SpringContextTests {
+public class DelimitedTest extends AbstractJUnit38SpringContextTests {
     private static final transient Log LOG = 
LogFactory.getLog(FixedLengthTest.class);
 
     @EndpointInject(uri = "mock:results")
     protected MockEndpoint results;
 
-    protected String[] expectedFirstName = {"JOHN", "JIMMY", "JANE", "FRED"};
+    protected String[] expectedItemDesc = {"SOME VALVE", "AN ENGINE", "A 
BELT", "A BOLT"};
 
     public void testCamel() throws Exception {
         results.expectedMessageCount(4);
@@ -52,11 +52,11 @@
             Message in = exchange.getIn();
             Map body = in.getBody(Map.class);
             assertNotNull("Should have found body as a Map but was: " + 
ObjectHelper.className(in.getBody()), body);
-            assertEquals("FIRSTNAME", expectedFirstName[counter], 
body.get("FIRSTNAME"));
+            assertEquals("ITEM_DESC", expectedItemDesc[counter], 
body.get("ITEM_DESC"));
             LOG.info("Result: " + counter + " = " + body);
             counter++;
         }
 
     }
 
-}
+}
\ No newline at end of file

Copied: 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/DelimitedTest-context.xml
 (from r676643, 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml)
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/DelimitedTest-context.xml?p2=activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/DelimitedTest-context.xml&p1=activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml&r1=676643&r2=676659&rev=676659&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml
 (original)
+++ 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/DelimitedTest-context.xml
 Mon Jul 14 10:35:40 2008
@@ -25,12 +25,12 @@
   <!-- START SNIPPET: example -->
   <camelContext xmlns="http://activemq.apache.org/camel/schema/spring";>
     <route>
-      <from uri="file://src/test/data/fixed?noop=true"/>
-      <to uri="fp-fixed:PEOPLE-FixedLength.pzmap.xml"/>
+      <from uri="file://src/test/data/delim?noop=true"/>
+      <to uri="flatpack:delim:INVENTORY-Delimited.pzmap.xml"/>
     </route>
 
     <route>
-      <from uri="fp-fixed:PEOPLE-FixedLength.pzmap.xml"/>
+      <from uri="flatpack:delim:INVENTORY-Delimited.pzmap.xml"/>
       <convertBodyTo type="java.util.Map"/>
       <to uri="mock:results"/>
     </route>

Modified: 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml?rev=676659&r1=676658&r2=676659&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml
 (original)
+++ 
activemq/camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthTest-context.xml
 Mon Jul 14 10:35:40 2008
@@ -26,11 +26,11 @@
   <camelContext xmlns="http://activemq.apache.org/camel/schema/spring";>
     <route>
       <from uri="file://src/test/data/fixed?noop=true"/>
-      <to uri="fp-fixed:PEOPLE-FixedLength.pzmap.xml"/>
+      <to uri="flatpack:fixed:PEOPLE-FixedLength.pzmap.xml"/>
     </route>
 
     <route>
-      <from uri="fp-fixed:PEOPLE-FixedLength.pzmap.xml"/>
+      <from uri="flatpack:fixed:PEOPLE-FixedLength.pzmap.xml"/>
       <convertBodyTo type="java.util.Map"/>
       <to uri="mock:results"/>
     </route>


Reply via email to