This is an automated email from the ASF dual-hosted git repository. bschuchardt pushed a commit to branch feature/GEODE-3643 in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-3643 by this push: new 026c326 GEODE-3643: Add function execution on specific member 026c326 is described below commit 026c32604e932659c348a5f1078a972c98ef8ef9 Author: Bruce Schuchardt <bschucha...@pivotal.io> AuthorDate: Thu Feb 8 13:52:43 2018 -0800 GEODE-3643: Add function execution on specific member fixups from review comments --- .../internal/ClusterDistributionManager.java | 5 +++-- .../internal/LonerDistributionManager.java | 20 ++++++++++---------- ...ecuteFunctionOnMemberRequestOperationHandler.java | 6 +++--- ...ecuteFunctionOnRegionRequestOperationHandler.java | 7 +------ ...a => ExecuteFunctionOnMemberIntegrationTest.java} | 2 +- ...a => ExecuteFunctionOnRegionIntegrationTest.java} | 2 +- ...tionOnMemberRequestOperationHandlerJUnitTest.java | 14 +++++++++++--- 7 files changed, 30 insertions(+), 26 deletions(-) diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java index 9c8995b..ba87f52 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/ClusterDistributionManager.java @@ -27,6 +27,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; +import java.util.Objects; import java.util.Set; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ConcurrentHashMap; @@ -1454,11 +1455,11 @@ public class ClusterDistributionManager implements DistributionManager { @Override public DistributedMember getMemberWithName(String name) { for (DistributedMember id : members.values()) { - if (id.getName() != null && id.getName().equals(name)) { + if (Objects.equals(id.getName(), name)) { return id; } } - if (localAddress.getName() != null && localAddress.getName().equals(name)) { + if (Objects.equals(localAddress, name)) { return localAddress; } return null; diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/LonerDistributionManager.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/LonerDistributionManager.java index 2f8c4fc..9d94001 100644 --- a/geode-core/src/main/java/org/apache/geode/distributed/internal/LonerDistributionManager.java +++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/LonerDistributionManager.java @@ -62,8 +62,8 @@ public class LonerDistributionManager implements DistributionManager { public LonerDistributionManager(InternalDistributedSystem system, InternalLogWriter logger) { this.system = system; this.logger = logger; - this.id = generateMemberId(); - this.allIds = Collections.singleton(id); + this.localAddress = generateMemberId(); + this.allIds = Collections.singleton(localAddress); this.viewMembers = new ArrayList<InternalDistributedMember>(allIds); DistributionStats.enableClockStats = this.system.getConfig().getEnableTimeStatistics(); } @@ -83,7 +83,7 @@ public class LonerDistributionManager implements DistributionManager { } } - private final InternalDistributedMember id; + private final InternalDistributedMember localAddress; /* * static { // Make the id a little unique String host; try { host = @@ -112,7 +112,7 @@ public class LonerDistributionManager implements DistributionManager { } public InternalDistributedMember getDistributionManagerId() { - return id; + return localAddress; } public Set getDistributionManagerIds() { @@ -139,12 +139,12 @@ public class LonerDistributionManager implements DistributionManager { @Override public DistributedMember getMemberWithName(String name) { for (DistributedMember id : canonicalIds.values()) { - if (id.getName() != null && id.getName().equals(name)) { + if (Objects.equals(id.getName(), name)) { return id; } } - if (id.getName() != null && id.getName().equals(name)) { - return id; + if (Objects.equals(localAddress.getName(), localAddress)) { + return localAddress; } return null; } @@ -1167,17 +1167,17 @@ public class LonerDistributionManager implements DistributionManager { /** Returns count of members filling the specified role */ public int getRoleCount(Role role) { - return id.getRoles().contains(role) ? 1 : 0; + return localAddress.getRoles().contains(role) ? 1 : 0; } /** Returns true if at least one member is filling the specified role */ public boolean isRolePresent(Role role) { - return id.getRoles().contains(role); + return localAddress.getRoles().contains(role); } /** Returns a set of all roles currently in the distributed system. */ public Set getAllRoles() { - return id.getRoles(); + return localAddress.getRoles(); } private int lonerPort = 0; diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandler.java index 8ec6e00..4519f5a 100644 --- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandler.java +++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandler.java @@ -49,11 +49,9 @@ public class ExecuteFunctionOnMemberRequestOperationHandler implements public Result<FunctionAPI.ExecuteFunctionOnMemberResponse, ClientProtocol.ErrorResponse> process( ProtobufSerializationService serializationService, FunctionAPI.ExecuteFunctionOnMemberRequest request, - MessageExecutionContext messageExecutionContext) - throws InvalidExecutionContextException, ConnectionStateException { + MessageExecutionContext messageExecutionContext) throws InvalidExecutionContextException { final String functionID = request.getFunctionID(); - ProtocolStringList memberNameList = request.getMemberNameList(); final Function<?> function = FunctionService.getFunction(functionID); if (function == null) { @@ -79,6 +77,8 @@ public class ExecuteFunctionOnMemberRequestOperationHandler implements .build()); } + ProtocolStringList memberNameList = request.getMemberNameList(); + Set<DistributedMember> memberIds = new HashSet<>(memberNameList.size()); DistributionManager distributionManager = messageExecutionContext.getCache().getDistributionManager(); diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandler.java b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandler.java index 951ac59..17e9f09 100644 --- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandler.java +++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnRegionRequestOperationHandler.java @@ -18,8 +18,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import org.apache.logging.log4j.Logger; - import org.apache.geode.cache.Region; import org.apache.geode.cache.execute.Execution; import org.apache.geode.cache.execute.Function; @@ -28,7 +26,6 @@ import org.apache.geode.cache.execute.FunctionService; import org.apache.geode.cache.execute.ResultCollector; import org.apache.geode.internal.exception.InvalidExecutionContextException; import org.apache.geode.internal.i18n.LocalizedStrings; -import org.apache.geode.internal.logging.LogService; import org.apache.geode.internal.protocol.operations.ProtobufOperationHandler; import org.apache.geode.internal.protocol.protobuf.v1.BasicTypes; import org.apache.geode.internal.protocol.protobuf.v1.ClientProtocol; @@ -39,7 +36,6 @@ import org.apache.geode.internal.protocol.protobuf.v1.ProtobufSerializationServi import org.apache.geode.internal.protocol.protobuf.v1.Result; import org.apache.geode.internal.protocol.protobuf.v1.Success; import org.apache.geode.internal.protocol.protobuf.v1.serialization.exception.EncodingException; -import org.apache.geode.internal.protocol.protobuf.v1.state.exception.ConnectionStateException; import org.apache.geode.internal.security.SecurityService; import org.apache.geode.security.NotAuthorizedException; @@ -49,8 +45,7 @@ public class ExecuteFunctionOnRegionRequestOperationHandler implements public Result<FunctionAPI.ExecuteFunctionOnRegionResponse, ClientProtocol.ErrorResponse> process( ProtobufSerializationService serializationService, FunctionAPI.ExecuteFunctionOnRegionRequest request, - MessageExecutionContext messageExecutionContext) - throws InvalidExecutionContextException, ConnectionStateException { + MessageExecutionContext messageExecutionContext) throws InvalidExecutionContextException { final String functionID = request.getFunctionID(); final String regionName = request.getRegion(); diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecutFunctionOnMemberIntegrationTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnMemberIntegrationTest.java similarity index 99% rename from geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecutFunctionOnMemberIntegrationTest.java rename to geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnMemberIntegrationTest.java index 3a21735..cfd2107 100644 --- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecutFunctionOnMemberIntegrationTest.java +++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnMemberIntegrationTest.java @@ -62,7 +62,7 @@ import org.apache.geode.security.SecurityManager; import org.apache.geode.test.junit.categories.IntegrationTest; @Category(IntegrationTest.class) -public class ExecutFunctionOnMemberIntegrationTest { +public class ExecuteFunctionOnMemberIntegrationTest { private static final String TEST_REGION = "testRegion"; private static final String TEST_FUNCTION_ID = "testFunction"; private static final String SECURITY_PRINCIPAL = "principle"; diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecutFunctionOnRegionIntegrationTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnRegionIntegrationTest.java similarity index 99% rename from geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecutFunctionOnRegionIntegrationTest.java rename to geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnRegionIntegrationTest.java index 5a6b691..bb87f1a 100644 --- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecutFunctionOnRegionIntegrationTest.java +++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/ExecuteFunctionOnRegionIntegrationTest.java @@ -61,7 +61,7 @@ import org.apache.geode.security.SecurityManager; import org.apache.geode.test.junit.categories.IntegrationTest; @Category(IntegrationTest.class) -public class ExecutFunctionOnRegionIntegrationTest { +public class ExecuteFunctionOnRegionIntegrationTest { private static final String TEST_REGION = "testRegion"; private static final String TEST_FUNCTION_ID = "testFunction"; public static final String SECURITY_PRINCIPAL = "principle"; diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java index 55e7c3e..59016df 100644 --- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java +++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest.java @@ -104,15 +104,23 @@ public class ExecuteFunctionOnMemberRequestOperationHandlerJUnitTest { } @Test - public void noopTest() { + public void failsOnUnknownMember() throws Exception { + final FunctionAPI.ExecuteFunctionOnMemberRequest request = + FunctionAPI.ExecuteFunctionOnMemberRequest.newBuilder().setFunctionID(TEST_FUNCTION_ID) + .addMemberName(NOT_A_MEMBER).build(); + final Result<FunctionAPI.ExecuteFunctionOnMemberResponse, ClientProtocol.ErrorResponse> result = + operationHandler.process(serializationService, request, mockedMessageExecutionContext()); + + assertTrue(result instanceof Failure); + assertEquals(NO_AVAILABLE_SERVER, result.getErrorMessage().getError().getErrorCode()); } @Test - public void failsOnUnknownMember() throws Exception { + public void failsIfNoMemberSpecified() throws Exception { final FunctionAPI.ExecuteFunctionOnMemberRequest request = FunctionAPI.ExecuteFunctionOnMemberRequest.newBuilder().setFunctionID(TEST_FUNCTION_ID) - .addMemberName(NOT_A_MEMBER).build(); + .build(); final Result<FunctionAPI.ExecuteFunctionOnMemberResponse, ClientProtocol.ErrorResponse> result = operationHandler.process(serializationService, request, mockedMessageExecutionContext()); -- To stop receiving notification emails like this one, please contact bschucha...@apache.org.