/*******************************************************************************
* Copyright (C) 2016, International Business Machines Corporation
* All Rights Reserved
*******************************************************************************/
package com.ibm.streamsx.messaging.kafka;
import java.util.Properties;
import java.util.logging.Logger;
import com.ibm.streams.operator.logging.TraceLevel;
public class KafkaConfigUtilities {
public static Properties setDefaultDeserializers(AttributeHelper keyAH, AttributeHelper messageAH, Properties props) {
final Logger trace = Logger.getLogger(KafkaConfigUtilities.class
.getCanonicalName());
if (!props.containsKey("key.deserializer")){ //$NON-NLS-1$
if(keyAH.isString()){
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property key.serializer=org.apache.kafka.common.serialization.StringDeserializer" ); //$NON-NLS-1$
}
else{
props.put("key.deserializer", "org.apache.kafka.common.serialization.ByteArrayDeserializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property key.serializer=org.apache.kafka.common.serialization.ByteArrayDeserializer" ); //$NON-NLS-1$
}
}
if (!props.containsKey("value.deserializer")){ //$NON-NLS-1$
if(messageAH.isString()){
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property value.serializer=org.apache.kafka.common.serialization.StringDeserializer" ); //$NON-NLS-1$
}
else{
props.put("value.deserializer", "org.apache.kafka.common.serialization.ByteArrayDeserializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property value.serializer=org.apache.kafka.common.serialization.ByteArrayDeserializer" ); //$NON-NLS-1$
}
}
return props;
}
public static Properties setDefaultSerializers(AttributeHelper keyAH, AttributeHelper messageAH, Properties props) {
final Logger trace = Logger.getLogger(KafkaConfigUtilities.class
.getCanonicalName());
if (!props.containsKey("key.serializer")){ //$NON-NLS-1$
if(keyAH.isString()){
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property key.serializer=org.apache.kafka.common.serialization.StringSerializer" ); //$NON-NLS-1$
}
else{
props.put("key.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property key.serializer=org.apache.kafka.common.serialization.ByteArraySerializer" ); //$NON-NLS-1$
}
}
if (!props.containsKey("value.serializer")){ //$NON-NLS-1$
if(messageAH.isString()){
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property value.serializer=org.apache.kafka.common.serialization.StringSerializer" ); //$NON-NLS-1$
}
else{
props.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer"); //$NON-NLS-1$ //$NON-NLS-2$
trace.log(TraceLevel.INFO, "Adding unspecified property value.serializer=org.apache.kafka.common.serialization.ByteArraySerializer" ); //$NON-NLS-1$
}
}
return props;
}
public static String getStringProperty(String propName, Properties props) {
String propVal = props.getProperty(propName);
String stringProp = ""; //$NON-NLS-1$
final Logger trace = Logger.getLogger(KafkaConfigUtilities.class
.getCanonicalName());
if (propVal != null){
stringProp = props.getProperty(propName);
}
trace.log(TraceLevel.INFO, "Property " + propName + " has a final value of " + stringProp); //$NON-NLS-1$ //$NON-NLS-2$
return stringProp;
}
}