You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ha...@apache.org on 2013/04/02 23:56:47 UTC
svn commit: r1463772 - in /camel/trunk/components/camel-bindy/src:
main/java/org/apache/camel/dataformat/bindy/
main/java/org/apache/camel/dataformat/bindy/fixed/
test/java/org/apache/camel/dataformat/bindy/csv/
test/java/org/apache/camel/dataformat/bi...
Author: hadrian
Date: Tue Apr 2 21:56:46 2013
New Revision: 1463772
URL: http://svn.apache.org/r1463772
Log:
CAMEL-6234. Add validation for multple models in the same package
Added:
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvFieldEndingWithSeparatorIssueTest.java (contents, props changed)
- copied, changed from r1463377, camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCVSFieldEndingWithSeparatorIssueTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/csv/
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/csv/MyCsvRecord.java (contents, props changed)
- copied, changed from r1463377, camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/MyCsvRecord.java
camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml (contents, props changed)
- copied, changed from r1463377, camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCSVUnmarshallTest-context.xml
Removed:
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCVSFieldEndingWithSeparatorIssueTest.java
camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/MyCsvRecord.java
camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCSVUnmarshallTest-context.xml
Modified:
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java
camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java?rev=1463772&r1=1463771&r2=1463772&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/BindyCsvFactory.java Tue Apr 2 21:56:46 2013
@@ -102,8 +102,8 @@ public class BindyCsvFactory extends Bin
public void initAnnotatedFields() {
+ int maxpos = 0;
for (Class<?> cl : models) {
-
List<Field> linkFields = new ArrayList<Field>();
if (LOG.isDebugEnabled()) {
@@ -124,8 +124,14 @@ public class BindyCsvFactory extends Bin
++numberOptionalFields;
}
- dataFields.put(dataField.pos(), dataField);
- annotatedFields.put(dataField.pos(), field);
+ int pos = dataField.pos();
+ if (annotatedFields.containsKey(pos)) {
+ Field f = annotatedFields.get(pos);
+ LOG.warn("Potentially invalid model: existing @DataField '{}' replaced by '{}'", f.getName(), field.getName());
+ }
+ dataFields.put(pos, dataField);
+ annotatedFields.put(pos, field);
+ maxpos = Math.max(maxpos, pos);
}
Link linkField = field.getAnnotation(Link.class);
@@ -136,7 +142,6 @@ public class BindyCsvFactory extends Bin
}
linkFields.add(field);
}
-
}
if (!linkFields.isEmpty()) {
@@ -151,6 +156,10 @@ public class BindyCsvFactory extends Bin
LOG.debug("Total: {}", totalFields);
}
}
+
+ if (annotatedFields.size() < maxpos) {
+ LOG.info("Potentially incomplete model: some csv fields may not be mapped to @DataField members");
+ }
}
public void bind(List<String> tokens, Map<String, Object> model, int line) throws Exception {
@@ -512,7 +521,7 @@ public class BindyCsvFactory extends Bin
}
/**
- * Get parameters defined in @Csvrecord annotation
+ * Get parameters defined in @CsvRecord annotation
*/
private void initCsvRecordParameters() {
if (separator == null) {
Modified: camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java?rev=1463772&r1=1463771&r2=1463772&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java (original)
+++ camel/trunk/components/camel-bindy/src/main/java/org/apache/camel/dataformat/bindy/fixed/BindyFixedLengthDataFormat.java Tue Apr 2 21:56:46 2013
@@ -118,7 +118,7 @@ public class BindyFixedLengthDataFormat
// only use the header factory if the row is the header
if (headerFactory.supportsModel(modelClassNames)) {
if (factory.skipHeader()) {
- LOG.warn("Skipping marshal of header row; 'skipHeader=true'");
+ LOG.info("Skipping marshal of header row; 'skipHeader=true'");
continue;
} else {
result = headerFactory.unbind(model);
@@ -130,7 +130,7 @@ public class BindyFixedLengthDataFormat
// only use the header factory if the row is the header
if (footerFactory.supportsModel(modelClassNames)) {
if (factory.skipFooter()) {
- LOG.warn("Skipping marshal of footer row; 'skipFooter=true'");
+ LOG.info("Skipping marshal of footer row; 'skipFooter=true'");
continue;
} else {
result = footerFactory.unbind(model);
Copied: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvFieldEndingWithSeparatorIssueTest.java (from r1463377, camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCVSFieldEndingWithSeparatorIssueTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvFieldEndingWithSeparatorIssueTest.java?p2=camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvFieldEndingWithSeparatorIssueTest.java&p1=camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCVSFieldEndingWithSeparatorIssueTest.java&r1=1463377&r2=1463772&rev=1463772&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCVSFieldEndingWithSeparatorIssueTest.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvFieldEndingWithSeparatorIssueTest.java Tue Apr 2 21:56:46 2013
@@ -20,8 +20,10 @@ import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.dataformat.bindy.model.csv.MyCsvRecord;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.model.dataformat.BindyType;
+
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Ignore;
import org.junit.Test;
@@ -34,7 +36,7 @@ import org.junit.Test;
* !!! The separator in the beginning of the quoted field is still not handled.
*
*/
-public class BindyCVSFieldEndingWithSeparatorIssueTest extends CamelTestSupport {
+public class BindyCsvFieldEndingWithSeparatorIssueTest extends CamelTestSupport {
@Test
public void testBindy() throws Exception {
Propchange: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/BindyCsvFieldEndingWithSeparatorIssueTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/csv/MyCsvRecord.java (from r1463377, camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/MyCsvRecord.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/csv/MyCsvRecord.java?p2=camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/csv/MyCsvRecord.java&p1=camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/MyCsvRecord.java&r1=1463377&r2=1463772&rev=1463772&view=diff
==============================================================================
--- camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/csv/MyCsvRecord.java (original)
+++ camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/csv/MyCsvRecord.java Tue Apr 2 21:56:46 2013
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.dataformat.bindy.csv;
+package org.apache.camel.dataformat.bindy.model.csv;
import java.io.Serializable;
Propchange: camel/trunk/components/camel-bindy/src/test/java/org/apache/camel/dataformat/bindy/model/csv/MyCsvRecord.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml (from r1463377, camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCSVUnmarshallTest-context.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml?p2=camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml&p1=camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCSVUnmarshallTest-context.xml&r1=1463377&r2=1463772&rev=1463772&view=diff
==============================================================================
(empty)
Propchange: camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml
------------------------------------------------------------------------------
svn:executable = *
Propchange: camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: camel/trunk/components/camel-bindy/src/test/resources/org/apache/camel/dataformat/bindy/csv/BindyCsvUnmarshallTest-context.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml