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/09/09 10:41:43 UTC

svn commit: r1382425 - in /camel/branches/camel-2.10.x: ./ components/camel-hbase/src/main/java/org/apache/camel/component/hbase/ components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/ components/camel-hbase/src/main/java/org/ap...

Author: davsclaus
Date: Sun Sep  9 08:41:43 2012
New Revision: 1382425

URL: http://svn.apache.org/viewvc?rev=1382425&view=rev
Log:
CAMEL-5580: camel-hbase - The RowModel Data does not include the correct cell value type and some minor changes. Thanks to Claudio Corsi for the patch.

Modified:
    camel/branches/camel-2.10.x/   (props changed)
    camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java
    camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java
    camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/HeaderMappingStrategy.java
    camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java

Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
  Merged /camel/trunk:r1382423

Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java?rev=1382425&r1=1382424&r2=1382425&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java (original)
+++ camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java Sun Sep  9 08:41:43 2012
@@ -78,8 +78,8 @@ public class HBaseComponent extends Defa
             cellModel.setFamily(String.valueOf(parameters.remove(HbaseAttribute.HBASE_FAMILY.asOption(i))));
             cellModel.setQualifier(String.valueOf(parameters.remove(HbaseAttribute.HBASE_QUALIFIER.asOption(i))));
             cellModel.setValue(String.valueOf(parameters.remove(HbaseAttribute.HBASE_VALUE.asOption(i))));
-            if (parameters.containsKey(HbaseAttribute.HBASE_VALUE_TYPE.asOption())) {
-                String valueType = String.valueOf(parameters.remove(HbaseAttribute.HBASE_VALUE_TYPE.asOption()));
+            if (parameters.containsKey(HbaseAttribute.HBASE_VALUE_TYPE.asOption(i))) {
+                String valueType = String.valueOf(parameters.remove(HbaseAttribute.HBASE_VALUE_TYPE.asOption(i)));
                 if (valueType != null && !valueType.isEmpty()) {
                     rowModel.setRowType(getCamelContext().getClassResolver().resolveClass(valueType));
                 }

Modified: camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java?rev=1382425&r1=1382424&r2=1382425&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java (original)
+++ camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseConsumer.java Sun Sep  9 08:41:43 2012
@@ -93,6 +93,10 @@ public class HBaseConsumer extends Sched
 
             ResultScanner scanner = table.getScanner(scan);
             int exchangeCount = 0;
+            // The next three statements are used just to get a reference to the BodyCellMappingStrategy instance.
+            Exchange exchange = endpoint.createExchange();
+            exchange.getIn().setHeader(CellMappingStrategyFactory.STRATEGY, CellMappingStrategyFactory.BODY);
+            CellMappingStrategy mappingStrategy = endpoint.getCellMappingStrategyFactory().getStrategy(exchange.getIn());
             for (Result result = scanner.next(); (exchangeCount < maxMessagesPerPoll || maxMessagesPerPoll <= 0) && result != null; result = scanner.next()) {
                 HBaseData data = new HBaseData();
                 HBaseRow resultRow = new HBaseRow();
@@ -112,9 +116,9 @@ public class HBaseConsumer extends Sched
                         resultRow.getCells().add(resultCell);
                     }
                     data.getRows().add(resultRow);
-                    Exchange exchange = endpoint.createExchange();
+                    exchange = endpoint.createExchange();
+                    // Probably overkill but kept it here for consistency.
                     exchange.getIn().setHeader(CellMappingStrategyFactory.STRATEGY, CellMappingStrategyFactory.BODY);
-                    CellMappingStrategy mappingStrategy = endpoint.getCellMappingStrategyFactory().getStrategy(exchange.getIn());
                     mappingStrategy.applyScanResults(exchange.getIn(), data);
                     //Make sure that there is a header containing the marked row ids, so that they can be deleted.
                     exchange.getIn().setHeader(HbaseAttribute.HBASE_MARKED_ROW_ID.asHeader(), result.getRow());

Modified: camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/HeaderMappingStrategy.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/HeaderMappingStrategy.java?rev=1382425&r1=1382424&r2=1382425&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/HeaderMappingStrategy.java (original)
+++ camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/mapping/HeaderMappingStrategy.java Sun Sep  9 08:41:43 2012
@@ -67,7 +67,8 @@ public class HeaderMappingStrategy imple
             hCell.setQualifier(columnName);
             hCell.setFamily(columnFamily);
             hCell.setValue(value);
-            hCell.setValueType(valueClass);
+            // String is the default value type
+            hCell.setValueType((valueClass != null) ? valueClass : String.class);
             hRow.getCells().add(hCell);
         }
         return hRow;

Modified: camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java?rev=1382425&r1=1382424&r2=1382425&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java (original)
+++ camel/branches/camel-2.10.x/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/model/HBaseCell.java Sun Sep  9 08:41:43 2012
@@ -31,6 +31,10 @@ public class HBaseCell {
     //The value type can be optionally specified for Gets and Scan, to specify how the byte[] read will be converted.
     private Class<?> valueType = String.class;
 
+    public String toString() {
+        return "HBaseCell=[family=" + family + ", qualifier=" + qualifier + ", value=" + value + ", valueType=" + valueType.getName();
+    }
+
     @XmlAttribute(name = "family")
     public String getFamily() {
         return family;
@@ -63,6 +67,9 @@ public class HBaseCell {
     }
 
     public void setValueType(Class<?> valueType) {
+        if (valueType == null) {
+            throw new IllegalArgumentException("Value type can not be null");
+        }
         this.valueType = valueType;
     }