001package org.nuxeo.importer.stream; 002 003import org.nuxeo.importer.stream.message.BlobInfoMessage; 004import org.nuxeo.importer.stream.message.BlobMessage; 005import org.nuxeo.importer.stream.message.DocumentMessage; 006import org.nuxeo.lib.stream.codec.Codec; 007import org.nuxeo.runtime.api.Framework; 008import org.nuxeo.runtime.codec.CodecService; 009 010/** 011 * Helper class to define different log names used in nuxeo-importer-stream and utility methods to get {@link Codec 012 * codecs}. 013 * 014 * @since 11.1 015 */ 016public final class StreamImporters { 017 018 // use java codec because it was already used with kafka and because avro has difficulties to serialize BlobMessage 019 // due to Blob interface. Using codec allow us to not use chronicle serialization which could be limited 020 public static final String DEFAULT_CODEC = "java"; 021 022 public static final String DEFAULT_LOG_CONFIG = "default"; 023 024 public static final String DEFAULT_LOG_BLOB_NAME = "import/blob"; 025 026 public static final String DEFAULT_LOG_BLOB_INFO_NAME = "import/blob-info"; 027 028 public static final String DEFAULT_LOG_DOC_NAME = "import/doc"; 029 030 public static Codec<BlobMessage> getBlobCodec() { 031 return Framework.getService(CodecService.class).getCodec(DEFAULT_CODEC, BlobMessage.class); 032 } 033 034 public static Codec<BlobInfoMessage> getBlobInfoCodec() { 035 return Framework.getService(CodecService.class).getCodec(DEFAULT_CODEC, BlobInfoMessage.class); 036 } 037 038 public static Codec<DocumentMessage> getDocCodec() { 039 return Framework.getService(CodecService.class).getCodec(DEFAULT_CODEC, DocumentMessage.class); 040 } 041 042 private StreamImporters() { 043 // not allowed 044 } 045}