File tree Expand file tree Collapse file tree
pulsar-io/kinesis/src/main/java/org/apache/pulsar/io/kinesis Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -117,10 +117,25 @@ public static KinesisSinkConfig load(String yamlFile) throws IOException {
117117 defaultValue = "" ,
118118 help = "Path to the native Amazon Kinesis Producer Library (KPL) binary.\n "
119119 + "Only use this setting if you want to use a custom build of the native code.\n "
120- + "This setting can also be set with the environment variable `PULSAR_IO_KINESIS_KPL_PATH`.\n "
120+ + "This setting can also be set with the environment variable `PULSAR_IO_KINESIS_KPL_1_0_PATH`"
121+ + "or `PULSAR_IO_KINESIS_KPL_PATH`.\n "
121122 + "If not set, the Kinesis sink will use the built-in native executable."
122123 )
123- private String nativeExecutable = System .getenv ("PULSAR_IO_KINESIS_KPL_PATH" );
124+ private String nativeExecutable = resolveDefaultKinesisProducerLibraryPath ();
125+
126+ private static String resolveDefaultKinesisProducerLibraryPath () {
127+ // Prefer PULSAR_IO_KINESIS_KPL_1_0_PATH environment variable over PULSAR_IO_KINESIS_KPL_PATH.
128+ // This setting supports building a Pulsar Functions base image that is used to run different Pulsar IO Kinesis
129+ // sink versions. The older versions of Pulsar IO Kinesis sink can continue to use the binary configured with
130+ // PULSAR_IO_KINESIS_KPL_PATH, pointing to a 0.15.12 native executable. The newer versions of Pulsar IO Kinesis
131+ // sink can use the binary configured with PULSAR_IO_KINESIS_KPL_1_0_PATH, pointing to a 1.0.4
132+ // native executable.
133+ String kplPath = System .getenv ("PULSAR_IO_KINESIS_KPL_1_0_PATH" );
134+ if (isNotBlank (kplPath )) {
135+ return kplPath ;
136+ }
137+ return System .getenv ("PULSAR_IO_KINESIS_KPL_PATH" );
138+ }
124139
125140 public enum MessageFormat {
126141 /**
You can’t perform that action at this time.
0 commit comments