summaryrefslogtreecommitdiff
path: root/qpid/java/bdbstore/src
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-03-12 17:23:22 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-03-12 17:23:22 +0000
commit80037617aeadef0a693a51b5ee784f299fb9008c (patch)
tree59c7cf31134c09f2e39f0e03b8cb46b7003d7f18 /qpid/java/bdbstore/src
parent64eb3a8c90b2367b334a33217204714deb95fef0 (diff)
downloadqpid-python-80037617aeadef0a693a51b5ee784f299fb9008c.tar.gz
QPID-5625 : [Java Broker] ensure common configured object values are saved to the store
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1576826 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src')
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java5
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/ConfiguredObjectBinding.java34
2 files changed, 33 insertions, 6 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
index 37fb77f547..7d7ebd32fe 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
@@ -888,11 +888,6 @@ public abstract class AbstractBDBMessageStore implements MessageStore, DurableCo
update(false, id, type, attributes, null);
}
- public void update(ConfiguredObjectRecord... records) throws StoreException
- {
- update(false, records);
- }
-
public void update(boolean createIfNecessary, ConfiguredObjectRecord... records) throws StoreException
{
com.sleepycat.je.Transaction txn = _environment.beginTransaction(null, null);
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/ConfiguredObjectBinding.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/ConfiguredObjectBinding.java
index a408732e2f..bc3beeb78b 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/ConfiguredObjectBinding.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/tuple/ConfiguredObjectBinding.java
@@ -24,6 +24,8 @@ import java.io.IOException;
import java.io.StringWriter;
import java.util.Map;
import java.util.UUID;
+
+import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
import com.sleepycat.bind.tuple.TupleBinding;
@@ -31,14 +33,42 @@ import com.sleepycat.bind.tuple.TupleInput;
import com.sleepycat.bind.tuple.TupleOutput;
import org.apache.qpid.server.store.StoreException;
import org.codehaus.jackson.JsonGenerationException;
+import org.codehaus.jackson.JsonGenerator;
+import org.codehaus.jackson.JsonProcessingException;
+import org.codehaus.jackson.Version;
import org.codehaus.jackson.map.JsonMappingException;
+import org.codehaus.jackson.map.JsonSerializer;
+import org.codehaus.jackson.map.Module;
import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializerProvider;
+import org.codehaus.jackson.map.module.SimpleModule;
public class ConfiguredObjectBinding extends TupleBinding<ConfiguredObjectRecord>
{
private static final ConfiguredObjectBinding INSTANCE = new ConfiguredObjectBinding(null);
+
private final UUID _uuid;
+ private static final Module _module;
+ static
+ {
+ SimpleModule module= new SimpleModule("ConfiguredObjectSerializer", new Version(1,0,0,null));
+
+ final JsonSerializer<ConfiguredObject> serializer = new JsonSerializer<ConfiguredObject>()
+ {
+ @Override
+ public void serialize(final ConfiguredObject value,
+ final JsonGenerator jgen,
+ final SerializerProvider provider)
+ throws IOException, JsonProcessingException
+ {
+ jgen.writeString(value.getId().toString());
+ }
+ };
+ module.addSerializer(ConfiguredObject.class, serializer);
+
+ _module = module;
+ }
public static ConfiguredObjectBinding getInstance()
{
@@ -74,7 +104,9 @@ public class ConfiguredObjectBinding extends TupleBinding<ConfiguredObjectRecord
try
{
StringWriter writer = new StringWriter();
- new ObjectMapper().writeValue(writer, object.getAttributes());
+ final ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.registerModule(_module);
+ objectMapper.writeValue(writer, object.getAttributes());
tupleOutput.writeString(object.getType());
tupleOutput.writeString(writer.toString());
}