Version history ===========================================
- 2.8.0 - 16.05.2017
- 2.7.7 - 16.05.2017
- 1.28.15 - 23.09.2016
- 1.27.0 - 05.07.2016
- 1.26.6 - 10.06.2016
- 1.26.0 - 09.05.2016
- 1.25.2 - 04.04.2016
- 1.25.1 - 29.03.2016
- 1.25.0 - 29.03.2016
- 1.22.1 - 24.02.2016
- 1.22.0 - 14.02.2016
- 1.21.5 - 11.02.2016
- 1.21.4 - 06.02.2016
- 1.21.3 - 28.01.2016
- 1.21.2 - 20.01.2016
- 1.21.1 - 19.01.2016
- 1.21.0 - 18.01.2016
- 1.20.0 - 08.01.2016
- 1.19.1 - 04.01.2016
- 1.18.1 - 17.12.2015
- 1.18.0 - 14.12.2015
- 1.17.7 - 10.12.2015
- 1.17.5 - 8.12.2015
- 1.16.0 - 19.11.2015
- 1.15.0 - 10.11.2015
- 1.13.0 - 02.11.2015
- 1.12.0 - 03.09.2015
- 1.11.0 - 16.08.2015
- 1.10.1 - 18.07.2015
- 1.9.10 - 04.07.2015
- 1.8.12 - 21.05.2015
- 1.8.0 - 05.03.2015
- 1.5.0 - 05.01.2015
- 1.4.0 - 07.11.2014
- 1.3.0 - 05.09.2014
- 1.2.0 - 27.08.2014
- 1.1.0 - 20.08.2014
- 1.0.0 - 04.08.2014
- 0.9.0 - 24.06.2014
- 0.8.0 - 04.06.2014
- 0.7.0 - 22.05.2014
- 0.6.0 - 11.05.2014
1.28.x series
- Added the ability to control the automated initialisation of keyspaces and turn it on or off.
- Added the ability to provide a custom query for keyspace initialisation.
- Added a new keyspace builder via
Querybuilder.keyspacethat allows building keyspace creation queries. - Removed default cluster builder settings that auto-disabled JMX metrics and monitoring.
1.27.0
- Removed support for
phantom-zookeeper, module is no longer in use and support forfinagle-zookeeperis no longer available for more recent versions of Finagle. - Bumped
"com.outworkers" %% "util"to0.18.2. - Bumped
javaxServletto3.0.1. - Bumped Lift JSON version in tests to
3.0-RC3. - Added ability to specify an
errorHandlerfor theSessionProvider, allowing users to deal with failures of connecting to Cassandra. - Changed all references of
com.websudos.utiltocom.outworkers.util. - Added the
ttlfunction to allow selecting the TTL of a column. - Fixed serialization problem when chaining multiple using part clauses.
- Added helper methods to the
DatabaseImplclass, to allow automatically initialising the tables without broadcasting the need for animplicit session.create,createAsync,drop,dropAsync,truncateandtruncateAsync. - Altered task to start
EmbeddedCassandra. - Added ability to set passphrase for Maven Central publishing inside the Travis CI eco-system via encrypted Travis variables.
1.26.1
-
Added a new
Primitive.applymethod that produces necessary implicits for using enumeration columns as partition columns. Useimplicit val enumPrimtive = Primitive(SomeEnum)to produce the necessary implicits for using an enumeration value inside aselect.where(_.enumCol eqs enumValue). -
Moved the entire changelog to the Github Wiki, removed it from the repository.
-
Fixed badge link for Maven Central publishing, link is pointing to parent
phantom_2.10project which is now no longer published. -
Bumped Scala versions to
2.10.6and2.11.8respectively.
1.26.0
Breaking changes
-
Removed all Twitter libs and dependencies from the main DSL. References to
com.twitter.utilwill no longer compile, and we have moved all the features of the old version to a new module calledphantom-finagle. Support for Spools has also been move -
Removed all Play dependencies from the main DSL project, moved all the implementation specific
fetchEnumeratorto thephantom-reactive-streamsmodule. To use features such asfetchEnumerator, you will now need to useimport com.websudos.phantom.reactivestreams._ -
Columns such as
SetColumn,MapColumnor evenJsonColumnno longer require providing theOwnerandRecordtype parameters when defining the columns.
Instead of:
import com.websudos.phantom.dsl._
case class MyRecord(id: UUID, props: Map[String, String])
class MyTable extends CassandraTable[MyTable, MyRecord] {
object id extends UUIDColumn(this) with PartitionKey[UUID]
object props extends MapColumn[MyTable, MyRecord, String, String](this)
}
// you can now simply type
import com.websudos.phantom.dsl._
case class MyRecord(id: UUID, props: Map[String, String])
class MyTable extends CassandraTable[MyTable, MyRecord] {
object id extends UUIDColumn(this) with PartitionKey[UUID]
object props extends MapColumn[String, String](this)
}
0.6.0
- Adding support for conditional tests.
- Added support for
orderByin select queries. - Added support for Clustering columns.
- Added support for auto-generating Composite Keys.
- Added extensive tests for Secondary Indexes.
- Moved back to Scala reflection.
- Fixed field collection order.
- Added servlet container based tests to ensure Scala reflection is consistent.
- Simplifying Enumerators API.
- Added a changelog :)
- Added a table of contents in the documentation.
- Improved structure of test project.
- Added copyright information to a lot of files.
- Fixed license issue in Maven Central publishing license.
- Vastly simplified structure of collection operators and removed
com.websudos.phantom.thrift.Implicits._ - Fixed
nullhandling bug inOptionalColumns.
0.7.0
- Added a variety of compilation tests for the phantom query builder. They test what should compile and what shouldn’t, to verify compile time restrictions.
- Fixed support for Static columns.
- Bumped Twitter Scrooge version to 3.15.0
- Bumped Cassandra version to 2.0.7
- Fixed tests for TimeSeries
- Fixed tests for orderBy clauses.
- Fixed support for static columns.
- Fixed issues with using the
setIdXList operator. - Integrated Scalatra servlet container tests in the same test project.
- Removed phantom-scalatra-test module
0.8.0
- PHANTOM-43: Added timestamp support for BatchStatements.
- PHANTOM-62: Added timestamp support for queries used in batch statements.
- PHANTOM-66: Added support for
SELECT DISTINCTqueries. - PHANTOM-72: Added ability to enable/disable tracing on all queries.
- PHANTOM-75: Restructure the query mechanism to allow sharing methods easily.
- PHANTOM-76: Added a
ifNotExistsmethod to Insert statements. - PHANTOM-78: Added ability to set a default consistency per table.
- PHANTOM-79: Added ability to chain multiple clauses on a secondary condition.
- PHANTOM-81: Fixed bug where count queries were always returning 1 because a
LIMIT 1was improperly enforced. - PHANTOM-82: Changed the return type of a count query from
Option[Option[Long]]toOption[Long]. - PHANTOM-83: Enhanced phantom query builder to allow using
whereclauses forCOUNTqueries. - PHANTOM-84: Added common methods to GitHub documentation.
0.9.0
- PHANTOM-106: Fix broken links in the phantom documentation.
1.0.0
- PHANTOM-108: Adding an example Cassandra connector.
- PHANTOM-112: Fixing race condition in the default ZooKeeper connector implementation
1.1.0
- PHANTOM-105: The embedded Zookeeper client needs to connect before fetching data. Fixed connection state in Zk clients.
- PHANTOM-107: Add documentation for using our Zookeeper testing utilities.
- PHANTOM-113: Using a ZooKeeper Manager implementation to track availability and instantiation of ZooKeeper nodes.
1.2.0
- PHANTOM-115: Fix SBT plugin dependency caused by
publishSignedtask in the GPG plugin. Kudos to Stephen Samuel.
1.3.0
- PHANTOM-123: Fixed some documentation links.
- PHANTOM-127: Automatically collecting references to all UDT definitions.
- PHANTOM-131: Throwing an error when
PrimaryKeyandClusteringOrderdefinitions are used in the same schema. - PHANTOM-134: Allowing users of
DefaultZooKeeperManagerto specify their own timeout for ZooKeeper connections. - PHANTOM-136: Added UDT examples to the UDT example module.
- PHANTOM-109: Added a reference collector to all fields of an UDT.
1.4.0
- Fixed more broken links in the documentation and added table with Future API methods.
- Implemented UDT columns and added serialisation tests.
- Moved syscall to get available processors to a one time only init for performance improvements.
- Fixed
BatchStatement.applyfrom ignoring the argument list passed to the method. - Fixed
DefaultClusterStoreto allow overriding connection timeouts and the CQL query used to initialise keyspaces. - Allowing users to override how ports are parsed once retrieved from ZooKeeper.
- Allowing users to override cluster builders with their own custom implementation.
- PHANTOM-93: Finalising ScalaStyle build integration.
1.5.0
- Fixed several typos and broken links in the README.
- Added documentation for resolver requirements at the top of the repository.
- Added clarification for Scala 2.11 release.
- Improved UDT implementation.
- Heavy performance improvements for iterator processing (thanks @benjumanji for diligently profiling every bit).
- Added full support for Scala 2.11.
1.8.0
1.8.12
- Fixed encoding support for strings containing a single quote
'. - Bumped util library dependency to
0.8.8to include small bug fixes and more robust testing in the util library. - A custom patience timeout for
successfulcalls on Futures has been created to replace the now obsolete implicit fromcom.websudos.util.testing._. - Bumped Twitter Finagle deps to
6.25.0and Twitter Util to6.24.0. - Removed hard coded list lengths from
TimeSeriesTestin favour of named variables. This compensates for the fix in the util library, where before0.8.4a call togenList[T](n)would generaten - 1elements instead ofn. This has been fixed and phantom updated to compensate for all changes. - Bumped
cassandra-unitversion to2.0.2.6as the newer version is available on our public Bintray repository. - Removed Websudos Artifactory resolvers and replaced with Bintray configuration.
- Added a Bintray version badge to automatically show the latest available Bintray version on the GitHub README.
- Separated performance related tests written with ScalaMeter into a new configuration called
perf. Tests can now be semantically distinguished by their purpose andsbt:testwill not run performance tests by default. Instead, benchmarks are run usingperf:testexclusively, which fixesscoverageintegration during the Travis CI phase. - Fixed a few deadlinks in the
README.md. - Removed
Unmodifiabletrait market from the implementation ofIndex, which now allows users to update the value of secondary keys. - Separated
DELETEquery serialization concerns into a specialized builder calledQueryBuilder.Delete. - Added tests for
DELETEquery serialisation and for the newQueryBuilder.Delete. - Removed fixed Thrift dependency that was enforcing
org.apache.thrift % libthrift % 0.9.1from thephantom-thriftmodule. Consumers of Thrift modules can now set their own Scrooge and Thrift version withoutphantom-thriftinterfering with them and causing serialization problems. - Added a
RootThriftPrimitiveto allow easily creating an implicit primitive for custom types. This is used when Thrift columns are part of the primary key. - Moved the duplicate
package.scalafrom the test part ofcom.websudos.phantom.thriftto avoid strange overloading of imports between the main module and test module. Also fixes compilation warning message about conflicting members. - Fixed support for nested Primitive types. A
Column[Owner, Record, Tcan now de-serialize to a type that is completely different fromT. This fixes edge scenarios like theDateTimePrimitiveof typePrimitive[org.joda.time.DateTime]which has no proprietary extractor and is instead just a thin layer around the existingjava.util.Dateextractor. Phantom can now feed in the correct extraction type and deserialize columns likeMapColumn[Owner, Record, DateTime, String]. - Bumped ScalaTest dependency to version
2.2.4. - Fixed serialization of Blob columns by using Datastax Java Driver helper object
Bytes. - Added support for SBT version management via Twitter’s
sbt-package-distpublished via the custom Websudos fork:"com.websudos" %% "sbt-package-dist" % "1.2.0". - Bumped Scala version to
2.10.5and2.11.6. - Added dependency resolution retry during Travis CI phase. Travis will now retry to fetch dependencies 3 times before giving up, which fixes most timeout errors during dependency resolution and lets builds consistently pass.
- Moved publishing infrastructure to Bintray and added a dependency on
"me.lessis" %% "bintray-sbt" % "0.3.0"to publish artefacts to Bintray. - Bumped SBT version to
0.13.8and bumpednet.virtualvoid.dependencygraphversion to0.7.5inplugins.sbt.
1.8.13
- Removed
TestZookeeperConnectorfrom the defaultphantom-testkit. - Removed
BaseTestandFeatureBaseTestfromphantom-testkit. - Removed dependency on
phantom-zookeeperfrom the default implementation ofphantom-connectors. This was a very bad accident and Zk dependencies were being pulled in even if the end user wasn’t relying on ZooKeeper for service discovery.
1.10.0
- Bumped Scala version to 2.11.7 for the 2.11.x releases.
- Re-added ability to set consistency levels in every query except Batch queries.
- Moved implementation of query execution back to simple statements in the Datastax Java driver.
- Allowing Datastax Java driver to set the consistency level and control final levels of serialization.
- Added ability to change CQL serialization based on CQL protocol version.
1.11.0
- Changed the serialization technique used for consistency levels to use a Scala
Option[ConsistencyLevel]definition instead of a nullable field. - Added support for protocol level specification of consistency levels inside
BatchStatement. - Removed most of the remaining documentation from the GitHub readme and placed in the Wiki.
- Added a list of tutorials for using phantom, including basic guidelines.
- Added a default forwading mechanism for a
KeySpacedefinition inside theConnectorobtained viaKeySpaceDef. - Upgraded to use Diesel engine for query operations.
- Upgraded to use Diesel engine for multi-part queries.
1.12.0
- Removed support for
java.util.Datein the default date columns. This has been removed in Cassandra 2.2. - Replaced default date parsing from
java.util.Datewithcom.datastax.driver.core.LocalDateprimitive. - Added a
LocalDatecolumn to offer complementary support forcom.datastax.driver.core.LocalDate,java.util.Dateandorg.joda.time.DateTime. - Replaced
BatchQueryserialization to usecom.datastax.driver.core.BatchStatementinternally. - Removed superfluous check in
ExecutableQueryfor nullable consistency level definitions.
1.13.0
- Added support for
maxTimeuuidandminTimeuuidin query columns. - Added support for multiple
orderBystatements in a single clause. - Removed implementation of
SessionProviderin favour of a single global session object inside phantom. - Fixed implementation of logging by using logf4j12-over-slf4j bridge and logback-classic.
- Removed IPv6 connectivity support from the Travis build.
- Added
.jvmoptsto the Travis build configuration to prevent automated attempts to IPv6 connections in the Datastax driver. - Removed a lot of
.getaccessor calls in the test methods in favour of the idiomaticOptionValuesDSL from ScalaTest.
1.15.0
- Added support for Reactive Streams in phantom, with a default mapper subscriber.
- Implemented a publisher for reactive streams based on Play Enumerators convertions.
1.16.0
- Fixed buffer overflow issue in Reactive streams.
- Added tests for the reactive streams publisher.
- Added support for binding in INSERT JSON clauses.
- Forcing request builders in reactive streams to be
Batchable. - Allowing elements to be derived from
Throwableby adding anErrorWrapperto error propagation in actors. - Adding support for binding
scala.Enumeration#Valuein prepared statements. - Bumped
xsbt-web-pluginto2.0.4.
1.17.5
- Fixed support for token operators for multiple tokens.
- Fixed support for binding single arguments to a prepared statement by adding specialized 1 arg methods.
- Adding better comments to the basic implementation.
- Removed unused dead code in operator query columns for multi-column token operators.
- Deprecated shutdown method on the main
Manager.
1.17.7
- Fixed serialization of
InsertQuerybuilders that specify a using clause. - Fixed serialization of
InsertJsonQuerybuilders that specify a using clause. - Fixed primitive serialization inside
PreparedStatements. - Added primitive parsing of
BigDecimalinside prepared statements. - Added support for binding lists inside prepared statements.
- Fixed TTL support in
UpdateClause. - Fixed protocol version comparisons to address non standard greater than 1 results in
compareToimplementation.
1.18.0
- Added a query options DSL to fix using
consistencyLevelsettings inSelectQuery. - Added a
QueryOptionsDSL to replaceOption[ConsistencyLevel]setting inExecutableQuery. - Bumped major version to
1.18.0to address backwards incompatible change. - Fixed serialization issue in defining
LeveledCompactionStrategy.
1.18.1
- Adding the ability to use
gt,gte,lt,lteandisNotoperators with a conditional update clause. - Bumping the version to
1.18.1.
1.19.0
- Deprecated and completely removed the
phantom-teskitmodule as it is now obsolete. - Upgraded the entire set of tests to use the new
DatabaseAPI. - Added support for updating specific entries in a
MapColumn. - Added support for deleting specific entries from a
MapColumn. - Fixed timeout configuration for ScalaTest based entries.
- Updated examples to showcase new Database API.
1.19.1
- Fixed
maxTimeUUIDandminTimeUUIDimplementations to use proper serialization forTimeUUIDrange queries.
1.20.0
- Renamed all CAS comparison operators to match
is$Opformat. - Added
ExecutableCreateStatementsListto fix index creation issues insideDatabase.autocreate. - Added support for Map entry comparisons and the
Entriesmixin trait for map columns with secondary indexes.
1.21.0
- Added support for preparing
UpdateQueryviap_where->p_andpairs andp_modify->p_andpairs. - Added more tests for prepared delete queries and update queries.
- Added the ability to set more options on a statement before executing it.
- Added ability to prepare map entry update clauses.
- Bumped util library version to
0.10.8. - Bumped Datastax Java Driver version to
3.0.0-rc1and usingnew SimpleStatementconstructor in favour the now removedsession.newSimpleStatement. - Added ability to modify a
statementdirectly the execution operation to set options via the Java DSL. - Added support for
Table.select.function(t => fn(t.column), includingdateOf,unixTimestampOfandwritetime. - Increased default schema synchronisation timeout to 10 seconds inside phantom tests.
- Added
sbt-sonatypeplugin to re-enable Maven Central syncing.
1.21.1
- Added ability to merge batch queries.
- Adding support for
iteratormethod on queries.
1.21.2
- Fixing serialization of Compaction properties in CREATE and ALTER queries.
1.21.3
- Fixing type evidence required for
p_andchains inUpdateQuery.
1.21.4
- #414 Added ablity to use prepared statements inside of batch statemets.
- #417 Corrected cql type for LocalDate and Date accessor method.
- #412 Bumped Datastax Java Driver version to 3.0.0
1.21.5
- Added SmallInt and TinyInt support.
- Added a new contributor to the list.
1.22.0
- PHANTOM-194: Fixed serialization of
Table.select.distinctqueries. - Added support for
LocalDatecolumns. - Added
driver-extrasdependency from the Datastax set.
1.22.1
- Added a
DateTimeaugmenter in the default package capable of producingTimeUUIDvalues from aDateTime. - Fixed serialization of
minTimeuuidandmaxTimeuuidclauses to use dates in ISO formats. - Added tests to test
timeuuidbased date range selection withminTimeuuidandmaxTimeuuid.
1.25.0
- Changed
cachingproperty serialization inQueryBuilderto adjust to protocol version changes. - Fixed bug in prepared statements which prevented multiple prepared SET clauses from being used.
- Changed serialization order in an
UpdateQueryto always provide the SET clause arguments first. This is done to address the internal bind serialization issue, since the bind won’t attempt to do any type matching, order of the arguments is the only element that dictates serialization.
1.25.1
- Fixed README to reflect up to date licensing clauses and remove open source wording.
- Using
Tuplerinstead ofGenericand reverting type cast from HList -> Tuple for some compile time clarity.
1.25.2
- Fixing more
READMEissues. - Removed contributor from the list.
- Fixed changelog.
- Fixed casing of word
KEYStokeysto fit CQL variant.