You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ud...@apache.org on 2018/03/20 23:01:27 UTC
[geode] branch micrometer updated: A commit that I can demo.
This is an automated email from the ASF dual-hosted git repository.
udo pushed a commit to branch micrometer
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/micrometer by this push:
new 6857bb7 A commit that I can demo.
6857bb7 is described below
commit 6857bb713f8061fde6a6fd83aad3d43b8321e5b6
Author: Udo <uk...@pivotal.io>
AuthorDate: Tue Mar 20 16:01:17 2018 -0700
A commit that I can demo.
---
geode-core/build.gradle | 14 +-
.../cache/MicrometerPartitionRegionStats.kt | 5 +-
.../apache/geode/internal/cache/MicrometerStats.kt | 36 ++-
.../geode/internal/cache/PartitionedRegion.java | 2 +-
.../bean/stats/RegionStatsJUnitTest.java | 1 -
geode-protobuf/build.gradle | 10 +-
.../statistics/MicrometerClientStatsImpl.kt | 18 +-
.../protobuf/v1/ProtobufProtocolService.java | 8 +-
.../v1/acceptance/CacheOperationsJUnitTest.java | 358 ++++++++++++---------
.../KeySetOperationHandlerJUnitTest.java | 8 -
10 files changed, 260 insertions(+), 200 deletions(-)
diff --git a/geode-core/build.gradle b/geode-core/build.gradle
index 4363762..66e4cb5 100755
--- a/geode-core/build.gradle
+++ b/geode-core/build.gradle
@@ -41,10 +41,12 @@ dependencies {
// External
provided files("${System.getProperty('java.home')}/../lib/tools.jar")
- compile group: 'io.micrometer', name: 'micrometer-core', version: '1.0.0-rc.5'
- compile group: 'io.micrometer', name: 'micrometer-registry-atlas', version: '1.0.0-rc.5'
- compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.0-rc.5'
- compile group: 'io.micrometer', name: 'micrometer-registry-jmx', version: '1.0.0-rc.5'
+ compile group: 'io.micrometer', name: 'micrometer-core', version: '1.0.1'
+ compile group: 'io.micrometer', name: 'micrometer-registry-atlas', version: '1.0.1'
+ compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.1'
+ compile group: 'io.micrometer', name: 'micrometer-registry-jmx', version: '1.0.1'
+
+ compile group: 'io.pivotal.gemfire', name: 'stats', version: '1.0-SNAPSHOT'
compile 'com.github.stephenc.findbugs:findbugs-annotations:' + project.'stephenc-findbugs.version'
@@ -162,6 +164,7 @@ dependencies {
testRuntime 'xerces:xercesImpl:' + project.'xercesImpl.version'
testCompile project(':geode-concurrency-test')
+ compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
def generatedResources = "$buildDir/generated-resources/main"
@@ -249,7 +252,7 @@ dependencies {
tasks.eclipse.dependsOn(generateGrammarSource)
buildscript {
- ext.kotlin_version = '1.2.10'
+ ext.kotlin_version = '1.2.30'
repositories {
mavenCentral()
}
@@ -259,6 +262,7 @@ buildscript {
}
repositories {
mavenCentral()
+ mavenLocal()
}
compileKotlin {
kotlinOptions {
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
index 0ddf647..31b2891 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerPartitionRegionStats.kt
@@ -10,10 +10,7 @@ import java.lang.Number
import java.util.concurrent.atomic.AtomicInteger
open class MicrometerPartitionRegionStats(val meterRegistry: MeterRegistry, val regionName: String) : PartitionedRegionStats {
- override fun getStats(): Statistics? {
- //we do nothing here... because we don't need to
- return null;
- }
+ override fun getStats(): Statistics? = null
@Suppress("PropertyName")
protected val PARTITIONED_REGION = "PartitionedRegion"
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
index c44a0ab..c00290f 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/MicrometerStats.kt
@@ -2,13 +2,31 @@ package org.apache.geode.internal.cache
import io.micrometer.core.instrument.Clock
import io.micrometer.core.instrument.MeterRegistry
+import io.micrometer.core.instrument.binder.MeterBinder
+import io.micrometer.core.instrument.binder.jvm.ExecutorServiceMetrics
+import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics
+import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics
+import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics
+import io.micrometer.core.instrument.binder.system.FileDescriptorMetrics
import io.micrometer.core.instrument.composite.CompositeMeterRegistry
+
import io.micrometer.influx.InfluxConfig
import io.micrometer.influx.InfluxMeterRegistry
+import io.micrometer.jmx.JmxConfig
import io.micrometer.jmx.JmxMeterRegistry
+import io.pivotal.gemfire.micrometer.binder.LoadAvgMetrics
+import io.pivotal.gemfire.micrometer.binder.MemInfoMetrics
+import io.pivotal.gemfire.micrometer.binder.StatMetrics
+import io.pivotal.gemfire.micrometer.procOS.ProcOSLoadAvg
+import io.pivotal.gemfire.micrometer.procOS.ProcOSMemInfo
+import io.pivotal.gemfire.micrometer.procOS.ProcOSReaderFactory
+import io.pivotal.gemfire.micrometer.procOS.ProcOSStat
+import org.apache.geode.cache.CacheFactory
import java.time.Duration
+import java.util.ArrayList
class MicrometerStats {
+ private val registeredMetricsBinders = ArrayList<MeterBinder>()
val meterRegistry = CompositeMeterRegistry(Clock.SYSTEM)
private val influxMetrics: MeterRegistry = InfluxMeterRegistry(object : InfluxConfig {
override fun step(): Duration = Duration.ofSeconds(10)
@@ -24,11 +42,27 @@ class MicrometerStats {
// override fun step(): Duration = Duration.ofSeconds(10)
// }, Clock.SYSTEM)
- private val jmxMetrics: MeterRegistry = JmxMeterRegistry()
+ private val jmxMetrics: MeterRegistry = JmxMeterRegistry(JmxConfig.DEFAULT, Clock.SYSTEM)
init {
meterRegistry.add(influxMetrics)
// meterRegistry.add(atlasMetrics)
meterRegistry.add(jmxMetrics)
+
+ val procOSReaderFactory = ProcOSReaderFactory()
+ registeredMetricsBinders.add(LoadAvgMetrics(procOSLoadAvg = ProcOSLoadAvg(procOSReaderFactory.getInstance(LoadAvgMetrics.LOADAVG))))
+ registeredMetricsBinders.add(MemInfoMetrics(procOSMemInfo = ProcOSMemInfo(procOSReaderFactory.getInstance(MemInfoMetrics.MEMINFO))))
+ registeredMetricsBinders.add(StatMetrics(procOSStat = ProcOSStat(procOSReaderFactory.getInstance(StatMetrics.STAT))))
+
+
+ registeredMetricsBinders.add(JvmGcMetrics())
+ registeredMetricsBinders.add(JvmMemoryMetrics())
+ registeredMetricsBinders.add(JvmThreadMetrics())
+ registeredMetricsBinders.add(FileDescriptorMetrics())
+
+ val cache = CacheFactory.getAnyInstance() as InternalCache
+ ExecutorServiceMetrics.monitor(meterRegistry,cache.distributionManager.waitingThreadPool,"WaitingThreadPool")
+
+ registeredMetricsBinders.forEach { it.bindTo(meterRegistry) }
}
}
\ No newline at end of file
diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
index 9ce448c..bb8fd45 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/cache/PartitionedRegion.java
@@ -5571,7 +5571,7 @@ public class PartitionedRegion extends LocalRegion
}
@Override
- void basicInvalidate(EntryEventImpl event) throws EntryNotFoundException {
+ public void basicInvalidate(EntryEventImpl event) throws EntryNotFoundException {
final long startTime = prStats.startTime();
try {
if (event.getEventId() == null) {
diff --git a/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java b/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
index 11e6cd9..db7dce2 100644
--- a/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
+++ b/geode-core/src/test/java/org/apache/geode/management/bean/stats/RegionStatsJUnitTest.java
@@ -24,7 +24,6 @@ import org.junit.experimental.categories.Category;
import org.apache.geode.internal.cache.CachePerfStats;
import org.apache.geode.internal.cache.DiskRegionStats;
import org.apache.geode.internal.cache.PartitionedRegionStats;
-import org.apache.geode.internal.cache.PartitionedRegionStatsImpl;
import org.apache.geode.management.internal.beans.DiskRegionBridge;
import org.apache.geode.management.internal.beans.PartitionedRegionBridge;
import org.apache.geode.management.internal.beans.RegionMBeanBridge;
diff --git a/geode-protobuf/build.gradle b/geode-protobuf/build.gradle
index 8c55681..b24103b 100644
--- a/geode-protobuf/build.gradle
+++ b/geode-protobuf/build.gradle
@@ -27,11 +27,11 @@ dependencies {
testCompile 'org.powermock:powermock-api-mockito:' + project.'powermock.version'
compile 'com.google.protobuf:protobuf-java:' + project.'protobuf-java.version'
- compile group: 'io.micrometer', name: 'micrometer-core', version: '1.0.0-rc.5'
- compile group: 'io.micrometer', name: 'micrometer-registry-atlas', version: '1.0.0-rc.5'
- compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.0-rc.5'
- compile group: 'io.micrometer', name: 'micrometer-registry-graphite', version: '1.0.0-rc.5'
- compile group: 'io.micrometer', name: 'micrometer-registry-jmx', version: '1.0.0-rc.5'
+ compile group: 'io.micrometer', name: 'micrometer-core', version: '1.0.2'
+ compile group: 'io.micrometer', name: 'micrometer-registry-atlas', version: '1.0.2'
+ compile group: 'io.micrometer', name: 'micrometer-registry-influx', version: '1.0.2'
+ compile group: 'io.micrometer', name: 'micrometer-registry-graphite', version: '1.0.2'
+ compile group: 'io.micrometer', name: 'micrometer-registry-jmx', version: '1.0.2'
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
buildscript {
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
index 2192627..31d091b 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/statistics/MicrometerClientStatsImpl.kt
@@ -1,18 +1,18 @@
package org.apache.geode.internal.protocol.protobuf.statistics
-import io.micrometer.core.instrument.Clock
-import io.micrometer.core.instrument.DistributionSummary
import io.micrometer.core.instrument.MeterRegistry
-import io.micrometer.core.instrument.composite.CompositeMeterRegistry
-import io.micrometer.influx.InfluxConfig
-import io.micrometer.influx.InfluxMeterRegistry
-import io.micrometer.jmx.JmxMeterRegistry
import org.apache.geode.internal.cache.MicroMeterRegistryFactory
-import org.apache.geode.internal.protocol.statistics.ProtocolClientStatistics
-import java.time.Duration
import java.util.concurrent.atomic.AtomicInteger
-class MicrometerClientStatsImpl(val meterRegistry: MeterRegistry) : ProtocolClientStatistics {
+open class MicrometerClientStatsImpl(val meterRegistry: MeterRegistry) : ClientStatistics {
+ override fun startOperation(): Long {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+
+ override fun endOperation(startOperationTime: Long) {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
+
constructor() : this(MicroMeterRegistryFactory.getMeterRegistry())
private val clientsConnected = AtomicInteger(0)
diff --git a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
index 58637a6..aedf26a 100644
--- a/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
+++ b/geode-protobuf/src/main/java/org/apache/geode/internal/protocol/protobuf/v1/ProtobufProtocolService.java
@@ -22,12 +22,8 @@ import org.apache.geode.internal.cache.client.protocol.ClientProtocolService;
import org.apache.geode.internal.protocol.protobuf.ProtocolVersion;
import org.apache.geode.internal.protocol.protobuf.statistics.ClientStatistics;
import org.apache.geode.internal.protocol.protobuf.statistics.NoOpStatistics;
-import org.apache.geode.internal.protocol.protobuf.statistics.ProtobufClientStatistics;
+import org.apache.geode.internal.protocol.protobuf.statistics.TimedMicrometerClientStatsImpl;
import org.apache.geode.internal.protocol.protobuf.v1.state.ProtobufConnectionHandshakeStateProcessor;
-import org.apache.geode.internal.protocol.protobuf.Handshake;
-import org.apache.geode.internal.protocol.protobuf.statistics.MicrometerClientStatsImpl;
-import org.apache.geode.internal.protocol.statistics.NoOpStatistics;
-import org.apache.geode.internal.protocol.statistics.ProtocolClientStatistics;
import org.apache.geode.internal.security.SecurityService;
public class ProtobufProtocolService implements ClientProtocolService {
@@ -38,7 +34,7 @@ public class ProtobufProtocolService implements ClientProtocolService {
public synchronized void initializeStatistics(String statisticsName, StatisticsFactory factory) {
if (statistics == null) {
// statistics = new ProtobufClientStatisticsImpl(factory, statisticsName);
- statistics = new MicrometerClientStatsImpl();
+ statistics = new TimedMicrometerClientStatsImpl();
}
}
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
index 14613ab..b603390 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/acceptance/CacheOperationsJUnitTest.java
@@ -34,6 +34,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Properties;
+import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -53,6 +54,7 @@ import org.junit.rules.TestName;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
import org.apache.geode.cache.RegionFactory;
+import org.apache.geode.cache.RegionShortcut;
import org.apache.geode.cache.server.CacheServer;
import org.apache.geode.distributed.ConfigurationProperties;
import org.apache.geode.internal.AvailablePortHelper;
@@ -80,17 +82,18 @@ public class CacheOperationsJUnitTest {
private final String TEST_KEY = "testKey";
private final String TEST_VALUE = "testValue";
private final String TEST_REGION = "testRegion";
+ private final String TEST_REGION2 = "testRegion2";
- private final String DEFAULT_STORE = "default.keystore";
- private final String SSL_PROTOCOLS = "any";
- private final String SSL_CIPHERS = "any";
+ private final String DEFAULT_STORE = "default.keystore";
+ private final String SSL_PROTOCOLS = "any";
+ private final String SSL_CIPHERS = "any";
- private final String TEST_MULTIOP_KEY1 = "multiopKey1";
- private final String TEST_MULTIOP_KEY2 = "multiopKey2";
- private final String TEST_MULTIOP_KEY3 = "multiopKey3";
- private final String TEST_MULTIOP_VALUE1 = "multiopValue1";
- private final String TEST_MULTIOP_VALUE2 = "multiopValue2";
- private final String TEST_MULTIOP_VALUE3 = "multiopValue3";
+ private final String TEST_MULTIOP_KEY1 = "multiopKey1";
+ private final String TEST_MULTIOP_KEY2 = "multiopKey2";
+ private final String TEST_MULTIOP_KEY3 = "multiopKey3";
+ private final String TEST_MULTIOP_VALUE1 = "multiopValue1";
+ private final String TEST_MULTIOP_VALUE2 = "multiopValue2";
+ private final String TEST_MULTIOP_VALUE3 = "multiopValue3";
private Cache cache;
private int cacheServerPort;
@@ -98,115 +101,146 @@ public class CacheOperationsJUnitTest {
private Socket socket;
private OutputStream outputStream;
- @Rule
- public final RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
+ @Rule
+ public final RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
@Rule
public TestName testName = new TestName();
private ProtobufProtocolSerializer protobufProtocolSerializer;
- @Before
- public void setup() throws Exception {
- // Test names prefixed with useSSL_ will setup the cache and socket to use SSL transport
- boolean useSSL = testName.getMethodName().startsWith("useSSL_");
+ @Before
+ public void setup() throws Exception {
+ // Test names prefixed with useSSL_ will setup the cache and socket to use SSL transport
+ boolean useSSL = testName.getMethodName().startsWith("useSSL_");
+
+ Properties properties = new Properties();
+ if (useSSL) {
+ updatePropertiesForSSLCache(properties);
+ }
- Properties properties = new Properties();
- if (useSSL) {
- updatePropertiesForSSLCache(properties);
- }
+ CacheFactory cacheFactory = new CacheFactory(properties);
+ cacheFactory.set(ConfigurationProperties.MCAST_PORT, "0");
+ cacheFactory.set(ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION, "false");
+ cacheFactory.set(ConfigurationProperties.USE_CLUSTER_CONFIGURATION, "false");
+ cacheFactory.set(ConfigurationProperties.ENABLE_TIME_STATISTICS, "true");
+ cache = cacheFactory.create();
- CacheFactory cacheFactory = new CacheFactory(properties);
- cacheFactory.set(ConfigurationProperties.MCAST_PORT, "0");
- cacheFactory.set(ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION, "false");
- cacheFactory.set(ConfigurationProperties.USE_CLUSTER_CONFIGURATION, "false");
- cache = cacheFactory.create();
+ CacheServer cacheServer = cache.addCacheServer();
+ cacheServerPort = AvailablePortHelper.getRandomAvailableTCPPort();
+ cacheServer.setPort(cacheServerPort);
+ cacheServer.start();
- CacheServer cacheServer = cache.addCacheServer();
- cacheServerPort = AvailablePortHelper.getRandomAvailableTCPPort();
- cacheServer.setPort(cacheServerPort);
- cacheServer.start();
+ RegionFactory<Object, Object> regionFactory = cache.createRegionFactory(RegionShortcut.PARTITION);
+ regionFactory.create(TEST_REGION);
- RegionFactory<Object, Object> regionFactory = cache.createRegionFactory();
- regionFactory.create(TEST_REGION);
+ regionFactory = cache.createRegionFactory(RegionShortcut.PARTITION);
+ regionFactory.create(TEST_REGION2);
- System.setProperty("geode.feature-protobuf-protocol", "true");
+ System.setProperty("geode.feature-protobuf-protocol", "true");
- if (useSSL) {
- socket = getSSLSocket();
- } else {
- socket = new Socket("localhost", cacheServerPort);
- }
- Awaitility.await().atMost(5, TimeUnit.SECONDS).until(socket::isConnected);
- outputStream = socket.getOutputStream();
+ if (useSSL) {
+ socket = getSSLSocket();
+ } else {
+ socket = new Socket("localhost", cacheServerPort);
+ }
+ Awaitility.await().atMost(5, TimeUnit.SECONDS).until(socket::isConnected);
+ outputStream = socket.getOutputStream();
- MessageUtil.performAndVerifyHandshake(socket);
+ MessageUtil.performAndVerifyHandshake(socket);
serializationService = new ProtobufSerializationService();
protobufProtocolSerializer = new ProtobufProtocolSerializer();
}
- @After
- public void cleanup() throws IOException {
- cache.close();
- socket.close();
- SocketCreatorFactory.close();
- }
+ @After
+ public void cleanup() throws IOException {
+ cache.close();
+ socket.close();
+ SocketCreatorFactory.close();
+ }
- private static String randomLengthString() {
- Random random = new Random();
- StringBuffer stringBuffer = new StringBuffer();
- int length = (int) (random.nextInt(1024000) * (1.75 * random.nextInt(10)));
- for (int i = 0; i < (length); i++) {
- stringBuffer.append("a");
- }
- return stringBuffer.toString();
+ private static String randomLengthString() {
+ Random random = new Random();
+ StringBuffer stringBuffer = new StringBuffer();
+ int length = (int) (random.nextInt(1024000) * (1.75 * random.nextInt(10)));
+ for (int i = 0; i < (length); i++) {
+ stringBuffer.append("a");
}
+ return stringBuffer.toString();
+ }
- @Test
- public void testNewProtocolWithMultikeyOperations() throws Exception {
- System.setProperty("geode.feature-protobuf-protocol", "true");
- for (int i = 0; i < 10000000; i++) {
+ @Test
+ public void testNewProtocolWithMultikeyOperations() throws Exception {
+ System.setProperty("geode.feature-protobuf-protocol", "true");
+ for (int i = 0; i < 10000000; i++) {
+ String regionToUse = randomlySelectRegion();
- ProtobufProtocolSerializer protobufProtocolSerializer = new ProtobufProtocolSerializer();
- Set<BasicTypes.Entry> putEntries = new HashSet<>();
- putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY1,
+ ProtobufProtocolSerializer protobufProtocolSerializer = new ProtobufProtocolSerializer();
+ Set<BasicTypes.Entry> putEntries = new HashSet<>();
+ putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY1,
randomLengthString()));
- putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY2,
+ putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY2,
randomLengthString()));
if (new Random().nextInt() % 2 == 0) {
- putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY3,
+ putEntries.add(ProtobufUtilities.createEntry(serializationService, TEST_MULTIOP_KEY3,
randomLengthString()));
}
- ClientProtocol.Message putAllMessage = ProtobufUtilities.createProtobufMessage(
- ProtobufRequestUtilities.createPutAllRequest(TEST_REGION, putEntries));
- protobufProtocolSerializer.serialize(putAllMessage, outputStream);
- validatePutAllResponse(socket, protobufProtocolSerializer, new HashSet<>());
+ ClientProtocol.Message putAllMessage = ProtobufRequestUtilities.createPutAllRequest(regionToUse, putEntries);
+ protobufProtocolSerializer.serialize(putAllMessage, outputStream);
+ validatePutAllResponse(socket, protobufProtocolSerializer, new HashSet<>());
- Set<BasicTypes.EncodedValue> getEntries = new HashSet<>();
- getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY1));
+ Set<BasicTypes.EncodedValue> getEntries = new HashSet<>();
+ getEntries.add(serializationService.encode(TEST_MULTIOP_KEY1));
if(new Random().nextInt() % 5 == 0) {
- getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY2));
- getEntries.add(ProtobufUtilities.createEncodedValue(serializationService, TEST_MULTIOP_KEY3));
+ getEntries.add(serializationService.encode(TEST_MULTIOP_KEY2));
+ getEntries.add(serializationService.encode(TEST_MULTIOP_KEY3));
}
- RegionAPI.GetAllRequest getAllRequest =
- ProtobufRequestUtilities.createGetAllRequest(TEST_REGION, getEntries);
+ RegionAPI.GetAllRequest getAllRequest =
+ ProtobufRequestUtilities.createGetAllRequest(regionToUse, getEntries);
- ClientProtocol.Message getAllMessage = ProtobufUtilities.createProtobufMessage(
- ProtobufUtilities.createProtobufRequestWithGetAllRequest(getAllRequest));
- Thread.sleep(100);
- protobufProtocolSerializer.serialize(getAllMessage, outputStream);
- validateGetAllResponse(socket, protobufProtocolSerializer);
- }
+ ClientProtocol.Message getAllMessage =
+ ClientProtocol.Message.newBuilder().setGetAllRequest(getAllRequest).build();
+ protobufProtocolSerializer.serialize(getAllMessage, outputStream);
+ validateGetAllResponse(socket, protobufProtocolSerializer);
+
+ RegionAPI.KeySetRequest keySetRequest =
+ RegionAPI.KeySetRequest.newBuilder().setRegionName(regionToUse).build();
+ ClientProtocol.Message keySetMessage =
+ ClientProtocol.Message.newBuilder().setKeySetRequest(keySetRequest).build();
+ protobufProtocolSerializer.serialize(keySetMessage, outputStream);
+ validateKeySetResponse(socket, protobufProtocolSerializer);
+ }
+ }
+
+ private String randomlySelectRegion() {
+ int random = new Random(System.nanoTime()).nextInt(123);
+ if(random % 3 == 0)
+ {
+ return TEST_REGION;
+ }
+ if(random % 4 == 0)
+ {
+ return TEST_REGION2;
}
+ if(random % 5 == 0)
+ {
+ return TEST_REGION2;
+ }
+ if(random % 7 == 0)
+ {
+ return TEST_REGION;
+ }
+ return TEST_REGION2;
+ }
- @Test
- public void multiKeyOperationErrorsWithClasscastException() throws Exception {
- RegionFactory<Float, Object> regionFactory = cache.createRegionFactory();
- regionFactory.setKeyConstraint(Float.class);
- String regionName = "constraintRegion";
- regionFactory.create(regionName);
- System.setProperty("geode.feature-protobuf-protocol", "true");
+ @Test
+ public void multiKeyOperationErrorsWithClasscastException() throws Exception {
+ RegionFactory<Float, Object> regionFactory = cache.createRegionFactory();
+ regionFactory.setKeyConstraint(Float.class);
+ String regionName = "constraintRegion";
+ regionFactory.create(regionName);
+ System.setProperty("geode.feature-protobuf-protocol", "true");
Set<BasicTypes.Entry> putEntries = new HashSet<>();
putEntries.add(ProtobufUtilities.createEntry(serializationService, 2.2f, TEST_MULTIOP_VALUE1));
@@ -223,10 +257,10 @@ public class CacheOperationsJUnitTest {
expectedFailedKeys.add(serializationService.encode(TEST_MULTIOP_KEY3));
validatePutAllResponse(socket, protobufProtocolSerializer, expectedFailedKeys);
- ClientProtocol.Message getMessage =
- MessageUtil.makeGetRequestMessage(serializationService, 2.2f, regionName);
- protobufProtocolSerializer.serialize(getMessage, outputStream);
- validateGetResponse(socket, protobufProtocolSerializer, TEST_MULTIOP_VALUE1);
+ ClientProtocol.Message getMessage =
+ MessageUtil.makeGetRequestMessage(serializationService, 2.2f, regionName);
+ protobufProtocolSerializer.serialize(getMessage, outputStream);
+ validateGetResponse(socket, protobufProtocolSerializer, TEST_MULTIOP_VALUE1);
ClientProtocol.Message removeMessage = ProtobufRequestUtilities.createRemoveRequest(TEST_REGION,
serializationService.encode(TEST_KEY));
@@ -245,8 +279,8 @@ public class CacheOperationsJUnitTest {
assertEquals(ClientProtocol.Message.MessageTypeCase.GETRESPONSE, response.getMessageTypeCase());
RegionAPI.GetResponse getResponse = response.getGetResponse();
- assertFalse(getResponse.hasResult());
- }
+ assertFalse(getResponse.hasResult());
+ }
@Test
public void testNewProtocolGetRegionNamesCallSucceeds() throws Exception {
@@ -281,7 +315,7 @@ public class CacheOperationsJUnitTest {
private ClientProtocol.Message deserializeResponse(Socket socket,
- ProtobufProtocolSerializer protobufProtocolSerializer)
+ ProtobufProtocolSerializer protobufProtocolSerializer)
throws InvalidProtocolMessageException, IOException {
ClientProtocol.Message message =
protobufProtocolSerializer.deserialize(socket.getInputStream());
@@ -289,7 +323,7 @@ public class CacheOperationsJUnitTest {
}
private void validateGetRegionNamesResponse(Socket socket,
- ProtobufProtocolSerializer protobufProtocolSerializer)
+ ProtobufProtocolSerializer protobufProtocolSerializer)
throws InvalidProtocolMessageException, IOException {
ClientProtocol.Message response = deserializeResponse(socket, protobufProtocolSerializer);
@@ -301,8 +335,9 @@ public class CacheOperationsJUnitTest {
}
private void validatePutAllResponse(Socket socket,
- ProtobufProtocolSerializer protobufProtocolSerializer,
- Collection<BasicTypes.EncodedValue> expectedFailedKeys) throws Exception {
+ ProtobufProtocolSerializer protobufProtocolSerializer,
+ Collection<BasicTypes.EncodedValue> expectedFailedKeys)
+ throws Exception {
ClientProtocol.Message response = deserializeResponse(socket, protobufProtocolSerializer);
assertEquals(ClientProtocol.Message.MessageTypeCase.PUTALLRESPONSE,
@@ -313,96 +348,99 @@ public class CacheOperationsJUnitTest {
// .getFailedKeysList().stream().map(BasicTypes.KeyedError::getKey);
// assertTrue(failedKeyStream.allMatch(expectedFailedKeys::contains));
- }
+ }
private void validateGetAllResponse(Socket socket,
- ProtobufProtocolSerializer protobufProtocolSerializer)
+ ProtobufProtocolSerializer protobufProtocolSerializer)
throws InvalidProtocolMessageException, IOException, EncodingException {
ClientProtocol.Message response = deserializeResponse(socket, protobufProtocolSerializer);
assertEquals(ClientProtocol.Message.MessageTypeCase.GETALLRESPONSE,
response.getMessageTypeCase());
RegionAPI.GetAllResponse getAllResponse = response.getGetAllResponse();
- assertEquals(3, getAllResponse.getEntriesCount());
- for (BasicTypes.Entry result : getAllResponse.getEntriesList()) {
- String key = null;
- try {
- key = (String) serializationService.decode(result.getKey());
- } catch (org.apache.geode.internal.protocol.protobuf.v1.serialization.exception.DecodingException e) {
- e.printStackTrace();
- }
- String value = null;
- try {
- value = (String) serializationService.decode(result.getValue());
- } catch (org.apache.geode.internal.protocol.protobuf.v1.serialization.exception.DecodingException e) {
- e.printStackTrace();
- }
- switch (key) {
- case TEST_MULTIOP_KEY1:
- assertEquals(TEST_MULTIOP_VALUE1, value);
- break;
- case TEST_MULTIOP_KEY2:
- assertEquals(TEST_MULTIOP_VALUE2, value);
- break;
- case TEST_MULTIOP_KEY3:
- assertEquals(TEST_MULTIOP_VALUE3, value);
- break;
- default:
- Assert.fail("Unexpected key found by getAll: " + key);
- }
- }
+// assertEquals(3, getAllResponse.getEntriesCount());
+// for (BasicTypes.Entry result : getAllResponse.getEntriesList()) {
+// String key = null;
+// try {
+// key = (String) serializationService.decode(result.getKey());
+// } catch (org.apache.geode.internal.protocol.protobuf.v1.serialization.exception.DecodingException e) {
+// e.printStackTrace();
+// }
+// String value = null;
+// try {
+// value = (String) serializationService.decode(result.getValue());
+// } catch (org.apache.geode.internal.protocol.protobuf.v1.serialization.exception.DecodingException e) {
+// e.printStackTrace();
+// }
+// switch (key) {
+// case TEST_MULTIOP_KEY1:
+// assertEquals(TEST_MULTIOP_VALUE1, value);
+// break;
+// case TEST_MULTIOP_KEY2:
+// assertEquals(TEST_MULTIOP_VALUE2, value);
+// break;
+// case TEST_MULTIOP_KEY3:
+// assertEquals(TEST_MULTIOP_VALUE3, value);
+// break;
+// default:
+// Assert.fail("Unexpected key found by getAll: " + key);
+// }
+// }
+ }
private void validateKeySetResponse(Socket socket,
- ProtobufProtocolSerializer protobufProtocolSerializer) throws Exception {
+ ProtobufProtocolSerializer protobufProtocolSerializer)
+ throws Exception {
ClientProtocol.Message response = deserializeResponse(socket, protobufProtocolSerializer);
assertEquals(ClientProtocol.Message.MessageTypeCase.KEYSETRESPONSE,
response.getMessageTypeCase());
RegionAPI.KeySetResponse keySetResponse = response.getKeySetResponse();
- assertEquals(3, keySetResponse.getKeysCount());
- List responseKeys = keySetResponse.getKeysList().stream().map(serializationService::decode)
- .collect(Collectors.toList());
- assertTrue(responseKeys.contains(TEST_MULTIOP_KEY1));
- assertTrue(responseKeys.contains(TEST_MULTIOP_KEY2));
- assertTrue(responseKeys.contains(TEST_MULTIOP_KEY3));
+// assertEquals(3, keySetResponse.getKeysCount());
+// List responseKeys = keySetResponse.getKeysList().stream().map(serializationService::decode)
+// .collect(Collectors.toList());
+// assertTrue(responseKeys.contains(TEST_MULTIOP_KEY1));
+// assertTrue(responseKeys.contains(TEST_MULTIOP_KEY2));
+// assertTrue(responseKeys.contains(TEST_MULTIOP_KEY3));
}
private void validateRemoveResponse(Socket socket,
- ProtobufProtocolSerializer protobufProtocolSerializer) throws Exception {
+ ProtobufProtocolSerializer protobufProtocolSerializer)
+ throws Exception {
ClientProtocol.Message response = deserializeResponse(socket, protobufProtocolSerializer);
assertEquals(ClientProtocol.Message.MessageTypeCase.REMOVERESPONSE,
response.getMessageTypeCase());
}
- private void updatePropertiesForSSLCache(Properties properties) {
- String keyStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
- String trustStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+ private void updatePropertiesForSSLCache(Properties properties) {
+ String keyStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+ String trustStore = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
- properties.put(SSL_ENABLED_COMPONENTS, "server");
- properties.put(ConfigurationProperties.SSL_PROTOCOLS, SSL_PROTOCOLS);
- properties.put(ConfigurationProperties.SSL_CIPHERS, SSL_CIPHERS);
- properties.put(SSL_REQUIRE_AUTHENTICATION, String.valueOf(true));
+ properties.put(SSL_ENABLED_COMPONENTS, "server");
+ properties.put(ConfigurationProperties.SSL_PROTOCOLS, SSL_PROTOCOLS);
+ properties.put(ConfigurationProperties.SSL_CIPHERS, SSL_CIPHERS);
+ properties.put(SSL_REQUIRE_AUTHENTICATION, String.valueOf(true));
- properties.put(SSL_KEYSTORE_TYPE, "jks");
- properties.put(SSL_KEYSTORE, keyStore);
- properties.put(SSL_KEYSTORE_PASSWORD, "password");
- properties.put(SSL_TRUSTSTORE, trustStore);
- properties.put(SSL_TRUSTSTORE_PASSWORD, "password");
- }
+ properties.put(SSL_KEYSTORE_TYPE, "jks");
+ properties.put(SSL_KEYSTORE, keyStore);
+ properties.put(SSL_KEYSTORE_PASSWORD, "password");
+ properties.put(SSL_TRUSTSTORE, trustStore);
+ properties.put(SSL_TRUSTSTORE_PASSWORD, "password");
+ }
- private Socket getSSLSocket() throws IOException {
- String keyStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
- String trustStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
-
- SSLConfig sslConfig = new SSLConfig();
- sslConfig.setEnabled(true);
- sslConfig.setCiphers(SSL_CIPHERS);
- sslConfig.setProtocols(SSL_PROTOCOLS);
- sslConfig.setRequireAuth(true);
- sslConfig.setKeystoreType("jks");
- sslConfig.setKeystore(keyStorePath);
- sslConfig.setKeystorePassword("password");
- sslConfig.setTruststore(trustStorePath);
- sslConfig.setKeystorePassword("password");
+ private Socket getSSLSocket() throws IOException {
+ String keyStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+ String trustStorePath = TestUtil.getResourcePath(CacheOperationsJUnitTest.class, DEFAULT_STORE);
+
+ SSLConfig sslConfig = new SSLConfig();
+ sslConfig.setEnabled(true);
+ sslConfig.setCiphers(SSL_CIPHERS);
+ sslConfig.setProtocols(SSL_PROTOCOLS);
+ sslConfig.setRequireAuth(true);
+ sslConfig.setKeystoreType("jks");
+ sslConfig.setKeystore(keyStorePath);
+ sslConfig.setKeystorePassword("password");
+ sslConfig.setTruststore(trustStorePath);
+ sslConfig.setKeystorePassword("password");
SocketCreator socketCreator = new SocketCreator(sslConfig);
return socketCreator.connectForClient("localhost", cacheServerPort, 5000);
diff --git a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/KeySetOperationHandlerJUnitTest.java b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/KeySetOperationHandlerJUnitTest.java
index a7c77ae..aec7a7a 100644
--- a/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/KeySetOperationHandlerJUnitTest.java
+++ b/geode-protobuf/src/test/java/org/apache/geode/internal/protocol/protobuf/v1/operations/KeySetOperationHandlerJUnitTest.java
@@ -16,7 +16,6 @@ package org.apache.geode.internal.protocol.protobuf.v1.operations;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -32,16 +31,9 @@ import org.junit.experimental.categories.Category;
import org.apache.geode.cache.Region;
import org.apache.geode.internal.protocol.TestExecutionContext;
-import org.apache.geode.internal.protocol.protobuf.v1.BasicTypes;
-import org.apache.geode.internal.protocol.protobuf.v1.ClientProtocol;
-import org.apache.geode.internal.protocol.protobuf.v1.Failure;
-import org.apache.geode.internal.protocol.protobuf.v1.ProtobufRequestUtilities;
-import org.apache.geode.internal.protocol.protobuf.v1.ProtobufSerializationService;
import org.apache.geode.internal.protocol.protobuf.v1.RegionAPI;
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.DecodingException;
-import org.apache.geode.internal.protocol.protobuf.v1.serialization.exception.EncodingException;
import org.apache.geode.test.junit.categories.UnitTest;
@Category(UnitTest.class)
--
To stop receiving notification emails like this one, please contact
udo@apache.org.