From e06e09de1a430581e89439d5c2afac77f0456ee4 Mon Sep 17 00:00:00 2001 From: "tayo.olajide" Date: Tue, 28 Jan 2020 21:02:01 -0600 Subject: [PATCH 1/5] server-side-encryption --- pom.xml | 116 +++++++++--------- .../kpl/EncryptedProducerWithKPL.java | 2 +- .../streams/ServerSideEncryptedProducer.java | 89 ++++++++++++++ 3 files changed, 148 insertions(+), 59 deletions(-) create mode 100644 src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java diff --git a/pom.xml b/pom.xml index 277b2a2..f9bad7a 100644 --- a/pom.xml +++ b/pom.xml @@ -1,18 +1,18 @@ - 4.0.0 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 - com.tayo - KinesisEncryption - 0.0.1-SNAPSHOT - jar + com.tayo + KinesisEncryption + 0.0.1-SNAPSHOT + jar - KinesisEncryption - http://maven.apache.org + KinesisEncryption + http://maven.apache.org - - UTF-8 - + + UTF-8 + @@ -45,42 +45,42 @@ - - - junit - junit - 3.8.1 - test - - - com.amazonaws - aws-java-sdk-core - 1.11.46 - - - com.amazonaws - aws-java-sdk - 1.11.46 - - - org.bouncycastle - bcprov-ext-jdk15on - 1.54 - - - com.amazonaws - aws-encryption-sdk-java - 0.0.1 - - + + + junit + junit + 3.8.1 + test + + + com.amazonaws + aws-java-sdk-core + 1.11.714 + + + + org.bouncycastle + bcprov-ext-jdk15on + 1.54 + + + com.amazonaws + aws-encryption-sdk-java + 0.0.1 + + com.amazonaws amazon-kinesis-client - 1.7.2 + 1.13.2 com.amazonaws amazon-kinesis-producer - 0.12.3 + 0.14.0 org.slf4j @@ -88,21 +88,21 @@ 1.7.13 - - - commons-io - commons-io - 2.5 - - - org.json - json - 20160212 - - - com.googlecode.json-simple - json-simple - 1.1.1 - - + + + commons-io + commons-io + 2.5 + + + org.json + json + 20160212 + + + com.googlecode.json-simple + json-simple + 1.1.1 + + diff --git a/src/main/java/kinesisencryption/kpl/EncryptedProducerWithKPL.java b/src/main/java/kinesisencryption/kpl/EncryptedProducerWithKPL.java index 1f2ec80..4885ab3 100644 --- a/src/main/java/kinesisencryption/kpl/EncryptedProducerWithKPL.java +++ b/src/main/java/kinesisencryption/kpl/EncryptedProducerWithKPL.java @@ -111,7 +111,7 @@ public void onSuccess(UserRecordResult result) { // Adding the encrypted record to stream ListenableFuture f = producer.addUserRecord(streamName, randomPartitionKey(), data); - Futures.addCallback(f, callback); + //Futures.addCallback(f, callback); log.info("Encrypted record " + data.toString() + " " + "added successfully"); } tickerObjectList = encryptedProducerWithKPLProducer.getTickerSymbolList(); diff --git a/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java b/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java new file mode 100644 index 0000000..76c491b --- /dev/null +++ b/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java @@ -0,0 +1,89 @@ +package kinesisencryption.streams; + +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; +import com.amazonaws.services.kinesis.AmazonKinesisClient; +import com.amazonaws.services.kinesis.model.EncryptionType; +import com.amazonaws.services.kinesis.model.PutRecordRequest; +import com.amazonaws.services.kinesis.model.StartStreamEncryptionRequest; +import kinesisencryption.dao.TickerSalesObject; +import kinesisencryption.utils.KinesisEncryptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.List; + +import static kinesisencryption.streams.EncryptedProducerWithStreams.randomPartitionKey; + +public class ServerSideEncryptedProducer +{ + private static final Logger log = LoggerFactory.getLogger(EncryptedProducerWithStreams.class); + private List tickerSymbolList; + + public List getTickerSymbolList() { + return tickerSymbolList; + } + + public void setTickerSymbolList(List tickerSymbolList) { + this.tickerSymbolList = tickerSymbolList; + } + + public static void main(String[] args) { + AmazonKinesisClient kinesis = new AmazonKinesisClient( + new DefaultAWSCredentialsProviderChain().getCredentials()); + + + /* + * Simulating the appearance of a steady flow of data by continuously + * loading data from file + */ + try { + + + String streamName = KinesisEncryptionUtils.getProperties().getProperty("stream_name"); + log.info("Successfully retrieved stream name property " + streamName); + String keyId = KinesisEncryptionUtils.getProperties().getProperty("key_id"); + log.info("Successfully retrieved key id property " + keyId); + String kinesisEndpoint = KinesisEncryptionUtils.getProperties().getProperty("kinesis_endpoint"); + log.info("Successfully retrieved kinesis endpoint property " + kinesisEndpoint); + kinesis.setEndpoint(kinesisEndpoint); + String fileLocation = KinesisEncryptionUtils.getProperties().getProperty("file_path"); + log.info("Successfully retrieved file location property " + fileLocation); + + List tickerSymbolsList = KinesisEncryptionUtils.getDataObjects(fileLocation); + ServerSideEncryptedProducer producer = new ServerSideEncryptedProducer(); + producer.setTickerSymbolList(tickerSymbolsList); + StartStreamEncryptionRequest startStreamEncryptionRequest = new StartStreamEncryptionRequest(); + startStreamEncryptionRequest.setEncryptionType(EncryptionType.KMS); + startStreamEncryptionRequest.setKeyId(keyId); + startStreamEncryptionRequest.setStreamName(streamName); + + + while (true) { + + for (TickerSalesObject ticker : tickerSymbolsList) { + PutRecordRequest putRecordRequest = new PutRecordRequest(); + putRecordRequest.setStreamName(streamName); + log.info("Before encryption size of String Object is " + + KinesisEncryptionUtils.calculateSizeOfObject(ticker.toString())); + // UTF-8 encoding of encryptyed record + putRecordRequest.setData(ByteBuffer.wrap(String.format(ticker.toString()).getBytes("UTF-8"))); + putRecordRequest.setPartitionKey(randomPartitionKey()); + // putting the record into the stream + kinesis.putRecord(putRecordRequest); + log.info("Ticker added :" + ticker.toString() + "Ticker :" + ticker.toString()); + + } + tickerSymbolsList = producer.getTickerSymbolList(); + Thread.sleep(100); + } + } catch (IOException ioe) { + log.error(ioe.toString()); + } catch (InterruptedException ie) { + log.error(ie.toString()); + } catch (Exception e) { + e.printStackTrace(); + } + } +} From 982c3b603d7b55f890d60f2f889f4cce5fd23bb8 Mon Sep 17 00:00:00 2001 From: "tayo.olajide" Date: Tue, 28 Jan 2020 22:38:47 -0600 Subject: [PATCH 2/5] kcl-record-processor for server side encryption --- .../kcl2/DownstreamThread.java | 60 +++++++++++ .../kinesisencryption/kcl2/KCLConsumer.java | 65 +++++++++++ .../kcl2/KCLRecordProcessor.java | 101 ++++++++++++++++++ .../kcl2/KCLRecordProcessorFactory.java | 14 +++ .../streams/ServerSideEncryptedProducer.java | 1 - 5 files changed, 240 insertions(+), 1 deletion(-) create mode 100644 src/main/java/kinesisencryption/kcl2/DownstreamThread.java create mode 100644 src/main/java/kinesisencryption/kcl2/KCLConsumer.java create mode 100644 src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java create mode 100644 src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java diff --git a/src/main/java/kinesisencryption/kcl2/DownstreamThread.java b/src/main/java/kinesisencryption/kcl2/DownstreamThread.java new file mode 100644 index 0000000..a2fe246 --- /dev/null +++ b/src/main/java/kinesisencryption/kcl2/DownstreamThread.java @@ -0,0 +1,60 @@ +package kinesisencryption.kcl2; + +import java.nio.ByteBuffer; +import java.nio.charset.CharacterCodingException; +import java.nio.charset.Charset; +import java.util.List; +import java.util.Map; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.amazonaws.encryptionsdk.AwsCrypto; +import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider; +import com.amazonaws.services.kinesis.AmazonKinesisClient; +import com.amazonaws.services.kinesis.model.Record; +import com.amazonaws.services.kms.AWSKMSClient; + +import kinesisencryption.utils.KinesisEncryptionUtils; + +/** + * Thread used for decrypting and printing consumed records to the logs + * + */ +public class DownstreamThread implements Runnable { + private static final Logger log = LoggerFactory.getLogger(kinesisencryption.kcl.RecordPrinterThread.class); + private List recordList; + private AmazonKinesisClient kinesis; + + public AmazonKinesisClient getKinesis() { + return kinesis; + } + + + public List getRecordList() { + return recordList; + } + + public DownstreamThread(List recordList) { + this.recordList = recordList; + } + + + + @Override + public void run() { + for (Record record : this.getRecordList()) { + try { + ByteBuffer buffer = record.getData(); + + String result = Charset.forName("UTF-8").newDecoder().decode(buffer).toString(); + log.info("Cipher Blob :" + record.getData().toString() + " : " + "Decrypted Text is :" + + result); + } catch (CharacterCodingException e) { + log.error("Unable to decode result for " + record.getData().toString() + "with equence number " + + record.getSequenceNumber()); + } + } + } +} + diff --git a/src/main/java/kinesisencryption/kcl2/KCLConsumer.java b/src/main/java/kinesisencryption/kcl2/KCLConsumer.java new file mode 100644 index 0000000..dda1f6c --- /dev/null +++ b/src/main/java/kinesisencryption/kcl2/KCLConsumer.java @@ -0,0 +1,65 @@ +package kinesisencryption.kcl2; + +import com.amazonaws.AmazonClientException; +import com.amazonaws.auth.AWSCredentialsProvider; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; +import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorFactory; +import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream; +import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration; +import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker; +import kinesisencryption.kcl.EncryptedKCLRecordProcessorFactory; +import kinesisencryption.utils.KinesisEncryptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.InetAddress; +import java.util.UUID; + +/** + * A consumer application that consumes encrypted records from kinesis streams. + */ +public class KCLConsumer { + private static final InitialPositionInStream INITIAL_POSITION_IN_STREAM = InitialPositionInStream.TRIM_HORIZON; + private static AWSCredentialsProvider credentialsProvider; + private static final Logger log = LoggerFactory.getLogger(kinesisencryption.kcl.EncryptedConsumerWithKCL.class); + + private static void initialize() { + java.security.Security.setProperty("networkaddress.cache.ttl", "60"); + credentialsProvider = new DefaultAWSCredentialsProviderChain(); + + try { + credentialsProvider.getCredentials(); + + } catch (Exception e) { + throw new AmazonClientException("Cannot find credentials"); + } + + } + + public static void main(String[] args) throws Exception { + initialize(); + + String workerId = InetAddress.getLocalHost().getCanonicalHostName() + ":" + UUID.randomUUID(); + String streamName = KinesisEncryptionUtils.getProperties().getProperty("stream_name"); + String appName = KinesisEncryptionUtils.getProperties().getProperty("kcl_name"); + String ddbRegion = KinesisEncryptionUtils.getProperties().getProperty("ddb_region_4_kcl"); + KinesisClientLibConfiguration kinesisClientLibConfiguration = new KinesisClientLibConfiguration(appName, + streamName, credentialsProvider, workerId); + kinesisClientLibConfiguration.withInitialPositionInStream(INITIAL_POSITION_IN_STREAM).withRegionName(ddbRegion); + + IRecordProcessorFactory recordProcessorFactory = new KCLRecordProcessorFactory(); + Worker worker = new Worker(recordProcessorFactory, kinesisClientLibConfiguration); + + log.info("Started KCL Worker process for Stream " + streamName + " " + "with workerId " + workerId); + + int exitCode = 0; + try { + worker.run(); + } catch (Throwable t) { + System.err.println("Caught throwable while processing data."); + t.printStackTrace(); + exitCode = 1; + } + System.exit(exitCode); + } +} diff --git a/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java new file mode 100644 index 0000000..01d716b --- /dev/null +++ b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java @@ -0,0 +1,101 @@ +package kinesisencryption.kcl2; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import kinesisencryption.kcl.RecordPrinterThread; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.amazonaws.services.kinesis.clientlibrary.exceptions.InvalidStateException; +import com.amazonaws.services.kinesis.clientlibrary.exceptions.ShutdownException; +import com.amazonaws.services.kinesis.clientlibrary.exceptions.ThrottlingException; +import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessor; +import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorCheckpointer; +import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownReason; +import com.amazonaws.services.kinesis.model.Record; + +import kinesisencryption.utils.KinesisEncryptionUtils; + +/** + * A KCL RecordProcessor that processes server-side encrypted Kinesis records + */ +public class KCLRecordProcessor implements IRecordProcessor { + private static final Logger log = LoggerFactory.getLogger(kinesisencryption.kcl.EncryptedKCLRecordProcessor.class); + private String shardId, keyArn, encryptionContext; + + // Backoff and retry settings + private static final long BACKOFF_TIME_IN_MILLIS = 3000L; + private static final int NUM_RETRIES = 10; + + // Checkpoint about once a minute + private static final long CHECKPOINT_INTERVAL_MILLIS = 60000L; + private long nextCheckpointTimeInMillis; + + @Override + public void initialize(String shardId) { + log.info("Initializing record processor for shard :" + shardId); + this.shardId = shardId; + } + + @Override + public void processRecords(List recordList, IRecordProcessorCheckpointer iRecordProcessorCheckpointer) { + if (recordList.size() > 0) { + log.info("Received record size is : " + recordList.size()); + DownstreamThread printer = new DownstreamThread(recordList); + Thread thread = new Thread(printer); + thread.start(); + } + + if (System.currentTimeMillis() > nextCheckpointTimeInMillis) { + checkpoint(iRecordProcessorCheckpointer); + nextCheckpointTimeInMillis = System.currentTimeMillis() + CHECKPOINT_INTERVAL_MILLIS; + } + } + + @Override + public void shutdown(IRecordProcessorCheckpointer iRecordProcessorCheckpointer, ShutdownReason shutdownReason) { + log.info("Shutting down record processor for shard: " + shardId); + // Important to checkpoint after reaching end of shard, so we can start + // processing data from child shards. + if (shutdownReason == ShutdownReason.TERMINATE) { + checkpoint(iRecordProcessorCheckpointer); + } + } + + private void checkpoint(IRecordProcessorCheckpointer checkpointer) { + log.info("Checkpointing shard " + shardId); + for (int i = 0; i < NUM_RETRIES; i++) { + try { + checkpointer.checkpoint(); + break; + } catch (ShutdownException se) { + // Ignore checkpoint if the processor instance has been shutdown + // (fail over). + log.info("Caught shutdown exception, skipping checkpoint.", se); + break; + } catch (ThrottlingException e) { + // Backoff and re-attempt checkpoint upon transient failures + if (i >= (NUM_RETRIES - 1)) { + log.error("Checkpoint failed after " + (i + 1) + "attempts.", e); + break; + } else { + log.info("Transient issue when checkpointing - attempt " + (i + 1) + " of " + NUM_RETRIES, e); + } + } catch (InvalidStateException e) { + // This indicates an issue with the DynamoDB table (check for + // table, provisioned IOPS). + log.error("Cannot save checkpoint to the DynamoDB table used by the Amazon Kinesis Client Library.", e); + break; + } + + try { + Thread.sleep(BACKOFF_TIME_IN_MILLIS); + } catch (InterruptedException e) { + log.debug("Interrupted sleep", e); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java new file mode 100644 index 0000000..4d2a570 --- /dev/null +++ b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java @@ -0,0 +1,14 @@ +package kinesisencryption.kcl2; + +import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessor; +import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorFactory; +import kinesisencryption.kcl.EncryptedKCLRecordProcessor; + +/** + * + */ +public class KCLRecordProcessorFactory implements IRecordProcessorFactory { + public IRecordProcessor createProcessor() { + return new KCLRecordProcessor(); + } +} diff --git a/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java b/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java index 76c491b..62c133e 100644 --- a/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java +++ b/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java @@ -40,7 +40,6 @@ public static void main(String[] args) { */ try { - String streamName = KinesisEncryptionUtils.getProperties().getProperty("stream_name"); log.info("Successfully retrieved stream name property " + streamName); String keyId = KinesisEncryptionUtils.getProperties().getProperty("key_id"); From 48976b5ed2f6c444aab49188ac7334f080f32cd9 Mon Sep 17 00:00:00 2001 From: "tayo.olajide" Date: Wed, 29 Jan 2020 09:42:19 -0600 Subject: [PATCH 3/5] kcl-record-processor with S3Archiver Thread for server side encryption --- .../kcl2/DownstreamThread.java | 6 - .../kinesisencryption/kcl2/KCLConsumer.java | 1 - .../kcl2/KCLRecordProcessor.java | 8 +- .../kcl2/KCLRecordProcessorFactory.java | 1 - .../kcl2/S3ArchiverThread.java | 154 ++++++++++++++++++ src/main/resources/app.properties | 4 +- target/classes/app.properties | 12 ++ .../kinesisencryption/dao/BootCarObject.class | Bin 0 -> 807 bytes .../dao/TickerSalesObject.class | Bin 0 -> 1070 bytes .../kcl/EncryptedConsumerWithKCL.class | Bin 0 -> 4453 bytes .../kcl/EncryptedKCLRecordProcessor.class | Bin 0 -> 5618 bytes .../EncryptedKCLRecordProcessorFactory.class | Bin 0 -> 679 bytes .../kcl/RecordPrinterThread.class | Bin 0 -> 3768 bytes .../kcl2/DownstreamThread.class | Bin 0 -> 2814 bytes .../kinesisencryption/kcl2/KCLConsumer.class | Bin 0 -> 4460 bytes .../kcl2/KCLRecordProcessor.class | Bin 0 -> 4816 bytes .../kcl2/KCLRecordProcessorFactory.class | Bin 0 -> 646 bytes .../kcl2/S3ArchiverThread.class | Bin 0 -> 6855 bytes .../kpl/EncryptedProducerWithKPL$1.class | Bin 0 -> 2252 bytes .../kpl/EncryptedProducerWithKPL.class | Bin 0 -> 7139 bytes .../streams/DecryptShardConsumerThread.class | Bin 0 -> 5467 bytes .../EncryptedConsumerWithStreams.class | Bin 0 -> 5214 bytes .../EncryptedProducerWithStreams.class | Bin 0 -> 6435 bytes .../streams/ServerSideEncryptedProducer.class | Bin 0 -> 5167 bytes .../utils/KinesisEncryptionUtils.class | Bin 0 -> 9034 bytes target/classes/log4j.properties | 16 ++ .../compile/default-compile/createdFiles.lst | 18 ++ .../compile/default-compile/inputFiles.lst | 17 ++ 28 files changed, 221 insertions(+), 16 deletions(-) create mode 100644 src/main/java/kinesisencryption/kcl2/S3ArchiverThread.java create mode 100644 target/classes/app.properties create mode 100644 target/classes/kinesisencryption/dao/BootCarObject.class create mode 100644 target/classes/kinesisencryption/dao/TickerSalesObject.class create mode 100644 target/classes/kinesisencryption/kcl/EncryptedConsumerWithKCL.class create mode 100644 target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessor.class create mode 100644 target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class create mode 100644 target/classes/kinesisencryption/kcl/RecordPrinterThread.class create mode 100644 target/classes/kinesisencryption/kcl2/DownstreamThread.class create mode 100644 target/classes/kinesisencryption/kcl2/KCLConsumer.class create mode 100644 target/classes/kinesisencryption/kcl2/KCLRecordProcessor.class create mode 100644 target/classes/kinesisencryption/kcl2/KCLRecordProcessorFactory.class create mode 100644 target/classes/kinesisencryption/kcl2/S3ArchiverThread.class create mode 100644 target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL$1.class create mode 100644 target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL.class create mode 100644 target/classes/kinesisencryption/streams/DecryptShardConsumerThread.class create mode 100644 target/classes/kinesisencryption/streams/EncryptedConsumerWithStreams.class create mode 100644 target/classes/kinesisencryption/streams/EncryptedProducerWithStreams.class create mode 100644 target/classes/kinesisencryption/streams/ServerSideEncryptedProducer.class create mode 100644 target/classes/kinesisencryption/utils/KinesisEncryptionUtils.class create mode 100644 target/classes/log4j.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/src/main/java/kinesisencryption/kcl2/DownstreamThread.java b/src/main/java/kinesisencryption/kcl2/DownstreamThread.java index a2fe246..c47f12e 100644 --- a/src/main/java/kinesisencryption/kcl2/DownstreamThread.java +++ b/src/main/java/kinesisencryption/kcl2/DownstreamThread.java @@ -4,18 +4,12 @@ import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; import java.util.List; -import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.amazonaws.encryptionsdk.AwsCrypto; -import com.amazonaws.encryptionsdk.kms.KmsMasterKeyProvider; import com.amazonaws.services.kinesis.AmazonKinesisClient; import com.amazonaws.services.kinesis.model.Record; -import com.amazonaws.services.kms.AWSKMSClient; - -import kinesisencryption.utils.KinesisEncryptionUtils; /** * Thread used for decrypting and printing consumed records to the logs diff --git a/src/main/java/kinesisencryption/kcl2/KCLConsumer.java b/src/main/java/kinesisencryption/kcl2/KCLConsumer.java index dda1f6c..1ac90f6 100644 --- a/src/main/java/kinesisencryption/kcl2/KCLConsumer.java +++ b/src/main/java/kinesisencryption/kcl2/KCLConsumer.java @@ -7,7 +7,6 @@ import com.amazonaws.services.kinesis.clientlibrary.lib.worker.InitialPositionInStream; import com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibConfiguration; import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker; -import kinesisencryption.kcl.EncryptedKCLRecordProcessorFactory; import kinesisencryption.utils.KinesisEncryptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java index 01d716b..39223b9 100644 --- a/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java +++ b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java @@ -1,11 +1,7 @@ package kinesisencryption.kcl2; -import java.io.IOException; -import java.util.Collections; import java.util.List; -import java.util.Map; -import kinesisencryption.kcl.RecordPrinterThread; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -17,8 +13,6 @@ import com.amazonaws.services.kinesis.clientlibrary.lib.worker.ShutdownReason; import com.amazonaws.services.kinesis.model.Record; -import kinesisencryption.utils.KinesisEncryptionUtils; - /** * A KCL RecordProcessor that processes server-side encrypted Kinesis records */ @@ -44,7 +38,7 @@ public void initialize(String shardId) { public void processRecords(List recordList, IRecordProcessorCheckpointer iRecordProcessorCheckpointer) { if (recordList.size() > 0) { log.info("Received record size is : " + recordList.size()); - DownstreamThread printer = new DownstreamThread(recordList); + S3ArchiverThread printer = new S3ArchiverThread(recordList); Thread thread = new Thread(printer); thread.start(); } diff --git a/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java index 4d2a570..0fc1e3a 100644 --- a/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java +++ b/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java @@ -2,7 +2,6 @@ import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessor; import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorFactory; -import kinesisencryption.kcl.EncryptedKCLRecordProcessor; /** * diff --git a/src/main/java/kinesisencryption/kcl2/S3ArchiverThread.java b/src/main/java/kinesisencryption/kcl2/S3ArchiverThread.java new file mode 100644 index 0000000..ffc2b3d --- /dev/null +++ b/src/main/java/kinesisencryption/kcl2/S3ArchiverThread.java @@ -0,0 +1,154 @@ +package kinesisencryption.kcl2; + + +import com.amazonaws.AmazonServiceException; +import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; +import com.amazonaws.regions.Region; +import com.amazonaws.regions.Regions; +import com.amazonaws.services.kinesis.model.Record; +import com.amazonaws.services.s3.AmazonS3Client; +import com.amazonaws.services.s3.model.PutObjectRequest; + +import kinesisencryption.utils.KinesisEncryptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.BufferedWriter; +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.List; + +/** + * Created by temitayo on 11/30/16. + */ +public class S3ArchiverThread implements Runnable +{ + private static String BUCKET_NAME = "12615eucentral"; + private static final String fileName = "centos_consumer"; + private static final Logger log = LoggerFactory.getLogger(S3ArchiverThread.class); + private List recordList; + private static final CharsetDecoder DECODER = Charset.forName("UTF-8").newDecoder(); + AmazonS3Client s3Client = new AmazonS3Client(new DefaultAWSCredentialsProviderChain()).withRegion(Region.getRegion(Regions.US_WEST_2)); + + public S3ArchiverThread(List recordList) + { + this.recordList = recordList; + } + + public List getRecordList() + { + return recordList; + } + + + + public String writeRecordsToFile(List recordList) + { + + //File file = new File(fileName+System.currentTimeMillis()); + Path path = Paths.get(fileName+System.currentTimeMillis()); + try(BufferedWriter writer = Files.newBufferedWriter(path)) + { + + for(Record record: recordList) + { + writer.write(DECODER.decode(record.getData()).toString()); + } + + } + catch(Exception e) + { + log.error("error on writing to file for " + path.toString() + "Error : " + e.toString()); + } + + + return path.toString(); + } + + //This is a test + public static void main(String[] args) + { + + //File file = new File(fileName+System.currentTimeMillis()); + Path path = Paths.get("/Users/temitayo/Desktop/archive"+System.currentTimeMillis()); + try(BufferedWriter writer = Files.newBufferedWriter(path)) + { + + System.out.println("Writing now..."); + writer.write("This is a CodeGuru , Gives Clues "); + writer.write("Java\n"); + writer.write("Python\n"); + writer.write("Clojure\n"); + writer.write("Scala\n"); + writer.write("JavaScript\n"); + + } + catch(Exception e) + { + System.out.println(e.toString()); + } + + AmazonS3Client s3Client = new AmazonS3Client(new DefaultAWSCredentialsProviderChain()); + // s3Client.setEndpoint("s3.eu-central-1.amazonaws.com"); + try + { + System.out.println("Uploading a new object to S3 from a file\n"); + File file = new File(path.toString()); + System.out.println("Filename is " + path.toString()); + s3Client.putObject(new PutObjectRequest(BUCKET_NAME, file.getName(), file)); + + } + catch(AmazonServiceException ase) + { + System.out.println("Uploading a new object to S3 from a file\n"); + } + + } + + private void uploadS3File(String path) + { + + try + { + s3Client.setEndpoint(KinesisEncryptionUtils.getProperties().getProperty("s3endpoint")); + String bucketName = KinesisEncryptionUtils.getProperties().getProperty("s3bucket"); + log.info("Uploading a new object to S3 bucket " + bucketName); + File file = new File(path); + log.info("Filename is " + path); + s3Client.putObject(new PutObjectRequest(bucketName, file.getName(), file)); + log.info("File : " + file + " uploaded successfully"); + log.info("Now removing the file .... file : " + file); + //removing objects that are already uploaded + if(file.delete()) + { + log.info("File : " + file + " deleted successfully"); + } + else + { + log.error("Unable to delete file " + file); + } + + } + catch(AmazonServiceException ase) + { + log.error("Failed uploading file to S3 : " + ase.toString()); + } + catch(IOException ioe) + { + log.error("Failed uploading file to S3 : " + ioe.toString()); + } + } + + @Override + public void run() + { + String path = this.writeRecordsToFile(this.getRecordList()); + uploadS3File(path); + + } +} diff --git a/src/main/resources/app.properties b/src/main/resources/app.properties index 88a81ca..84e5cee 100644 --- a/src/main/resources/app.properties +++ b/src/main/resources/app.properties @@ -7,4 +7,6 @@ kms_endpoint=kms.us-east-1.amazonaws.com sharditerator_type=TRIM_HORIZON kcl_name=EncryptedKCL ddb_region_4_kcl=us-west-2 -encryption_context=cars \ No newline at end of file +encryption_context=cars +s3endpoint= +s3bucket= \ No newline at end of file diff --git a/target/classes/app.properties b/target/classes/app.properties new file mode 100644 index 0000000..84e5cee --- /dev/null +++ b/target/classes/app.properties @@ -0,0 +1,12 @@ +file_path=/Users/xxxxxxx/workspace/kinesisencryption/script/kplWatch/2177dff9-330c-46b7-801f-e1ed3ba1e8e0.json +key_id= +key_arn= +stream_name=EncryptedStream +kinesis_endpoint=kinesis.us-east-1.amazonaws.com +kms_endpoint=kms.us-east-1.amazonaws.com +sharditerator_type=TRIM_HORIZON +kcl_name=EncryptedKCL +ddb_region_4_kcl=us-west-2 +encryption_context=cars +s3endpoint= +s3bucket= \ No newline at end of file diff --git a/target/classes/kinesisencryption/dao/BootCarObject.class b/target/classes/kinesisencryption/dao/BootCarObject.class new file mode 100644 index 0000000000000000000000000000000000000000..afd66b5f2012082d9428990020798ae97953906f GIT binary patch literal 807 zcma)4O;6iE5Pf5tI0-HvAtlg4`EC;z>Ps&bRSzKb6t#ySq#if%3Kkr19=OcR&b*oTX0-P|zuy6Pjj)PYtW{9Ox-rj;+3>Mh#SGSr*(zh( z_#Gd+KK6V(CwQsoOG2%EA+AJ}i1aM#k=q6T#?uq17WXilJNiRQFL&9GBlHo%&lxZ)!9^^`= zQ7m+Hq;-BQvX9*h*~?jTIoE}LLcQ6VmPDv_^eF4e_sUZK)&I&IA;2PD1bBqG0Q1Hy zV2;rE_dZ7>mBca&&_s(s`vF$4O4xaTOv1wNX@zoDYg0-`9m)GA>T_`uw`opR5`%$E zW5U6I?moTcMB5>@_zTQ}5Wt0FR^pH1n60em#jGdZxW=d@ekEM@*w@2bQ225TC)^*y z4G+ffzFKsh?K1x&;4veYQ9*;}tZ?@#XMnKi=SqWLJjwEsjSRD6Bg5@7Cm(IXe8Lrj w3V&ec(=AHjH#j%&Yh^YZyMM$U$2X{aVYI{Zfs*Z9xBNjdWx`K*Vo^_j0UV~Qt^fc4 literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/dao/TickerSalesObject.class b/target/classes/kinesisencryption/dao/TickerSalesObject.class new file mode 100644 index 0000000000000000000000000000000000000000..f1ea1922251ba567e2a97fb5396dba7daadae38c GIT binary patch literal 1070 zcmbVL+iuf95IyTSiIci*aNCq#fV5naxJk_=@B-z5N=T>?ASJ5AqvKd*TgQ$Z2dN+s zp9B&~C6M?4J_<2ohZGTz5HB;Hv$Hd2&aA(E|NIp|1NZVMU^|CJTxD~O&2=_6vMA?~ z!M279`zjk#!;XfUhB`;PSy)-z%;J`S9!clK4O^$ZPT&a`&13tOZF#nTWVNDD`bYN# z@&ns*2hT(4xB}TA?7HETu0Sr5J+~Fvy}m%^f%IkcP~f04TjBqZ>Y;$TA9ShbVpIC= z(_ydUhHbm!5n?n0$Mz2GP;xv0)##-h2vnOVls=FH*LT9xek23m>e_+TPA279o^_60 zC!*1`C`iT>SgurOiPG?`U>G{?W65ocGc|TuFCDA6t;4{Qj%7A0Y>HSCSp8kkM?>k6 zfC8nNT5o>c#a>y*9W>b76g}d-8Rnd#b`~$=LnA>(djc|6$v+Do#cwxi>5Oe?P_+J>LQZEknUppYw+$H*IV36PosdIG3ZU_JrTKY_wqx;Mtc2db+OC(sn!V21YX GTR#9&;qlo3 literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kcl/EncryptedConsumerWithKCL.class b/target/classes/kinesisencryption/kcl/EncryptedConsumerWithKCL.class new file mode 100644 index 0000000000000000000000000000000000000000..82e94ac43a5d76dba40125f3e3cfac07181a8ba6 GIT binary patch literal 4453 zcmcIoiC+}g9sds3?2Z%E6;v?NRilC^qp8{ytPNQ;Zds0SNQq79Fgv@9?9PzcSrL0A zZPWWclG?-8+QU}creeFSp-p-p>GdDA{l1w67FdhslLGVRz2AH9cYfdR{f5{7{mQEV zj^bYm-U=gxWC*5$6w)##71Y8A;|Qz`xPU1c85!9SYy}D&h4g6|&nl>gp}<8>G@cmd zL%6752A9NORy3CtydNJ3;e!f3gy%wdK7B#y1pv6W@|? zRYG&TFFqXaPK*!q53$qVHy-aB9~vG!-Q6qUsf6KVH9f0ec5Hnnr{zrdqGgylZOXFE zoR!mzjAhzh#+q<-cUI$Dn{nJJ)79d(4PK>gWY6;iS{1%c;5(7Db=rn%1^+ z5^7>j(v+|Lj&grft#wB8nH)-W098Q$%Gi}42ofZaYQ$|KR z9SqH6%&~L%tm%$g-egZKL9vREN|UV1RLv()7t4vhUs(R!iR=D-I(gt zr+twG4Ry@wmMvjx>-n-h^p|C)yMzsrx02oPr0dKGt;w!Nchl5(ONFfxLP0R%Nn!4? zIwjUrI_C$aPtQ_eS)ZN`df{YpV$e*}Y6&|_o{0H@PFNE(J!Pfyt}eVHVRTj8?jIpN z0fZ_ure#}Q({S7*Awt0A9QTZFc#b>!z@W5j&va9|Ky7@mB1;OZ3p^#^@i%PGs1JPd z3YnKIFMypCm(e5R+dRxNzQZ%ilS#KP;enA0o!}V?5UUJ1dDk${SOT9r?*+CF5l9uC zps4M(=?TsCWYVRRIt<;IG&?+xpsG54SjIIK-^Fza$5tL=|8Si$Q+ht*RX$^}NkUS^ zalB2&_f&izKOn}I5wv80ggq-+cl)^_2x{4?Z86=p9WR=)>}0eo0SG&OsG?gKvu&Aw zfY2xMR))zz#tjue!jDzl#4Qy+!B2T4I%WJ!#mo4)Alz0lhg&l4sQ3kbDPco^>v5aF zmQheKk0L$IBkYqTY$C$PT_57(N5@H*FtXB)HwnkWzPlbT4pI22phPO-D$4umUW->}~(O^0{9h|mk%5kF%0yB1$$ul~`JQo!} zGu?PHD&sX3zY%f!t%zG0E|xNrjNhsFJ^mnJe@xG(C%ve*n6#oZlLYvpB<8qiQup)@ z8GlsqC&Bd3=u+_){8h&5D*lFJ5<1rL*Q#_ZZF*(b zri8t%ZL6|ch5Za+CYiL;#Vlk{M-6EsF?w&LV0mfKqVIX{C#;l)rgPjtDYuetMx4d&}f_$zi@i z%QM1Z%a$zDiJoN+M9;qaau2yBD=b{&#;)}tLRI`~t!wRO0h1jfOWdRGlW?>|*_>x)Ibpi2`Aa3T9kmsA;XP+&#$A0T^4qf zCrU29TH`{Y2g~Q{f3z^w4G+e9$Itc;#-Hx*W2Lg%;-%U&?B_)BDI(Ht**S@2^jwaJ zUA?o5A9F|eZ3$GPS=0&aDWdM;yII`ReAhq{AKPfQ6|y;l zC#f^Fk&4t>;bgIhhZayzO*R&>sesJ|L?T<*6wy#XV*y(eMQn>~FQBPcbeh@e6P+FG zbkc~2#||B&0qyhH*;(6EJBOA6-qKW4Ky-8gyU2HUXWat!j5XCY)z0IQPFlOSBrvj% zat;cC``NVfp}4zftwQzjP?KCh+YK~!hUd^ORvl^z7tm32Jk%H}LKDupf~&a3@9V%h zeb_>K_H)!mw;Vt_e~;oIopK1h4BdGKJBdf}EU7Ot%vTuVt90u%2KqXKe3OxSnZB9h zj(NsUL^DMnUB@PzMV#KFx9~3X@Vy%^AwjPEc;=UXAA42g`U3jdtLDzj7+|l4&lH}* zApcvD#4v{V)KUJE7{NJ)hkq`&F3uFVA5#{r~^~ literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessor.class b/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessor.class new file mode 100644 index 0000000000000000000000000000000000000000..374b2104c09cb73732e800bf8830ada3bb715e19 GIT binary patch literal 5618 zcmcIoiF*`h9eyVVv)K$G4R@eCg9^>PV8L2K!LTf{kOW8;TB;Z(yOYh3&CEJ88wg&l zZMEJ92(`7fpcED5YDofUEna9n>V0d~diGD~!()BFnceI_QYt(p&$Hjm_s#G7UEljV zzC8Qib58?Uh8M$FiF+$>Gu|)bzA#F0ZwU8`=L2H+KqWqi2gT07od z(r%^Gy4@;4cKS6t6;FxJyR;!KlF`g`q}#O(GtJLa2K3=J+mvvVZYJ&FtZP_i)G}Rt zk1Ju;nzrc1P3zY6B;p;ho_J?ZN4&i~-Yr4eAYm%W99J{lZCWO$OQ`JJ+R@V$OLWC! zf+Ai@hlC~6M%Txp8#ix?cP7Xo5$oF4);`Xs)})+hzn&b(T88N+j6pqab{LtA;ZU`e zhH1E~XkA_XHVI`>D@8HW+6`0h%nkPHc0%jTaD`?kwahlnHpD!?SmyQ%9=Em+klZnx zqIHphWF`{xjnz{dqwQUK(y~*VZ7ZoejwO5+7J>~eW9%jSnROHWCiJPw`aAsXlx5@z zbFPtzv>T4w+McuqBif+0*D|%;PQ=meA%j99d7UE3jG>!u#^|**dpJS|=ysnb2;x`h zRCE!~R0x-|JU^04XnX|=3miPMM8Bw}tB_aI>H1L@a{6;_%G%9zaj5Rbh`Bbd44ues%O23}NOxYfE?sjh(+iTSg1Y{i zg!Qi#cS1fnp0y-wzd_CrkzV2u6C1BhalH_m&bV8G;o5QC+?XjWmkG;E2l;KfZhmod zh*>tpm~izVM>PeEMp=wye4DkCrBXs@CBg0&k#M(_ zvy=KdLzE2lD*3-fR7nNx=uofrbr$0u%{FEHSiw*5oPsFYn5&D$ zt7kkz%NzZ|CgZ0HeukgR_=SRB;#aJ=OgFkQq^AlRIjm!<;ixNAp~kPN_vA&fkfZ}8 zL-^r0%;`lJ_{Bo3|5m~8&>`dZ3jTmUD%gma0t;CQODE@l6{ky>?uod(v?%zKIE6ps zqJrmaTYzP;jc87%cHI-}q zDnTY864i3)ewQ-*jH!;3H>u8mkqGgrumx@(x0% z7-pX(p=DxL5QaLD{E_9;11}(3#WJ0d)?K#cS>1LGo%1;biJpIoUnq4((Qn0d-bsoa zh9xZizloy3Nl&AFG9Iwr@ zuSD!RE$Lb|0aHPn{EM`NML|i?jOIA4^%L*gSje0HN=Uc^A=HZgfw$liQR=-XtG)MR zS?9ABYY`*uI&W<`=WoUO@p+u{4T0|q$cH7Cv{OjK_Jm_6XAwRnKFb?MA)WGAZORh? zbFi83icf$o=;BO5HxeAh<{kVeM+u(`Pov~KO1F=qtfqVfQyTdjfqWLB5;QcPK}C^q z6}JG3F%P#uMV%*Lmd_+Ffb2Yrgm!&^Q1m=zZf|TB>_;(cMcH}G-afZ% z6mwRT&!tUs$56{}^Y%Z6=?zVzm`??2XJCPL2J?<$erNND=LJ4qcNVXw*-fYMh7l|} z%qj;2#9fr)&{x}WH^(JN;%#_4eSVOKxdZR;ynk}s z(B+L$PyUaJ>Y(NWspE zqkzVHxl^2UW5Df;>2~_CB7hEh>6RxDYG|ZK1xQLg7uC=RAdUqD>LNn5fvdty)n_@b zexs+ffNvuPVNwa9Vkx8szOt9}b&;MUJHhZmK$p6Sx|H5AzdC#vj}jU665YGMlk_!> z&1cb6%IO20^Q$Wkp+3N*g-qs`?Ieh5BEC^1ULuI^3Q#RAQoWI{)nOlW1-><&m}P~X z3ua*X7;Za?Y2NznTwhU&`%9#wFDFmYjKyeT&^CC_RfLh4AHc0Rf@3&N*!Uj2n}-O- z>jFmWVun!@11UmyEFmmf35it%#cIMKMga5^0s}n!eLTnmND(S&9Omi~9_BH+@i={Z zg5EtxUeDm2w-c!3TaIrk9>)+NDl)}|@w2;t-IVEr zss$C7ph}%G_V71+2~8YdrjeyG_R4q{Q-O?kSFM-vp30X9>k#2pNMH-eL;O|L+&qTX XCs86`BzZ6rnGTrC@qK)j;GX{h@3Um8 literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class b/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..87769561a29c0cc96ec7611453facda067e09c49 GIT binary patch literal 679 zcmb_a%Sr<=6g}x{`qI|=TD!7!VNhI%iko6V9IU7mT&8K%w9|=Xrj`0tx+*C60e+Nt zXIiSbk%F6havvur_vU_lzPtkzl#sk-SX zhLWp&bw22~mAw{ik0KSBaag@!t~Y{>?Ka;$!6kU4h1?FCk2EH k*367Hr>P~+%&S7e_1bYWXK7x^ zF(e#{Eca$~yP#?X?J?WZ=3Uh_oHX^SnPanO>;fjQ=|FZ4( z-3|wy2J@z2iEv`G1y{n}4UG$~+JDdZ@W}YGg{<3_XPoBgwyX+&L@UzU{z^%2FwJXL zP966g)5`U%m55{1%o+>*jwMp+Cv3F^S9NEh=-CpkkA!Jh{)%Z^Zgy7fpLYj+MLLWZ z9eYl~flUo~balAkj%coDIK#%maoU*Kpo%%e3sXfeZ5!t&EX?}JjSsS3B2UyBEfppW zXF{9IQ$pnETK=Twm|`9Zmxqfq8qH53-qk5{N9rinkzH4P%LNb)u_M! z8(Zb}mk8DMgG@4;gXOMhsK{E-7q>)Zm$)72Lew{Gj;6Ag%JzskC3a4%O{A-4vNSbi zI1;W1BDG9g9a!*;0bfkKY{?pa&luS;!!706#S-z@zM`#9YmRGp>L8z*PN)&XY}_NK zb))F9(*))Mij&Y8X|K)sN<#g(r|GjyiH~?0uaj5F)g)XAiC#S)LM1tFmmJ*~GDWLw z3t(D-`+Wkc3id%&a06~skVdna&^rH3jQLcuLKsNg2ttYAM55S^QuZNw8| z%QFgYMYn>(I3nW>1#jXlo=d^oct^pzc#pZQbiHYg6r9ET3Py2E!7ws1K2Y!>&M9ca zUI{HxZX76?dGZw#J7^ZC4JS2_wf)tx$Au6k;M)SWWjRJV-J z6nu^|WPjhUfXaUrU&7TVEJ0Z*&rT6Zq_>pg<0v&{J1GfG^QJeQG9E24@kYw>IWMK) z3vr+?{k<-k++=*E;A?!tTXf~z$0lbCouF-85sj5BKcuqIzif{ZxSD5+MhJOgbZy5$I@%S`Cr&Y-b@L-r%E-q_R5L!Mx_WJYCeX2Rr$Fxd;4AK>}BbmgSdimEb1I zI{f!e&dFN-JBiDGl7yDmySPq1qP$Tsl)p}T;WI&<9`tg&jWd-`iO=fvPmsRz)%rNr z_`+Q{#CIi7!0qVgOu_&LIYy1EqQ-mHH72_;vZ!$^YMfrjI5_wa_r3#nhEC2S&Oe|% zeF5?Guc$tC0X2(|)9s6hr8^dpNOvxxmMh6qoflBI2<3aK#~=>b3YlXk9kgN#v)ROK zZ09x5%6z6t>EiI|zh2|2j;#=d@9Ja?f zEMdn*v{vCfZX8{uo~l&e8BBMT4X&lZKXczR&K=M(g=@l^9Y8(f?W6Q|>>?mL2*;cG zJji=fX9cD(gd73#5+U*ypJ#Cw@4aC^4_!Q~uo=TRy&Yt2CfFfy>UZJh- literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kcl2/DownstreamThread.class b/target/classes/kinesisencryption/kcl2/DownstreamThread.class new file mode 100644 index 0000000000000000000000000000000000000000..c00f86a53e9721c607c01c808a5e19cdbf3ac913 GIT binary patch literal 2814 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 Hu0ZO)cLX*D literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kcl2/KCLRecordProcessor.class b/target/classes/kinesisencryption/kcl2/KCLRecordProcessor.class new file mode 100644 index 0000000000000000000000000000000000000000..48398d08e925120e7d3000bbd4a2548845b8a031 GIT binary patch literal 4816 zcmcIn{Z|y%8Gh~p&a$jXfM`Of9g{}+-p1H81){uoPrND1#Zq7v*fr!Ks3aoZOzT!U9eQu_(c36nrU!?f9~S zuY|Azugc-I5Wb49N!+i8IDA9F>lNg|zki+#;*Cmt6WqpHpx?h_@ut&lUV4gkR!U3f@+5L7*&Sr37l@ zmYs??nVAEpB5^B~((Nt*#Yt;+GM1Fvr?h!3lF`gmWX!bZ3;Z3n+ba{ z>l&6BwM((~?GO ze3s~r;S{xt%qBAXBZJZSsGhLwDY{&Dg! z@`yRt$VB3X<95Xp)?7rJ)6Q6?w%|k@-JUndB$AgUlE@gk>1K>+TeBAH&f zBU8~d^rd93Wa&4e3pC$Pv$3ap>_pm_r+w14t|g_DU2k=72(0dgY|ju7p(I zjmH0xN?_u_Xv^rk*RPA&f^QG4k+J)uB$#95WFo#6T?c89?PIQ%m>trx`Dm#eGg7AJ z=4|@?t+nplEcuU;X6xP$I_aF7v=*4I7n>doo6S*W2uBtydseq2V|md=b8F%z0M4Bs0R*ODU=)6O1&p;Xfls$ap> zd}X$5b%sCh;!``r_zfL15o~E|ImRR*L>d*3hEVevy^%t6}^JhZX!ejCXM@jDvVKj4$9NR`UB$UvD3Q z7MW(QR9TjRg1{T--Ki@0OBmO2LZH5QjmVR}UFadn|FA%8Q@52~2;>c7TObnEa;daS z9)6)xSJB&4XV%DOr2xf<>5%@o!Tj2)2pc4Wz#~O{)ftV!mQ=MF2CynnskyE`mvtR- zeou04AGbBrk=HRj?&NfJA+4Jw5=wd7)%+NFP(yO|%#Zhw(RhnM(wtBoaLml+n95w2-7HZt@EvV)DxGAu^7?B&L zGP}PLu7n#b}X*Wt*1G>L%Oe_Ko_#lA7qZ(D{PIsvdMLAH;-fYF>v(jGDFWIm5{?XDs%V zo_|)GF2ZFE@;cub8?dI>dU{31b!!_I@ABPMD*kBBG-c#?I~DBOZQ1G-gJNvaVOlT@ z5;@yuF33i_(1x@7X1CwJDQn-iFJK1p2{05J?iuf6H7k`d|0F3foJ{V8qS(BFEIO#d z3s0J;>6pBqE0X$jj*p*RYmM8lC0xs1B*&EQ`p+SOCrdd-Gn(UcHLrg)VGo~g5eR%5 zK{Uv#h;NyIyfwV}Gx_-$Z*IV6@hova=k4tyekZzCzq|SUT*>}U(qZW*?l$7^rsLSd zFUd`Cu4q|?xbBha%_9MIh;kkF5pV>3{Gv;6l%qWSGGC+t&U8OG94emh7)aS9%x551Qe!FC0Ak#etp0@x{*z_vE%~~; zfUXjrRg$L%UqZOR_zt#Dwl1T3_zreVwlAZmv;5KWB|Nl(+LrfGclHA6TH2OT-$Fn= zc4{|KC&es>)PFB3Iqu`wgl7KlM+>^qN>Mrxr_nx77rjKNw9f$wwx18>V;H1z-TaDU zh;*cV3M##fVT@2A2|Lcy0gQ6(TUPFkac`WEZ3z4aJq>uC>i{MQeE~0WlqPtU)TQxS zOEiCknp2y~5`(whz@zUV*h1awr9x$%LbaYi&tNy>F_t{!gF-@d0O!joqCxzy-Fj#OUquPId7BJ-|&j( zi2*32Rm}i-g&Ys@#1u|)b)K*(Xk1-G6<5<-sq7CE5MzVMS L^&B&t1DN|C*JxmQ literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kcl2/KCLRecordProcessorFactory.class b/target/classes/kinesisencryption/kcl2/KCLRecordProcessorFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..4a63612294f6700c4bf4d3fbaa9f2cc891071ec1 GIT binary patch literal 646 zcmb_ZT}uK%6g{(QtE;8i*IUq=_Rxg%R`enW(UMUi^f-=FjjlT}yBhYZ>PaZ*2lS(& zyS7*afe*dhGxyFp_uR{U|9E)=aDXijIaFP&d2kY3cd_AOlVRydhdMrH$kgf`hHTUH z6hqn9p*kB4yUJdPZa|f)Z=?u1!s;YXi`n>2M+^;rK=epQDwK9|A8Qlxfeae_wCP_c zX>9M@8mXel*p`s7v6DlxkXDIU&3_pDTHTjs$i+}RnovAMJW_V7NyyXwTn1W&aiF_a z*a_ERtn7_Q2q(XM$iTZaBP&%)C*yDbIm%vNj7149@(lHb_h8sxn49j*P)V$KAi`VT z?)H_88QTA~aB6}bWa-j$S30{xNPAH%P{s)vVQzN{_B{LcC@#&41r+IB`XUf6Q^v4@ gGQ~vPm^B0PuW+uX$UITa!MDEnL!Y1PD>K&WC+9A$UH||9 literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kcl2/S3ArchiverThread.class b/target/classes/kinesisencryption/kcl2/S3ArchiverThread.class new file mode 100644 index 0000000000000000000000000000000000000000..1a5f37b6bf80064fa3324ae6c3dda458ac7ab169 GIT binary patch literal 6855 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 N$4aigfqNmm@qhFEI~M=| literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL$1.class b/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2c7b16442de968ad48c4370089d7542179010099 GIT binary patch literal 2252 zcmbVOTUQfT7~LlcnPf6niel+Sn<};elnFwM0@7kiEHzOi2&LAxlgS|rOy*>rneo!6 z{*C^HzV!v6Yqd*X{ZU>0&SWsD(zSqxoXgC2_P5V>*^^iQ{P{P4DQxP<;+lp@9SKb7 zID^l1e1T~V*L4(eBZCPe2v8n%4&04!#6qxv83T! z4R;vQbB^Z(^9;$t$QnbcBpRIIbj9)b-LO^Xa@DH4^kkqSY|CA4_zcF9 z=W$tbE#K#~y;j+w)4t<#&z8^Hfg?O~r|p`Hoh@%HOVJ2zF4vu4>&|jzcw&|zE4;Gh zxS=FpLxsw=_1H39%WImeTT(nxK4&9-$V@ExyN<-wL{Xs8&d;;w=B zFvPHM)Esxiu1bhE7N6QYDmw%Bux#KyRy5QMtl|NK3d3Bg*A*iictRcwR_wT9)H6oGU!+Dc)M3 zViI*vw#kFeJs9Q+BPXv;h8#h~azObSAh0N9Q9o21Uundpw{L6<*QI7NmjW)84AD`I zfGUv=6?(h!z+yHAj^r!uL+T7G(v#t0u}JwR=R!73-`$+rHY=jpVZFXh;^#46v@5gZ3_Cz4bnG|iiAFhDf*E*(C&R&nKUz+ z`$nIG{XvTaKAH7=WjpUVGlD3T$O}W}0jD4I+K)rrvY#*nS>O{YCpN!mJM26P)p<#uX z)-XoOW70fLQgRFHD3dZMYI(9BB0`_wA`vGdF-f($gkhq2Il^Sqw4^4Ed6&pondcON zclR-nK=mrM$Vyt5wQLR0vwG2Cu6|uD23q6F3xu0-i~B8hDy=3 bRJ^a?YBZ126;*nQn80~j=>$GVGm!Zgn@nVq literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL.class b/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL.class new file mode 100644 index 0000000000000000000000000000000000000000..a7bf19dcf7ebae46d8e5c3c7e4bf44f819302444 GIT binary patch literal 7139 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 literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/streams/DecryptShardConsumerThread.class b/target/classes/kinesisencryption/streams/DecryptShardConsumerThread.class new file mode 100644 index 0000000000000000000000000000000000000000..ae23efb8c07c22d10a970c16041ac5145643c42d GIT binary patch literal 5467 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 MEgap!IR&5kAFzfcH2?qr literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/streams/ServerSideEncryptedProducer.class b/target/classes/kinesisencryption/streams/ServerSideEncryptedProducer.class new file mode 100644 index 0000000000000000000000000000000000000000..31c7fa36484c7f9600300fa7c0bedc1e635fbe43 GIT binary patch literal 5167 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 literal 0 HcmV?d00001 diff --git a/target/classes/kinesisencryption/utils/KinesisEncryptionUtils.class b/target/classes/kinesisencryption/utils/KinesisEncryptionUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..f0fb797842db53b6c0f783a3d45f8182455ed926 GIT binary patch literal 9034 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 OrFawn*U7osy6*zF)ilZg literal 0 HcmV?d00001 diff --git a/target/classes/log4j.properties b/target/classes/log4j.properties new file mode 100644 index 0000000..5b32291 --- /dev/null +++ b/target/classes/log4j.properties @@ -0,0 +1,16 @@ +# Root logger option +log4j.rootLogger=DEBUG, stdout, file + +# Redirect log messages to console +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n + +# Redirect log messages to a log file, support file rolling. +log4j.appender.file=org.apache.log4j.RollingFileAppender +log4j.appender.file.File=C:\\Users\\temitayo\\workspace\\KinesisEncryption\\log\\ke.log +log4j.appender.file.MaxFileSize=5MB +log4j.appender.file.MaxBackupIndex=10 +log4j.appender.file.layout=org.apache.log4j.PatternLayout +log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..3013ad9 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,18 @@ +kinesisencryption/kpl/EncryptedProducerWithKPL.class +kinesisencryption/streams/EncryptedProducerWithStreams.class +kinesisencryption/streams/DecryptShardConsumerThread.class +kinesisencryption/dao/BootCarObject.class +kinesisencryption/dao/TickerSalesObject.class +kinesisencryption/kcl2/DownstreamThread.class +kinesisencryption/streams/EncryptedConsumerWithStreams.class +kinesisencryption/kcl/RecordPrinterThread.class +kinesisencryption/kcl2/KCLRecordProcessor.class +kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class +kinesisencryption/utils/KinesisEncryptionUtils.class +kinesisencryption/kpl/EncryptedProducerWithKPL$1.class +kinesisencryption/kcl/EncryptedConsumerWithKCL.class +kinesisencryption/kcl2/S3ArchiverThread.class +kinesisencryption/streams/ServerSideEncryptedProducer.class +kinesisencryption/kcl2/KCLRecordProcessorFactory.class +kinesisencryption/kcl/EncryptedKCLRecordProcessor.class +kinesisencryption/kcl2/KCLConsumer.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..2c588eb --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,17 @@ +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/KCLConsumer.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/DecryptShardConsumerThread.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/EncryptedConsumerWithStreams.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/utils/KinesisEncryptionUtils.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/EncryptedKCLRecordProcessor.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/EncryptedConsumerWithKCL.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/DownstreamThread.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/RecordPrinterThread.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kpl/EncryptedProducerWithKPL.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/dao/TickerSalesObject.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/S3ArchiverThread.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/EncryptedProducerWithStreams.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java +/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/dao/BootCarObject.java From 392393099693efdbfe437987998b8cb2b8c74f08 Mon Sep 17 00:00:00 2001 From: "tayo.olajide" Date: Tue, 19 May 2020 07:30:08 -0500 Subject: [PATCH 4/5] removed target --- target/classes/app.properties | 12 ------------ .../kinesisencryption/dao/BootCarObject.class | Bin 807 -> 0 bytes .../dao/TickerSalesObject.class | Bin 1070 -> 0 bytes .../kcl/EncryptedConsumerWithKCL.class | Bin 4453 -> 0 bytes .../kcl/EncryptedKCLRecordProcessor.class | Bin 5618 -> 0 bytes .../EncryptedKCLRecordProcessorFactory.class | Bin 679 -> 0 bytes .../kcl/RecordPrinterThread.class | Bin 3768 -> 0 bytes .../kcl2/DownstreamThread.class | Bin 2814 -> 0 bytes .../kinesisencryption/kcl2/KCLConsumer.class | Bin 4460 -> 0 bytes .../kcl2/KCLRecordProcessor.class | Bin 4816 -> 0 bytes .../kcl2/KCLRecordProcessorFactory.class | Bin 646 -> 0 bytes .../kcl2/S3ArchiverThread.class | Bin 6855 -> 0 bytes .../kpl/EncryptedProducerWithKPL$1.class | Bin 2252 -> 0 bytes .../kpl/EncryptedProducerWithKPL.class | Bin 7139 -> 0 bytes .../streams/DecryptShardConsumerThread.class | Bin 5467 -> 0 bytes .../EncryptedConsumerWithStreams.class | Bin 5214 -> 0 bytes .../EncryptedProducerWithStreams.class | Bin 6435 -> 0 bytes .../streams/ServerSideEncryptedProducer.class | Bin 5167 -> 0 bytes .../utils/KinesisEncryptionUtils.class | Bin 9034 -> 0 bytes target/classes/log4j.properties | 16 ---------------- .../compile/default-compile/createdFiles.lst | 18 ------------------ .../compile/default-compile/inputFiles.lst | 17 ----------------- 22 files changed, 63 deletions(-) delete mode 100644 target/classes/app.properties delete mode 100644 target/classes/kinesisencryption/dao/BootCarObject.class delete mode 100644 target/classes/kinesisencryption/dao/TickerSalesObject.class delete mode 100644 target/classes/kinesisencryption/kcl/EncryptedConsumerWithKCL.class delete mode 100644 target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessor.class delete mode 100644 target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class delete mode 100644 target/classes/kinesisencryption/kcl/RecordPrinterThread.class delete mode 100644 target/classes/kinesisencryption/kcl2/DownstreamThread.class delete mode 100644 target/classes/kinesisencryption/kcl2/KCLConsumer.class delete mode 100644 target/classes/kinesisencryption/kcl2/KCLRecordProcessor.class delete mode 100644 target/classes/kinesisencryption/kcl2/KCLRecordProcessorFactory.class delete mode 100644 target/classes/kinesisencryption/kcl2/S3ArchiverThread.class delete mode 100644 target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL$1.class delete mode 100644 target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL.class delete mode 100644 target/classes/kinesisencryption/streams/DecryptShardConsumerThread.class delete mode 100644 target/classes/kinesisencryption/streams/EncryptedConsumerWithStreams.class delete mode 100644 target/classes/kinesisencryption/streams/EncryptedProducerWithStreams.class delete mode 100644 target/classes/kinesisencryption/streams/ServerSideEncryptedProducer.class delete mode 100644 target/classes/kinesisencryption/utils/KinesisEncryptionUtils.class delete mode 100644 target/classes/log4j.properties delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/target/classes/app.properties b/target/classes/app.properties deleted file mode 100644 index 84e5cee..0000000 --- a/target/classes/app.properties +++ /dev/null @@ -1,12 +0,0 @@ -file_path=/Users/xxxxxxx/workspace/kinesisencryption/script/kplWatch/2177dff9-330c-46b7-801f-e1ed3ba1e8e0.json -key_id= -key_arn= -stream_name=EncryptedStream -kinesis_endpoint=kinesis.us-east-1.amazonaws.com -kms_endpoint=kms.us-east-1.amazonaws.com -sharditerator_type=TRIM_HORIZON -kcl_name=EncryptedKCL -ddb_region_4_kcl=us-west-2 -encryption_context=cars -s3endpoint= -s3bucket= \ No newline at end of file diff --git a/target/classes/kinesisencryption/dao/BootCarObject.class b/target/classes/kinesisencryption/dao/BootCarObject.class deleted file mode 100644 index afd66b5f2012082d9428990020798ae97953906f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807 zcma)4O;6iE5Pf5tI0-HvAtlg4`EC;z>Ps&bRSzKb6t#ySq#if%3Kkr19=OcR&b*oTX0-P|zuy6Pjj)PYtW{9Ox-rj;+3>Mh#SGSr*(zh( z_#Gd+KK6V(CwQsoOG2%EA+AJ}i1aM#k=q6T#?uq17WXilJNiRQFL&9GBlHo%&lxZ)!9^^`= zQ7m+Hq;-BQvX9*h*~?jTIoE}LLcQ6VmPDv_^eF4e_sUZK)&I&IA;2PD1bBqG0Q1Hy zV2;rE_dZ7>mBca&&_s(s`vF$4O4xaTOv1wNX@zoDYg0-`9m)GA>T_`uw`opR5`%$E zW5U6I?moTcMB5>@_zTQ}5Wt0FR^pH1n60em#jGdZxW=d@ekEM@*w@2bQ225TC)^*y z4G+ffzFKsh?K1x&;4veYQ9*;}tZ?@#XMnKi=SqWLJjwEsjSRD6Bg5@7Cm(IXe8Lrj w3V&ec(=AHjH#j%&Yh^YZyMM$U$2X{aVYI{Zfs*Z9xBNjdWx`K*Vo^_j0UV~Qt^fc4 diff --git a/target/classes/kinesisencryption/dao/TickerSalesObject.class b/target/classes/kinesisencryption/dao/TickerSalesObject.class deleted file mode 100644 index f1ea1922251ba567e2a97fb5396dba7daadae38c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1070 zcmbVL+iuf95IyTSiIci*aNCq#fV5naxJk_=@B-z5N=T>?ASJ5AqvKd*TgQ$Z2dN+s zp9B&~C6M?4J_<2ohZGTz5HB;Hv$Hd2&aA(E|NIp|1NZVMU^|CJTxD~O&2=_6vMA?~ z!M279`zjk#!;XfUhB`;PSy)-z%;J`S9!clK4O^$ZPT&a`&13tOZF#nTWVNDD`bYN# z@&ns*2hT(4xB}TA?7HETu0Sr5J+~Fvy}m%^f%IkcP~f04TjBqZ>Y;$TA9ShbVpIC= z(_ydUhHbm!5n?n0$Mz2GP;xv0)##-h2vnOVls=FH*LT9xek23m>e_+TPA279o^_60 zC!*1`C`iT>SgurOiPG?`U>G{?W65ocGc|TuFCDA6t;4{Qj%7A0Y>HSCSp8kkM?>k6 zfC8nNT5o>c#a>y*9W>b76g}d-8Rnd#b`~$=LnA>(djc|6$v+Do#cwxi>5Oe?P_+J>LQZEknUppYw+$H*IV36PosdIG3ZU_JrTKY_wqx;Mtc2db+OC(sn!V21YX GTR#9&;qlo3 diff --git a/target/classes/kinesisencryption/kcl/EncryptedConsumerWithKCL.class b/target/classes/kinesisencryption/kcl/EncryptedConsumerWithKCL.class deleted file mode 100644 index 82e94ac43a5d76dba40125f3e3cfac07181a8ba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4453 zcmcIoiC+}g9sds3?2Z%E6;v?NRilC^qp8{ytPNQ;Zds0SNQq79Fgv@9?9PzcSrL0A zZPWWclG?-8+QU}creeFSp-p-p>GdDA{l1w67FdhslLGVRz2AH9cYfdR{f5{7{mQEV zj^bYm-U=gxWC*5$6w)##71Y8A;|Qz`xPU1c85!9SYy}D&h4g6|&nl>gp}<8>G@cmd zL%6752A9NORy3CtydNJ3;e!f3gy%wdK7B#y1pv6W@|? zRYG&TFFqXaPK*!q53$qVHy-aB9~vG!-Q6qUsf6KVH9f0ec5Hnnr{zrdqGgylZOXFE zoR!mzjAhzh#+q<-cUI$Dn{nJJ)79d(4PK>gWY6;iS{1%c;5(7Db=rn%1^+ z5^7>j(v+|Lj&grft#wB8nH)-W098Q$%Gi}42ofZaYQ$|KR z9SqH6%&~L%tm%$g-egZKL9vREN|UV1RLv()7t4vhUs(R!iR=D-I(gt zr+twG4Ry@wmMvjx>-n-h^p|C)yMzsrx02oPr0dKGt;w!Nchl5(ONFfxLP0R%Nn!4? zIwjUrI_C$aPtQ_eS)ZN`df{YpV$e*}Y6&|_o{0H@PFNE(J!Pfyt}eVHVRTj8?jIpN z0fZ_ure#}Q({S7*Awt0A9QTZFc#b>!z@W5j&va9|Ky7@mB1;OZ3p^#^@i%PGs1JPd z3YnKIFMypCm(e5R+dRxNzQZ%ilS#KP;enA0o!}V?5UUJ1dDk${SOT9r?*+CF5l9uC zps4M(=?TsCWYVRRIt<;IG&?+xpsG54SjIIK-^Fza$5tL=|8Si$Q+ht*RX$^}NkUS^ zalB2&_f&izKOn}I5wv80ggq-+cl)^_2x{4?Z86=p9WR=)>}0eo0SG&OsG?gKvu&Aw zfY2xMR))zz#tjue!jDzl#4Qy+!B2T4I%WJ!#mo4)Alz0lhg&l4sQ3kbDPco^>v5aF zmQheKk0L$IBkYqTY$C$PT_57(N5@H*FtXB)HwnkWzPlbT4pI22phPO-D$4umUW->}~(O^0{9h|mk%5kF%0yB1$$ul~`JQo!} zGu?PHD&sX3zY%f!t%zG0E|xNrjNhsFJ^mnJe@xG(C%ve*n6#oZlLYvpB<8qiQup)@ z8GlsqC&Bd3=u+_){8h&5D*lFJ5<1rL*Q#_ZZF*(b zri8t%ZL6|ch5Za+CYiL;#Vlk{M-6EsF?w&LV0mfKqVIX{C#;l)rgPjtDYuetMx4d&}f_$zi@i z%QM1Z%a$zDiJoN+M9;qaau2yBD=b{&#;)}tLRI`~t!wRO0h1jfOWdRGlW?>|*_>x)Ibpi2`Aa3T9kmsA;XP+&#$A0T^4qf zCrU29TH`{Y2g~Q{f3z^w4G+e9$Itc;#-Hx*W2Lg%;-%U&?B_)BDI(Ht**S@2^jwaJ zUA?o5A9F|eZ3$GPS=0&aDWdM;yII`ReAhq{AKPfQ6|y;l zC#f^Fk&4t>;bgIhhZayzO*R&>sesJ|L?T<*6wy#XV*y(eMQn>~FQBPcbeh@e6P+FG zbkc~2#||B&0qyhH*;(6EJBOA6-qKW4Ky-8gyU2HUXWat!j5XCY)z0IQPFlOSBrvj% zat;cC``NVfp}4zftwQzjP?KCh+YK~!hUd^ORvl^z7tm32Jk%H}LKDupf~&a3@9V%h zeb_>K_H)!mw;Vt_e~;oIopK1h4BdGKJBdf}EU7Ot%vTuVt90u%2KqXKe3OxSnZB9h zj(NsUL^DMnUB@PzMV#KFx9~3X@Vy%^AwjPEc;=UXAA42g`U3jdtLDzj7+|l4&lH}* zApcvD#4v{V)KUJE7{NJ)hkq`&F3uFVA5#{r~^~ diff --git a/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessor.class b/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessor.class deleted file mode 100644 index 374b2104c09cb73732e800bf8830ada3bb715e19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5618 zcmcIoiF*`h9eyVVv)K$G4R@eCg9^>PV8L2K!LTf{kOW8;TB;Z(yOYh3&CEJ88wg&l zZMEJ92(`7fpcED5YDofUEna9n>V0d~diGD~!()BFnceI_QYt(p&$Hjm_s#G7UEljV zzC8Qib58?Uh8M$FiF+$>Gu|)bzA#F0ZwU8`=L2H+KqWqi2gT07od z(r%^Gy4@;4cKS6t6;FxJyR;!KlF`g`q}#O(GtJLa2K3=J+mvvVZYJ&FtZP_i)G}Rt zk1Ju;nzrc1P3zY6B;p;ho_J?ZN4&i~-Yr4eAYm%W99J{lZCWO$OQ`JJ+R@V$OLWC! zf+Ai@hlC~6M%Txp8#ix?cP7Xo5$oF4);`Xs)})+hzn&b(T88N+j6pqab{LtA;ZU`e zhH1E~XkA_XHVI`>D@8HW+6`0h%nkPHc0%jTaD`?kwahlnHpD!?SmyQ%9=Em+klZnx zqIHphWF`{xjnz{dqwQUK(y~*VZ7ZoejwO5+7J>~eW9%jSnROHWCiJPw`aAsXlx5@z zbFPtzv>T4w+McuqBif+0*D|%;PQ=meA%j99d7UE3jG>!u#^|**dpJS|=ysnb2;x`h zRCE!~R0x-|JU^04XnX|=3miPMM8Bw}tB_aI>H1L@a{6;_%G%9zaj5Rbh`Bbd44ues%O23}NOxYfE?sjh(+iTSg1Y{i zg!Qi#cS1fnp0y-wzd_CrkzV2u6C1BhalH_m&bV8G;o5QC+?XjWmkG;E2l;KfZhmod zh*>tpm~izVM>PeEMp=wye4DkCrBXs@CBg0&k#M(_ zvy=KdLzE2lD*3-fR7nNx=uofrbr$0u%{FEHSiw*5oPsFYn5&D$ zt7kkz%NzZ|CgZ0HeukgR_=SRB;#aJ=OgFkQq^AlRIjm!<;ixNAp~kPN_vA&fkfZ}8 zL-^r0%;`lJ_{Bo3|5m~8&>`dZ3jTmUD%gma0t;CQODE@l6{ky>?uod(v?%zKIE6ps zqJrmaTYzP;jc87%cHI-}q zDnTY864i3)ewQ-*jH!;3H>u8mkqGgrumx@(x0% z7-pX(p=DxL5QaLD{E_9;11}(3#WJ0d)?K#cS>1LGo%1;biJpIoUnq4((Qn0d-bsoa zh9xZizloy3Nl&AFG9Iwr@ zuSD!RE$Lb|0aHPn{EM`NML|i?jOIA4^%L*gSje0HN=Uc^A=HZgfw$liQR=-XtG)MR zS?9ABYY`*uI&W<`=WoUO@p+u{4T0|q$cH7Cv{OjK_Jm_6XAwRnKFb?MA)WGAZORh? zbFi83icf$o=;BO5HxeAh<{kVeM+u(`Pov~KO1F=qtfqVfQyTdjfqWLB5;QcPK}C^q z6}JG3F%P#uMV%*Lmd_+Ffb2Yrgm!&^Q1m=zZf|TB>_;(cMcH}G-afZ% z6mwRT&!tUs$56{}^Y%Z6=?zVzm`??2XJCPL2J?<$erNND=LJ4qcNVXw*-fYMh7l|} z%qj;2#9fr)&{x}WH^(JN;%#_4eSVOKxdZR;ynk}s z(B+L$PyUaJ>Y(NWspE zqkzVHxl^2UW5Df;>2~_CB7hEh>6RxDYG|ZK1xQLg7uC=RAdUqD>LNn5fvdty)n_@b zexs+ffNvuPVNwa9Vkx8szOt9}b&;MUJHhZmK$p6Sx|H5AzdC#vj}jU665YGMlk_!> z&1cb6%IO20^Q$Wkp+3N*g-qs`?Ieh5BEC^1ULuI^3Q#RAQoWI{)nOlW1-><&m}P~X z3ua*X7;Za?Y2NznTwhU&`%9#wFDFmYjKyeT&^CC_RfLh4AHc0Rf@3&N*!Uj2n}-O- z>jFmWVun!@11UmyEFmmf35it%#cIMKMga5^0s}n!eLTnmND(S&9Omi~9_BH+@i={Z zg5EtxUeDm2w-c!3TaIrk9>)+NDl)}|@w2;t-IVEr zss$C7ph}%G_V71+2~8YdrjeyG_R4q{Q-O?kSFM-vp30X9>k#2pNMH-eL;O|L+&qTX XCs86`BzZ6rnGTrC@qK)j;GX{h@3Um8 diff --git a/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class b/target/classes/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class deleted file mode 100644 index 87769561a29c0cc96ec7611453facda067e09c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 679 zcmb_a%Sr<=6g}x{`qI|=TD!7!VNhI%iko6V9IU7mT&8K%w9|=Xrj`0tx+*C60e+Nt zXIiSbk%F6havvur_vU_lzPtkzl#sk-SX zhLWp&bw22~mAw{ik0KSBaag@!t~Y{>?Ka;$!6kU4h1?FCk2EH k*367Hr>P~+%&S7e_1bYWXK7x^ zF(e#{Eca$~yP#?X?J?WZ=3Uh_oHX^SnPanO>;fjQ=|FZ4( z-3|wy2J@z2iEv`G1y{n}4UG$~+JDdZ@W}YGg{<3_XPoBgwyX+&L@UzU{z^%2FwJXL zP966g)5`U%m55{1%o+>*jwMp+Cv3F^S9NEh=-CpkkA!Jh{)%Z^Zgy7fpLYj+MLLWZ z9eYl~flUo~balAkj%coDIK#%maoU*Kpo%%e3sXfeZ5!t&EX?}JjSsS3B2UyBEfppW zXF{9IQ$pnETK=Twm|`9Zmxqfq8qH53-qk5{N9rinkzH4P%LNb)u_M! z8(Zb}mk8DMgG@4;gXOMhsK{E-7q>)Zm$)72Lew{Gj;6Ag%JzskC3a4%O{A-4vNSbi zI1;W1BDG9g9a!*;0bfkKY{?pa&luS;!!706#S-z@zM`#9YmRGp>L8z*PN)&XY}_NK zb))F9(*))Mij&Y8X|K)sN<#g(r|GjyiH~?0uaj5F)g)XAiC#S)LM1tFmmJ*~GDWLw z3t(D-`+Wkc3id%&a06~skVdna&^rH3jQLcuLKsNg2ttYAM55S^QuZNw8| z%QFgYMYn>(I3nW>1#jXlo=d^oct^pzc#pZQbiHYg6r9ET3Py2E!7ws1K2Y!>&M9ca zUI{HxZX76?dGZw#J7^ZC4JS2_wf)tx$Au6k;M)SWWjRJV-J z6nu^|WPjhUfXaUrU&7TVEJ0Z*&rT6Zq_>pg<0v&{J1GfG^QJeQG9E24@kYw>IWMK) z3vr+?{k<-k++=*E;A?!tTXf~z$0lbCouF-85sj5BKcuqIzif{ZxSD5+MhJOgbZy5$I@%S`Cr&Y-b@L-r%E-q_R5L!Mx_WJYCeX2Rr$Fxd;4AK>}BbmgSdimEb1I zI{f!e&dFN-JBiDGl7yDmySPq1qP$Tsl)p}T;WI&<9`tg&jWd-`iO=fvPmsRz)%rNr z_`+Q{#CIi7!0qVgOu_&LIYy1EqQ-mHH72_;vZ!$^YMfrjI5_wa_r3#nhEC2S&Oe|% zeF5?Guc$tC0X2(|)9s6hr8^dpNOvxxmMh6qoflBI2<3aK#~=>b3YlXk9kgN#v)ROK zZ09x5%6z6t>EiI|zh2|2j;#=d@9Ja?f zEMdn*v{vCfZX8{uo~l&e8BBMT4X&lZKXczR&K=M(g=@l^9Y8(f?W6Q|>>?mL2*;cG zJji=fX9cD(gd73#5+U*ypJ#Cw@4aC^4_!Q~uo=TRy&Yt2CfFfy>UZJh- diff --git a/target/classes/kinesisencryption/kcl2/DownstreamThread.class b/target/classes/kinesisencryption/kcl2/DownstreamThread.class deleted file mode 100644 index c00f86a53e9721c607c01c808a5e19cdbf3ac913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2814 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 Hu0ZO)cLX*D diff --git a/target/classes/kinesisencryption/kcl2/KCLRecordProcessor.class b/target/classes/kinesisencryption/kcl2/KCLRecordProcessor.class deleted file mode 100644 index 48398d08e925120e7d3000bbd4a2548845b8a031..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4816 zcmcIn{Z|y%8Gh~p&a$jXfM`Of9g{}+-p1H81){uoPrND1#Zq7v*fr!Ks3aoZOzT!U9eQu_(c36nrU!?f9~S zuY|Azugc-I5Wb49N!+i8IDA9F>lNg|zki+#;*Cmt6WqpHpx?h_@ut&lUV4gkR!U3f@+5L7*&Sr37l@ zmYs??nVAEpB5^B~((Nt*#Yt;+GM1Fvr?h!3lF`gmWX!bZ3;Z3n+ba{ z>l&6BwM((~?GO ze3s~r;S{xt%qBAXBZJZSsGhLwDY{&Dg! z@`yRt$VB3X<95Xp)?7rJ)6Q6?w%|k@-JUndB$AgUlE@gk>1K>+TeBAH&f zBU8~d^rd93Wa&4e3pC$Pv$3ap>_pm_r+w14t|g_DU2k=72(0dgY|ju7p(I zjmH0xN?_u_Xv^rk*RPA&f^QG4k+J)uB$#95WFo#6T?c89?PIQ%m>trx`Dm#eGg7AJ z=4|@?t+nplEcuU;X6xP$I_aF7v=*4I7n>doo6S*W2uBtydseq2V|md=b8F%z0M4Bs0R*ODU=)6O1&p;Xfls$ap> zd}X$5b%sCh;!``r_zfL15o~E|ImRR*L>d*3hEVevy^%t6}^JhZX!ejCXM@jDvVKj4$9NR`UB$UvD3Q z7MW(QR9TjRg1{T--Ki@0OBmO2LZH5QjmVR}UFadn|FA%8Q@52~2;>c7TObnEa;daS z9)6)xSJB&4XV%DOr2xf<>5%@o!Tj2)2pc4Wz#~O{)ftV!mQ=MF2CynnskyE`mvtR- zeou04AGbBrk=HRj?&NfJA+4Jw5=wd7)%+NFP(yO|%#Zhw(RhnM(wtBoaLml+n95w2-7HZt@EvV)DxGAu^7?B&L zGP}PLu7n#b}X*Wt*1G>L%Oe_Ko_#lA7qZ(D{PIsvdMLAH;-fYF>v(jGDFWIm5{?XDs%V zo_|)GF2ZFE@;cub8?dI>dU{31b!!_I@ABPMD*kBBG-c#?I~DBOZQ1G-gJNvaVOlT@ z5;@yuF33i_(1x@7X1CwJDQn-iFJK1p2{05J?iuf6H7k`d|0F3foJ{V8qS(BFEIO#d z3s0J;>6pBqE0X$jj*p*RYmM8lC0xs1B*&EQ`p+SOCrdd-Gn(UcHLrg)VGo~g5eR%5 zK{Uv#h;NyIyfwV}Gx_-$Z*IV6@hova=k4tyekZzCzq|SUT*>}U(qZW*?l$7^rsLSd zFUd`Cu4q|?xbBha%_9MIh;kkF5pV>3{Gv;6l%qWSGGC+t&U8OG94emh7)aS9%x551Qe!FC0Ak#etp0@x{*z_vE%~~; zfUXjrRg$L%UqZOR_zt#Dwl1T3_zreVwlAZmv;5KWB|Nl(+LrfGclHA6TH2OT-$Fn= zc4{|KC&es>)PFB3Iqu`wgl7KlM+>^qN>Mrxr_nx77rjKNw9f$wwx18>V;H1z-TaDU zh;*cV3M##fVT@2A2|Lcy0gQ6(TUPFkac`WEZ3z4aJq>uC>i{MQeE~0WlqPtU)TQxS zOEiCknp2y~5`(whz@zUV*h1awr9x$%LbaYi&tNy>F_t{!gF-@d0O!joqCxzy-Fj#OUquPId7BJ-|&j( zi2*32Rm}i-g&Ys@#1u|)b)K*(Xk1-G6<5<-sq7CE5MzVMS L^&B&t1DN|C*JxmQ diff --git a/target/classes/kinesisencryption/kcl2/KCLRecordProcessorFactory.class b/target/classes/kinesisencryption/kcl2/KCLRecordProcessorFactory.class deleted file mode 100644 index 4a63612294f6700c4bf4d3fbaa9f2cc891071ec1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmb_ZT}uK%6g{(QtE;8i*IUq=_Rxg%R`enW(UMUi^f-=FjjlT}yBhYZ>PaZ*2lS(& zyS7*afe*dhGxyFp_uR{U|9E)=aDXijIaFP&d2kY3cd_AOlVRydhdMrH$kgf`hHTUH z6hqn9p*kB4yUJdPZa|f)Z=?u1!s;YXi`n>2M+^;rK=epQDwK9|A8Qlxfeae_wCP_c zX>9M@8mXel*p`s7v6DlxkXDIU&3_pDTHTjs$i+}RnovAMJW_V7NyyXwTn1W&aiF_a z*a_ERtn7_Q2q(XM$iTZaBP&%)C*yDbIm%vNj7149@(lHb_h8sxn49j*P)V$KAi`VT z?)H_88QTA~aB6}bWa-j$S30{xNPAH%P{s)vVQzN{_B{LcC@#&41r+IB`XUf6Q^v4@ gGQ~vPm^B0PuW+uX$UITa!MDEnL!Y1PD>K&WC+9A$UH||9 diff --git a/target/classes/kinesisencryption/kcl2/S3ArchiverThread.class b/target/classes/kinesisencryption/kcl2/S3ArchiverThread.class deleted file mode 100644 index 1a5f37b6bf80064fa3324ae6c3dda458ac7ab169..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6855 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 N$4aigfqNmm@qhFEI~M=| diff --git a/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL$1.class b/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL$1.class deleted file mode 100644 index 2c7b16442de968ad48c4370089d7542179010099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2252 zcmbVOTUQfT7~LlcnPf6niel+Sn<};elnFwM0@7kiEHzOi2&LAxlgS|rOy*>rneo!6 z{*C^HzV!v6Yqd*X{ZU>0&SWsD(zSqxoXgC2_P5V>*^^iQ{P{P4DQxP<;+lp@9SKb7 zID^l1e1T~V*L4(eBZCPe2v8n%4&04!#6qxv83T! z4R;vQbB^Z(^9;$t$QnbcBpRIIbj9)b-LO^Xa@DH4^kkqSY|CA4_zcF9 z=W$tbE#K#~y;j+w)4t<#&z8^Hfg?O~r|p`Hoh@%HOVJ2zF4vu4>&|jzcw&|zE4;Gh zxS=FpLxsw=_1H39%WImeTT(nxK4&9-$V@ExyN<-wL{Xs8&d;;w=B zFvPHM)Esxiu1bhE7N6QYDmw%Bux#KyRy5QMtl|NK3d3Bg*A*iictRcwR_wT9)H6oGU!+Dc)M3 zViI*vw#kFeJs9Q+BPXv;h8#h~azObSAh0N9Q9o21Uundpw{L6<*QI7NmjW)84AD`I zfGUv=6?(h!z+yHAj^r!uL+T7G(v#t0u}JwR=R!73-`$+rHY=jpVZFXh;^#46v@5gZ3_Cz4bnG|iiAFhDf*E*(C&R&nKUz+ z`$nIG{XvTaKAH7=WjpUVGlD3T$O}W}0jD4I+K)rrvY#*nS>O{YCpN!mJM26P)p<#uX z)-XoOW70fLQgRFHD3dZMYI(9BB0`_wA`vGdF-f($gkhq2Il^Sqw4^4Ed6&pondcON zclR-nK=mrM$Vyt5wQLR0vwG2Cu6|uD23q6F3xu0-i~B8hDy=3 bRJ^a?YBZ126;*nQn80~j=>$GVGm!Zgn@nVq diff --git a/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL.class b/target/classes/kinesisencryption/kpl/EncryptedProducerWithKPL.class deleted file mode 100644 index a7bf19dcf7ebae46d8e5c3c7e4bf44f819302444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7139 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 diff --git a/target/classes/kinesisencryption/streams/DecryptShardConsumerThread.class b/target/classes/kinesisencryption/streams/DecryptShardConsumerThread.class deleted file mode 100644 index ae23efb8c07c22d10a970c16041ac5145643c42d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5467 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 MEgap!IR&5kAFzfcH2?qr diff --git a/target/classes/kinesisencryption/streams/ServerSideEncryptedProducer.class b/target/classes/kinesisencryption/streams/ServerSideEncryptedProducer.class deleted file mode 100644 index 31c7fa36484c7f9600300fa7c0bedc1e635fbe43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5167 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 diff --git a/target/classes/kinesisencryption/utils/KinesisEncryptionUtils.class b/target/classes/kinesisencryption/utils/KinesisEncryptionUtils.class deleted file mode 100644 index f0fb797842db53b6c0f783a3d45f8182455ed926..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9034 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 OrFawn*U7osy6*zF)ilZg diff --git a/target/classes/log4j.properties b/target/classes/log4j.properties deleted file mode 100644 index 5b32291..0000000 --- a/target/classes/log4j.properties +++ /dev/null @@ -1,16 +0,0 @@ -# Root logger option -log4j.rootLogger=DEBUG, stdout, file - -# Redirect log messages to console -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n - -# Redirect log messages to a log file, support file rolling. -log4j.appender.file=org.apache.log4j.RollingFileAppender -log4j.appender.file.File=C:\\Users\\temitayo\\workspace\\KinesisEncryption\\log\\ke.log -log4j.appender.file.MaxFileSize=5MB -log4j.appender.file.MaxBackupIndex=10 -log4j.appender.file.layout=org.apache.log4j.PatternLayout -log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 3013ad9..0000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,18 +0,0 @@ -kinesisencryption/kpl/EncryptedProducerWithKPL.class -kinesisencryption/streams/EncryptedProducerWithStreams.class -kinesisencryption/streams/DecryptShardConsumerThread.class -kinesisencryption/dao/BootCarObject.class -kinesisencryption/dao/TickerSalesObject.class -kinesisencryption/kcl2/DownstreamThread.class -kinesisencryption/streams/EncryptedConsumerWithStreams.class -kinesisencryption/kcl/RecordPrinterThread.class -kinesisencryption/kcl2/KCLRecordProcessor.class -kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.class -kinesisencryption/utils/KinesisEncryptionUtils.class -kinesisencryption/kpl/EncryptedProducerWithKPL$1.class -kinesisencryption/kcl/EncryptedConsumerWithKCL.class -kinesisencryption/kcl2/S3ArchiverThread.class -kinesisencryption/streams/ServerSideEncryptedProducer.class -kinesisencryption/kcl2/KCLRecordProcessorFactory.class -kinesisencryption/kcl/EncryptedKCLRecordProcessor.class -kinesisencryption/kcl2/KCLConsumer.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 2c588eb..0000000 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,17 +0,0 @@ -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/KCLConsumer.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/DecryptShardConsumerThread.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/KCLRecordProcessor.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/ServerSideEncryptedProducer.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/EncryptedKCLRecordProcessorFactory.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/EncryptedConsumerWithStreams.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/utils/KinesisEncryptionUtils.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/EncryptedKCLRecordProcessor.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/EncryptedConsumerWithKCL.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/DownstreamThread.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/RecordPrinterThread.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kpl/EncryptedProducerWithKPL.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/dao/TickerSalesObject.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl/S3ArchiverThread.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/streams/EncryptedProducerWithStreams.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/kcl2/KCLRecordProcessorFactory.java -/Users/tayo.olajide/workspace/master/kinesisencryption/src/main/java/kinesisencryption/dao/BootCarObject.java From 3de56740202b536a1895ba2913e61c3c6282fff4 Mon Sep 17 00:00:00 2001 From: "tayo.olajide" Date: Tue, 19 May 2020 11:14:02 -0500 Subject: [PATCH 5/5] added mapper for ticker sales object --- .../dao/TickerSalesObject.java | 37 +++++++++++++++++++ .../kcl2/DownstreamThread.java | 18 ++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/main/java/kinesisencryption/dao/TickerSalesObject.java b/src/main/java/kinesisencryption/dao/TickerSalesObject.java index 63d95f5..03f15e2 100644 --- a/src/main/java/kinesisencryption/dao/TickerSalesObject.java +++ b/src/main/java/kinesisencryption/dao/TickerSalesObject.java @@ -31,4 +31,41 @@ public String toString() ", timeStamp='" + timeStamp + '\'' + '}'; } + + public TickerSalesObject() + { + + } + + public String getTickerSymbol() { + return tickerSymbol; + } + + public void setTickerSymbol(String tickerSymbol) { + this.tickerSymbol = tickerSymbol; + } + + public String getSalesPrice() { + return salesPrice; + } + + public void setSalesPrice(String salesPrice) { + this.salesPrice = salesPrice; + } + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getTimeStamp() { + return timeStamp; + } + + public void setTimeStamp(String timeStamp) { + this.timeStamp = timeStamp; + } } diff --git a/src/main/java/kinesisencryption/kcl2/DownstreamThread.java b/src/main/java/kinesisencryption/kcl2/DownstreamThread.java index c47f12e..6f8c461 100644 --- a/src/main/java/kinesisencryption/kcl2/DownstreamThread.java +++ b/src/main/java/kinesisencryption/kcl2/DownstreamThread.java @@ -1,10 +1,15 @@ package kinesisencryption.kcl2; +import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.Charset; -import java.util.List; +import java.util.*; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import kinesisencryption.dao.TickerSalesObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,6 +42,7 @@ public DownstreamThread(List recordList) { @Override public void run() { + Map resultMap = new HashMap(); for (Record record : this.getRecordList()) { try { ByteBuffer buffer = record.getData(); @@ -44,9 +50,19 @@ public void run() { String result = Charset.forName("UTF-8").newDecoder().decode(buffer).toString(); log.info("Cipher Blob :" + record.getData().toString() + " : " + "Decrypted Text is :" + result); + TickerSalesObject salesObject = new TickerSalesObject(); + ObjectMapper mapper = new ObjectMapper(); + salesObject = mapper.readValue(result, TickerSalesObject.class); + resultMap.put(UUID.randomUUID().toString(), salesObject); } catch (CharacterCodingException e) { log.error("Unable to decode result for " + record.getData().toString() + "with equence number " + record.getSequenceNumber()); + } catch (JsonParseException e) { + e.printStackTrace(); + } catch (JsonMappingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } } }