pl.allegro.tech.hermes.frontend.publishing.preview.MessagePreviewFactory Maven / Gradle / Ivy
package pl.allegro.tech.hermes.frontend.publishing.preview;
import org.apache.commons.lang3.ArrayUtils;
import pl.allegro.tech.hermes.domain.topic.preview.MessagePreview;
import pl.allegro.tech.hermes.frontend.publishing.message.Message;
import pl.allegro.tech.hermes.frontend.publishing.message.MessageToJsonConverter;
public class MessagePreviewFactory {
private final int maxMessagePreviewLength;
private final MessageToJsonConverter converter;
public MessagePreviewFactory(int maxMessagePreviewSizeKb) {
this.maxMessagePreviewLength = maxMessagePreviewSizeKb * 1024;
converter = new MessageToJsonConverter();
}
public MessagePreview create(Message message, boolean schemaIdAwareSerializationEnabled) {
byte[] content = converter.convert(message, schemaIdAwareSerializationEnabled);
final boolean truncated = (content.length > maxMessagePreviewLength);
if (truncated) {
return new MessagePreview(ArrayUtils.subarray(content, 0, maxMessagePreviewLength), true);
} else {
return new MessagePreview(content);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy