diff --git a/.github/workflows/ekv-main.yml b/.github/workflows/ekv-main.yml new file mode 100644 index 0000000..26b6c59 --- /dev/null +++ b/.github/workflows/ekv-main.yml @@ -0,0 +1,51 @@ +name: Encoded KV Main Snapshot + +on: + push: + branches: + - main + paths: + - 'encoded-kv/**' + +env: + GODEBUG: x509sha1=1 + +jobs: + build: + runs-on: ubuntu-latest + env: + BUILD_EVENT: ${{ github.event_name }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + GODEBUG: x509sha1=1 + steps: + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'adopt' + - name: Install Nats Server + run: | + curl -sf https://binaries.nats.dev/nats-io/nats-server/v2@main | PREFIX=. sh + sudo mv nats-server /usr/local/bin + nats-server -v + - name: Check out code + uses: actions/checkout@v3 + - name: Compile and Test + run: | + pushd encoded-kv + chmod +x gradlew && ./gradlew clean test + popd + - name: Verify Javadoc + run: | + pushd encoded-kv + ./gradlew javadoc + popd + - name: Publish Snapshot + run: | + pushd encoded-kv + ./gradlew -i publishToSonatype + popd diff --git a/.github/workflows/ekv-pr.yml b/.github/workflows/ekv-pr.yml new file mode 100644 index 0000000..15e0e9b --- /dev/null +++ b/.github/workflows/ekv-pr.yml @@ -0,0 +1,45 @@ +name: Publish Extensions Pull Request + +on: + pull_request: + types: [opened, synchronize, reopened] + paths: + - 'encoded-kv/**' + +env: + GODEBUG: x509sha1=1 + +jobs: + build: + runs-on: ubuntu-latest + env: + BUILD_EVENT: ${{ github.event_name }} + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + GODEBUG: x509sha1=1 + steps: + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'adopt' + - name: Install Nats Server + run: | + curl -sf https://binaries.nats.dev/nats-io/nats-server/v2@main | PREFIX=. sh + sudo mv nats-server /usr/local/bin + nats-server -v + - name: Check out code + uses: actions/checkout@v3 + - name: Compile and Test + run: | + pushd encoded-kv + chmod +x gradlew && ./gradlew clean test + popd + - name: Verify Javadoc + run: | + pushd encoded-kv + ./gradlew javadoc + popd diff --git a/.github/workflows/ekv-release.yml b/.github/workflows/ekv-release.yml new file mode 100644 index 0000000..699bee7 --- /dev/null +++ b/.github/workflows/ekv-release.yml @@ -0,0 +1,43 @@ +name: Publish Extensions Release + +on: + push: + tags: [ 'ekv/*' ] + +env: + GODEBUG: x509sha1=1 + +jobs: + build: + runs-on: ubuntu-latest + env: + BUILD_EVENT: "release" + OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} + OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }} + SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + GODEBUG: x509sha1=1 + steps: + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'adopt' + - name: Install Nats Server + run: | + curl -sf https://binaries.nats.dev/nats-io/nats-server/v2@main | PREFIX=. sh + sudo mv nats-server /usr/local/bin + nats-server -v + - name: Check out code + uses: actions/checkout@v3 + - name: Compile and Test + run: | + pushd encoded-kv + chmod +x gradlew && ./gradlew clean test + popd + - name: Verify, Sign and Publish Release + run: | + pushd encoded-kv + ./gradlew -i signArchives signMavenJavaPublication publishToSonatype closeAndReleaseSonatypeStagingRepository + popd diff --git a/kv-encoding/.gitignore b/encoded-kv/.gitignore similarity index 100% rename from kv-encoding/.gitignore rename to encoded-kv/.gitignore diff --git a/kv-encoding/LICENSE b/encoded-kv/LICENSE similarity index 100% rename from kv-encoding/LICENSE rename to encoded-kv/LICENSE diff --git a/kv-encoding/NOTICE b/encoded-kv/NOTICE similarity index 100% rename from kv-encoding/NOTICE rename to encoded-kv/NOTICE diff --git a/kv-encoding/README.md b/encoded-kv/README.md similarity index 100% rename from kv-encoding/README.md rename to encoded-kv/README.md diff --git a/kv-encoding/build.gradle b/encoded-kv/build.gradle similarity index 95% rename from kv-encoding/build.gradle rename to encoded-kv/build.gradle index e25882a..158c744 100644 --- a/kv-encoding/build.gradle +++ b/encoded-kv/build.gradle @@ -13,7 +13,7 @@ plugins { id 'signing' } -def jarVersion = "0.1.0" +def jarVersion = "0.0.1" group = 'io.synadia' def isMerge = System.getenv("BUILD_EVENT") == "push" @@ -67,7 +67,7 @@ tasks.register('bundle', Bundle) { jar { manifest { - attributes('Automatic-Module-Name': 'io.synadia.kv-encoding') + attributes('Automatic-Module-Name': 'io.synadia.encoded-kv') } bnd (['Implementation-Title': 'KV Encoding', 'Implementation-Version': jarVersion, @@ -106,7 +106,7 @@ javadoc { tasks.register('examplesJar', Jar) { archiveClassifier.set('examples') manifest { - attributes('Implementation-Title': 'KV Encoding', + attributes('Implementation-Title': 'Encoded KV', 'Implementation-Version': jarVersion, 'Implementation-Vendor': 'synadia.io') } @@ -165,11 +165,11 @@ publishing { artifact examplesJar artifact javadocJar pom { - name = 'kv-encoding' + name = 'encoded-kv' packaging = 'jar' groupId = group artifactId = archivesBaseName - description = 'Synadia Communications Inc. KV Encoding' + description = 'Synadia Communications Inc. Encoded KV' url = 'https://github.com/synadia-io/orbit.java' licenses { license { diff --git a/kv-encoding/gradle/wrapper/gradle-wrapper.jar b/encoded-kv/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from kv-encoding/gradle/wrapper/gradle-wrapper.jar rename to encoded-kv/gradle/wrapper/gradle-wrapper.jar diff --git a/kv-encoding/gradle/wrapper/gradle-wrapper.properties b/encoded-kv/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from kv-encoding/gradle/wrapper/gradle-wrapper.properties rename to encoded-kv/gradle/wrapper/gradle-wrapper.properties diff --git a/kv-encoding/gradlew b/encoded-kv/gradlew similarity index 100% rename from kv-encoding/gradlew rename to encoded-kv/gradlew diff --git a/kv-encoding/gradlew.bat b/encoded-kv/gradlew.bat similarity index 100% rename from kv-encoding/gradlew.bat rename to encoded-kv/gradlew.bat diff --git a/kv-encoding/settings.gradle b/encoded-kv/settings.gradle similarity index 90% rename from kv-encoding/settings.gradle rename to encoded-kv/settings.gradle index e7b681a..4d46e3c 100644 --- a/kv-encoding/settings.gradle +++ b/encoded-kv/settings.gradle @@ -7,4 +7,4 @@ * in the user manual at https://docs.gradle.org/6.3/userguide/multi_project_builds.html */ -rootProject.name = 'kv-encoding' +rootProject.name = 'encoded-kv' diff --git a/kv-encoding/src/main/java/io/nats/client/impl/NatsKeyValueAdapter.java b/encoded-kv/src/main/java/io/nats/client/impl/NatsKeyValueAdapter.java similarity index 100% rename from kv-encoding/src/main/java/io/nats/client/impl/NatsKeyValueAdapter.java rename to encoded-kv/src/main/java/io/nats/client/impl/NatsKeyValueAdapter.java diff --git a/kv-encoding/src/main/java/io/synadia/kv/CodedKeyResult.java b/encoded-kv/src/main/java/io/synadia/kv/EncodedKeyResult.java similarity index 86% rename from kv-encoding/src/main/java/io/synadia/kv/CodedKeyResult.java rename to encoded-kv/src/main/java/io/synadia/kv/EncodedKeyResult.java index 751748d..3dd22fe 100644 --- a/kv-encoding/src/main/java/io/synadia/kv/CodedKeyResult.java +++ b/encoded-kv/src/main/java/io/synadia/kv/EncodedKeyResult.java @@ -6,12 +6,12 @@ import io.nats.client.api.KeyResult; import io.synadia.kv.codec.Codec; -public class CodedKeyResult { +public class EncodedKeyResult { private final KeyResult keyResult; private final Codec codec; - public CodedKeyResult(KeyResult keyResult, Codec codec) { + public EncodedKeyResult(KeyResult keyResult, Codec codec) { this.keyResult = keyResult; this.codec = codec; } diff --git a/kv-encoding/src/main/java/io/synadia/kv/CodedKeyValue.java b/encoded-kv/src/main/java/io/synadia/kv/EncodedKeyValue.java similarity index 68% rename from kv-encoding/src/main/java/io/synadia/kv/CodedKeyValue.java rename to encoded-kv/src/main/java/io/synadia/kv/EncodedKeyValue.java index f020a73..eee7362 100644 --- a/kv-encoding/src/main/java/io/synadia/kv/CodedKeyValue.java +++ b/encoded-kv/src/main/java/io/synadia/kv/EncodedKeyValue.java @@ -22,41 +22,41 @@ import static io.nats.client.support.NatsKeyValueUtil.getOperation; -public class CodedKeyValue { +public class EncodedKeyValue { private final Connection connection; private final NatsKeyValueAdapter adapter; private final Codec codec; - public CodedKeyValue(Connection connection, String bucketName, Codec codec) throws IOException { + public EncodedKeyValue(Connection connection, String bucketName, Codec codec) throws IOException { this(connection, bucketName, codec, null); } - public CodedKeyValue(Connection connection, String bucketName, Codec codec, KeyValueOptions kvo) throws IOException { + public EncodedKeyValue(Connection connection, String bucketName, Codec codec, KeyValueOptions kvo) throws IOException { this.connection = connection; this.codec = codec; adapter = new NatsKeyValueAdapter(connection, bucketName, kvo); } - public CodedKeyValueEntry get(KeyType key) throws IOException, JetStreamApiException { + public EncodedKeyValueEntry get(KeyType key) throws IOException, JetStreamApiException { return _get(adapter.get(codec.encodeKey(key))); } - public CodedKeyValueEntry get(KeyType key, long revision) throws IOException, JetStreamApiException { + public EncodedKeyValueEntry get(KeyType key, long revision) throws IOException, JetStreamApiException { return _get(adapter.get(codec.encodeKey(key), revision)); } - private CodedKeyValueEntry _get(KeyValueEntry kve) { + private EncodedKeyValueEntry _get(KeyValueEntry kve) { if (kve == null) { return null; } - return new CodedKeyValueEntry<>(kve, codec); + return new EncodedKeyValueEntry<>(kve, codec); } - public List> history(KeyType key) throws IOException, JetStreamApiException, InterruptedException { + public List> history(KeyType key) throws IOException, JetStreamApiException, InterruptedException { List entries = adapter.history(codec.encodeKey(key)); - List> encodedEntries = new ArrayList<>(); + List> encodedEntries = new ArrayList<>(); for (KeyValueEntry kve: entries) { - encodedEntries.add(new CodedKeyValueEntry<>(kve, codec)); + encodedEntries.add(new EncodedKeyValueEntry<>(kve, codec)); } return encodedEntries; } @@ -89,48 +89,48 @@ public void purge(KeyType key, long expectedRevision) throws IOException, JetStr adapter.purge(codec.encodeKey(key), expectedRevision); } - public LinkedBlockingQueue> consumeKeys() { + public LinkedBlockingQueue> consumeKeys() { return _consumeKeys(Collections.singletonList(adapter.readSubject(">"))); } - public LinkedBlockingQueue> consumeKeys(KeyType filter) { + public LinkedBlockingQueue> consumeKeys(KeyType filter) { if (!codec.allowsFiltering()) { throw new UnsupportedOperationException("Filters not supported"); } - return _consumeKeys(Collections.singletonList(adapter.readSubject(codec.encodeKey(filter)))); + return _consumeKeys(Collections.singletonList(adapter.readSubject(codec.encodeFilter(filter)))); } - public LinkedBlockingQueue> consumeKeys(List filters) { + public LinkedBlockingQueue> consumeKeys(List filters) { if (!codec.allowsFiltering()) { throw new UnsupportedOperationException("Filters not supported"); } List encodedFilters = new ArrayList<>(filters.size()); for(KeyType f : filters) { - encodedFilters.add(adapter.readSubject(codec.encodeKey(f))); + encodedFilters.add(adapter.readSubject(codec.encodeFilter(f))); } return this._consumeKeys(encodedFilters); } - private LinkedBlockingQueue> _consumeKeys(List readSubjectFilters) { - LinkedBlockingQueue> q = new LinkedBlockingQueue<>(); + private LinkedBlockingQueue> _consumeKeys(List readSubjectFilters) { + LinkedBlockingQueue> q = new LinkedBlockingQueue<>(); connection.getOptions().getExecutor().submit( () -> { try { adapter.visitSubject(readSubjectFilters, DeliverPolicy.LastPerSubject, true, false, m -> { KeyValueOperation op = getOperation(m.getHeaders()); if (op == KeyValueOperation.PUT) { - q.offer(new CodedKeyResult<>( + q.offer(new EncodedKeyResult<>( new KeyResult( new NatsKeyValueUtil.BucketAndKey(m).key), codec)); } }); - q.offer(new CodedKeyResult<>(new KeyResult(), codec)); + q.offer(new EncodedKeyResult<>(new KeyResult(), codec)); } catch (IOException | JetStreamApiException e) { - q.offer(new CodedKeyResult<>(new KeyResult(e), codec)); + q.offer(new EncodedKeyResult<>(new KeyResult(e), codec)); } catch (InterruptedException e) { - q.offer(new CodedKeyResult<>(new KeyResult(e), codec)); + q.offer(new EncodedKeyResult<>(new KeyResult(e), codec)); Thread.currentThread().interrupt(); } }); diff --git a/kv-encoding/src/main/java/io/synadia/kv/CodedKeyValueEntry.java b/encoded-kv/src/main/java/io/synadia/kv/EncodedKeyValueEntry.java similarity index 88% rename from kv-encoding/src/main/java/io/synadia/kv/CodedKeyValueEntry.java rename to encoded-kv/src/main/java/io/synadia/kv/EncodedKeyValueEntry.java index 4c37976..e12bfe1 100644 --- a/kv-encoding/src/main/java/io/synadia/kv/CodedKeyValueEntry.java +++ b/encoded-kv/src/main/java/io/synadia/kv/EncodedKeyValueEntry.java @@ -9,11 +9,11 @@ import java.time.ZonedDateTime; -public class CodedKeyValueEntry { +public class EncodedKeyValueEntry { final KeyValueEntry kve; final Codec codec; - public CodedKeyValueEntry(KeyValueEntry kve, Codec codec) { + public EncodedKeyValueEntry(KeyValueEntry kve, Codec codec) { this.kve = kve; this.codec = codec; } diff --git a/kv-encoding/src/main/java/io/synadia/kv/ToDo.java b/encoded-kv/src/main/java/io/synadia/kv/ToDo.java similarity index 85% rename from kv-encoding/src/main/java/io/synadia/kv/ToDo.java rename to encoded-kv/src/main/java/io/synadia/kv/ToDo.java index 03d99fa..4fcf8db 100644 --- a/kv-encoding/src/main/java/io/synadia/kv/ToDo.java +++ b/encoded-kv/src/main/java/io/synadia/kv/ToDo.java @@ -4,7 +4,6 @@ package io.synadia.kv; import io.nats.client.JetStreamApiException; -import io.nats.client.api.KeyResult; import io.nats.client.api.KeyValueWatchOption; import io.nats.client.api.KeyValueWatcher; import io.nats.client.impl.NatsKeyValueWatchSubscription; @@ -12,7 +11,6 @@ import java.io.IOException; import java.util.Collections; import java.util.List; -import java.util.concurrent.LinkedBlockingQueue; class ToDo { @@ -51,16 +49,4 @@ public List keys(String filter) throws IOException, JetStreamApiExceptio public List keys(List filters) throws IOException, JetStreamApiException, InterruptedException { return Collections.emptyList(); } - - public LinkedBlockingQueue consumeKeys() { - return null; - } - - public LinkedBlockingQueue consumeKeys(String filter) { - return null; - } - - public LinkedBlockingQueue consumeKeys(List filters) { - return null; - } } diff --git a/kv-encoding/src/main/java/io/synadia/kv/codec/Codec.java b/encoded-kv/src/main/java/io/synadia/kv/codec/Codec.java similarity index 100% rename from kv-encoding/src/main/java/io/synadia/kv/codec/Codec.java rename to encoded-kv/src/main/java/io/synadia/kv/codec/Codec.java diff --git a/kv-encoding/src/main/java/io/synadia/kv/codec/StringKeyCodec.java b/encoded-kv/src/main/java/io/synadia/kv/codec/StringKeyCodec.java similarity index 100% rename from kv-encoding/src/main/java/io/synadia/kv/codec/StringKeyCodec.java rename to encoded-kv/src/main/java/io/synadia/kv/codec/StringKeyCodec.java diff --git a/kv-encoding/src/main/javadoc/images/favicon.ico b/encoded-kv/src/main/javadoc/images/favicon.ico similarity index 100% rename from kv-encoding/src/main/javadoc/images/favicon.ico rename to encoded-kv/src/main/javadoc/images/favicon.ico diff --git a/kv-encoding/src/main/javadoc/images/large-logo.png b/encoded-kv/src/main/javadoc/images/large-logo.png similarity index 100% rename from kv-encoding/src/main/javadoc/images/large-logo.png rename to encoded-kv/src/main/javadoc/images/large-logo.png diff --git a/kv-encoding/src/main/javadoc/images/synadia-logo.png b/encoded-kv/src/main/javadoc/images/synadia-logo.png similarity index 100% rename from kv-encoding/src/main/javadoc/images/synadia-logo.png rename to encoded-kv/src/main/javadoc/images/synadia-logo.png diff --git a/kv-encoding/src/main/javadoc/overview.html b/encoded-kv/src/main/javadoc/overview.html similarity index 100% rename from kv-encoding/src/main/javadoc/overview.html rename to encoded-kv/src/main/javadoc/overview.html diff --git a/kv-encoding/src/main/resources/placeholder.txt b/encoded-kv/src/main/resources/placeholder.txt similarity index 100% rename from kv-encoding/src/main/resources/placeholder.txt rename to encoded-kv/src/main/resources/placeholder.txt diff --git a/kv-encoding/src/test/java/io/synadia/kv/CodedKeyValueTests.java b/encoded-kv/src/test/java/io/synadia/kv/EncodedKeyValueTests.java similarity index 85% rename from kv-encoding/src/test/java/io/synadia/kv/CodedKeyValueTests.java rename to encoded-kv/src/test/java/io/synadia/kv/EncodedKeyValueTests.java index 2abfe6e..4d20aef 100644 --- a/kv-encoding/src/test/java/io/synadia/kv/CodedKeyValueTests.java +++ b/encoded-kv/src/test/java/io/synadia/kv/EncodedKeyValueTests.java @@ -24,7 +24,7 @@ import static org.junit.jupiter.api.Assertions.*; -public class CodedKeyValueTests { +public class EncodedKeyValueTests { @BeforeAll public static void beforeAll() { NatsServerRunner.setDefaultOutputLevel(Level.WARNING); @@ -40,8 +40,8 @@ public void testStringKeyWorkflow() throws Exception { KeyValueManagement kvm = nc.keyValueManagement(); kvm.create(KeyValueConfiguration.builder().name(bucketName).build()); - CodedKeyValue ekv - = new CodedKeyValue<>(nc, bucketName, codec); + EncodedKeyValue ekv + = new EncodedKeyValue<>(nc, bucketName, codec); String key1 = "key.1"; KeyOrValue v1 = new KeyOrValue("v1", "foo", false); @@ -53,7 +53,7 @@ public void testStringKeyWorkflow() throws Exception { long rev2 = ekv.put(key2, v2); assertEquals(2, rev2); - CodedKeyValueEntry entry = ekv.get(key1); + EncodedKeyValueEntry entry = ekv.get(key1); assertNotNull(entry); assertEquals(key1, entry.getKey()); assertEquals(v1, entry.getValue()); @@ -66,7 +66,7 @@ public void testStringKeyWorkflow() throws Exception { entry = ekv.get("not-found"); assertNull(entry); - LinkedBlockingQueue> q = ekv.consumeKeys(); + LinkedBlockingQueue> q = ekv.consumeKeys(); List keys = getFromStringQueue(q); assertEquals(2, keys.size()); assertTrue(keys.contains(key1)); @@ -97,8 +97,8 @@ public void testGeneralWorkflow() throws Exception { KeyValueManagement kvm = nc.keyValueManagement(); kvm.create(KeyValueConfiguration.builder().name(bucketName).build()); - CodedKeyValue ekv - = new CodedKeyValue<>(nc, bucketName, codec); + EncodedKeyValue ekv + = new EncodedKeyValue<>(nc, bucketName, codec); KeyOrValue key1 = new KeyOrValue("foo1", null, true); KeyOrValue v1 = new KeyOrValue("bar1", "baz1", false); @@ -110,7 +110,7 @@ public void testGeneralWorkflow() throws Exception { long rev2 = ekv.put(key2, v2); assertEquals(2, rev2); - CodedKeyValueEntry entry = ekv.get(key1); + EncodedKeyValueEntry entry = ekv.get(key1); assertNotNull(entry); assertEquals(key1, entry.getKey()); assertEquals(v1, entry.getValue()); @@ -124,7 +124,7 @@ public void testGeneralWorkflow() throws Exception { entry = ekv.get(key404); assertNull(entry); - LinkedBlockingQueue> q = ekv.consumeKeys(); + LinkedBlockingQueue> q = ekv.consumeKeys(); List keys = KeyOrValue(q); assertEquals(2, keys.size()); assertTrue(keys.contains(key1)); @@ -140,12 +140,12 @@ public void testGeneralWorkflow() throws Exception { } private static List getFromStringQueue( - LinkedBlockingQueue> q) throws Exception { + LinkedBlockingQueue> q) throws Exception { List keys = new ArrayList<>(); try { boolean notDone = true; do { - CodedKeyResult r = q.poll(100, TimeUnit.SECONDS); + EncodedKeyResult r = q.poll(100, TimeUnit.SECONDS); if (r != null) { if (r.isDone()) { notDone = false; @@ -164,12 +164,12 @@ private static List getFromStringQueue( } private static List KeyOrValue( - LinkedBlockingQueue> q) throws Exception { + LinkedBlockingQueue> q) throws Exception { List keys = new ArrayList<>(); try { boolean notDone = true; do { - CodedKeyResult r = q.poll(100, TimeUnit.SECONDS); + EncodedKeyResult r = q.poll(100, TimeUnit.SECONDS); if (r != null) { if (r.isDone()) { notDone = false; diff --git a/kv-encoding/src/test/java/io/synadia/kv/codec/KeyOrValue.java b/encoded-kv/src/test/java/io/synadia/kv/codec/KeyOrValue.java similarity index 100% rename from kv-encoding/src/test/java/io/synadia/kv/codec/KeyOrValue.java rename to encoded-kv/src/test/java/io/synadia/kv/codec/KeyOrValue.java diff --git a/kv-encoding/src/test/java/io/synadia/kv/codec/KeyOrValueCodec.java b/encoded-kv/src/test/java/io/synadia/kv/codec/KeyOrValueCodec.java similarity index 100% rename from kv-encoding/src/test/java/io/synadia/kv/codec/KeyOrValueCodec.java rename to encoded-kv/src/test/java/io/synadia/kv/codec/KeyOrValueCodec.java diff --git a/kv-encoding/src/test/java/io/synadia/kv/codec/TestStringKeyCodec.java b/encoded-kv/src/test/java/io/synadia/kv/codec/TestStringKeyCodec.java similarity index 100% rename from kv-encoding/src/test/java/io/synadia/kv/codec/TestStringKeyCodec.java rename to encoded-kv/src/test/java/io/synadia/kv/codec/TestStringKeyCodec.java diff --git a/kv-encoding/src/test/resources/placeholder.txt b/encoded-kv/src/test/resources/placeholder.txt similarity index 100% rename from kv-encoding/src/test/resources/placeholder.txt rename to encoded-kv/src/test/resources/placeholder.txt