You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2016/09/27 14:12:55 UTC
svn commit: r1762490 - in /qpid/java/trunk:
bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/
broker-core/src/main/java/org/apache/qpid/server/model/
broker-core/src/main/java/org/apache/qpid/server/store/serializer/
broker-core/src...
Author: rgodfrey
Date: Tue Sep 27 14:12:55 2016
New Revision: 1762490
URL: http://svn.apache.org/viewvc?rev=1762490&view=rev
Log:
QPID-7379 : Address review comments
Added:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializerFactory.java (with props)
Modified:
qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializer.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/DTXRecord.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Deserializer.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageInstanceRecord.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageStoreSerializer_v1.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/QueueMappingRecord.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Record.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/RecordType.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Serializer.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/VersionRecord.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java Tue Sep 27 14:12:55 2016
@@ -456,7 +456,7 @@ public class BDBHAReplicaVirtualHostImpl
}
@Override
- public Map<String, Object> extractConfig(boolean includeSecureAttributes)
+ public Map<String, Object> exportConfig(boolean includeSecureAttributes)
{
return Collections.emptyMap();
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/VirtualHost.java Tue Sep 27 14:12:55 2016
@@ -216,7 +216,7 @@ public interface VirtualHost<X extends V
int publishMessage(@Param(name = "message")ManageableMessage message);
@ManagedOperation(nonModifying = true, description = "Extract configuration", paramRequiringSecure = "includeSecureAttributes")
- Map<String,Object> extractConfig(@Param(name="includeSecureAttributes",
+ Map<String,Object> exportConfig(@Param(name="includeSecureAttributes",
description = "include attributes that may contain passwords or other "
+ "confidential information",
defaultValue = "false") boolean includeSecureAttributes);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializer.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializer.java Tue Sep 27 14:12:55 2016
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.server.store.serializer;
+import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -37,4 +38,12 @@ public interface MessageStoreSerializer
final MessageStore.MessageStoreReader storeReader,
OutputStream outputStream) throws IOException;
void deserialize(final Map<String, UUID> queueMap, MessageStore store, InputStream inputStream) throws IOException;
+
+ interface Factory
+ {
+ MessageStoreSerializer newInstance();
+ MessageStoreSerializer newInstance(DataInputStream input) throws IOException;
+ }
+
+ Factory FACTORY = new MessageStoreSerializerFactory();
}
Added: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializerFactory.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializerFactory.java?rev=1762490&view=auto
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializerFactory.java (added)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializerFactory.java Tue Sep 27 14:12:55 2016
@@ -0,0 +1,71 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.qpid.server.store.serializer;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+
+import org.apache.qpid.server.plugin.QpidServiceLoader;
+
+class MessageStoreSerializerFactory implements MessageStoreSerializer.Factory
+{
+ @Override
+ public MessageStoreSerializer newInstance()
+ {
+ return new QpidServiceLoader().getInstancesByType(MessageStoreSerializer.class).get(MessageStoreSerializer.LATEST);
+ }
+
+ @Override
+ public MessageStoreSerializer newInstance(final DataInputStream data) throws IOException
+ {
+
+ // All encodings should start 0x00 << int length of the version string>> << version string in UTF-8 >>
+ data.mark(50);
+ if (data.read() != 0)
+ {
+ throw new IllegalArgumentException("Invalid format for upload");
+ }
+ int stringLength = data.readInt();
+ byte[] stringBytes = new byte[stringLength];
+ data.readFully(stringBytes);
+
+ String version = new String(stringBytes, StandardCharsets.UTF_8);
+
+ data.reset();
+
+ Map<String, MessageStoreSerializer> serializerMap =
+ new QpidServiceLoader().getInstancesByType(MessageStoreSerializer.class);
+
+ MessageStoreSerializer serializer = serializerMap.get(version);
+
+ if(serializer == null)
+ {
+ throw new IllegalArgumentException("Message store import uses version '"
+ + version + "' which is not supported");
+ }
+ else
+ {
+ return serializer;
+ }
+ }
+}
Propchange: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/MessageStoreSerializerFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/DTXRecord.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/DTXRecord.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/DTXRecord.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/DTXRecord.java Tue Sep 27 14:12:55 2016
@@ -23,7 +23,6 @@ package org.apache.qpid.server.store.ser
import java.io.IOException;
import java.util.UUID;
-import org.apache.qpid.bytebuffer.QpidByteBuffer;
import org.apache.qpid.server.message.EnqueueableMessage;
import org.apache.qpid.server.store.MessageDurability;
import org.apache.qpid.server.store.MessageEnqueueRecord;
@@ -68,39 +67,31 @@ class DTXRecord implements Record
}
@Override
- public byte[] getData()
+ public void writeData(final Serializer output) throws IOException
{
- byte[] data = new byte[24
- + _xid.getBranchId().length
- + _xid.getGlobalId().length
- + (24 * _enqueues.length + _dequeues.length)];
- QpidByteBuffer buf = QpidByteBuffer.wrap(data);
- buf.putLong(_xid.getFormat());
- buf.putInt(_xid.getGlobalId().length);
- buf.put(_xid.getGlobalId());
- buf.putInt(_xid.getBranchId().length);
- buf.put(_xid.getBranchId());
+ output.writeLong(_xid.getFormat());
+ output.writeInt(_xid.getGlobalId().length);
+ output.write(_xid.getGlobalId());
+ output.writeInt(_xid.getBranchId().length);
+ output.write(_xid.getBranchId());
- buf.putInt(_enqueues.length);
+ output.writeInt(_enqueues.length);
for(Transaction.EnqueueRecord record : _enqueues)
{
- buf.putLong(record.getMessage().getMessageNumber());
- buf.putLong(record.getResource().getId().getMostSignificantBits());
- buf.putLong(record.getResource().getId().getLeastSignificantBits());
+ output.writeLong(record.getMessage().getMessageNumber());
+ output.writeLong(record.getResource().getId().getMostSignificantBits());
+ output.writeLong(record.getResource().getId().getLeastSignificantBits());
}
-
- buf.putInt(_dequeues.length);
+ output.writeInt(_dequeues.length);
for(Transaction.DequeueRecord record : _dequeues)
{
- buf.putLong(record.getEnqueueRecord().getMessageNumber());
- buf.putLong(record.getEnqueueRecord().getQueueId().getMostSignificantBits());
- buf.putLong(record.getEnqueueRecord().getQueueId().getLeastSignificantBits());
+ output.writeLong(record.getEnqueueRecord().getMessageNumber());
+ output.writeLong(record.getEnqueueRecord().getQueueId().getMostSignificantBits());
+ output.writeLong(record.getEnqueueRecord().getQueueId().getLeastSignificantBits());
}
- buf.dispose();
- return data;
}
public static DTXRecord read(final Deserializer deserializer) throws IOException
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Deserializer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Deserializer.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Deserializer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Deserializer.java Tue Sep 27 14:12:55 2016
@@ -59,22 +59,22 @@ class Deserializer
byte[] readBytes(final int size) throws IOException
{
- byte[] bytes = new byte[size];
- int pos = 0;
- while(pos < size)
- {
- int read;
+ byte[] bytes = new byte[size];
+ int pos = 0;
+ while(pos < size)
+ {
+ int read;
- read = _inputStream.read(bytes, pos, size - pos);
- if (read == -1)
- {
- throw new EOFException("Unexpected end of input");
- }
- else
- {
- pos += read;
- }
+ read = _inputStream.read(bytes, pos, size - pos);
+ if (read == -1)
+ {
+ throw new EOFException("Unexpected end of input");
}
+ else
+ {
+ pos += read;
+ }
+ }
_digest.update(bytes);
return bytes;
}
@@ -131,9 +131,9 @@ class Deserializer
}
@Override
- public byte[] getData()
+ public void writeData(final Serializer output) throws IOException
{
- return fileDigest;
+ output.write(fileDigest);
}
};
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageInstanceRecord.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageInstanceRecord.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageInstanceRecord.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageInstanceRecord.java Tue Sep 27 14:12:55 2016
@@ -23,7 +23,6 @@ package org.apache.qpid.server.store.ser
import java.io.IOException;
import java.util.UUID;
-import org.apache.qpid.bytebuffer.QpidByteBuffer;
import org.apache.qpid.server.store.MessageEnqueueRecord;
class MessageInstanceRecord implements Record
@@ -60,15 +59,11 @@ class MessageInstanceRecord implements R
}
@Override
- public byte[] getData()
+ public void writeData(final Serializer output) throws IOException
{
- byte[] data = new byte[24];
- QpidByteBuffer buf = QpidByteBuffer.wrap(data);
- buf.putLong(_messageNumber);
- buf.putLong(_queueId.getMostSignificantBits());
- buf.putLong(_queueId.getLeastSignificantBits());
- buf.dispose();
- return data;
+ output.writeLong(_messageNumber);
+ output.writeLong(_queueId.getMostSignificantBits());
+ output.writeLong(_queueId.getLeastSignificantBits());
}
public static MessageInstanceRecord read(final Deserializer deserializer) throws IOException
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java Tue Sep 27 14:12:55 2016
@@ -73,17 +73,13 @@ class MessageRecord implements Record
}
@Override
- public byte[] getData()
+ public void writeData(final Serializer output) throws IOException
{
- byte[] data = new byte[getLength()];
- QpidByteBuffer buf = QpidByteBuffer.wrap(data);
- buf.putLong(_messageNumber);
- buf.putInt(_metaData.length);
- buf.put(_metaData);
- buf.putInt(_content.length);
- buf.put(_content);
- buf.dispose();
- return data;
+ output.writeLong(_messageNumber);
+ output.writeInt(_metaData.length);
+ output.write(_metaData);
+ output.writeInt(_content.length);
+ output.write(_content);
}
public long getMessageNumber()
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageStoreSerializer_v1.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageStoreSerializer_v1.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageStoreSerializer_v1.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageStoreSerializer_v1.java Tue Sep 27 14:12:55 2016
@@ -148,7 +148,7 @@ public class MessageStoreSerializer_v1 i
nextRecord = deserializeMessageInstances(store, queueIdMap, messageMap, deserializer, nextRecord);
- nextRecord = deserializeDtx(store, queueIdMap, messageMap, deserializer, nextRecord);
+ nextRecord = deserializeDistributedTransactions(store, queueIdMap, messageMap, deserializer, nextRecord);
if(nextRecord.getType() != RecordType.DIGEST)
{
@@ -157,10 +157,11 @@ public class MessageStoreSerializer_v1 i
}
- private Record deserializeDtx(final MessageStore store,
- final Map<UUID, UUID> queueIdMap,
- final Map<Long, StoredMessage<?>> messageMap, final Deserializer deserializer,
- Record nextRecord) throws IOException
+ private Record deserializeDistributedTransactions(final MessageStore store,
+ final Map<UUID, UUID> queueIdMap,
+ final Map<Long, StoredMessage<?>> messageMap,
+ final Deserializer deserializer,
+ Record nextRecord) throws IOException
{
while(nextRecord.getType() == RecordType.DTX)
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/QueueMappingRecord.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/QueueMappingRecord.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/QueueMappingRecord.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/QueueMappingRecord.java Tue Sep 27 14:12:55 2016
@@ -24,8 +24,6 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.UUID;
-import org.apache.qpid.bytebuffer.QpidByteBuffer;
-
class QueueMappingRecord implements Record
{
private final UUID _id;
@@ -55,17 +53,13 @@ class QueueMappingRecord implements Reco
}
@Override
- public byte[] getData()
+ public void writeData(final Serializer output) throws IOException
{
byte[] nameBytes = _name.getBytes(StandardCharsets.UTF_8);
- byte[] data = new byte[20 + nameBytes.length];
- QpidByteBuffer buf = QpidByteBuffer.wrap(data);
- buf.putLong(_id.getMostSignificantBits());
- buf.putLong(_id.getLeastSignificantBits());
- buf.putInt(nameBytes.length);
- buf.put(nameBytes);
- buf.dispose();
- return data;
+ output.writeLong(_id.getMostSignificantBits());
+ output.writeLong(_id.getLeastSignificantBits());
+ output.writeInt(nameBytes.length);
+ output.write(nameBytes);
}
public static QueueMappingRecord read(final Deserializer deserializer) throws IOException
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Record.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Record.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Record.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Record.java Tue Sep 27 14:12:55 2016
@@ -20,9 +20,11 @@
*/
package org.apache.qpid.server.store.serializer.v1;
+import java.io.IOException;
+
interface Record
{
RecordType getType();
- byte[] getData();
+ void writeData(Serializer output) throws IOException;
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/RecordType.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/RecordType.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/RecordType.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/RecordType.java Tue Sep 27 14:12:55 2016
@@ -25,13 +25,13 @@ import java.io.IOException;
enum RecordType
{
VERSION
- {
- @Override
- public VersionRecord read(Deserializer deserializer) throws IOException
{
- return VersionRecord.read(deserializer);
- }
- },
+ @Override
+ public VersionRecord read(Deserializer deserializer) throws IOException
+ {
+ return VersionRecord.read(deserializer);
+ }
+ },
MESSAGE
{
@Override
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Serializer.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Serializer.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Serializer.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/Serializer.java Tue Sep 27 14:12:55 2016
@@ -29,6 +29,7 @@ class Serializer
{
private final OutputStream _outputStream;
private final MessageDigest _digest;
+ private final byte[] _tmpBuf = new byte[8];
Serializer(final OutputStream outputStream)
throws IOException
@@ -49,37 +50,58 @@ class Serializer
void add(Record record) throws IOException
{
- add((byte) record.getType().ordinal());
- add(record.getData());
+ write((byte) record.getType().ordinal());
+ record.writeData(this);
}
- void add(final int value) throws IOException
+ public final void writeInt(long val) throws IOException
{
- add(new byte[] {
- (byte)(value >>> 24),
- (byte)(value >>> 16),
- (byte)(value >>> 8),
- (byte)value});
- }
- void add(byte data) throws IOException
- {
- _digest.update(data);
- _outputStream.write(data);
+ _tmpBuf[4] = (byte)(val >>> 24);
+ _tmpBuf[5] = (byte)(val >>> 16);
+ _tmpBuf[6] = (byte)(val >>> 8);
+ _tmpBuf[7] = (byte)val;
+ write(_tmpBuf, 0, 4);
}
- private void add(byte[] data) throws IOException
+
+ public final void writeLong(long val) throws IOException
{
- _digest.update(data);
- _outputStream.write(data);
+ _tmpBuf[0] = (byte)(val >>> 56);
+ _tmpBuf[1] = (byte)(val >>> 48);
+ _tmpBuf[2] = (byte)(val >>> 40);
+ _tmpBuf[3] = (byte)(val >>> 32);
+ _tmpBuf[4] = (byte)(val >>> 24);
+ _tmpBuf[5] = (byte)(val >>> 16);
+ _tmpBuf[6] = (byte)(val >>> 8);
+ _tmpBuf[7] = (byte)val;
+ write(_tmpBuf, 0, 8);
}
-
void complete() throws IOException
{
- add((byte)RecordType.DIGEST.ordinal());
+ write((byte)RecordType.DIGEST.ordinal());
_outputStream.write(_digest.digest());
_outputStream.flush();
}
+
+ void write(final int b) throws IOException
+ {
+ _digest.update((byte)b);
+ _outputStream.write(b);
+ }
+
+ void write(final byte[] b) throws IOException
+ {
+ _digest.update(b);
+ _outputStream.write(b);
+ }
+
+ void write(final byte[] input, final int off, final int len) throws IOException
+ {
+ _digest.update(input, off, len);
+ _outputStream.write(input, off, len);
+ }
+
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/VersionRecord.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/VersionRecord.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/VersionRecord.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/VersionRecord.java Tue Sep 27 14:12:55 2016
@@ -23,8 +23,6 @@ package org.apache.qpid.server.store.ser
import java.io.IOException;
import java.nio.charset.StandardCharsets;
-import org.apache.qpid.bytebuffer.QpidByteBuffer;
-
class VersionRecord implements Record
{
@@ -37,14 +35,10 @@ class VersionRecord implements Record
}
@Override
- public byte[] getData()
+ public void writeData(final Serializer output) throws IOException
{
- byte[] data = new byte[4 + _versionBytes.length];
- QpidByteBuffer buf = QpidByteBuffer.wrap(data);
- buf.putInt(_versionBytes.length);
- buf.put(_versionBytes);
- buf.dispose();
- return data;
+ output.writeInt(_versionBytes.length);
+ output.write(_versionBytes);
}
public static VersionRecord read(final Deserializer deserializer) throws IOException
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java Tue Sep 27 14:12:55 2016
@@ -860,7 +860,7 @@ public abstract class AbstractVirtualHos
}
@Override
- public Map<String, Object> extractConfig(boolean includeSecureAttributes)
+ public Map<String, Object> exportConfig(boolean includeSecureAttributes)
{
return (new ConfigurationExtractor()).extractConfig(this, includeSecureAttributes);
}
@@ -939,56 +939,33 @@ public abstract class AbstractVirtualHos
BufferedInputStream bufferedInputStream = new BufferedInputStream(input);
DataInputStream data = new DataInputStream(bufferedInputStream))
{
- // All encodings should start 0x00 << int length of the version string>> << version string in UTF-8 >>
- data.mark(50);
- if (data.read() != 0)
- {
- throw new IllegalArgumentException("Invalid format for upload");
- }
- int stringLength = data.readInt();
- byte[] stringBytes = new byte[stringLength];
- data.readFully(stringBytes);
-
- String version = new String(stringBytes, StandardCharsets.UTF_8);
-
- Map<String, MessageStoreSerializer> serializerMap =
- new QpidServiceLoader().getInstancesByType(MessageStoreSerializer.class);
- MessageStoreSerializer serializer = serializerMap.get(version);
+ MessageStoreSerializer serializer = MessageStoreSerializer.FACTORY.newInstance(data);
- if (serializer != null)
+ try
{
- try
- {
- _messageStore.openMessageStore(AbstractVirtualHost.this);
- checkMessageStoreEmpty();
- final Map<String, UUID> queueMap = new HashMap<>();
- getDurableConfigurationStore().reload(new ConfiguredObjectRecordHandler()
+ _messageStore.openMessageStore(AbstractVirtualHost.this);
+ checkMessageStoreEmpty();
+ final Map<String, UUID> queueMap = new HashMap<>();
+ getDurableConfigurationStore().reload(new ConfiguredObjectRecordHandler()
+ {
+ @Override
+ public void handle(final ConfiguredObjectRecord record)
{
- @Override
- public void handle(final ConfiguredObjectRecord record)
+ if (record.getType().equals(Queue.class.getSimpleName()))
{
- if (record.getType().equals(Queue.class.getSimpleName()))
- {
- queueMap.put((String) record.getAttributes().get(ConfiguredObject.NAME),
- record.getId());
- }
+ queueMap.put((String) record.getAttributes().get(ConfiguredObject.NAME),
+ record.getId());
}
- });
+ }
+ });
- bufferedInputStream.reset();
- serializer.deserialize(queueMap, _messageStore, data);
- }
- finally
- {
- _messageStore.closeMessageStore();
- }
+ serializer.deserialize(queueMap, _messageStore, data);
}
- else
+ finally
{
- throw new IllegalArgumentException("Message store import uses version '"
- + version + "' which is not supported");
+ _messageStore.closeMessageStore();
}
}
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java?rev=1762490&r1=1762489&r2=1762490&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/virtualhostnode/RedirectingVirtualHostImpl.java Tue Sep 27 14:12:55 2016
@@ -315,7 +315,7 @@ class RedirectingVirtualHostImpl
}
@Override
- public Map<String, Object> extractConfig(boolean includeSecureAttributes)
+ public Map<String, Object> exportConfig(boolean includeSecureAttributes)
{
return Collections.emptyMap();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org