Updated Branches: refs/heads/master 7b51e4935 -> baeb7a049
[JGroups] Added Javadoc. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/baeb7a04 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/baeb7a04 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/baeb7a04 Branch: refs/heads/master Commit: baeb7a0492280437392d39f2b0fe295cec59c7e6 Parents: 7b51e49 Author: Henryk Konsek <[email protected]> Authored: Thu Dec 26 21:23:03 2013 +0100 Committer: Henryk Konsek <[email protected]> Committed: Thu Dec 26 21:23:03 2013 +0100 ---------------------------------------------------------------------- .../apache/camel/component/jgroups/JGroupsFilters.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/baeb7a04/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsFilters.java ---------------------------------------------------------------------- diff --git a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsFilters.java b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsFilters.java index a73ec25..ca1c8dc 100644 --- a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsFilters.java +++ b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsFilters.java @@ -18,15 +18,25 @@ package org.apache.camel.component.jgroups; import org.apache.camel.Exchange; import org.apache.camel.Predicate; +import org.jgroups.Address; import org.jgroups.View; import static org.apache.camel.component.jgroups.JGroupsEndpoint.HEADER_JGROUPS_CHANNEL_ADDRESS; public final class JGroupsFilters { + private static final int COORDINATOR_NODE_INDEX = 0; + private JGroupsFilters() { } + /** + * Creates predicate rejecting messages that are instances of {@link org.jgroups.View}, but have not been received + * by the coordinator JGroups node. This filter is useful for keeping only view messages indicating that receiving + * endpoint is a master node. + * + * @return predicate filtering out non-coordinator view messages. + */ public static Predicate dropNonCoordinatorViews() { return new Predicate() { @Override @@ -34,7 +44,8 @@ public final class JGroupsFilters { Object body = exchange.getIn().getBody(); if (body instanceof View) { View view = (View) body; - return exchange.getIn().getHeader(HEADER_JGROUPS_CHANNEL_ADDRESS).equals(view.getMembers().get(0)); + Address channelAddress = exchange.getIn().getHeader(HEADER_JGROUPS_CHANNEL_ADDRESS, Address.class); + return channelAddress.equals(view.getMembers().get(COORDINATOR_NODE_INDEX)); } return true; }
