Skip to content

Commit

Permalink
Merge branch 'release/0.10'
Browse files Browse the repository at this point in the history
  • Loading branch information
jtnelson committed Aug 23, 2020
2 parents 4b5e860 + cbae285 commit 2feb295
Show file tree
Hide file tree
Showing 93 changed files with 1,806 additions and 1,205 deletions.
9 changes: 7 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
# year without being told, so it is a noop if it is run multiple times in
# the same year

version: 2
version: 2.1
orbs:
ruby: circleci/[email protected]
jobs:
build:
docker:
Expand All @@ -35,6 +37,9 @@ jobs:
- setup_remote_docker:
version: 17.09.0-ce
docker_layer_caching: true
- ruby/install:
version: '2.7'
- run: echo "Ruby 2.7 has been installed"
- run:
name: Get Sonatype Credentials
command: |
Expand All @@ -52,7 +57,7 @@ jobs:
name: Build and Publish
command: |
cd ~/$CIRCLE_PROJECT_REPONAME
./gradlew clean build installer uploadArchives bintrayUpload dockerize -x spotlessJava --no-daemon
./gradlew clean build installer uploadArchives bintrayUpload dockerize -x spotlessJava -x spotlessJavaCheck --no-daemon
- save_cache:
paths:
- ~/.gradle
Expand Down
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.10.4
0.10.5
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
## Changelog

#### Version 0.11.0 (TBD)
* Added `trace` functionality to atomically locate and return all the incoming links to one or more records. The incoming links are represented as a mapping from `key` to a `set of records` where the key is stored as a `Link` to the record being traced.

#### Version 0.10.5 (TBD)
* Fixed a bug where sorting on a navigation key that isn't fetched (e.g. using a navigation key in a `find` operation or not specifying the navigation key as an operation key in a `get` or `select` operation), causes the results set to be returned in the incorrect order.
* Upgraded CCL version to `2.6.3` in order to fix a parsing bug that occurred when creating a `Criteria` containing a String or String-like value with a whitespace or equal sign (e.g. `=`) character.
* Fixed a bug that made it possible to store circular links (e.g. a link from a record to itself) when atomically adding or setting data in multiple records at once.
* Fixed a race condition that occurred when multiple client connections logged into a non-default environment at the same time. The proper concurrency controls weren't in place, so the simultaneous connection attempts, in many cases, caused the Engine for that environment to be initialized multiple times. This did not cause any data duplication issues (because only one of the duplicate Engines would be recognized at any given time), but it could cause an `OutOfMemoryException` if that corresponding environment had a lot of metadata to be loaded into memory during intialization.

#### Version 0.10.4 (December 15, 2019)
* Added support for using the `LIKE`, `NOT_LIKE` and `LINKS_TO` operators in the `TObject#is` methods.
* Fixed a bug that made it possible for a `ConnectionPool` to refuse to accept the `release` of a previously issued `Concourse` connection due to a race condition.
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Concourse

![](https://img.shields.io/badge/version-0.10.4-green.svg)
![](https://img.shields.io/badge/version-0.10.5-green.svg)
![](https://img.shields.io/badge/status-alpha-orange.svg) ![](https://img.shields.io/badge/license-Apache%202-blue.svg)
[![Join the chat at https://gitter.im/cinchapi/concourse](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cinchapi/concourse?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![](https://circleci.com/gh/cinchapi/concourse.svg?style=shield&circle-token=954a20e6114d649b1b6a046d95b953e7d05d2e2f)](https://circleci.com/gh/cinchapi/concourse)

> [Concourse](http://concoursedb.com) is a distributed database warehouse for transactions search and analytics across time. Developers prefer Concourse because it simplifies building misssion-critical systems with on-demand data intelligence. Furthermore, Concourse makes end-to-end data management trivial by requiring no extra infrastructure, no prior configuration and no continuous tuning–all of which greatly reduce costs, and allow developers to focus on core business problems.
This is version 0.10.4 of Concourse.
This is version 0.10.5 of Concourse.

## Quickstart
### Docker
Expand Down
25 changes: 8 additions & 17 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,6 @@
* limitations under the License.
*/

// To upgrade:
// 1. Take a backup of gradlew because there is custom logic there that must
// be preserved
// 2. Change gradleVersion here
// 3. Change the distributionUrl in gradle/wrapper/gradle-wrapper.properties
// 4. Run ./gradlew wrapper
task wrapper(type: Wrapper) {
gradleVersion = '3.0'
}

// The project version is controlled externally by the "version.sh" script.
def getVersion = { ->
def stdout = new ByteArrayOutputStream()
Expand Down Expand Up @@ -51,8 +41,8 @@ buildscript {
}
dependencies {
classpath 'net.nisgits.gradle:gradle-executable-jar-plugin:1.7.0'
classpath "com.diffplug.spotless:spotless-plugin-gradle:3.6.0"
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3"
classpath "com.diffplug.spotless:spotless-plugin-gradle:5.1.2"
classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.3"
}
}

Expand All @@ -69,7 +59,7 @@ subprojects {
apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'idea'
apply plugin: 'com.diffplug.gradle.spotless'
apply plugin: 'com.diffplug.spotless'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'

Expand Down Expand Up @@ -176,6 +166,7 @@ subprojects {
importOrderFile rootProject.file('spotless.java.importerorder')
removeUnusedImports()
eclipse().configFile rootProject.file('spotless.java.eclipseformat.xml')
targetExclude 'src/main/java/com/cinchapi/concourse/thrift/ConcourseService.java'
}
}

Expand All @@ -184,10 +175,10 @@ subprojects {
ext.title = "Concourse" // The project's vanity title
ext.description = "Default" // A short description about the project
afterEvaluate { project ->
if (ext.uploadEnabled && validateVersion(project.version)) { // Configure subprojects that should be uploaded
// to Maven
def mavenTitle = ext.title
def mavenDescription = ext.description
if (project.ext.uploadEnabled && validateVersion(project.version)) { // Configure subprojects that should be uploaded // to Maven
def mavenTitle = project.ext.title
def mavenDescription = project.ext.description
def mavenVersion = ext.mavenVersion

publishing {
publications {
Expand Down
4 changes: 2 additions & 2 deletions concourse-driver-java/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ The concourse jar is available at [Maven Central](http://search.maven.org/#searc
}

dependencies {
compile 'com.cinchapi:concourse-driver-java:0.10.4+'
compile 'com.cinchapi:concourse-driver-java:0.10.5+'
}

If you prefer to use another dependency manager like Maven or Ivy, then use the following project information when declaring the dependency:

GroupId: com.cinchapi
ArtifactId: concourse-driver-java
Version: 0.10.4+
Version: 0.10.5+

Alternatively, you can [download](http://cinchapi.org/concourse/download-api) the latest jar and manually add it to your project's classpath.

Expand Down
2 changes: 1 addition & 1 deletion concourse-driver-java/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ dependencies {
compile 'org.slf4j:log4j-over-slf4j:1.7.5'
compile 'org.slf4j:jcl-over-slf4j:1.7.5'
compile 'com.google.code.gson:gson:2.5'
compile group: 'com.cinchapi', name: 'ccl', version:'2.6.2'
compile group: 'com.cinchapi', name: 'ccl', version:'2.6.3'

testCompile project(':concourse-unit-test-core')
testCompile 'com.github.marschall:memoryfilesystem:0.9.0'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -269,8 +269,8 @@ public Number average(String key, String ccl, Timestamp timestamp) {
public Number average(String key, Timestamp timestamp) {
return concourse.execute(() -> {
TObject result = timestamp.isString()
? concourse.$calculate().averageKeyTimestr(
key, timestamp.toString(), concourse.creds(),
? concourse.$calculate().averageKeyTimestr(key,
timestamp.toString(), concourse.creds(),
concourse.transaction(), concourse.environment())
: concourse.$calculate().averageKeyTime(key,
timestamp.getMicros(), concourse.creds(),
Expand Down Expand Up @@ -493,8 +493,8 @@ public long count(String key, String ccl, Timestamp timestamp) {
public long count(String key, Timestamp timestamp) {
return concourse.execute(() -> {
return timestamp.isString()
? concourse.$calculate().countKeyTimestr(
key, timestamp.toString(), concourse.creds(),
? concourse.$calculate().countKeyTimestr(key,
timestamp.toString(), concourse.creds(),
concourse.transaction(), concourse.environment())
: concourse.$calculate().countKeyTime(key,
timestamp.getMicros(), concourse.creds(),
Expand Down Expand Up @@ -725,8 +725,8 @@ public Number max(String key, String ccl, Timestamp timestamp) {
public Number max(String key, Timestamp timestamp) {
return concourse.execute(() -> {
TObject result = timestamp.isString()
? concourse.$calculate().maxKeyTimestr(
key, timestamp.toString(), concourse.creds(),
? concourse.$calculate().maxKeyTimestr(key,
timestamp.toString(), concourse.creds(),
concourse.transaction(), concourse.environment())
: concourse.$calculate().maxKeyTime(key,
timestamp.getMicros(), concourse.creds(),
Expand Down Expand Up @@ -958,8 +958,8 @@ public Number min(String key, String ccl, Timestamp timestamp) {
public Number min(String key, Timestamp timestamp) {
return concourse.execute(() -> {
TObject result = timestamp.isString()
? concourse.$calculate().minKeyTimestr(
key, timestamp.toString(), concourse.creds(),
? concourse.$calculate().minKeyTimestr(key,
timestamp.toString(), concourse.creds(),
concourse.transaction(), concourse.environment())
: concourse.$calculate().minKeyTime(key,
timestamp.getMicros(), concourse.creds(),
Expand Down Expand Up @@ -1191,8 +1191,8 @@ public Number sum(String key, String ccl, Timestamp timestamp) {
public Number sum(String key, Timestamp timestamp) {
return concourse.execute(() -> {
TObject result = timestamp.isString()
? concourse.$calculate().sumKeyTimestr(
key, timestamp.toString(), concourse.creds(),
? concourse.$calculate().sumKeyTimestr(key,
timestamp.toString(), concourse.creds(),
concourse.transaction(), concourse.environment())
: concourse.$calculate().sumKeyTime(key,
timestamp.getMicros(), concourse.creds(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@
* @author Jeff Nelson
*/
@NotThreadSafe
public final class SortableColumn<V> extends ForwardingMap<Long, V>
implements Column<V>, Sortable<V> {
public final class SortableColumn<V> extends ForwardingMap<Long, V> implements
Column<V>,
Sortable<V> {

/**
* Ensure that the {@code data} is a {@link SortableColumn}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,9 @@ public static <V> SortableTable<V> singleValued(
*
* @author Jeff Nelson
*/
static class ForwardingSortableTable<V> extends
ForwardingMap<Long, Map<String, V>> implements SortableTable<V> {
static class ForwardingSortableTable<V>
extends ForwardingMap<Long, Map<String, V>> implements
SortableTable<V> {

/**
* The delegate to which calls are forwarded. If {@link #sort(Sorter)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
*
* @author Jeff Nelson
*/
public abstract class DataColumn<F, T> extends AbstractMap<Long, T>
implements Column<T> {
public abstract class DataColumn<F, T> extends AbstractMap<Long, T> implements
Column<T> {

/**
* Return a {@link DataColumn} that contains multi-valued cells of
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@
* @author Jeff Nelson
*/
public final class DataIndex<T> extends AbstractMap<String, Map<T, Set<Long>>>
implements Index<T> {
implements
Index<T> {

/**
* Convert the {@link TObject} values in the {@code results} to their java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
*
* @author Jeff Nelson
*/
public class DataProjection<T> extends AbstractMap<T, Set<Long>>
implements Projection<T> {
public class DataProjection<T> extends AbstractMap<T, Set<Long>> implements
Projection<T> {

/**
* Convert the {@link TObject} values in the {@code results} to their java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@
* @author Jeff Nelson
*/
@NotThreadSafe
public abstract class DataRow<F, T> extends AbstractMap<String, T>
implements Row<T> {
public abstract class DataRow<F, T> extends AbstractMap<String, T> implements
Row<T> {

/**
* Convert the {@link TObject} values in the {@code results} to their java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@
*/
@NotThreadSafe
public abstract class DataTable<F, T> extends AbstractMap<Long, Map<String, T>>
implements Table<T> {
implements
Table<T> {

/**
* Return a {@link DataTable} that contains multi-valued cells of
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,9 @@
*
* @author Jeff Nelson
*/
public class OrderAtState extends BuildableOrderState
implements ShortcutThenByState, TransitionToOrderDirectionState {
public class OrderAtState extends BuildableOrderState implements
ShortcutThenByState,
TransitionToOrderDirectionState {

/**
* Construct a new instance.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
* The {@link OrderState} that expects the next token to be a sort order,
* timestamp or a new key to sort by.
*/
public class OrderByState extends BuildableOrderState
implements ShortcutThenByState, TransitionToOrderDirectionState {
public class OrderByState extends BuildableOrderState implements
ShortcutThenByState,
TransitionToOrderDirectionState {

/**
* Construct a new instance.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
*
* @author Jeff Nelson
*/
public class OrderDirectionState extends BuildableOrderState
implements ShortcutThenByState {
public class OrderDirectionState extends BuildableOrderState implements
ShortcutThenByState {

/**
* Construct a new instance.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,8 @@ private void readObject(java.io.ObjectInputStream in)
}
}

private static class AccessTokenStandardSchemeFactory
implements SchemeFactory {
private static class AccessTokenStandardSchemeFactory implements
SchemeFactory {
public AccessTokenStandardScheme getScheme() {
return new AccessTokenStandardScheme();
}
Expand Down Expand Up @@ -389,8 +389,8 @@ public void write(org.apache.thrift.protocol.TProtocol oprot,

}

private static class AccessTokenTupleSchemeFactory
implements SchemeFactory {
private static class AccessTokenTupleSchemeFactory implements
SchemeFactory {
public AccessTokenTupleScheme getScheme() {
return new AccessTokenTupleScheme();
}
Expand Down
Loading

0 comments on commit 2feb295

Please sign in to comment.