You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/06/04 19:59:18 UTC
svn commit: r1346061 - in /camel/branches/camel-2.9.x: ./
components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/
components/camel-flatpack/src/test/data/fixedLong/
components/camel-flatpack/src/test/data/fixedMixed/ components/cam...
Author: davsclaus
Date: Mon Jun 4 17:59:17 2012
New Revision: 1346061
URL: http://svn.apache.org/viewvc?rev=1346061&view=rev
Log:
CAMEL-5035: Added support for handling long/short lines to flatpack component. Thanks to Chris Geer for the patch.
Added:
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/data/fixedMixed/
- copied from r1346059, camel/trunk/components/camel-flatpack/src/test/data/fixedMixed/
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/data/fixedShort/
- copied from r1346059, camel/trunk/components/camel-flatpack/src/test/data/fixedShort/
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthAllowLongTest.java
- copied unchanged from r1346059, camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthAllowLongTest.java
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthAllowShortAndLongTest.java
- copied unchanged from r1346059, camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthAllowShortAndLongTest.java
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthAllowShortTest.java
- copied unchanged from r1346059, camel/trunk/components/camel-flatpack/src/test/java/org/apache/camel/component/flatpack/FixedLengthAllowShortTest.java
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthAllowLongTest-context.xml
- copied unchanged from r1346059, camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthAllowLongTest-context.xml
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthAllowShortAndLongTest-context.xml
- copied unchanged from r1346059, camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthAllowShortAndLongTest-context.xml
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthAllowShortTest-context.xml
- copied unchanged from r1346059, camel/trunk/components/camel-flatpack/src/test/resources/org/apache/camel/component/flatpack/FixedLengthAllowShortTest-context.xml
Modified:
camel/branches/camel-2.9.x/ (props changed)
camel/branches/camel-2.9.x/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FixedLengthEndpoint.java
camel/branches/camel-2.9.x/components/camel-flatpack/src/test/data/fixedLong/PEOPLE-FixedLength.txt
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1346059
Propchange: camel/branches/camel-2.9.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.9.x/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FixedLengthEndpoint.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FixedLengthEndpoint.java?rev=1346061&r1=1346060&r2=1346061&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FixedLengthEndpoint.java (original)
+++ camel/branches/camel-2.9.x/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FixedLengthEndpoint.java Mon Jun 4 17:59:17 2012
@@ -50,6 +50,8 @@ public class FixedLengthEndpoint extends
private LoadBalancer loadBalancer = new RoundRobinLoadBalancer();
private ParserFactory parserFactory = DefaultParserFactory.getInstance();
private boolean splitRows = true;
+ private boolean allowShortLines;
+ private boolean ignoreExtraColumns;
public FixedLengthEndpoint() {
}
@@ -87,7 +89,16 @@ public class FixedLengthEndpoint extends
protected Parser createParser(String resourceUri, Reader bodyReader) throws IOException {
InputStream is = ResourceHelper.resolveMandatoryResourceAsInputStream(getCamelContext().getClassResolver(), resourceUri);
InputStreamReader reader = new InputStreamReader(is);
- return getParserFactory().newFixedLengthParser(reader, bodyReader);
+ Parser parser = getParserFactory().newFixedLengthParser(reader, bodyReader);
+ if (allowShortLines) {
+ parser.setHandlingShortLines(true);
+ parser.setIgnoreParseWarnings(true);
+ }
+ if (ignoreExtraColumns) {
+ parser.setIgnoreExtraColumns(true);
+ parser.setIgnoreParseWarnings(true);
+ }
+ return parser;
}
// Properties
@@ -117,7 +128,32 @@ public class FixedLengthEndpoint extends
return splitRows;
}
+ /**
+ * Sets the Component to send each row as a separate exchange once parsed
+ */
public void setSplitRows(boolean splitRows) {
this.splitRows = splitRows;
}
+
+ public boolean isAllowShortLines() {
+ return this.allowShortLines;
+ }
+
+ /**
+ * Allows for lines to be shorter than expected and ignores the extra characters
+ */
+ public void setAllowShortLines(boolean allowShortLines) {
+ this.allowShortLines = allowShortLines;
+ }
+
+ /**
+ * Allows for lines to be longer than expected and ignores the extra characters
+ */
+ public void setIgnoreExtraColumns(boolean ignoreExtraColumns) {
+ this.ignoreExtraColumns = ignoreExtraColumns;
+ }
+
+ public boolean isIgnoreExtraColumns() {
+ return ignoreExtraColumns;
+ }
}
Modified: camel/branches/camel-2.9.x/components/camel-flatpack/src/test/data/fixedLong/PEOPLE-FixedLength.txt
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/components/camel-flatpack/src/test/data/fixedLong/PEOPLE-FixedLength.txt?rev=1346061&r1=1346060&r2=1346061&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/components/camel-flatpack/src/test/data/fixedLong/PEOPLE-FixedLength.txt (original)
+++ camel/branches/camel-2.9.x/components/camel-flatpack/src/test/data/fixedLong/PEOPLE-FixedLength.txt Mon Jun 4 17:59:17 2012
@@ -1,4 +1,4 @@
-JOHN DOE 1234 CIRCLE CT ELYRIA OH44035*
-JIMMY SMITH 180 SOME ST AVON OH44011*
-JANE DOE 111 MILKY WY AMHERST OH44001*
-FRED FLINTSTONE 123 ROCKY WY BEDROCK AZ12345*
+JOHN-LONG DOE 1234 CIRCLE CT ELYRIA OH44035*
+JIMMY-LONG SMITH 180 SOME ST AVON OH44011*
+JANE-LONG DOE 111 MILKY WY AMHERST OH44001*
+FRED-LONG FLINTSTONE 123 ROCKY WY BEDROCK AZ12345*