You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by nr...@apache.org on 2017/12/08 17:59:43 UTC
[geode] branch feature/GEODE-3781 updated: GEODE-4064: Refactor
jdbc cli functions
This is an automated email from the ASF dual-hosted git repository.
nreich pushed a commit to branch feature/GEODE-3781
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-3781 by this push:
new 39cf56d GEODE-4064: Refactor jdbc cli functions
39cf56d is described below
commit 39cf56d23321cc12c5308cf821c88ac44a150b22
Author: Nick Reich <nr...@pivotal.io>
AuthorDate: Fri Dec 8 09:58:05 2017 -0800
GEODE-4064: Refactor jdbc cli functions
---
.../jdbc/internal/ConnectionConfiguration.java | 1 -
.../jdbc/internal/cli/AlterConnectionFunction.java | 71 +++++++---------------
.../jdbc/internal/cli/CreateConnectionCommand.java | 2 +-
.../internal/cli/CreateConnectionFunction.java | 64 ++++---------------
.../internal/cli/DescribeConnectionCommand.java | 2 +-
.../internal/cli/DescribeConnectionFunction.java | 44 ++------------
.../internal/cli/DestroyConnectionCommand.java | 2 -
.../internal/cli/DestroyConnectionFunction.java | 60 +++++-------------
.../jdbc/internal/cli/ExceptionHandler.java | 6 --
.../cli/FunctionContextArgumentProvider.java | 4 --
...onnectionFunction.java => JdbcCliFunction.java} | 39 ++++++------
.../jdbc/internal/cli/ListConnectionFunction.java | 46 ++------------
.../connectors/jdbc/JdbcLoaderIntegrationTest.java | 1 -
.../jdbc/internal/JdbcConnectorServiceTest.java | 1 -
.../cli/AlterConnectionCommandIntegrationTest.java | 3 -
.../internal/cli/AlterConnectionFunctionTest.java | 1 -
.../internal/cli/CreateConnectionFunctionTest.java | 14 ++---
.../cli/DestroyConnectionFunctionTest.java | 16 ++---
.../jdbc/internal/cli/JdbcCliFunctionTest.java | 51 ++++++++++++++++
.../internal/cli/ListConnectionFunctionTest.java | 24 ++++----
20 files changed, 153 insertions(+), 299 deletions(-)
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfiguration.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfiguration.java
index 0254817..51e2629 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfiguration.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/ConnectionConfiguration.java
@@ -16,7 +16,6 @@ package org.apache.geode.connectors.jdbc.internal;
import java.io.Serializable;
import java.util.Collections;
-import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java
index c6316a2..c443dce 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunction.java
@@ -16,76 +16,47 @@ package org.apache.geode.connectors.jdbc.internal.cli;
import java.util.Map;
-import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfigNotFoundException;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
-import org.apache.geode.internal.InternalEntity;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
-public class AlterConnectionFunction implements Function<ConnectionConfiguration>, InternalEntity {
-
- private static final String ID = AlterConnectionFunction.class.getName();
-
- private final FunctionContextArgumentProvider argumentProvider;
- private final ExceptionHandler exceptionHandler;
+public class AlterConnectionFunction
+ extends JdbcCliFunction<ConnectionConfiguration, CliFunctionResult> {
AlterConnectionFunction() {
- this(new FunctionContextArgumentProvider(), new ExceptionHandler());
- }
-
- private AlterConnectionFunction(FunctionContextArgumentProvider argumentProvider,
- ExceptionHandler exceptionHandler) {
- this.argumentProvider = argumentProvider;
- this.exceptionHandler = exceptionHandler;
- }
-
- @Override
- public boolean isHA() {
- return false;
+ super(new FunctionContextArgumentProvider(), new ExceptionHandler());
}
@Override
- public String getId() {
- return ID;
- }
-
- @Override
- public void execute(FunctionContext<ConnectionConfiguration> context) {
- try {
- // input
- ConnectionConfiguration connectionConfig = context.getArguments();
- InternalJdbcConnectorService service = argumentProvider.getJdbcConnectorService(context);
- ConnectionConfiguration existingConfig =
- service.getConnectionConfig(connectionConfig.getName());
- if (existingConfig == null) {
- throw new ConnectionConfigNotFoundException(
- "ConnectionConfiguration " + connectionConfig.getName() + " was not found");
- }
-
- // action
- ConnectionConfiguration alteredConfig =
- alterConnectionConfig(connectionConfig, existingConfig);
- service.replaceConnectionConfig(alteredConfig);
+ CliFunctionResult getFunctionResult(InternalJdbcConnectorService service,
+ FunctionContext<ConnectionConfiguration> context) throws Exception {
+ ConnectionConfiguration connectionConfig = context.getArguments();
+ ConnectionConfiguration existingConfig =
+ service.getConnectionConfig(connectionConfig.getName());
+ if (existingConfig == null) {
+ throw new ConnectionConfigNotFoundException(
+ "ConnectionConfiguration " + connectionConfig.getName() + " was not found");
+ }
- // output
- String member = argumentProvider.getMember(context);
- XmlEntity xmlEntity = argumentProvider.createXmlEntity(context);
- CliFunctionResult result = createSuccessResult(connectionConfig.getName(), member, xmlEntity);
- context.getResultSender().lastResult(result);
+ // action
+ ConnectionConfiguration alteredConfig = alterConnectionConfig(connectionConfig, existingConfig);
+ service.replaceConnectionConfig(alteredConfig);
- } catch (Exception e) {
- exceptionHandler.handleException(context, e);
- }
+ // output
+ String member = getMember(context);
+ XmlEntity xmlEntity = createXmlEntity(context);
+ CliFunctionResult result = createSuccessResult(connectionConfig.getName(), member, xmlEntity);
+ return result;
}
/**
* Creates the named connection configuration
*/
ConnectionConfiguration alterConnectionConfig(ConnectionConfiguration connectionConfig,
- ConnectionConfiguration existingConfig) throws ConnectionConfigNotFoundException {
+ ConnectionConfiguration existingConfig) {
String url = getValue(connectionConfig.getUrl(), existingConfig.getUrl());
String user = getValue(connectionConfig.getUser(), existingConfig.getUser());
String password = getValue(connectionConfig.getPassword(), existingConfig.getPassword());
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionCommand.java
index 93664ff..6c03838 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionCommand.java
@@ -42,7 +42,7 @@ public class CreateConnectionCommand implements GfshCommand {
static final String CREATE_CONNECTION = "create jdbc-connection";
static final String CREATE_CONNECTION__HELP =
- "Create a connection for communicating with a database through JDBC.";
+ "Create a connection for communicating with a database through jdbc.";
static final String CREATE_CONNECTION__NAME = "name";
static final String CREATE_CONNECTION__NAME__HELP = "Name of the connection to be created.";
static final String CREATE_CONNECTION__URL = "url";
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java
index 503c237..7822d29 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunction.java
@@ -14,70 +14,28 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
-import static org.apache.geode.connectors.jdbc.internal.cli.FunctionContextArgumentProvider.getMemberFromContext;
-
-import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
-import org.apache.geode.cache.execute.ResultSender;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfigExistsException;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
-import org.apache.geode.connectors.jdbc.internal.xml.ElementType;
-import org.apache.geode.connectors.jdbc.internal.xml.JdbcConnectorServiceXmlGenerator;
-import org.apache.geode.connectors.jdbc.internal.xml.JdbcConnectorServiceXmlParser;
-import org.apache.geode.internal.InternalEntity;
-import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.internal.cache.xmlcache.CacheXml;
-import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
-public class CreateConnectionFunction implements Function<ConnectionConfiguration>, InternalEntity {
-
- private static final String ID = CreateConnectionFunction.class.getName();
-
- private final FunctionContextArgumentProvider argumentProvider;
- private final ExceptionHandler exceptionHandler;
-
- public CreateConnectionFunction() {
- this(new FunctionContextArgumentProvider(), new ExceptionHandler());
- }
-
- private CreateConnectionFunction(FunctionContextArgumentProvider argumentProvider,
- ExceptionHandler exceptionHandler) {
- this.argumentProvider = argumentProvider;
- this.exceptionHandler = exceptionHandler;
- }
-
- @Override
- public boolean isHA() {
- return false;
- }
+public class CreateConnectionFunction
+ extends JdbcCliFunction<ConnectionConfiguration, CliFunctionResult> {
- @Override
- public String getId() {
- return ID;
+ CreateConnectionFunction() {
+ super(new FunctionContextArgumentProvider(), new ExceptionHandler());
}
@Override
- public void execute(FunctionContext<ConnectionConfiguration> context) {
- try {
- // input
- ConnectionConfiguration connectionConfig = context.getArguments();
- InternalJdbcConnectorService service = argumentProvider.getJdbcConnectorService(context);
-
- // action
- createConnectionConfig(service, connectionConfig);
-
- // output
- String member = argumentProvider.getMember(context);
- XmlEntity xmlEntity = argumentProvider.createXmlEntity(context);
- CliFunctionResult result = createSuccessResult(connectionConfig.getName(), member, xmlEntity);
- context.getResultSender().lastResult(result);
-
- } catch (Exception e) {
- exceptionHandler.handleException(context, e);
- }
+ CliFunctionResult getFunctionResult(InternalJdbcConnectorService service,
+ FunctionContext<ConnectionConfiguration> context) throws Exception {
+ ConnectionConfiguration connectionConfig = context.getArguments();
+ createConnectionConfig(service, connectionConfig);
+ String member = getMember(context);
+ XmlEntity xmlEntity = createXmlEntity(context);
+ return createSuccessResult(connectionConfig.getName(), member, xmlEntity);
}
/**
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionCommand.java
index 48ba3d4..2d7cb65 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionCommand.java
@@ -40,7 +40,7 @@ import org.apache.geode.security.ResourcePermission;
public class DescribeConnectionCommand implements GfshCommand {
static final String DESCRIBE_CONNECTION = "describe jdbc-connection";
- static final String DESCRIBE_CONNECTION__HELP = "Describe/Remove the specified jdbc connection.";
+ static final String DESCRIBE_CONNECTION__HELP = "Describe the specified jdbc connection.";
static final String DESCRIBE_CONNECTION__NAME = "name";
static final String DESCRIBE_CONNECTION__NAME__HELP =
"Name of the jdbc connection to be described.";
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
index 584e4ff..5a663a0 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
@@ -14,53 +14,19 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
-import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
-import org.apache.geode.internal.InternalEntity;
-public class DescribeConnectionFunction implements Function<String>, InternalEntity {
-
- private static final String ID = DescribeConnectionFunction.class.getName();
-
- private final FunctionContextArgumentProvider argumentProvider;
- private final ExceptionHandler exceptionHandler;
+public class DescribeConnectionFunction extends JdbcCliFunction<String, ConnectionConfiguration> {
DescribeConnectionFunction() {
- this(new FunctionContextArgumentProvider(), new ExceptionHandler());
- }
-
- private DescribeConnectionFunction(FunctionContextArgumentProvider jdbcCommandFunctionContext,
- ExceptionHandler exceptionHandler) {
- this.argumentProvider = jdbcCommandFunctionContext;
- this.exceptionHandler = exceptionHandler;
- }
-
- @Override
- public boolean isHA() {
- return false;
- }
-
- @Override
- public String getId() {
- return ID;
+ super(new FunctionContextArgumentProvider(), new ExceptionHandler());
}
@Override
- public void execute(FunctionContext<String> context) {
- try {
- // input
- InternalJdbcConnectorService service = argumentProvider.getJdbcConnectorService(context);
- String connectionName = context.getArguments();
-
- // action
- ConnectionConfiguration config = service.getConnectionConfig(connectionName);
-
- // output
- context.getResultSender().lastResult(config);
- } catch (Exception e) {
- exceptionHandler.handleException(context, e);
- }
+ ConnectionConfiguration getFunctionResult(InternalJdbcConnectorService service,
+ FunctionContext<String> context) {
+ return service.getConnectionConfig(context.getArguments());
}
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionCommand.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionCommand.java
index 66ce393..d06c31f 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionCommand.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionCommand.java
@@ -16,13 +16,11 @@ package org.apache.geode.connectors.jdbc.internal.cli;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicReference;
import org.springframework.shell.core.annotation.CliCommand;
import org.springframework.shell.core.annotation.CliOption;
import org.apache.geode.cache.execute.ResultCollector;
-import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.management.cli.CliMetaData;
import org.apache.geode.management.cli.Result;
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java
index 88b673a..b29e78f 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunction.java
@@ -14,59 +14,27 @@
*/
package org.apache.geode.connectors.jdbc.internal.cli;
-import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
-import org.apache.geode.internal.InternalEntity;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
-public class DestroyConnectionFunction implements Function<String>, InternalEntity {
+public class DestroyConnectionFunction extends JdbcCliFunction<String, CliFunctionResult> {
- private static final String ID = DestroyConnectionFunction.class.getName();
-
- private final FunctionContextArgumentProvider argumentProvider;
- private final ExceptionHandler exceptionHandler;
-
- public DestroyConnectionFunction() {
- this(new FunctionContextArgumentProvider(), new ExceptionHandler());
- }
-
- private DestroyConnectionFunction(FunctionContextArgumentProvider jdbcCommandFunctionContext,
- ExceptionHandler exceptionHandler) {
- this.argumentProvider = jdbcCommandFunctionContext;
- this.exceptionHandler = exceptionHandler;
- }
-
- @Override
- public boolean isHA() {
- return false;
+ DestroyConnectionFunction() {
+ super(new FunctionContextArgumentProvider(), new ExceptionHandler());
}
@Override
- public String getId() {
- return ID;
- }
-
- @Override
- public void execute(FunctionContext<String> context) {
- try {
- // input
- InternalJdbcConnectorService service = argumentProvider.getJdbcConnectorService(context);
- String connectionName = context.getArguments();
-
- // action
- boolean success = destroyConnectionConfig(service, connectionName);
-
- // output
- String member = argumentProvider.getMember(context);
- CliFunctionResult result = createResult(success, context, member, connectionName);
- context.getResultSender().lastResult(result);
-
- } catch (Exception e) {
- exceptionHandler.handleException(context, e);
- }
+ CliFunctionResult getFunctionResult(InternalJdbcConnectorService service,
+ FunctionContext<String> context) {
+ String connectionName = context.getArguments();
+ boolean success = destroyConnectionConfig(service, connectionName);
+
+ // output
+ String member = getMember(context);
+ return createResult(success, context, member, connectionName);
}
/**
@@ -83,11 +51,11 @@ public class DestroyConnectionFunction implements Function<String>, InternalEnti
return false;
}
- private CliFunctionResult createResult(boolean success, FunctionContext<?> context, String member,
- String connectionName) {
+ private CliFunctionResult createResult(boolean success, FunctionContext<String> context,
+ String member, String connectionName) {
CliFunctionResult result;
if (success) {
- XmlEntity xmlEntity = argumentProvider.createXmlEntity(context);
+ XmlEntity xmlEntity = createXmlEntity(context);
result = createSuccessResult(member, connectionName, xmlEntity);
} else {
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ExceptionHandler.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ExceptionHandler.java
index 3291fba..0909d7a 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ExceptionHandler.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ExceptionHandler.java
@@ -20,8 +20,6 @@ import org.apache.logging.log4j.Logger;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.execute.FunctionContext;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.internal.cache.InternalCache;
import org.apache.geode.internal.logging.LogService;
import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
@@ -43,11 +41,7 @@ class ExceptionHandler implements Serializable {
if (exception != null && logger.isDebugEnabled()) {
logger.debug(exception.getMessage(), exception);
}
- // if (exceptionMsg != null) {
return new CliFunctionResult(memberNameOrId, false, exceptionMsg);
- // }
- //
- // return new CliFunctionResult(memberNameOrId);
}
private String getMember(final Cache cache) {
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/FunctionContextArgumentProvider.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/FunctionContextArgumentProvider.java
index 92ed00f..062f854 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/FunctionContextArgumentProvider.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/FunctionContextArgumentProvider.java
@@ -23,11 +23,7 @@ import java.io.Serializable;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
-import org.apache.geode.connectors.jdbc.internal.xml.ElementType;
-import org.apache.geode.connectors.jdbc.internal.xml.JdbcConnectorServiceXmlGenerator;
-import org.apache.geode.connectors.jdbc.internal.xml.JdbcConnectorServiceXmlParser;
import org.apache.geode.internal.cache.InternalCache;
-import org.apache.geode.internal.cache.xmlcache.CacheXml;
import org.apache.geode.management.internal.cli.CliUtil;
import org.apache.geode.management.internal.configuration.domain.XmlEntity;
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java
similarity index 66%
copy from geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
copy to geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java
index 584e4ff..23418e9 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/DescribeConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunction.java
@@ -16,24 +16,18 @@ package org.apache.geode.connectors.jdbc.internal.cli;
import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
-import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
import org.apache.geode.internal.InternalEntity;
+import org.apache.geode.management.internal.configuration.domain.XmlEntity;
-public class DescribeConnectionFunction implements Function<String>, InternalEntity {
-
- private static final String ID = DescribeConnectionFunction.class.getName();
+public abstract class JdbcCliFunction<T1, T2> implements Function<T1>, InternalEntity {
private final FunctionContextArgumentProvider argumentProvider;
private final ExceptionHandler exceptionHandler;
- DescribeConnectionFunction() {
- this(new FunctionContextArgumentProvider(), new ExceptionHandler());
- }
-
- private DescribeConnectionFunction(FunctionContextArgumentProvider jdbcCommandFunctionContext,
+ JdbcCliFunction(FunctionContextArgumentProvider argumentProvider,
ExceptionHandler exceptionHandler) {
- this.argumentProvider = jdbcCommandFunctionContext;
+ this.argumentProvider = argumentProvider;
this.exceptionHandler = exceptionHandler;
}
@@ -44,23 +38,28 @@ public class DescribeConnectionFunction implements Function<String>, InternalEnt
@Override
public String getId() {
- return ID;
+ return this.getClass().getName();
}
@Override
- public void execute(FunctionContext<String> context) {
+ public void execute(FunctionContext<T1> context) {
try {
- // input
InternalJdbcConnectorService service = argumentProvider.getJdbcConnectorService(context);
- String connectionName = context.getArguments();
-
- // action
- ConnectionConfiguration config = service.getConnectionConfig(connectionName);
-
- // output
- context.getResultSender().lastResult(config);
+ T2 result = getFunctionResult(service, context);
+ context.getResultSender().lastResult(result);
} catch (Exception e) {
exceptionHandler.handleException(context, e);
}
}
+
+ String getMember(FunctionContext<T1> context) {
+ return argumentProvider.getMember(context);
+ }
+
+ XmlEntity createXmlEntity(FunctionContext<T1> context) {
+ return argumentProvider.createXmlEntity(context);
+ }
+
+ abstract T2 getFunctionResult(InternalJdbcConnectorService service, FunctionContext<T1> context)
+ throws Exception;
}
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java
index cd14ab9..54f058e 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunction.java
@@ -16,54 +16,20 @@ package org.apache.geode.connectors.jdbc.internal.cli;
import java.util.Set;
-import org.apache.geode.cache.execute.Function;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
-import org.apache.geode.internal.InternalEntity;
-public class ListConnectionFunction implements Function<Void>, InternalEntity {
+public class ListConnectionFunction extends JdbcCliFunction<Void, ConnectionConfiguration[]> {
- private static final String ID = ListConnectionFunction.class.getName();
-
- private final FunctionContextArgumentProvider argumentProvider;
- private final ExceptionHandler exceptionHandler;
-
- public ListConnectionFunction() {
- this(new FunctionContextArgumentProvider(), new ExceptionHandler());
- }
-
- private ListConnectionFunction(FunctionContextArgumentProvider jdbcCommandFunctionContext,
- ExceptionHandler exceptionHandler) {
- this.argumentProvider = jdbcCommandFunctionContext;
- this.exceptionHandler = exceptionHandler;
- }
-
- @Override
- public boolean isHA() {
- return false;
+ ListConnectionFunction() {
+ super(new FunctionContextArgumentProvider(), new ExceptionHandler());
}
@Override
- public String getId() {
- return ID;
- }
-
- @Override
- public void execute(FunctionContext<Void> context) {
- try {
- // input
- InternalJdbcConnectorService service = argumentProvider.getJdbcConnectorService(context);
-
- // action
- ConnectionConfiguration[] connectionConfigs = getConnectionConfigAsArray(service);
-
- // output
- context.getResultSender().lastResult(connectionConfigs);
-
- } catch (Exception e) {
- exceptionHandler.handleException(context, e);
- }
+ ConnectionConfiguration[] getFunctionResult(InternalJdbcConnectorService service,
+ FunctionContext<Void> context) {
+ return getConnectionConfigAsArray(service);
}
ConnectionConfiguration[] getConnectionConfigAsArray(InternalJdbcConnectorService service) {
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcLoaderIntegrationTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcLoaderIntegrationTest.java
index 44777bb..0208eac 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcLoaderIntegrationTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JdbcLoaderIntegrationTest.java
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.sql.Connection;
import java.sql.DriverManager;
-import java.sql.SQLException;
import java.sql.Statement;
import org.junit.After;
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java
index 85f719f..2dff503 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/JdbcConnectorServiceTest.java
@@ -16,7 +16,6 @@ package org.apache.geode.connectors.jdbc.internal;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.assertj.core.api.Assertions.entry;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionCommandIntegrationTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionCommandIntegrationTest.java
index bc00618..def0cfd 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionCommandIntegrationTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionCommandIntegrationTest.java
@@ -17,9 +17,6 @@ package org.apache.geode.connectors.jdbc.internal.cli;
import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
import static org.assertj.core.api.Assertions.assertThat;
-import java.util.HashMap;
-import java.util.Map;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunctionTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunctionTest.java
index 4b4aa06..7ed497b 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunctionTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/AlterConnectionFunctionTest.java
@@ -37,7 +37,6 @@ import org.mockito.ArgumentCaptor;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.cache.execute.ResultSender;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfigBuilder;
-import org.apache.geode.connectors.jdbc.internal.ConnectionConfigExistsException;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfigNotFoundException;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunctionTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunctionTest.java
index 228d58b..48a3072 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunctionTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateConnectionFunctionTest.java
@@ -16,7 +16,6 @@ package org.apache.geode.connectors.jdbc.internal.cli;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.assertj.core.api.Assertions.entry;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
@@ -25,8 +24,6 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
import org.apache.commons.lang.SerializationUtils;
import org.junit.Before;
@@ -53,19 +50,18 @@ public class CreateConnectionFunctionTest {
private ConnectionConfiguration connectionConfig;
private FunctionContext<ConnectionConfiguration> context;
- private DistributedMember distributedMember;
private ResultSender<Object> resultSender;
private InternalJdbcConnectorService service;
private CreateConnectionFunction function;
@Before
- public void setUp() throws Exception {
+ public void setUp() {
context = mock(FunctionContext.class);
resultSender = mock(ResultSender.class);
InternalCache cache = mock(InternalCache.class);
DistributedSystem system = mock(DistributedSystem.class);
- distributedMember = mock(DistributedMember.class);
+ DistributedMember distributedMember = mock(DistributedMember.class);
service = mock(InternalJdbcConnectorService.class);
connectionConfig = new ConnectionConfigBuilder().withName(CONNECTION_NAME).build();
@@ -81,17 +77,17 @@ public class CreateConnectionFunctionTest {
}
@Test
- public void isHAReturnsFalse() throws Exception {
+ public void isHAReturnsFalse() {
assertThat(function.isHA()).isFalse();
}
@Test
- public void getIdReturnsNameOfClass() throws Exception {
+ public void getIdReturnsNameOfClass() {
assertThat(function.getId()).isEqualTo(function.getClass().getName());
}
@Test
- public void serializes() throws Exception {
+ public void serializes() {
Serializable original = function;
Object copy = SerializationUtils.clone(original);
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunctionTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunctionTest.java
index 86b8212..4f5f14c 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunctionTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/DestroyConnectionFunctionTest.java
@@ -52,7 +52,7 @@ public class DestroyConnectionFunctionTest {
private InternalJdbcConnectorService service;
@Before
- public void setUp() throws Exception {
+ public void setUp() {
InternalCache cache = mock(InternalCache.class);
context = mock(FunctionContext.class);
DistributedMember member = mock(DistributedMember.class);
@@ -73,17 +73,17 @@ public class DestroyConnectionFunctionTest {
}
@Test
- public void isHAReturnsFalse() throws Exception {
+ public void isHAReturnsFalse() {
assertThat(function.isHA()).isFalse();
}
@Test
- public void getIdReturnsNameOfClass() throws Exception {
+ public void getIdReturnsNameOfClass() {
assertThat(function.getId()).isEqualTo(function.getClass().getName());
}
@Test
- public void serializes() throws Exception {
+ public void serializes() {
Serializable original = function;
Object copy = SerializationUtils.clone(original);
@@ -92,19 +92,19 @@ public class DestroyConnectionFunctionTest {
}
@Test
- public void destroyConnectionConfigReturnsTrueIfConnectionDestroyed() throws Exception {
+ public void destroyConnectionConfigReturnsTrueIfConnectionDestroyed() {
when(service.getConnectionConfig(eq(connectionName))).thenReturn(configuration);
assertThat(function.destroyConnectionConfig(service, connectionName)).isTrue();
}
@Test
- public void destroyConnectionConfigReturnsFalseIfConnectionDoesNotExist() throws Exception {
+ public void destroyConnectionConfigReturnsFalseIfConnectionDoesNotExist() {
assertThat(function.destroyConnectionConfig(service, connectionName)).isFalse();
}
@Test
- public void executeDestroysIfConnectionConfigFound() throws Exception {
+ public void executeDestroysIfConnectionConfigFound() {
when(service.getConnectionConfig(eq(connectionName))).thenReturn(configuration);
function.execute(context);
@@ -113,7 +113,7 @@ public class DestroyConnectionFunctionTest {
}
@Test
- public void executeReportsErrorIfConnectionConfigNotFound() throws Exception {
+ public void executeReportsErrorIfConnectionConfigNotFound() {
function.execute(context);
ArgumentCaptor<CliFunctionResult> argument = ArgumentCaptor.forClass(CliFunctionResult.class);
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunctionTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunctionTest.java
new file mode 100644
index 0000000..9ceb58f
--- /dev/null
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/JdbcCliFunctionTest.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+ * agreements. See the NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License. You may obtain a
+ * copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.geode.connectors.jdbc.internal.cli;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import org.apache.geode.cache.execute.FunctionContext;
+import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
+
+public class JdbcCliFunctionTest {
+
+ private JdbcCliFunction<Void, Void> function;
+
+ @Before
+ public void setup() {
+ FunctionContextArgumentProvider argumentProvider = mock(FunctionContextArgumentProvider.class);
+ ExceptionHandler exceptionHandler = mock(ExceptionHandler.class);
+ function = new JdbcCliFunction<Void, Void>(argumentProvider, exceptionHandler) {
+ @Override
+ Void getFunctionResult(InternalJdbcConnectorService service, FunctionContext<Void> context) {
+ return null;
+ }
+ };
+ }
+
+ @Test
+ public void isHAReturnsFalse() {
+ assertThat(function.isHA()).isFalse();
+ }
+
+ @Test
+ public void getIdReturnsNameOfClass() {
+ assertThat(function.getId()).isEqualTo(function.getClass().getName());
+ }
+}
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunctionTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunctionTest.java
index 5ced44f..0ea9547 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunctionTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/ListConnectionFunctionTest.java
@@ -32,7 +32,6 @@ import org.mockito.ArgumentCaptor;
import org.apache.geode.cache.execute.FunctionContext;
import org.apache.geode.cache.execute.ResultSender;
-import org.apache.geode.connectors.jdbc.internal.ConnectionConfigBuilder;
import org.apache.geode.connectors.jdbc.internal.ConnectionConfiguration;
import org.apache.geode.connectors.jdbc.internal.InternalJdbcConnectorService;
import org.apache.geode.distributed.DistributedMember;
@@ -42,7 +41,6 @@ import org.apache.geode.management.internal.cli.functions.CliFunctionResult;
public class ListConnectionFunctionTest {
- private InternalCache cache;
private FunctionContext<Void> context;
private ResultSender<Object> resultSender;
private InternalJdbcConnectorService service;
@@ -56,8 +54,8 @@ public class ListConnectionFunctionTest {
private ListConnectionFunction function;
@Before
- public void setUp() throws Exception {
- cache = mock(InternalCache.class);
+ public void setUp() {
+ InternalCache cache = mock(InternalCache.class);
context = mock(FunctionContext.class);
DistributedMember member = mock(DistributedMember.class);
resultSender = mock(ResultSender.class);
@@ -81,17 +79,17 @@ public class ListConnectionFunctionTest {
}
@Test
- public void isHAReturnsFalse() throws Exception {
+ public void isHAReturnsFalse() {
assertThat(function.isHA()).isFalse();
}
@Test
- public void getIdReturnsNameOfClass() throws Exception {
+ public void getIdReturnsNameOfClass() {
assertThat(function.getId()).isEqualTo(function.getClass().getName());
}
@Test
- public void serializes() throws Exception {
+ public void serializes() {
Serializable original = function;
Object copy = SerializationUtils.clone(original);
@@ -100,7 +98,7 @@ public class ListConnectionFunctionTest {
}
@Test
- public void getConnectionConfigsReturnsMultiple() throws Exception {
+ public void getConnectionConfigsReturnsMultiple() {
expected.add(connectionConfig1);
expected.add(connectionConfig2);
expected.add(connectionConfig3);
@@ -112,14 +110,14 @@ public class ListConnectionFunctionTest {
}
@Test
- public void getConnectionConfigsReturnsEmpty() throws Exception {
+ public void getConnectionConfigsReturnsEmpty() {
ConnectionConfiguration[] actual = function.getConnectionConfigAsArray(service);
assertThat(actual).isEmpty();
}
@Test
- public void executeReturnsResultWithAllConfigs() throws Exception {
+ public void executeReturnsResultWithAllConfigs() {
expected.add(connectionConfig1);
expected.add(connectionConfig2);
expected.add(connectionConfig3);
@@ -133,7 +131,7 @@ public class ListConnectionFunctionTest {
}
@Test
- public void executeReturnsEmptyResultForNoConfigs() throws Exception {
+ public void executeReturnsEmptyResultForNoConfigs() {
function.execute(context);
ArgumentCaptor<Object[]> argument = ArgumentCaptor.forClass(Object[].class);
@@ -142,7 +140,7 @@ public class ListConnectionFunctionTest {
}
@Test
- public void executeReturnsResultForExceptionWithoutMessage() throws Exception {
+ public void executeReturnsResultForExceptionWithoutMessage() {
when(service.getConnectionConfigs()).thenThrow(new NullPointerException());
function.execute(context);
@@ -153,7 +151,7 @@ public class ListConnectionFunctionTest {
}
@Test
- public void executeReturnsResultForExceptionWithMessage() throws Exception {
+ public void executeReturnsResultForExceptionWithMessage() {
when(service.getConnectionConfigs()).thenThrow(new IllegalArgumentException("some message"));
function.execute(context);
--
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].