Skip to content

Commit db8b961

Browse files
committed
Use fallbacks / default settings
1 parent e6ecd98 commit db8b961

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

src/Microsoft.Azure.WebJobs.Extensions.Kafka/Config/KafkaOptions.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,22 @@ public int ChannelFullRetryIntervalInMs
219219
}
220220
}
221221

222+
/// <summary>
223+
/// Default compression level parameter for algorithm selected by configuration property <see cref="CompressionType"/>
224+
/// Can be overridden by setting <see cref="KafkaAttribute.CompressionLevel"/>
225+
///
226+
/// compression.level in librdkafka
227+
/// </summary>
228+
public int? CompressionLevel { get; set; }
229+
230+
/// <summary>
231+
/// Default compression codec to use for compressing message sets.
232+
/// Can be overridden by setting <see cref="KafkaAttribute.CompressionType"/>
233+
///
234+
/// compression.codec in librdkafka
235+
/// </summary>
236+
public MessageCompressionType? CompressionType { get; set; }
237+
222238
public string Format()
223239
{
224240
var serializerSettings = new JsonSerializerSettings()

src/Microsoft.Azure.WebJobs.Extensions.Kafka/Output/KafkaAttribute.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ namespace Microsoft.Azure.WebJobs.Extensions.Kafka
1515
[Binding]
1616
public sealed class KafkaAttribute : Attribute
1717
{
18-
private int? compressionLevel;
18+
internal int? DefinedCompressionLevel;
19+
internal MessageCompressionType? DefinedCompressionType;
1920
private int? maxMessageBytes;
2021
private int? batchSize;
2122
private bool? enableIdempotence;
@@ -152,12 +153,12 @@ public KafkaAttribute()
152153
/// Compression level parameter for algorithm selected by configuration property <see cref="CompressionType"/>
153154
/// compression.level in librdkafka
154155
/// </summary>
155-
public int CompressionLevel { get => compressionLevel.GetValueOrDefault(-1); set => compressionLevel = value; }
156+
public int CompressionLevel { set => DefinedCompressionLevel = value; }
156157

157158
/// <summary>
158159
/// Compression codec to use for compressing message sets.
159160
/// compression.codec in librdkafka
160161
/// </summary>
161-
public MessageCompressionType CompressionType { get; set; } = MessageCompressionType.NotSet;
162+
public MessageCompressionType CompressionType { set => DefinedCompressionType = value; }
162163
}
163164
}

src/Microsoft.Azure.WebJobs.Extensions.Kafka/Output/KafkaProducerFactory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,12 @@ public ProducerConfig GetProducerConfig(KafkaProducerEntity entity)
131131
Debug = kafkaOptions?.LibkafkaDebug,
132132
MetadataMaxAgeMs = kafkaOptions?.MetadataMaxAgeMs,
133133
SocketKeepaliveEnable = kafkaOptions?.SocketKeepaliveEnable,
134-
CompressionLevel = entity.Attribute.CompressionLevel
134+
CompressionLevel = entity.Attribute.DefinedCompressionLevel ?? kafkaOptions.CompressionLevel ?? -1
135135
};
136136

137-
if (entity.Attribute.CompressionType != MessageCompressionType.NotSet)
137+
if ((entity.Attribute.DefinedCompressionType ?? kafkaOptions.CompressionType) != MessageCompressionType.NotSet)
138138
{
139-
conf.CompressionType = (CompressionType)entity.Attribute.CompressionType;
139+
conf.CompressionType = (CompressionType)(entity.Attribute.DefinedCompressionType ?? kafkaOptions.CompressionType);
140140
}
141141

142142
if (entity.Attribute.AuthenticationMode != BrokerAuthenticationMode.NotSet)

0 commit comments

Comments
 (0)