From 59eb2490a0af4751fcb59cceded0b17637f412ee Mon Sep 17 00:00:00 2001 From: Slim Bouguerra Date: Wed, 6 Apr 2016 15:02:18 -0500 Subject: [PATCH] MapLookupFactory need to be Ser/Desr. --- .../extraction/MapLookupExtractorFactory.java | 2 + .../MapLookupExtractorFactoryTest.java | 13 +++++ .../query/lookup/LookupSnapshotTakerTest.java | 52 ++----------------- 3 files changed, 19 insertions(+), 48 deletions(-) diff --git a/processing/src/main/java/io/druid/query/extraction/MapLookupExtractorFactory.java b/processing/src/main/java/io/druid/query/extraction/MapLookupExtractorFactory.java index 6322a2aa57e..0f9a7b793d9 100644 --- a/processing/src/main/java/io/druid/query/extraction/MapLookupExtractorFactory.java +++ b/processing/src/main/java/io/druid/query/extraction/MapLookupExtractorFactory.java @@ -30,7 +30,9 @@ import java.util.Map; public class MapLookupExtractorFactory implements LookupExtractorFactory { + @JsonProperty private final Map map; + @JsonProperty private final boolean isOneToOne; private final MapLookupExtractor lookupExtractor; diff --git a/processing/src/test/java/io/druid/query/extraction/MapLookupExtractorFactoryTest.java b/processing/src/test/java/io/druid/query/extraction/MapLookupExtractorFactoryTest.java index d252d064664..8074fcc85c0 100644 --- a/processing/src/test/java/io/druid/query/extraction/MapLookupExtractorFactoryTest.java +++ b/processing/src/test/java/io/druid/query/extraction/MapLookupExtractorFactoryTest.java @@ -19,10 +19,15 @@ package io.druid.query.extraction; +import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.ImmutableMap; +import io.druid.jackson.DefaultObjectMapper; +import io.druid.query.lookup.LookupExtractorFactory; import org.junit.Assert; import org.junit.Test; +import java.io.IOException; + public class MapLookupExtractorFactoryTest { private static final String KEY = "foo"; @@ -46,4 +51,12 @@ public class MapLookupExtractorFactoryTest Assert.assertTrue(factory.replaces(new MapLookupExtractorFactory(ImmutableMap.of(KEY, VALUE + "1"), true))); Assert.assertTrue(factory.replaces(null)); } + + @Test + public void testSerDeserMapLookupExtractorFactory() throws IOException + { + ObjectMapper mapper = new DefaultObjectMapper(); + LookupExtractorFactory lookupExtractorFactory = new MapLookupExtractorFactory(ImmutableMap.of("key", "value"), true); + Assert.assertEquals(lookupExtractorFactory, mapper.reader(LookupExtractorFactory.class).readValue(mapper.writeValueAsString(lookupExtractorFactory))); + } } diff --git a/processing/src/test/java/io/druid/query/lookup/LookupSnapshotTakerTest.java b/processing/src/test/java/io/druid/query/lookup/LookupSnapshotTakerTest.java index 67b131d13e4..b4e3df29671 100644 --- a/processing/src/test/java/io/druid/query/lookup/LookupSnapshotTakerTest.java +++ b/processing/src/test/java/io/druid/query/lookup/LookupSnapshotTakerTest.java @@ -19,13 +19,13 @@ package io.druid.query.lookup; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.io.Files; import com.metamx.common.ISE; import com.metamx.common.StringUtils; +import io.druid.query.extraction.MapLookupExtractorFactory; import io.druid.segment.TestHelper; import org.junit.Assert; import org.junit.Before; @@ -33,7 +33,6 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import javax.annotation.Nullable; import java.io.File; import java.io.IOException; import java.util.Collections; @@ -55,9 +54,6 @@ public class LookupSnapshotTakerTest { basePersistDirectory = temporaryFolder.newFolder().getAbsolutePath(); lookupSnapshotTaker = new LookupSnapshotTaker(mapper, basePersistDirectory); - mapper.registerSubtypes(LookupFactoryMock.class); - mapper.registerSubtypes(LookupExtractorFactory.class); - mapper.addMixIn(LookupExtractorFactory.class, LookupFactoryMock.class); } @Test @@ -66,7 +62,7 @@ public class LookupSnapshotTakerTest LookupBean lookupBean = new LookupBean(); lookupBean.name = "name"; - lookupBean.factory = new LookupFactoryMock(); + lookupBean.factory = new MapLookupExtractorFactory(ImmutableMap.of("key", "value"), true); List lookupBeanList = Lists.newArrayList(lookupBean); lookupSnapshotTaker.takeSnapshot(lookupBeanList); List actualList = lookupSnapshotTaker.pullExistingSnapshot(); @@ -81,7 +77,7 @@ public class LookupSnapshotTakerTest LookupSnapshotTaker lookupSnapshotTaker = new LookupSnapshotTaker(mapper, directory.getAbsolutePath()); LookupBean lookupBean = new LookupBean(); lookupBean.name = "name"; - lookupBean.factory = new LookupFactoryMock(); + lookupBean.factory = new MapLookupExtractorFactory(ImmutableMap.of("key", "value"), true); List lookupBeanList = Lists.newArrayList(lookupBean); lookupSnapshotTaker.takeSnapshot(lookupBeanList); } @@ -113,44 +109,4 @@ public class LookupSnapshotTakerTest List actualList = lookupSnapshotTaker.pullExistingSnapshot(); Assert.assertEquals(Collections.EMPTY_LIST, actualList); } - - @JsonTypeName("mock") - private class LookupFactoryMock implements LookupExtractorFactory - { - - @JsonCreator - public LookupFactoryMock() - { - } - - @Override - public boolean start() - { - return true; - } - - @Override - public boolean close() - { - return true; - } - - @Override - public boolean replaces(@Nullable LookupExtractorFactory other) - { - return false; - } - - @Override - public LookupExtractor get() - { - return null; - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof LookupFactoryMock; - } - } }