diff --git a/CHANGELOG.md b/CHANGELOG.md index d882f9c..734d51b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,10 +17,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - ServerClient.isAlive() method to check if the storage engine is working [PR-17](https://github.com/reductstore/reduct-java/pull/17) - TokenClient.getTokens() method to get a list of tokens [PR-20](https://github.com/reductstore/reduct-java/pull/20) -- EntryClient.writeRecord(Bucket bucket, Entry body) method to add an record to a +- EntryClient.writeRecord(Bucket bucket, Entry body) method to add a record to a bucket [PR-25](https://github.com/reductstore/reduct-java/issues/25) -- EntryClient.getRecord(Bucket bucket, Entry body) method to get an record from a +- EntryClient.getRecord(Bucket bucket, Entry body) method to get a record from a bucket [PR-25](https://github.com/reductstore/reduct-java/issues/27) +- Resolve bug: Bucket.query handle only one HTTP GET request. The query now returns the records until gets last + bucket [PR-50](https://github.com/reductstore/reduct-java/issues/47) ### Infrastructure: diff --git a/build.gradle b/build.gradle index 83a4909..dcbac3d 100644 --- a/build.gradle +++ b/build.gradle @@ -39,46 +39,48 @@ jar { tasks.named('test') { useJUnitPlatform() + dependsOn(tasks.assemble) } import com.vanniktech.maven.publish.SonatypeHost +tasks.register('publishingToCentralMaven') { + println 'Publishing to Central Maven is started.' + mavenPublishing { + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + signAllPublications() + coordinates(group, archivesBaseName, version) + pom { + name = archivesBaseName + description = "ReductStore Client SDK for Java" + url = "https://www.reduct.store/docs" -mavenPublishing { - publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) - signAllPublications() - - coordinates(group, archivesBaseName, version) - pom { - name = archivesBaseName - description = "ReductStore Client SDK for Java" - url = "https://www.reduct.store/docs" - - licenses { - license { - name = "MIT License" - url = "https://opensource.org/licenses/MIT" - } - } - scm { - url = "https://github.com/reductstore/reduct-java.git" - connection = "scm:git:git://github.com/reductstore/reduct-java.git" - developerConnection = "scm:git:ssh://github.com/reductstore/reduct-java.git" - } - developers { - developer { - id = "mtp" - name = "matepocz" + licenses { + license { + name = "MIT License" + url = "https://opensource.org/licenses/MIT" + } } - developer { - id = "Rumpelshtinskiy" - name = "Rustam Galikhanov" + scm { + url = "https://github.com/reductstore/reduct-java.git" + connection = "scm:git:git://github.com/reductstore/reduct-java.git" + developerConnection = "scm:git:ssh://github.com/reductstore/reduct-java.git" } - developer { - id = "reductsoftware" - name = "ReductSoftware UG" - email = "info@reduct.store" + developers { + developer { + id = "mtp" + name = "matepocz" + } + developer { + id = "Rumpelshtinskiy" + name = "Rustam Galikhanov" + } + developer { + id = "reductsoftware" + name = "ReductSoftware UG" + email = "info@reduct.store" + } } } } -} \ No newline at end of file +} diff --git a/src/main/java/org/reduct/client/ReductClient.java b/src/main/java/store/reduct/client/ReductClient.java similarity index 100% rename from src/main/java/org/reduct/client/ReductClient.java rename to src/main/java/store/reduct/client/ReductClient.java diff --git a/src/main/java/org/reduct/client/config/ServerProperties.java b/src/main/java/store/reduct/client/config/ServerProperties.java similarity index 100% rename from src/main/java/org/reduct/client/config/ServerProperties.java rename to src/main/java/store/reduct/client/config/ServerProperties.java diff --git a/src/main/java/org/reduct/common/BucketURL.java b/src/main/java/store/reduct/common/BucketURL.java similarity index 100% rename from src/main/java/org/reduct/common/BucketURL.java rename to src/main/java/store/reduct/common/BucketURL.java diff --git a/src/main/java/org/reduct/common/RecordURL.java b/src/main/java/store/reduct/common/RecordURL.java similarity index 100% rename from src/main/java/org/reduct/common/RecordURL.java rename to src/main/java/store/reduct/common/RecordURL.java diff --git a/src/main/java/org/reduct/common/ServerURL.java b/src/main/java/store/reduct/common/ServerURL.java similarity index 100% rename from src/main/java/org/reduct/common/ServerURL.java rename to src/main/java/store/reduct/common/ServerURL.java diff --git a/src/main/java/org/reduct/common/TokenURL.java b/src/main/java/store/reduct/common/TokenURL.java similarity index 100% rename from src/main/java/org/reduct/common/TokenURL.java rename to src/main/java/store/reduct/common/TokenURL.java diff --git a/src/main/java/org/reduct/common/exception/ReductException.java b/src/main/java/store/reduct/common/exception/ReductException.java similarity index 100% rename from src/main/java/org/reduct/common/exception/ReductException.java rename to src/main/java/store/reduct/common/exception/ReductException.java diff --git a/src/main/java/org/reduct/model/bucket/Bucket.java b/src/main/java/store/reduct/model/bucket/Bucket.java similarity index 62% rename from src/main/java/org/reduct/model/bucket/Bucket.java rename to src/main/java/store/reduct/model/bucket/Bucket.java index 7962ca0..69489a1 100644 --- a/src/main/java/org/reduct/model/bucket/Bucket.java +++ b/src/main/java/store/reduct/model/bucket/Bucket.java @@ -22,8 +22,9 @@ import java.nio.ByteBuffer; import java.time.Instant; import java.util.*; +import java.util.concurrent.PriorityBlockingQueue; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; -import java.util.stream.Stream; import static store.reduct.utils.http.HttpHeaders.*; @@ -260,7 +261,7 @@ public Record getMetaInfo(String entryName, Long timestamp) throws ReductExcepti * @param ttl * @return */ - public Iterator query(String entryName, Integer start, Integer stop, Integer ttl) { + public Iterator query(String entryName, Long start, Long stop, Long ttl) throws ReductException, IllegalArgumentException { if(Strings.isBlank(name) || Strings.isBlank(entryName) || Objects.isNull(start) || Objects.isNull(stop) || Objects.isNull(ttl)) { throw new ReductException("Validation error"); @@ -272,102 +273,176 @@ public Iterator query(String entryName, Integer start, Integer stop, Int .GET(); HttpResponse response = reductClient.send(builder, HttpResponse.BodyHandlers.ofString()); QueryId queryId = JsonUtils.parseObject(response.body(), QueryId.class); - return getRecords(entryName, queryId.getId()).iterator(); + + return new RecordIterator(name, entryName, queryId.getId(), reductClient.getServerProperties().getBaseUrl()); } - /** - * Get a bulk of records from an entry - * @param entryName - * @param queryId - * @return - * @throws ReductException - * @throws IllegalArgumentException - */ - Stream getRecords(@NonNull String entryName, Long queryId) throws ReductException, IllegalArgumentException { - if(Objects.isNull(queryId)) + public Iterator getMetaInfos(String entryName, Long start, Long stop, Long ttl) throws ReductException, IllegalArgumentException { + if(Strings.isBlank(name) || Strings.isBlank(entryName) || Objects.isNull(start) || Objects.isNull(stop) || Objects.isNull(ttl)) { throw new ReductException("Validation error"); } - URI uri = URI.create(reductClient.getServerProperties().getBaseUrl() + String.format(RecordURL.GET_ENTRIES.getUrl(), name, entryName) + new Queries("q", queryId)); + URI uri = URI.create(reductClient.getServerProperties().getBaseUrl() + + String.format(RecordURL.QUERY.getUrl(), name, entryName) + new Queries("start", start).add("stop", stop).add("ttl", ttl)); HttpRequest.Builder builder = HttpRequest.newBuilder() .uri(uri) .GET(); - HttpResponse httpResponse = reductClient.send(builder, HttpResponse.BodyHandlers.ofByteArray()); - ByteBuffer byteBuffer = ByteBuffer.wrap(httpResponse.body()); - return httpResponse.headers() - .map() - .entrySet() - .stream() - .filter(ent -> ent.getKey().contains(getXReductTimeWithUnderscoreHeader())) - .map(ent -> { - String ts = ent.getKey().substring(getXReductTimeWithUnderscoreHeader().length()); - String[] split = ent.getValue().get(0).split(","); - if(split.length < 2) { - throw new ReductException(String.format("Headers has a wrong format for timestamp: %s", ts)); - } - try { - int length = Integer.parseInt(split[0]); - String type = split[1]; - byte[] tempBuf = new byte[length]; - byteBuffer.get(tempBuf); - return Record.builder() - .body(tempBuf) - .entryName(entryName) - .timestamp(Optional.of(ts).map(Long::parseLong).orElseThrow(() -> new ReductException(X_REDUCT_TIME_IS_NOT_SUCH_LONG_FORMAT))) - .type(type) - .length(length) - .build(); + HttpResponse response = reductClient.send(builder, HttpResponse.BodyHandlers.ofString()); + QueryId queryId = JsonUtils.parseObject(response.body(), QueryId.class); + + return new MetaInfoIterator(name, entryName, queryId.getId(), reductClient.getServerProperties().getBaseUrl()); + } + + private boolean isNotValidRecord(Record val) { + return Strings.isBlank(val.getEntryName()) + || val.getTimestamp() <= 0 + || Objects.isNull(val.getBody()); + } + + private class RecordIterator implements Iterator { + @Getter(AccessLevel.PACKAGE) + private final HttpRequest.Builder builder; + private final String recordEntryName; + @Getter(AccessLevel.PACKAGE) + private final PriorityBlockingQueue headerInstances = new PriorityBlockingQueue<>(8, Comparator.comparingLong(instance -> instance.ts)); + private byte[] body; + @Setter(AccessLevel.PACKAGE) + @Getter(AccessLevel.PACKAGE) + private boolean last = false; + boolean hasNextRecord() { + return !headerInstances.isEmpty(); + } + private RecordIterator(String bucketName, String recordEntryName, Long queryId, String baseUrl) { + this(recordEntryName, queryId, HttpRequest.newBuilder() + .uri(URI.create(baseUrl + String.format(RecordURL.GET_ENTRIES.getUrl(), bucketName, recordEntryName) + new Queries("q", queryId))) + .GET()); + } + + private RecordIterator(String recordEntryName, Long queryId, HttpRequest.Builder builder) { + if(Objects.isNull(queryId)) + { + throw new ReductException("Validation error: queryId is null"); + } + this.recordEntryName = recordEntryName; + this.builder = builder; + } + + @Override + public boolean hasNext() { + if(hasNextRecord()) { + return true; + } + if(!isLast()) { + HttpResponse httpResponse = reductClient.send(builder, HttpResponse.BodyHandlers.ofByteArray()); + if (httpResponse.statusCode() != 204) { + body = httpResponse.body(); + int offset = 0; + for (Map.Entry> ent : httpResponse.headers().map().entrySet()) { + if (ent.getKey().contains(getXReductTimeWithUnderscoreHeader())) { + String ts = ent.getKey().substring(getXReductTimeWithUnderscoreHeader().length()); + String[] split = ent.getValue().get(0).split(","); + if (split.length < 2) { + throw new ReductException(String.format("Headers has a wrong format for timestamp: %s", ts)); + } + try { + int length = Integer.parseInt(split[0]); + String type = split[1]; + headerInstances.put(HeaderInstance.builder() + .ts(Optional.of(ts).map(Long::parseLong).orElseThrow(() -> new ReductException(X_REDUCT_TIME_IS_NOT_SUCH_LONG_FORMAT))) + .type(type) + .length(length) + .offset(offset) + .build()); + offset += length; + } catch (NumberFormatException ex) { + throw new ReductException(CONTENT_LENGTH_IS_NOT_SET_IN_THE_RECORD); + } + } + } } - catch (NumberFormatException ex) { - throw new ReductException(CONTENT_LENGTH_IS_NOT_SET_IN_THE_RECORD); + else { + setLast(true); } - }); + } + return hasNextRecord(); + } + + @Override + public Record next() { + if(last) { + throw new NoSuchElementException(); + } + else if(Objects.isNull(body) || !hasNextRecord()) { + throw new ReductException("Invoke hasNext() method first"); + } + HeaderInstance instance = headerInstances.poll(); + ByteBuffer byteBuffer = ByteBuffer.wrap(body); + byte[] nextBody = new byte[instance.length]; + byteBuffer.get(nextBody, instance.getOffset(), instance.getLength()); + + return Record.builder() + .body(nextBody) + .entryName(recordEntryName) + .timestamp(instance.getTs()) + .type(instance.getType()) + .length(instance.getLength()) + .build(); + } } + private class MetaInfoIterator extends RecordIterator { + + private MetaInfoIterator(String bucketName, String recordEntryName, Long queryId, String baseUrl) { + super(bucketName, recordEntryName, queryId, baseUrl); - Collection getMetaInfos(Record record, Long queryId) throws ReductException, IllegalArgumentException { - if(Strings.isBlank(name) || Strings.isBlank(record.getEntryName()) || Objects.isNull(queryId)) - { - throw new ReductException("Validation error"); } - URI uri = URI.create(reductClient.getServerProperties().getBaseUrl() + String.format(RecordURL.GET_ENTRIES.getUrl(), name, record.getEntryName()) + new Queries("q", queryId)); - HttpRequest.Builder builder = HttpRequest.newBuilder() - .uri(uri) - .method("HEAD", HttpRequest.BodyPublishers.noBody()); - HttpResponse httpResponse = reductClient.send(builder, HttpResponse.BodyHandlers.ofByteArray()); - return httpResponse.headers() - .map() - .entrySet() - .stream() - .filter(ent -> ent.getKey().contains(getXReductTimeWithUnderscoreHeader())) - .map(ent -> { - String ts = ent.getKey().substring(getXReductTimeWithUnderscoreHeader().length()); - String[] split = ent.getValue().get(0).split(","); - if(split.length < 2) { - throw new ReductException(String.format("Headers has a wrong format for timestamp: %s", ts)); - } - try { - int length = Integer.parseInt(split[0]); - String type = split[1]; - byte[] tempBuf = new byte[length]; - return Record.builder() - .body(tempBuf) - .entryName(record.getEntryName()) - .timestamp(Optional.of(ts).map(Long::parseLong).orElseThrow(() -> new ReductException(X_REDUCT_TIME_IS_NOT_SUCH_LONG_FORMAT))) - .type(type) - .length(length) - .build(); + private MetaInfoIterator(String recordEntryName, Long queryId, HttpRequest.Builder builder) { + super(recordEntryName, queryId, builder.method("HEAD", HttpRequest.BodyPublishers.noBody())); + } + + @Override + public boolean hasNext() { + if(hasNextRecord()) { + return true; + } + if(!isLast()) { + HttpResponse httpResponse = reductClient.send(getBuilder(), HttpResponse.BodyHandlers.ofByteArray()); + if (httpResponse.statusCode() != 204) { + for (Map.Entry> ent : httpResponse.headers().map().entrySet()) { + if (ent.getKey().contains(getXReductTimeWithUnderscoreHeader())) { + String ts = ent.getKey().substring(getXReductTimeWithUnderscoreHeader().length()); + String[] split = ent.getValue().get(0).split(","); + if (split.length < 2) { + throw new ReductException(String.format("Headers has a wrong format for timestamp: %s", ts)); + } + try { + int length = Integer.parseInt(split[0]); + String type = split[1]; + getHeaderInstances().put(HeaderInstance.builder() + .ts(Optional.of(ts).map(Long::parseLong).orElseThrow(() -> new ReductException(X_REDUCT_TIME_IS_NOT_SUCH_LONG_FORMAT))) + .type(type) + .length(length) + .build()); + } catch (NumberFormatException ex) { + throw new ReductException(CONTENT_LENGTH_IS_NOT_SET_IN_THE_RECORD); + } + } + } } - catch (NumberFormatException ex) { - throw new ReductException(CONTENT_LENGTH_IS_NOT_SET_IN_THE_RECORD); + else { + setLast(true); } - }) - .collect(Collectors.toCollection(LinkedList::new)); + } + return hasNextRecord(); + } } - private boolean isNotValidRecord(Record record) { - return Strings.isBlank(record.getEntryName()) - || record.getTimestamp() <= 0 - || Objects.isNull(record.getBody()); + @Data + @Builder + private static class HeaderInstance { + Long ts; + String type; + int length; + int offset; } } diff --git a/src/main/java/org/reduct/model/bucket/BucketSettings.java b/src/main/java/store/reduct/model/bucket/BucketSettings.java similarity index 100% rename from src/main/java/org/reduct/model/bucket/BucketSettings.java rename to src/main/java/store/reduct/model/bucket/BucketSettings.java diff --git a/src/main/java/org/reduct/model/bucket/Buckets.java b/src/main/java/store/reduct/model/bucket/Buckets.java similarity index 100% rename from src/main/java/org/reduct/model/bucket/Buckets.java rename to src/main/java/store/reduct/model/bucket/Buckets.java diff --git a/src/main/java/org/reduct/model/bucket/EntryInfo.java b/src/main/java/store/reduct/model/bucket/EntryInfo.java similarity index 100% rename from src/main/java/org/reduct/model/bucket/EntryInfo.java rename to src/main/java/store/reduct/model/bucket/EntryInfo.java diff --git a/src/main/java/org/reduct/model/bucket/QuotaType.java b/src/main/java/store/reduct/model/bucket/QuotaType.java similarity index 100% rename from src/main/java/org/reduct/model/bucket/QuotaType.java rename to src/main/java/store/reduct/model/bucket/QuotaType.java diff --git a/src/main/java/org/reduct/model/mapper/BucketMapper.java b/src/main/java/store/reduct/model/mapper/BucketMapper.java similarity index 100% rename from src/main/java/org/reduct/model/mapper/BucketMapper.java rename to src/main/java/store/reduct/model/mapper/BucketMapper.java diff --git a/src/main/java/org/reduct/model/mapper/BucketSettingsMapper.java b/src/main/java/store/reduct/model/mapper/BucketSettingsMapper.java similarity index 100% rename from src/main/java/org/reduct/model/mapper/BucketSettingsMapper.java rename to src/main/java/store/reduct/model/mapper/BucketSettingsMapper.java diff --git a/src/main/java/org/reduct/model/mapper/EntryInfoMapper.java b/src/main/java/store/reduct/model/mapper/EntryInfoMapper.java similarity index 100% rename from src/main/java/org/reduct/model/mapper/EntryInfoMapper.java rename to src/main/java/store/reduct/model/mapper/EntryInfoMapper.java diff --git a/src/main/java/org/reduct/model/record/QueryId.java b/src/main/java/store/reduct/model/record/QueryId.java similarity index 100% rename from src/main/java/org/reduct/model/record/QueryId.java rename to src/main/java/store/reduct/model/record/QueryId.java diff --git a/src/main/java/org/reduct/model/record/Record.java b/src/main/java/store/reduct/model/record/Record.java similarity index 100% rename from src/main/java/org/reduct/model/record/Record.java rename to src/main/java/store/reduct/model/record/Record.java diff --git a/src/main/java/org/reduct/model/server/Defaults.java b/src/main/java/store/reduct/model/server/Defaults.java similarity index 100% rename from src/main/java/org/reduct/model/server/Defaults.java rename to src/main/java/store/reduct/model/server/Defaults.java diff --git a/src/main/java/org/reduct/model/server/ServerInfo.java b/src/main/java/store/reduct/model/server/ServerInfo.java similarity index 100% rename from src/main/java/org/reduct/model/server/ServerInfo.java rename to src/main/java/store/reduct/model/server/ServerInfo.java diff --git a/src/main/java/org/reduct/model/token/AccessToken.java b/src/main/java/store/reduct/model/token/AccessToken.java similarity index 100% rename from src/main/java/org/reduct/model/token/AccessToken.java rename to src/main/java/store/reduct/model/token/AccessToken.java diff --git a/src/main/java/org/reduct/model/token/AccessTokens.java b/src/main/java/store/reduct/model/token/AccessTokens.java similarity index 100% rename from src/main/java/org/reduct/model/token/AccessTokens.java rename to src/main/java/store/reduct/model/token/AccessTokens.java diff --git a/src/main/java/org/reduct/model/token/TokenPermissions.java b/src/main/java/store/reduct/model/token/TokenPermissions.java similarity index 100% rename from src/main/java/org/reduct/model/token/TokenPermissions.java rename to src/main/java/store/reduct/model/token/TokenPermissions.java diff --git a/src/main/java/org/reduct/utils/JsonUtils.java b/src/main/java/store/reduct/utils/JsonUtils.java similarity index 100% rename from src/main/java/org/reduct/utils/JsonUtils.java rename to src/main/java/store/reduct/utils/JsonUtils.java diff --git a/src/main/java/org/reduct/utils/Strings.java b/src/main/java/store/reduct/utils/Strings.java similarity index 100% rename from src/main/java/org/reduct/utils/Strings.java rename to src/main/java/store/reduct/utils/Strings.java diff --git a/src/main/java/org/reduct/utils/http/HttpHeaders.java b/src/main/java/store/reduct/utils/http/HttpHeaders.java similarity index 100% rename from src/main/java/org/reduct/utils/http/HttpHeaders.java rename to src/main/java/store/reduct/utils/http/HttpHeaders.java diff --git a/src/main/java/org/reduct/utils/http/HttpStatus.java b/src/main/java/store/reduct/utils/http/HttpStatus.java similarity index 100% rename from src/main/java/org/reduct/utils/http/HttpStatus.java rename to src/main/java/store/reduct/utils/http/HttpStatus.java diff --git a/src/main/java/org/reduct/utils/http/Queries.java b/src/main/java/store/reduct/utils/http/Queries.java similarity index 100% rename from src/main/java/org/reduct/utils/http/Queries.java rename to src/main/java/store/reduct/utils/http/Queries.java diff --git a/src/test/java/org/reduct/client/QueriesTest.java b/src/test/java/store/reduct/client/QueriesTest.java similarity index 87% rename from src/test/java/org/reduct/client/QueriesTest.java rename to src/test/java/store/reduct/client/QueriesTest.java index ef5ffd8..25a74f4 100644 --- a/src/test/java/org/reduct/client/QueriesTest.java +++ b/src/test/java/store/reduct/client/QueriesTest.java @@ -3,11 +3,6 @@ import org.junit.jupiter.api.Test; import store.reduct.utils.http.Queries; -import javax.xml.transform.stream.StreamResult; - -import java.util.Iterator; -import java.util.stream.Stream; - import static org.assertj.core.api.Assertions.assertThat; public class QueriesTest { diff --git a/src/test/java/org/reduct/client/ReductBucketClientTest.java b/src/test/java/store/reduct/client/ReductBucketClientTest.java similarity index 92% rename from src/test/java/org/reduct/client/ReductBucketClientTest.java rename to src/test/java/store/reduct/client/ReductBucketClientTest.java index f53d40a..2326cf7 100644 --- a/src/test/java/org/reduct/client/ReductBucketClientTest.java +++ b/src/test/java/store/reduct/client/ReductBucketClientTest.java @@ -1,25 +1,9 @@ package store.reduct.client; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import store.reduct.client.config.ServerProperties; -import store.reduct.client.util.BucketExamples; -import store.reduct.common.BucketURL; -import store.reduct.common.exception.ReductException; -import store.reduct.model.bucket.BucketSettings; - -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpHeaders; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.util.Optional; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Mockito.*; @Disabled class ReductBucketClientTest { diff --git a/src/test/java/org/reduct/client/ReductEntryClientTest.java b/src/test/java/store/reduct/client/ReductEntryClientTest.java similarity index 100% rename from src/test/java/org/reduct/client/ReductEntryClientTest.java rename to src/test/java/store/reduct/client/ReductEntryClientTest.java diff --git a/src/test/java/org/reduct/client/ReductServerClientTest.java b/src/test/java/store/reduct/client/ReductServerClientTest.java similarity index 92% rename from src/test/java/org/reduct/client/ReductServerClientTest.java rename to src/test/java/store/reduct/client/ReductServerClientTest.java index fd69c60..1a51d04 100644 --- a/src/test/java/org/reduct/client/ReductServerClientTest.java +++ b/src/test/java/store/reduct/client/ReductServerClientTest.java @@ -1,33 +1,8 @@ package store.reduct.client; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Spy; import org.mockito.junit.jupiter.MockitoExtension; -import store.reduct.client.config.ServerProperties; -import store.reduct.client.util.ResponseExamples; -import store.reduct.common.ServerURL; -import store.reduct.common.exception.ReductException; -import store.reduct.model.bucket.Buckets; -import store.reduct.model.server.ServerInfo; -import store.reduct.utils.http.HttpStatus; - -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpHeaders; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.util.Optional; - -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; @Disabled @ExtendWith(MockitoExtension.class) diff --git a/src/test/java/org/reduct/client/ReductTokenClientTest.java b/src/test/java/store/reduct/client/ReductTokenClientTest.java similarity index 91% rename from src/test/java/org/reduct/client/ReductTokenClientTest.java rename to src/test/java/store/reduct/client/ReductTokenClientTest.java index 4115a5b..5646883 100644 --- a/src/test/java/org/reduct/client/ReductTokenClientTest.java +++ b/src/test/java/store/reduct/client/ReductTokenClientTest.java @@ -1,29 +1,6 @@ package store.reduct.client; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import store.reduct.client.config.ServerProperties; -import store.reduct.client.util.TokenExamples; -import store.reduct.common.ServerURL; -import store.reduct.common.TokenURL; -import store.reduct.common.exception.ReductException; -import store.reduct.model.token.AccessToken; -import store.reduct.model.token.AccessTokens; -import store.reduct.model.token.TokenPermissions; -import store.reduct.utils.http.HttpStatus; - -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpClient; -import java.net.http.HttpHeaders; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.util.List; -import java.util.Optional; - -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; @Disabled class ReductTokenClientTest { diff --git a/src/test/java/org/reduct/client/util/BucketExamples.java b/src/test/java/store/reduct/client/util/BucketExamples.java similarity index 100% rename from src/test/java/org/reduct/client/util/BucketExamples.java rename to src/test/java/store/reduct/client/util/BucketExamples.java diff --git a/src/test/java/org/reduct/client/util/ResponseExamples.java b/src/test/java/store/reduct/client/util/ResponseExamples.java similarity index 100% rename from src/test/java/org/reduct/client/util/ResponseExamples.java rename to src/test/java/store/reduct/client/util/ResponseExamples.java diff --git a/src/test/java/org/reduct/client/util/TokenExamples.java b/src/test/java/store/reduct/client/util/TokenExamples.java similarity index 100% rename from src/test/java/org/reduct/client/util/TokenExamples.java rename to src/test/java/store/reduct/client/util/TokenExamples.java