Repository: camel Updated Branches: refs/heads/camel-2.16.x e94334ae7 -> 4c794f8b1 refs/heads/master 0fb9d7080 -> 7d5436d0d
Fix Filters Bugs on hbase-098.xx Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/cb9bd378 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/cb9bd378 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/cb9bd378 Branch: refs/heads/camel-2.16.x Commit: cb9bd3785d74a355297e2f2f40386681b7ce057e Parents: e94334a Author: Moizes Junior <moizes.jun...@hotmail.com> Authored: Mon Feb 1 11:25:41 2016 -0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Feb 11 09:07:33 2016 +0100 ---------------------------------------------------------------------- components/camel-hbase/pom.xml | 2 +- .../apache/camel/component/hbase/HBaseHelper.java | 2 +- .../camel/component/hbase/HBaseProducer.java | 18 +++++------------- .../component/hbase/filters/ModelAwareFilter.java | 5 +++++ .../hbase/filters/ModelAwareFilterList.java | 5 +++++ .../hbase/filters/ModelAwareSkipFilter.java | 6 ++++++ .../hbase/filters/ModelAwareWhileMatchFilter.java | 6 ++++++ 7 files changed, 29 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/pom.xml ---------------------------------------------------------------------- diff --git a/components/camel-hbase/pom.xml b/components/camel-hbase/pom.xml index 11f41c2..f4d1249 100644 --- a/components/camel-hbase/pom.xml +++ b/components/camel-hbase/pom.xml @@ -21,7 +21,7 @@ <parent> <groupId>org.apache.camel</groupId> <artifactId>components</artifactId> - <version>2.16.3-SNAPSHOT</version> + <version>2.16.2</version> </parent> <artifactId>camel-hbase</artifactId> http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java ---------------------------------------------------------------------- diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java index 1d1458c..1ceefa4 100644 --- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java +++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseHelper.java @@ -42,7 +42,7 @@ public final class HBaseHelper { public static byte[] getHBaseFieldAsBytes(String n) { byte[] name = null; name = NAMES.get(n); - if (name == null) { + if (name == null && n != null) { name = n.getBytes(); NAMES.put(n, name); } http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java index 4a921aa..de4cd91 100644 --- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java +++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseProducer.java @@ -207,20 +207,12 @@ public class HBaseProducer extends DefaultProducer implements ServicePoolAware { } else { scan = new Scan(); } - - // need to clone the filters as they are not thread safe to use + if (filters != null && !filters.isEmpty()) { - List<Filter> clonedFilters = new LinkedList<Filter>(); - for (Filter filter : filters) { - if (ModelAwareFilter.class.isAssignableFrom(filter.getClass())) { - Object clone = endpoint.getCamelContext().getInjector().newInstance(filter.getClass()); - if (clone instanceof ModelAwareFilter) { - ((ModelAwareFilter<?>) clone).apply(endpoint.getCamelContext(), model); - clonedFilters.add((Filter) clone); - } - } - } - scan.setFilter(new FilterList(FilterList.Operator.MUST_PASS_ALL, clonedFilters)); + for (int i=0;i<filters.size();i++){ + ((ModelAwareFilter<?>) filters.get(i)).apply(endpoint.getCamelContext(), model); + scan.setFilter(new FilterList(FilterList.Operator.MUST_PASS_ALL, ((ModelAwareFilter<?>) filters.get(i)).getFilteredList())); + } } Set<HBaseCell> cellModels = model.getCells(); http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java ---------------------------------------------------------------------- diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java index a45be79..327c102 100644 --- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java +++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilter.java @@ -16,9 +16,12 @@ */ package org.apache.camel.component.hbase.filters; +import java.util.List; + import org.apache.camel.CamelContext; import org.apache.camel.component.hbase.model.HBaseRow; import org.apache.hadoop.hbase.filter.Filter; +import org.apache.hadoop.hbase.filter.FilterList; public interface ModelAwareFilter<T extends Filter> { @@ -26,4 +29,6 @@ public interface ModelAwareFilter<T extends Filter> { * Applies the message to {@link Filter} to context. */ void apply(CamelContext context, HBaseRow rowModel); + + FilterList getFilteredList(); } http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java ---------------------------------------------------------------------- diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java index 636c8bf..bf2da0e 100644 --- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java +++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareFilterList.java @@ -89,4 +89,9 @@ public class ModelAwareFilterList implements ModelAwareFilter<FilterList> { public void addFilter(Filter filter) { getFilters().add(filter); } + + @Override + public FilterList getFilteredList() { + return fl; + } } http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java ---------------------------------------------------------------------- diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java index 574a680..161be6c 100644 --- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java +++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareSkipFilter.java @@ -19,6 +19,7 @@ package org.apache.camel.component.hbase.filters; import org.apache.camel.CamelContext; import org.apache.camel.component.hbase.model.HBaseRow; import org.apache.hadoop.hbase.filter.Filter; +import org.apache.hadoop.hbase.filter.FilterList; import org.apache.hadoop.hbase.filter.SkipFilter; public class ModelAwareSkipFilter extends SkipFilter implements ModelAwareFilter<SkipFilter> { @@ -44,4 +45,9 @@ public class ModelAwareSkipFilter extends SkipFilter implements ModelAwareFilter public static ModelAwareSkipFilter wrap(SkipFilter filter) { return new ModelAwareSkipFilter(filter.getFilter()); } + + @Override + public FilterList getFilteredList() { + return null; + } } http://git-wip-us.apache.org/repos/asf/camel/blob/cb9bd378/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java ---------------------------------------------------------------------- diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java index 5fd401d..c16a470 100644 --- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java +++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/filters/ModelAwareWhileMatchFilter.java @@ -19,6 +19,7 @@ package org.apache.camel.component.hbase.filters; import org.apache.camel.CamelContext; import org.apache.camel.component.hbase.model.HBaseRow; import org.apache.hadoop.hbase.filter.Filter; +import org.apache.hadoop.hbase.filter.FilterList; import org.apache.hadoop.hbase.filter.WhileMatchFilter; public class ModelAwareWhileMatchFilter extends WhileMatchFilter implements ModelAwareFilter<WhileMatchFilter> { @@ -44,4 +45,9 @@ public class ModelAwareWhileMatchFilter extends WhileMatchFilter implements Mode return new ModelAwareWhileMatchFilter(filter.getFilter()); } + @Override + public FilterList getFilteredList() { + return null; + } + }