DATAGEODE-71 - Change all com.gemstone.gemfire package references in the RegionDataAccessTracingAspect Pointcuts to org.apache.geode.
This commit is contained in:
@@ -0,0 +1,516 @@
|
||||
/*
|
||||
* Copyright 2017 the original author or authors.
|
||||
*
|
||||
* Licensed 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.springframework.data.gemfire.config.annotation;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.geode.cache.GemFireCache;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.cache.client.ClientRegionShortcut;
|
||||
import org.junit.Assume;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.data.gemfire.client.ClientRegionFactoryBean;
|
||||
import org.springframework.data.gemfire.config.annotation.support.RegionDataAccessTracingAspect;
|
||||
import org.springframework.data.gemfire.test.logging.slf4j.logback.TestAppender;
|
||||
import org.springframework.data.gemfire.test.mock.annotation.EnableGemFireMockObjects;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link RegionDataAccessTracingAspect}.
|
||||
*
|
||||
* @author John Blum
|
||||
* @see org.junit.Test
|
||||
* @see org.apache.geode.cache.GemFireCache
|
||||
* @see org.apache.geode.cache.Region
|
||||
* @see org.springframework.data.gemfire.client.ClientRegionFactoryBean
|
||||
* @see org.springframework.data.gemfire.config.annotation.support.RegionDataAccessTracingAspect
|
||||
* @see org.springframework.data.gemfire.test.logging.slf4j.logback.TestAppender
|
||||
* @see org.springframework.data.gemfire.test.mock.annotation.EnableGemFireMockObjects
|
||||
* @see org.springframework.test.context.ContextConfiguration
|
||||
* @see org.springframework.test.context.junit4.SpringRunner
|
||||
* @since 2.0.2
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@ContextConfiguration
|
||||
public class RegionDataAccessTracingAspectUnitTests {
|
||||
|
||||
private static final String LOGBACK_LOGGER_CLASS_NAME = "ch.qos.logback.classic.Logger";
|
||||
|
||||
@BeforeClass
|
||||
public static void setupBeforeTestSuite() {
|
||||
assumeLogbackIsPresent();
|
||||
}
|
||||
|
||||
private static void assumeLogbackIsPresent() {
|
||||
Assume.assumeTrue(String.format("Ignoring test class [%s]; Logback is not on the classpath",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()), ClassUtils.isPresent(LOGBACK_LOGGER_CLASS_NAME,
|
||||
Thread.currentThread().getContextClassLoader()));
|
||||
}
|
||||
|
||||
@Resource(name = "ClientRegion")
|
||||
@SuppressWarnings("all")
|
||||
private Region<Object, Object> region;
|
||||
|
||||
private Runnable regionCallbackArgument(AtomicBoolean called) {
|
||||
return () -> called.set(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionCreate() {
|
||||
|
||||
this.region.create("testKey", "testValue");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.create\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionCreate",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionCreateWithCallbackArgument() {
|
||||
|
||||
this.region.create("testKey", "testValue",
|
||||
regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.create\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionCreateWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionGet() {
|
||||
|
||||
this.region.get("testKey");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.get\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionGet",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionGetAll() {
|
||||
|
||||
this.region.getAll(Arrays.asList("testKeyOne", "testKeyTwo", "testKeyThree"));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.getAll\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionGetAll",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionGetAllWithCallbackArgument() {
|
||||
|
||||
this.region.getAll(Arrays.asList("testKeyOne", "testKeyTwo", "testKeyThree"),
|
||||
regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.getAll\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionGetAllWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionGetEntry() {
|
||||
|
||||
this.region.getEntry("testKey");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.getEntry\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionGetEntry",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionInvalidate() {
|
||||
|
||||
this.region.invalidate("testKey");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.invalidate\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionInvalidate",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionInvalidateWithCallbackArgument() {
|
||||
|
||||
this.region.invalidate("testKey", regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.invalidate\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionInvalidateWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionKeySet() {
|
||||
|
||||
this.region.keySet();
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.keySet\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionKeySet",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionKeySetOnServer() {
|
||||
|
||||
this.region.keySetOnServer();
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.keySetOnServer\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionKeySetOnServer",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionLocalClear() {
|
||||
|
||||
this.region.localClear();
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.localClear\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionLocalClear",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionLocalDestroy() {
|
||||
|
||||
this.region.localDestroy("testKey");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.localDestroy\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionLocalDestroy",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionLocalDestroyWithCallbackArgument() {
|
||||
|
||||
this.region.localDestroy("testKey", regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.localDestroy\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionLocalDestroyWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionLocalInvalidate() {
|
||||
|
||||
this.region.localInvalidate("testKey");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.localInvalidate\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionLocalInvalidate",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionLocalInvalidateWithCallbackArgument() {
|
||||
|
||||
this.region.localInvalidate("testKey", regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.localInvalidate\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionLocalInvalidateWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionPut() {
|
||||
|
||||
this.region.put("testKey", "testValue");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.put\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionPut",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionPutWithCallbackArgument() {
|
||||
|
||||
this.region.put("testKey", "testValue", regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.put\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionPutWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionPutAll() {
|
||||
|
||||
this.region.putAll(Collections.emptyMap());
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.putAll\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionPutAll",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionPutAllWithCallbackArgument() {
|
||||
|
||||
this.region.putAll(Collections.emptyMap(), regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.putAll\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionPutAllWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionPutIfAbsent() {
|
||||
|
||||
this.region.putIfAbsent("testKey", "testValue");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.putIfAbsent\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionPutIfAbsent",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionQuery() throws Exception {
|
||||
|
||||
this.region.query("SELECT * FROM /Region WHERE id = ?");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.query\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionQuery",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionRemoveWithKey() {
|
||||
|
||||
this.region.remove("testKey");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.remove\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionRemoveWithKey",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionRemoveWithKeyAndValue() {
|
||||
|
||||
this.region.remove("testKey", "testValue");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.remove\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionRemoveWithKeyAndValue",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionRemoveAll() {
|
||||
|
||||
this.region.removeAll(Arrays.asList("testKeyOne", "testKeyTwo", "testKeyThree"));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.removeAll\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionRemoveAll",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionRemoveAllWithCallbackArgument() {
|
||||
|
||||
this.region.removeAll(Arrays.asList("testKeyOne", "testKeyTwo", "testKeyThree"),
|
||||
regionCallbackArgument(new AtomicBoolean(false)));
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.removeAll\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionRemoveAllWithCallbackArgument",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionReplace() {
|
||||
|
||||
this.region.replace("testKey", "testValue");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.replace\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionReplace",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionReplaceWithKeyOldValueNewValue() {
|
||||
|
||||
this.region.replace("testKey", "testOldValue", "testNewValue");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.replace\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionReplaceWithKeyOldValueNewValue",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionSelectValue() throws Exception {
|
||||
|
||||
this.region.selectValue("id = ?");
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.selectValue\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionSelectValue",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionSize() throws Exception {
|
||||
|
||||
this.region.size();
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.size\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionSize",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionSizeOnServer() throws Exception {
|
||||
|
||||
this.region.sizeOnServer();
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.sizeOnServer\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionSizeOnServer",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void logsRegionValues() throws Exception {
|
||||
|
||||
this.region.values();
|
||||
|
||||
String logMessage = TestAppender.getInstance().lastLogMessage();
|
||||
|
||||
assertThat(logMessage)
|
||||
.containsPattern("Region data access call \\[org.apache.geode.cache.Region.*.values\\(..\\)\\] with stack trace");
|
||||
assertThat(logMessage).contains(String.format("%s.logsRegionValues",
|
||||
RegionDataAccessTracingAspectUnitTests.class.getName()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesNotLogRegionGetName() {
|
||||
|
||||
this.region.getName();
|
||||
|
||||
assertThat(TestAppender.getInstance().lastLogMessage()).isNull();
|
||||
}
|
||||
|
||||
@ClientCacheApplication
|
||||
@EnableGemFireMockObjects
|
||||
@EnableRegionDataAccessTracing
|
||||
static class TestConfiguration {
|
||||
|
||||
@Bean("ClientRegion")
|
||||
@SuppressWarnings("unused")
|
||||
public ClientRegionFactoryBean<Object, Object> clientRegion(GemFireCache gemfireCache) {
|
||||
|
||||
ClientRegionFactoryBean<Object, Object> clientRegion = new ClientRegionFactoryBean<>();
|
||||
|
||||
clientRegion.setCache(gemfireCache);
|
||||
clientRegion.setClose(false);
|
||||
clientRegion.setShortcut(ClientRegionShortcut.LOCAL);
|
||||
|
||||
return clientRegion;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright 2017 the original author or authors.
|
||||
*
|
||||
* Licensed 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.springframework.data.gemfire.test.logging.slf4j.logback;
|
||||
|
||||
import static org.springframework.data.gemfire.util.RuntimeExceptionFactory.newIllegalStateException;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.Stack;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import ch.qos.logback.classic.spi.ILoggingEvent;
|
||||
import ch.qos.logback.core.Appender;
|
||||
import ch.qos.logback.core.AppenderBase;
|
||||
|
||||
/**
|
||||
* The {@link TestAppender} class is a SLF4J, Logback {@link Appender} implementation used for testing purposes.
|
||||
*
|
||||
* @author John Blum
|
||||
* @see ch.qos.logback.core.Appender
|
||||
* @see ch.qos.logback.core.AppenderBase
|
||||
* @since 2.0.2
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
public class TestAppender extends AppenderBase<ILoggingEvent> implements Appender<ILoggingEvent> {
|
||||
|
||||
private static final AtomicReference<TestAppender> INSTANCE = new AtomicReference<>(null);
|
||||
|
||||
private static final Stack<String> logMessages = new Stack<>();
|
||||
|
||||
public static TestAppender getInstance() {
|
||||
|
||||
return Optional.ofNullable(INSTANCE.get())
|
||||
.orElseThrow(() -> newIllegalStateException("[%s] was not properly configured",
|
||||
TestAppender.class.getName()));
|
||||
}
|
||||
|
||||
public TestAppender() {
|
||||
INSTANCE.compareAndSet(null, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void append(ILoggingEvent event) {
|
||||
|
||||
Optional.ofNullable(event)
|
||||
.map(ILoggingEvent::getFormattedMessage)
|
||||
.filter(StringUtils::hasText)
|
||||
.ifPresent(logMessages::push);
|
||||
}
|
||||
|
||||
public String lastLogMessage() {
|
||||
synchronized (logMessages) {
|
||||
return (logMessages.empty() ? null : logMessages.pop());
|
||||
}
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
logMessages.clear();
|
||||
}
|
||||
}
|
||||
@@ -1326,7 +1326,8 @@ public abstract class MockGemFireObjectsSupport extends MockObjectsSupport {
|
||||
data.get(invocation.<K>getArgument(0)));
|
||||
|
||||
when(mockRegion.getEntry(ArgumentMatchers.<K>any())).thenAnswer(invocation ->
|
||||
data.entrySet().stream().filter(entry -> entry.getKey().equals(invocation.getArgument(0))).findFirst());
|
||||
data.entrySet().stream().filter(entry -> entry.getKey().equals(invocation.getArgument(0)))
|
||||
.findFirst().orElse(null));
|
||||
|
||||
when(mockRegion.put(any(), any())).thenAnswer(invocation ->
|
||||
data.put(invocation.getArgument(0), invocation.getArgument(1)));
|
||||
|
||||
Reference in New Issue
Block a user