This is an automated email from the ASF dual-hosted git repository.
dschneider pushed a commit to branch feature/GEODE-6156
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/feature/GEODE-6156 by this
push:
new 60521fa Added --id option to gfsh create jdbc-mapping
60521fa is described below
commit 60521fabc4a23d61c104fe545fd0920f0c4bc514
Author: Darrel Schneider <[email protected]>
AuthorDate: Thu Dec 6 17:25:30 2018 -0800
Added --id option to gfsh create jdbc-mapping
---
.../cli/CreateMappingCommandDUnitTest.java | 4 ++++
.../jdbc/internal/cli/CreateMappingCommand.java | 9 +++++++--
.../internal/cli/CreateMappingCommandTest.java | 22 ++++++++++++----------
3 files changed, 23 insertions(+), 12 deletions(-)
diff --git
a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
index d71f257..a688a88 100644
---
a/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
+++
b/geode-connectors/src/distributedTest/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandDUnitTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.connectors.jdbc.internal.cli;
import static
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING;
import static
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__DATA_SOURCE_NAME;
+import static
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__ID_NAME;
import static
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__PDX_NAME;
import static
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__REGION_NAME;
import static
org.apache.geode.connectors.jdbc.internal.cli.CreateMappingCommand.CREATE_MAPPING__SYNCHRONOUS_NAME;
@@ -183,6 +184,7 @@ public class CreateMappingCommandDUnitTest {
csb.addOption(CREATE_MAPPING__DATA_SOURCE_NAME, "connection");
csb.addOption(CREATE_MAPPING__TABLE_NAME, "myTable");
csb.addOption(CREATE_MAPPING__PDX_NAME, "myPdxClass");
+ csb.addOption(CREATE_MAPPING__ID_NAME, "myId");
gfsh.executeAndAssertThat(csb.toString()).statusIsSuccess();
@@ -191,6 +193,7 @@ public class CreateMappingCommandDUnitTest {
assertThat(mapping.getDataSourceName()).isEqualTo("connection");
assertThat(mapping.getTableName()).isEqualTo("myTable");
assertThat(mapping.getPdxName()).isEqualTo("myPdxClass");
+ assertThat(mapping.getIds()).isEqualTo("myId");
validateRegionAlteredOnServer(regionName, false);
validateAsyncEventQueueCreatedOnServer(regionName, false);
});
@@ -200,6 +203,7 @@ public class CreateMappingCommandDUnitTest {
assertThat(regionMapping.getDataSourceName()).isEqualTo("connection");
assertThat(regionMapping.getTableName()).isEqualTo("myTable");
assertThat(regionMapping.getPdxName()).isEqualTo("myPdxClass");
+ assertThat(regionMapping.getIds()).isEqualTo("myId");
validateRegionAlteredInClusterConfig(regionName, false);
validateAsyncEventQueueCreatedInClusterConfig(regionName, false);
});
diff --git
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
index ec03721..5f72f17 100644
---
a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
+++
b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommand.java
@@ -63,6 +63,9 @@ public class CreateMappingCommand extends SingleGfshCommand {
static final String CREATE_MAPPING__SYNCHRONOUS_NAME = "synchronous";
static final String CREATE_MAPPING__SYNCHRONOUS_NAME__HELP =
"By default, writes will be asynchronous. If true, writes will be
synchronous.";
+ static final String CREATE_MAPPING__ID_NAME = "id";
+ static final String CREATE_MAPPING__ID_NAME__HELP =
+ "The table column name to use as the region key for this JDBC mapping.";
public static String createAsyncEventQueueName(String regionPath) {
if (regionPath.startsWith("/")) {
@@ -86,14 +89,16 @@ public class CreateMappingCommand extends SingleGfshCommand
{
help = CREATE_MAPPING__PDX_NAME__HELP) String pdxName,
@CliOption(key = CREATE_MAPPING__SYNCHRONOUS_NAME,
help = CREATE_MAPPING__SYNCHRONOUS_NAME__HELP,
- specifiedDefaultValue = "true", unspecifiedDefaultValue = "false")
boolean synchronous) {
+ specifiedDefaultValue = "true", unspecifiedDefaultValue = "false")
boolean synchronous,
+ @CliOption(key = CREATE_MAPPING__ID_NAME,
+ help = CREATE_MAPPING__ID_NAME__HELP) String id) {
if (regionName.startsWith("/")) {
regionName = regionName.substring(1);
}
// input
Set<DistributedMember> targetMembers = getMembers(null, null);
- RegionMapping mapping = new RegionMapping(regionName, pdxName, table,
dataSourceName, null);
+ RegionMapping mapping = new RegionMapping(regionName, pdxName, table,
dataSourceName, id);
try {
ConfigurationPersistenceService configurationPersistenceService =
diff --git
a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandTest.java
b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandTest.java
index cded45f..84335bf 100644
---
a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandTest.java
+++
b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/internal/cli/CreateMappingCommandTest.java
@@ -122,9 +122,10 @@ public class CreateMappingCommandTest {
public void createsMappingReturnsStatusOKWhenFunctionResultSuccess() {
setupRequiredPreconditions();
results.add(successFunctionResult);
+ String ids = "ids";
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, ids);
assertThat(result.getStatus()).isSameAs(Result.Status.OK);
Object[] results = (Object[]) result.getConfigObject();
@@ -135,6 +136,7 @@ public class CreateMappingCommandTest {
assertThat(regionMapping.getDataSourceName()).isEqualTo(dataSourceName);
assertThat(regionMapping.getTableName()).isEqualTo(tableName);
assertThat(regionMapping.getPdxName()).isEqualTo(pdxClass);
+ assertThat(regionMapping.getIds()).isEqualTo(ids);
assertThat(synchronous).isFalse();
}
@@ -144,7 +146,7 @@ public class CreateMappingCommandTest {
results.add(successFunctionResult);
ResultModel result = createRegionMappingCommand.createMapping("/" +
regionName, dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, null);
assertThat(result.getStatus()).isSameAs(Result.Status.OK);
Object[] results = (Object[]) result.getConfigObject();
@@ -159,7 +161,7 @@ public class CreateMappingCommandTest {
results.clear();
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, null);
assertThat(result.getStatus()).isSameAs(Result.Status.ERROR);
}
@@ -170,7 +172,7 @@ public class CreateMappingCommandTest {
doReturn(null).when(createRegionMappingCommand).getConfigurationPersistenceService();
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, null);
assertThat(result.getStatus()).isSameAs(Result.Status.ERROR);
assertThat(result.toString()).contains("Cluster Configuration must be
enabled.");
@@ -187,7 +189,7 @@ public class CreateMappingCommandTest {
when(cacheConfig.getRegions()).thenReturn(Collections.emptyList());
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, null);
assertThat(result.getStatus()).isSameAs(Result.Status.ERROR);
assertThat(result.toString())
@@ -218,7 +220,7 @@ public class CreateMappingCommandTest {
when(matchingRegion.getCustomRegionElements()).thenReturn(customList);
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, null);
assertThat(result.getStatus()).isSameAs(Result.Status.ERROR);
assertThat(result.toString()).contains("A JDBC mapping for " + regionName
+ " already exists.");
@@ -244,7 +246,7 @@ public class CreateMappingCommandTest {
when(matchingRegion.getRegionAttributes()).thenReturn(attributes);
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, null);
assertThat(result.getStatus()).isSameAs(Result.Status.ERROR);
assertThat(result.toString()).contains("The existing region " + regionName
@@ -271,7 +273,7 @@ public class CreateMappingCommandTest {
when(matchingRegion.getRegionAttributes()).thenReturn(attributes);
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, true);
+ tableName, pdxClass, true, null);
assertThat(result.getStatus()).isSameAs(Result.Status.ERROR);
assertThat(result.toString()).contains("The existing region " + regionName
@@ -302,7 +304,7 @@ public class CreateMappingCommandTest {
when(cacheConfig.getAsyncEventQueues()).thenReturn(asyncEventQueues);
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, true);
+ tableName, pdxClass, true, null);
assertThat(result.getStatus()).isSameAs(Result.Status.OK);
}
@@ -332,7 +334,7 @@ public class CreateMappingCommandTest {
when(cacheConfig.getAsyncEventQueues()).thenReturn(asyncEventQueues);
ResultModel result = createRegionMappingCommand.createMapping(regionName,
dataSourceName,
- tableName, pdxClass, false);
+ tableName, pdxClass, false, null);
assertThat(result.getStatus()).isSameAs(Result.Status.ERROR);
assertThat(result.toString())