Search in sources :

Example 16 with MyObject

use of com.examples.snapshot.MyObject in project geode by apache.

the class CacheSnapshotJUnitTest method testFilter.

@Test
public void testFilter() throws Exception {
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            Region<Integer, MyObject> region = rgen.createRegion(cache, ds.getName(), rt, "test-" + rt.name() + "-" + st.name());
            region.putAll(createExpected(st));
        }
    }
    SnapshotFilter<Object, Object> even = new SnapshotFilter<Object, Object>() {

        @Override
        public boolean accept(Entry<Object, Object> entry) {
            return ((Integer) entry.getKey()) % 2 == 0;
        }
    };
    SnapshotFilter<Object, Object> odd = new SnapshotFilter<Object, Object>() {

        @Override
        public boolean accept(Entry<Object, Object> entry) {
            return ((Integer) entry.getKey()) % 2 == 1;
        }
    };
    // save even entries
    CacheSnapshotService css = cache.getSnapshotService();
    SnapshotOptions<Object, Object> options = css.createOptions().setFilter(even);
    cache.getSnapshotService().save(snaps, SnapshotFormat.GEMFIRE, options);
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            Region region = cache.getRegion("test-" + rt.name() + "-" + st.name());
            region.destroyRegion();
            rgen.createRegion(cache, ds.getName(), rt, "test-" + rt.name() + "-" + st.name());
        }
    }
    // load odd entries
    File[] snapshots = snaps.listFiles(new FileFilter() {

        @Override
        public boolean accept(File pathname) {
            return pathname.getName().startsWith("snapshot-");
        }
    });
    options = css.createOptions().setFilter(odd);
    css.load(snapshots, SnapshotFormat.GEMFIRE, options);
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            Region region = cache.getRegion("test-" + rt.name() + "-" + st.name());
            assertEquals("Comparison failure for " + rt.name() + "/" + st.name(), 0, region.size());
        }
    }
}
Also used : RegionType(org.apache.geode.cache.snapshot.RegionGenerator.RegionType) Entry(java.util.Map.Entry) MyObject(com.examples.snapshot.MyObject) Region(org.apache.geode.cache.Region) MyObject(com.examples.snapshot.MyObject) FileFilter(java.io.FileFilter) File(java.io.File) SerializationType(org.apache.geode.cache.snapshot.RegionGenerator.SerializationType) Test(org.junit.Test) IntegrationTest(org.apache.geode.test.junit.categories.IntegrationTest)

Example 17 with MyObject

use of com.examples.snapshot.MyObject in project geode by apache.

the class CacheSnapshotJUnitTest method testExportAndImport.

@Test
public void testExportAndImport() throws Exception {
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            Region<Integer, MyObject> region = rgen.createRegion(cache, ds.getName(), rt, "test-" + rt.name() + "-" + st.name());
            region.putAll(createExpected(st));
        }
    }
    // save all regions
    cache.getSnapshotService().save(snaps, SnapshotFormat.GEMFIRE);
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            String name = "test-" + rt.name() + "-" + st.name();
            Region<Integer, MyObject> region = cache.getRegion(name);
            region.destroyRegion();
            rgen.createRegion(cache, ds.getName(), rt, name);
        }
    }
    // load all regions
    cache.getSnapshotService().load(snaps, SnapshotFormat.GEMFIRE);
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            Region<Integer, MyObject> region = cache.getRegion("test-" + rt.name() + "-" + st.name());
            for (Entry<Integer, MyObject> entry : createExpected(st).entrySet()) {
                assertEquals("Comparison failure for " + rt.name() + "/" + st.name(), entry.getValue(), region.get(entry.getKey()));
            }
        }
    }
}
Also used : RegionType(org.apache.geode.cache.snapshot.RegionGenerator.RegionType) MyObject(com.examples.snapshot.MyObject) SerializationType(org.apache.geode.cache.snapshot.RegionGenerator.SerializationType) Test(org.junit.Test) IntegrationTest(org.apache.geode.test.junit.categories.IntegrationTest)

Example 18 with MyObject

use of com.examples.snapshot.MyObject in project geode by apache.

the class SnapshotDUnitTest method verifyCallbacksInvoked.

private void verifyCallbacksInvoked() throws Exception {
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            SerializableCallable counts = new SerializableCallable() {

                @Override
                public Object call() throws Exception {
                    String name = "test-" + rt.name() + "-" + st.name();
                    Region<Integer, MyObject> region = getCache().getRegion(name);
                    // get CacheWriter and CacheListener events
                    CountingCacheWriter writer = (CountingCacheWriter) region.getAttributes().getCacheWriter();
                    CountingCacheListener listener = (CountingCacheListener) region.getAttributes().getCacheListener();
                    // get AsyncEventListener events
                    int numAeqEvents = 0;
                    AsyncEventQueue aeq = getCache().getAsyncEventQueue(name);
                    CountingAsyncEventListener aeqListener = (CountingAsyncEventListener) aeq.getAsyncEventListener();
                    if (aeq.isPrimary()) {
                        Awaitility.waitAtMost(60, TimeUnit.SECONDS).until(() -> aeqListener.getEvents() == NUM_ENTRIES);
                        numAeqEvents = aeqListener.getEvents();
                    }
                    return new int[] { writer.getEvents(), listener.getEvents(), numAeqEvents };
                }
            };
            Object result = forEachVm(counts, true);
            int totalWriterUpdates = 0, totalListenerUpdates = 0, totalAeqEvents = 0;
            List<int[]> list = (List) result;
            for (int[] vmResult : list) {
                totalWriterUpdates += vmResult[0];
                totalListenerUpdates += vmResult[1];
                totalAeqEvents += vmResult[2];
            }
            if (rt.name().contains("PARTITION")) {
                assertEquals(NUM_ENTRIES, totalListenerUpdates);
            } else {
                assertEquals(NUM_ENTRIES * (Host.getHost(0).getVMCount() + 1), totalListenerUpdates);
            }
            assertEquals(NUM_ENTRIES, totalWriterUpdates);
            assertEquals(NUM_ENTRIES, totalAeqEvents);
        }
    }
}
Also used : RegionType(org.apache.geode.cache.snapshot.RegionGenerator.RegionType) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) SerializableCallable(org.apache.geode.test.dunit.SerializableCallable) AsyncEventQueue(org.apache.geode.cache.asyncqueue.AsyncEventQueue) MyObject(com.examples.snapshot.MyObject) MyObject(com.examples.snapshot.MyObject) ArrayList(java.util.ArrayList) List(java.util.List) SerializationType(org.apache.geode.cache.snapshot.RegionGenerator.SerializationType)

Example 19 with MyObject

use of com.examples.snapshot.MyObject in project geode by apache.

the class SnapshotDUnitTest method updateRegions.

private void updateRegions() {
    for (final RegionType rt : RegionType.values()) {
        for (final SerializationType st : SerializationType.values()) {
            String name = "test-" + rt.name() + "-" + st.name();
            // overwrite region with bad data
            Region<Integer, MyObject> region = getCache().getRegion(name);
            for (Entry<Integer, MyObject> entry : region.entrySet()) {
                region.put(entry.getKey(), new MyObject(Integer.MAX_VALUE, "bad!!"));
            }
        }
    }
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) RegionType(org.apache.geode.cache.snapshot.RegionGenerator.RegionType) MyObject(com.examples.snapshot.MyObject) SerializationType(org.apache.geode.cache.snapshot.RegionGenerator.SerializationType)

Example 20 with MyObject

use of com.examples.snapshot.MyObject in project geode by apache.

the class WanSnapshotJUnitTest method testWanCallback.

@Test
public void testWanCallback() throws Exception {
    int count = 1000;
    for (int i = 0; i < count; i++) {
        region.put(i, new MyObject(i, "clienttest " + i));
    }
    File snapshot = new File("wan.snapshot");
    region.getSnapshotService().save(snapshot, SnapshotFormat.GEMFIRE);
    region.clear();
    long start = System.currentTimeMillis();
    // wait for the events to drain out
    while (!wan.ticker.compareAndSet(count, 0)) {
        Thread.sleep(100);
        if (System.currentTimeMillis() - start > MAX_WAIT) {
            fail("Event did not drain in 5 minutes");
        }
    }
    region.getSnapshotService().load(snapshot, SnapshotFormat.GEMFIRE);
    // delay, just in case we get any events
    Thread.sleep(1000);
    assertEquals("WAN callback detected during import", 0, wan.ticker.get());
    assertEquals(count, region.size());
}
Also used : MyObject(com.examples.snapshot.MyObject) File(java.io.File) Test(org.junit.Test) IntegrationTest(org.apache.geode.test.junit.categories.IntegrationTest)

Aggregations

MyObject (com.examples.snapshot.MyObject)25 Test (org.junit.Test)18 RegionType (org.apache.geode.cache.snapshot.RegionGenerator.RegionType)15 SerializationType (org.apache.geode.cache.snapshot.RegionGenerator.SerializationType)15 IntegrationTest (org.apache.geode.test.junit.categories.IntegrationTest)12 File (java.io.File)11 SerializableCallable (org.apache.geode.test.dunit.SerializableCallable)9 DistributedTest (org.apache.geode.test.junit.categories.DistributedTest)6 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)5 Entry (java.util.Map.Entry)4 Cache (org.apache.geode.cache.Cache)4 ClientSubscriptionTest (org.apache.geode.test.junit.categories.ClientSubscriptionTest)4 HashMap (java.util.HashMap)3 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)3 MyPdxSerializer (com.examples.snapshot.MyPdxSerializer)2 CacheFactory (org.apache.geode.cache.CacheFactory)2 Region (org.apache.geode.cache.Region)2 CqAttributesFactory (org.apache.geode.cache.query.CqAttributesFactory)2 CqEvent (org.apache.geode.cache.query.CqEvent)2 CqQuery (org.apache.geode.cache.query.CqQuery)2