Skip to content

Changelog

DuyHai DOAN edited this page Mar 27, 2021 · 59 revisions

Branch 6.x

  • 6.1.0

    • Bump JUnit version to 4.13.1
    • Bump Guava version to 24.1.1-jre
    • Support Cassandra up to version to 3.11.10
    • Bump Java driver version to 3.11.0
    • Update Copyright to 2021
    • Upgrade Hibernate Validator to 5.3.6.Final
    • Merge pull request #375 from hjizettle/master -> embedded: server builder now supports setting protocol version
    • Bump fasterxml.jackson.version from 2.9.9 to 2.10.0
  • 6.0.4

    • Support Cassandra up to version 3.11.4
    • Fixes #363 Allow token() function call will all partition keys
  • 6.0.3

    • Upgrade Jackson version to 2.9.9 to fix security vulnerabilities
    • Upgrade Jackson version to 2.9.8 to fix security vulnerabilities
  • 6.0.2

    • Merge pull request #361 from echauchot/360-set-jmx-port -> Add withJMXPort() to CassandraEmbeddedServerBuilder
  • 6.0.1

    • Increase timeout for Driver connection in Achilles JUnit to avoid timeout on Travis
    • Update copyright for 2019
    • Upgrade Cassandra version to 3.11.3
    • Force the bean validation error message to avoid locale dependent build issue
    • Upgrade Java driver core to 3.6.0
    • Fix #355 initSession should use supplier instead
    • Fix #354 Schema validation fails for UDT when keyspace name is in Uppercase
    • Merge pull request #349 from jared-wallace/master -> Disable JMX reporter on java driver when using Achilles JUnit
    • Merge pull request #345 from AndreasMager/embedded-port-finder-trys-to-get-default-ports -> PortFinder#findFirstAvailableBetween method added.
    • Merge pull request #344 from AndreasMager/cassandra-properties-for-juint -> allow changing Cassandra startup parameters
  • 6.0.0

    • Bump Achilles version to 6.0.0
    • Update copyright for 2018
    • BREAKING CHANGE Fix #333 Provide support for having same column as clustering key and secondary index in cassandra
    • Upgrade Driver version to 3.5.0
    • Fix #331 Unable to start on new Java version (1.8.0_162-b12)
    • Fix #323 Achilles ignoring fetchSize set in raw Statement
    • Support OSS Cassandra up to 3.12. Support DSE up to 5.1.10
    • Merge pull request #329 from pgbhagat/master -> Fixing String.format arguments
    • Merge pull request #328 from hubpan/postpone-random-port-scanning -> Port-scanning are only being run when their corresponding settings are null
    • Merge pull request #325 from tveronezi/CVE-2017-5929 -> Fix serialisation vulnerability
    • Add /docs folder for github pages
    • BREAKING CHANGE Add prefix on DSE Search methods
    • Add support for DSE Search for DSE 5.1.x
    • Set theme jekyll-theme-dinky

Branch 5.x

  • 5.3.1

    • Remove dependency to CGLIB
    • Fix regression, annotation processor not found
  • 5.3.0

    • Fixes #314 Put debug level to dependency injection log message
    • Add Cassandra 3.11.0, DSE versions up to 5.1.2
    • Add support for GROUP BY and Cassandra v3.10
    • Fix ScriptExecutor issue with BATCH statement
    • Add support for Duration type
    • Add support for CASSANDRA-10783 and Cassandra v3.8
    • Fixes #304 Missing cdc_raw directory. Bump Cassandra version to 3.11.0
    • Update SASI annotation javadoc
    • Bump logback version to 1.1.3
    • Bump Java driver version to 3.3.0
    • Fixes #284 Support TOKEN function for partition keys
    • Fix Maven config
    • Organize imports
    • Update copyright
    • Code cleaning
    • Fixes #264 Support immutable entities
    • Fixes #312 DSL Generation - where-in clause for boolean (primitive) type field generation fails
    • Fixes #309 #310 Flaky integration tests
    • Fixes #306 Absuse of MockitoJUnitRunner
    • Fixes #305 Build requires en locale
    • Fixes #300 Stop including test dependencies as real dependencies
    • Merge pull request #308 from doanduyhai/Custom_Constructor
    • Implement custom constructor for entity
    • Merge pull request #302 from lmammino/patch-1
    • fixed status badge
  • 5.2.1

    • Fixes #293 Shorten generated class names
    • Fixes #292 Make consistency level ordering more sensible
    • Fixes #294 Primary key columns with case-sensitive generates invalid code
    • Fixes #287 Configurable results/rows displayed with DML Logger
    • Fixes #295 Add slice delete support
    • Fixes #291 make ManagerFactoryBuilder.build(Cluster, Map) static
    • PR Fixes #297 Provide an option to enable/disable schema validation by @cparker92
    • Fixes #285 ensures optional don't always compute the orElse clause when not a trivial accessor
  • 5.2.0

    • Upgrade driver to version 3.1.3
    • Bump version to 5.2.0
    • Add update() method for CRUD API
    • Fixes #282 java.lang.IllegalArgumentException: Argument is not an array
    • Fix buggy DEBUG log message
  • 5.1.5

    • Fixes #277 IllegalArgumentException: Argument not in an array
    • Upgrade maven-bundle-plugin to 3.2.0 and add plugin repository to main pom
    • Fix bug with JdkOptionalProperty
    • Add javadoc on meta property classes
    • Compute TupleType at runtime using optional schema name
    • Inject SchemaNameProvider into meta properties
    • Fixes #276 Keyspace not injected in all meta properties
  • 5.1.4

    • Internal renaming of Options to CassandraOptions
    • Add primary key & static column schema validation at runtime
    • Fix compilation error msg
    • Remove dead code
    • Fix generated IndexSelect classes
  • 5.1.3

    • Add DSE profile in release instructions
    • Fix #272 Support for ASCII type
    • Fix #271 Should not pre-generate JSON queries if C* version not compatible
  • 5.1.2

    • Avoid registering multiple times codecs
    • Add DSE 5.0.3 version
    • Minor breaking change Fix #267 Codec not found for requested operation
      • manager.crud().xxx().withSchemaNameProvider()... becomes manager.crud().withSchemaNameProvider().xxx()...
    • Fix pom version for DSE IT modules
    • Fix buggy code generation for UDT
  • 5.1.1

    • Update Java driver to version 3.1.1
    • Update README.markdown
    • Force projectName pattern to be Java class-name compatible
    • Fix #269 indexed() method not generated on Manager class
    • Fix NPE when index not present in live schema
  • 5.1.0

    • Bump version to 5.1.0-SNAPSHOT
    • Fix #262 Add parameter for listen/rpc address as well as shutdown hook for Achilles Embedded
    • Fix ERROR message because JMX port not specified
    • Add support for DSE Search
    • Create missing Cassandra versions
    • Fix indentation for DML log
    • Remove @DriverCodec annotation
    • Forbid index on UDT column
    • Add support for SASI
    • Internal refactoring for CassandraVersioning
    • Fix #224 Support for secondary index in DSL API
    • Fix bug in index validation on collections
    • Support for non-frozen user-defined types, updating individual fields of user-defined types
    • Add PER PARTITION LIMIT for Cassandra 3.6
    • Add readTimeoutInMillis as runtime SELECT option
  • 5.0.0

    • Bump version to 5.0.0-SNAPSHOT
    • Update FunctionCall interface because JAVA-1086 is solved
    • Write DML log in a single call to logger.debug()
    • Add CAST system function
    • Add multi-columns slice restrictions for UPDATE/DELETE
    • Add Support for JSON
    • Rename manager.query() to manager.raw()
    • Return TypedMap only if there is a function call in SELECT DSL
    • Merge Raw and Typed queries under the same package
    • Refactor TypedMap interfaces
    • Split IT modules to match Cassandra version
    • Fix #255 Allow multiples projects to run in the same JVM
    • Normalize the DSL CodeGen
    • Reorganize UPDATE/DELETE DSL CodeGen
    • Allow selection of UDT fields
    • Version DSL CodeGen classes
    • Version Validators

Branch 4.x

  • 4.2.3

    • Stop using unsafe embedded Cassandra in IT tests
    • Add missing UDT DDL logs
    • Fix #257 Handle upper-cased column name specified on @Column
    • Fix #259 Incorrect bound values for UPDATE when using TTL
  • 4.2.2

    • Move ScriptExecutor from 'achilles-embedded' up to 'achilles-common'
    • Fix #256 Insufficient param for String.format in DEBUG log
    • Fix counter incr/decr generated code
    • Only return the first page of data instead of all pages
  • 4.2.1

    • Upgrade Cassandra version to 3.7
    • Upgrade to Java driver 3.1.0
    • Disable unsafe Cassandra daemon
    • Fixes #254 Multi-Layer UDT fails on createBeanFromUDT()
    • Add optional input for PagingState, RetryPolicy, ConsistencyLevels and OutgoingPayload
    • Add new methods to return iterator() along with ExecutionInfo
    • Fix bug when querying with ( ... ) tuple notation on clustering columns
    • Fix error in log message formatting
    • Add optional version of statement parameters for nullable input
    • Remove 'password' as reserved keyword
  • 4.2.0

    • Add @SuppressWarning on generated code
    • SELECT DSL TypedMap API renaming
    • Upgrade to Cassandra 3.5
    • Upgrade version to 4.2.0-SNAPSHOT before release
    • Update AbstractManagerFactoryBuilder to inject SERIAL consistency level
    • Fix #245 Consistency level ordering
    • Fixes #246 Add guard before checking isXXXCompiler()
    • Fixes #248 Fix dependency injection ordering bug 2
    • Fixes #244 Fix dependency injection ordering
    • Fixes #240 Do not check for clustering column when inserting only static columns
    • Fixes #227 Support for UDF/Aggregates
    • Upgrade to Cassandra 3.4
    • Call shutdownNow() on single thread executor upon termination
    • Internal refactoring
    • Internal renaming of TypeParsingResult to FieldMetaSignature
    • Fixed debug log issue (PR #250 from bhuvanrawal/debug_log_fix)
    • Update Commons-Collections (PR #243 from cgils/master)
    • Fixes #225 Add support for function calls/UDF call in DSL API
    • Fix typo in tracing logs
    • Fix small typo on @Table javadoc
    • Provide more details for JDKOptional TypeTokens
    • Catch all exceptions during compile-time and print the complete stack trace
    • Add missing dependency on org.ow2.asm.asm 5.0.4 and driver class CassandraTypeParser
    • Make SELECT DSL also return TypedMap in addition of entity
    • Use an unsafe Cassandra Daemon for unit testing
    • Fixes issue with UDT schema not created when UDT is nested in collection
  • 4.1.0

    • BREAKING CHANGE Rename @Entity to @Table
    • Upgrade Cassandra version to 3.3
    • Fixes #237 Support for Materialized Views
    • Add scriptTemplate support for AchillesTestResoureBuilder
    • Add JDK Optional codec
    • Onsite codec declaration override codec registry
    • Support JDK8 Date types
    • Fixes JavaDoc rendering issue on DSL methods
    • Use exact type when calling get/set on Row object
    • Only generate UDT schema associated for managed entity classes at runtime
    • Make AchillesProcessor stateful and do not regenerate classes many times
    • Update JavaPoet to version 1.5.1
    • Add support for numeric array data types
    • Fixes #222 Support for @RuntimeCodec
    • BREAKING CHANGE Remove support for @Codec on class, prefer @CodecRegistry
    • Code cleaning
    • Forbid to have 2 entities with the same class name
    • Implement compile time codec registry
    • Replace stream().forEach() by simple for loops
    • Fixes integration test
    • Fixes #235 Entity mapped on non existing table/keyspace cause nullpointer exception
    • Use simple for loop instead of useless stream.forEach()
    • By Default, clean data folder for embedded Cassandra
    • Fixes #230 null pointer on invalid keyspace
    • Fixes #231 Upgrade driver version to 3.0.0
    • Upgrade Cassandra version to 3.2.1
    • Better error message for Schema comparison
    • Clean generated source files on each rebuild
    • Disable incremental compilation to fix successive 'mvn compile' issue
    • Update Maven Surefire Plugin version to 2.13
    • Update Cassandra version to 3.1.1
    • Update Java Driver version to 3.0.0-rc1
    • Fix Tracing on class level logger
    • Add validation for nested types
  • 4.0.1

    • Support UPDATE ... IF EXISTS
    • Upgrade to Java Driver 3.0.0-alpha5
    • Refactor AnnotationTree to support Eclipse compiler
  • 4.0.0

    • Complete rewrite

Branch 3.2.x

  • 3.2.3

    • Fixes #217 Cannot install achilles in OSGI environment due to duplicate package BREAKING CHANGE Move info.archinnov.achilles.json.CounterSerializer and info.archinnov.achilles.json.CounterDeSerializer to
      to info.archinnov.achilles.type.CounterSerializer and info.archinnov.achilles.type.CounterDeSerializer
  • 3.2.2

    • Fixes #219 Get the PagingState from the TypedQuery, NativeQuery
    • Fixes #217 Cannot install achilles in OSGI environment due to duplicate package BREAKING CHANGE Move info.archinnov.achilles.type.Options to info.archinnov.achilles.options.Options BREAKING CHANGE Move info.archinnov.achilles.type.OptionsBuilder to info.archinnov.achilles.options.OptionsBuilder
    • Fixes #216 Interceptors do not support Entity inheritance
  • 3.2.1

    • BREAKING CHANGE Fixes #209 Allow UNLOGGED batches
      • createBatch() is replaced by createLoggedBatch()
      • createOrderedBatch() is replaced by createOrderedLoggedBatch()
      • add createUnloggedBatch() and createOrderedUnloggedBatch()
    • Fixes #214 Achilles does not support static field only in rows
    • Merge from 3.0.20
      • Upgrade java driver version to 2.1.6
      • Fixes #212 Reflection does not find entities
  • 3.2.0

    • Update Cassandra to version 2.1.5
    • BREAKING CHANGE Fixes #178 insert() API should return void ..., remove refresh() API
    • BREAKING CHANGE Fixes #168, #179 and #210 Return proxy on request and not by default
    • Merge from 3.0.19
      • Fixes #211 Should not print bound values if ACHILLES_DML_STATEMENT log/DEBUG log on entity is not active
      • Fixes #208 Add 'close'/'shutdown' method for AsyncManager
      • Fixes #207 Null Pointer Exception for usecase: LWP +Embedded Id
      • PR #205 lazy creation of bound statements

Branch 3.1.x

  • 3.1.7

    • Merge from 3.0.18
      • Fixes #196 unable to create indexes using CASE_SENSITIVE naming convention
      • PR #202 Print the Hex string of the 16 first bytes of blob when ACHILLES_DML_STATEMENT is enabled
        • Adds byte length info when buffer is longer than limit
        • Enables logging of the first 16 bytes of a blob when ACHILLES_DML_STATEMENT is enabled
      • PR #201 Upgrades Achilles to work with java-driver 2.1.5
        • Replaces fromNullable with Opetional.of for non nullable parameters
      • PR #200 Better thread pool lifecycle management
        • do not create default thread pool if there is a client-supplied one in config
        • shutdown the thread pool only if it is the default one
      • Fixes #197: makes embeddedcassandra configurable for the number of reads/writes threads
  • 3.1.4

    • Upgrade to Java driver version 2.1.4 and Cassandra version 2.1.3
    • Fixes #194 Allow <,<=, >, >= and != for conditional updates using LWT
    • Merge from 3.0.17
      • Fixes #193 Load all counter values at once for clustered counters
      • Fixes #187 Support BATCH statements in script for ScriptExecutor
      • Fixes #185 Enhance ScriptExecutor to return ResultSet on execute() method
      • Fixes #188 Add @PreDestroy on shutDown() method of PersistenceManager and document it
      • Fixes #184 Update statements with LWT are re-prepared many times
      • Fixes #191 CqlColumn is not mapped to the java field
      • Merge pull request #190 from seblm/master to simplify execute batch
  • 3.1.3

    • Merge from 3.0.16
      • Late clearing of dirty map for POST_UPDATE interceptors
      • Fixes #145 Allow bootstrap CQL script execution for AchillesTestResource and CassandraEmbeddedServer
      • Fixes #167 Remove the default TTL = 0 in prepared statements because some tables have default TTL value
      • Fixes #180 Expose a close() method on the PersistenceManagerFactory to close the internal thread pool properly
      • Add withEntityClasses(Class<?> ... entityClasses) for the AchillesResourceBuilder
      • Fixes #174 Add iterator() and iterator(int fetchSize) to the TypedQuery API
      • Deprecate @Id and @EmbeddedId annotations
        • DEPRECATE @Id annotation, use @PartitionKey instead
        • DEPRECATE @EmbeddedId annotation, use @CompoundPrimaryKey instead
  • 3.1.2

    • Merge from 3.0.15
      • Migrate to Java Driver 2.1.3
      • Pull Request #177 Use proxy instead of entity when trigger a post_update interceptor
      • Fixes #176 Expose the Cluster object for the CassandraEmbeddedServer
      • Fixes #175 Deprecate @Order in favor of @PartitionKey and `@ClusteringColumn
        • DEPRECATE @Order annotation, use @PartitionKey and @ClusteringColumn instead
  • 3.1.1

    • Un-ignore a test because CASSANDRA-7499 has been fixed
    • Merge from 3.0.14
      • Add IT for forUpdate() API
      • Fixes #171 Refactor Options internally to use Optional everywhere
      • Fixes #172 Lowercase LWTLocalSerial() and LWTResultListener() for OptionsBuilder
        • DEPRECATE OptionsBuilder.LWTLocalSerial() API, use OptionsBuilder.lwtLocalSerial() instead
        • DEPRECATE OptionsBuilder.LWTResultListener() API, use OptionsBuilder.lwtResultListener() instead
      • Fixes #173 Support timestamp and LWT predicates for DELETE operations
      • Add ifExists() and refactor the LWT predicates.Introduce ifEqualCondition()
        • DEPRECATE OptionsBuilder.ifConditions() API, use OptionsBuilder.ifEqualCondition() instead
  • 3.1.0

    • Remove deprecated manager.getProxy() API
    • Replace Log4J by LogBack because of Cassandra 2.1.2
    • Migrate Guava to 16.0 because of Cassandra 2.1.2
    • Migrate Cassandra to 2.1.2

Branch 3.0.x

  • 3.0.22

    • Fixes #217 Cannot install achilles in OSGI environment due to duplicate package BREAKING CHANGE Move info.archinnov.achilles.json.CounterSerializer and info.archinnov.achilles.json.CounterDeSerializer to
      to info.archinnov.achilles.type.CounterSerializer and info.archinnov.achilles.type.CounterDeSerializer
  • 3.0.21

    • Fixes #219 Get the PagingState from the TypedQuery, NativeQuery
    • Fixes #217 Cannot install achilles in OSGI environment due to duplicate package BREAKING CHANGE Move info.archinnov.achilles.type.Options to info.archinnov.achilles.options.Options BREAKING CHANGE Move info.archinnov.achilles.type.OptionsBuilder to info.archinnov.achilles.options.OptionsBuilder
    • Fixes #216 Interceptors do not support Entity inheritance
  • 3.0.20

    • Upgrade java driver version to 2.1.6
    • Upgrade Cassandra to version 2.0.15
    • Fixes #212 Reflection does not find entities
  • 3.0.19

    • Fixes #211 Should not print bound values if ACHILLES_DML_STATEMENT log/DEBUG log on entity is not active
    • Fixes #208 Add 'close'/'shutdown' method for AsyncManager
    • Fixes #207 Null Pointer Exception for usecase: LWP +Embedded Id
    • PR #205 lazy creation of bound statements
  • 3.0.18

    • Upgrade to Cassandra 2.0.13
    • Fixes #196 unable to create indexes using CASE_SENSITIVE naming convention
    • PR #202 Print the Hex string of the 16 first bytes of blob when ACHILLES_DML_STATEMENT is enabled
      • Adds byte length info when buffer is longer than limit
      • Enables logging of the first 16 bytes of a blob when ACHILLES_DML_STATEMENT is enabled
    • PR #201 Upgrades Achilles to work with java-driver 2.1.5
      • Replaces fromNullable with Opetional.of for non nullable parameters
    • PR #200 Better thread pool lifecycle management
      • do not create default thread pool if there is a client-supplied one in config
      • shutdown the thread pool only if it is the default one
    • Fixes #197: makes embeddedcassandra configurable for the number of reads/writes threads
  • 3.0.17

    • Upgrade to Java driver version 2.1.4 and Cassandra version 2.0.12
    • Fixes #193 Load all counter values at once for clustered counters
    • Fixes #187 Support BATCH statements in script for ScriptExecutor
    • Fixes #185 Enhance ScriptExecutor to return ResultSet on execute() method
    • Fixes #188 Add @PreDestroy on shutDown() method of PersistenceManager and document it
    • Fixes #184 Update statements with LWT are re-prepared many times
    • Fixes #191 CqlColumn is not mapped to the java field
    • Merge pull request #190 from seblm/master to simplify execute batch
  • 3.0.16

    • Late clearing of dirty map for POST_UPDATE interceptors
    • Fixes #145 Allow bootstrap CQL script execution for AchillesTestResource and CassandraEmbeddedServer
    • Fixes #167 Remove the default TTL = 0 in prepared statements because some tables have default TTL value
    • Fixes #180 Expose a close() method on the PersistenceManagerFactory to close the internal thread pool properly
    • Add withEntityClasses(Class<?> ... entityClasses) for the AchillesResourceBuilder
    • Fixes #174 Add iterator() and iterator(int fetchSize) to the TypedQuery API
    • Deprecate @Id and @EmbeddedId annotations
      • DEPRECATE @Id annotation, use @PartitionKey instead
      • DEPRECATE @EmbeddedId annotation, use @CompoundPrimaryKey instead
  • 3.0.15

    • Migrate to Java Driver 2.1.3
    • Pull Request #177 Use proxy instead of entity when trigger a post_update interceptor
    • Fixes #176 Expose the Cluster object for the CassandraEmbeddedServer
    • Fixes #175 Deprecate @Order in favor of @PartitionKey and `@ClusteringColumn
      • DEPRECATE @Order annotation, use @PartitionKey and @ClusteringColumn instead
  • 3.0.14

    • Add IT for forUpdate() API
    • Fixes #171 Refactor Options internally to use Optional everywhere
    • Fixes #172 Lowercase LWTLocalSerial() and LWTResultListener() for OptionsBuilder
      • DEPRECATE OptionsBuilder.LWTLocalSerial() API, use OptionsBuilder.lwtLocalSerial() instead
      • DEPRECATE OptionsBuilder.LWTResultListener() API, use OptionsBuilder.lwtResultListener() instead
    • Fixes #173 Support timestamp and LWT predicates for DELETE operations
    • Add ifExists() and refactor the LWT predicates.Introduce ifEqualCondition()
      • DEPRECATE OptionsBuilder.ifConditions() API, use OptionsBuilder.ifEqualCondition() instead
  • 3.0.13

    • Fixes buggy implementation of manager.forUpdate()
  • 3.0.12

    • Fixes #85 How do you add/remove from set using proxied object
      • Add new manager.forUpdate() API. More details here at Direct Update Proxy
      • DEPRECATE manager.getProxy() API
    • Add 'forceTableCreation' system property override for embedded Cassandra
    • Fixes #165 Deactivate Bean Validation on fields which are not set on proxy
    • Pull Request #166 Fixing issue with Achilles counter as the counter table name is not returned in the entity metadata thus it will be created at each start up.
    • Fixes #164 Class level consistency not taken into account by slice query
    • Fixes #163 Add 'key' and 'value' attribute on @JSON annotation for collections & map support
  • 3.0.11

    • Migrate to Java Driver 2.1.2
    • Fixes #162 Log DML statements before executing the query
    • Fixes #160 Improve the thread pool usage by using MoreExecutors.sameThreadExecutor() for simple transformation
    • Fixes #159 Rename CQL3 to CQL internally
    • Fixes #161 Polish the Asynchronous API
    • Fixes #158 Rename all CAS in the API to LWT
      • RENAMING: CasCondition -> LWTCondition
      • RENAMING: CASResultListener -> LWTResultListener
      • RENAMING: CASResult -> LWTResult
      • RENAMING: CASResultListener.onCASSuccess() -> LWTResultListener.onSuccess()
      • RENAMING: CASResultListener.onCASError(...) -> LWTResultListener.onError(...)
      • RENAMING: OptionsBuilder.casResultListener(...) -> OptionsBuilder.lwtResultListener(...)
      • RENAMING: OptionsBuilder.casLocalSerial() -> OptionsBuilder.lwtLocalSerial()
    • Fixes #157 Add shutdown hook to the internal ExecutorService
    • Fixes #153 Allow inserting rows in clustered table with static columns without clustering columns
    • Fixes #149 Make JSON serialization more explicit with a new @JsonType annotation
    • Fixes #155 CassandraEmbeddedServer fails in maven multi-module project
    • Fixes #126 NativeQuery API should also accept Statement instead of only RegularStatement
    • Fixes #156 Allow @TypeTransformer on partition and clustering columns
  • 3.0.10

    • Fixes #152 Allow PersistenceManagerFactoryBuilder to pass in arbitrary parameter
    • Better defaults for the asynchronous Thread Pool
    • Add perf bench with SynchronousQueue and LBQ
    • Memory consumption improvement
  • 3.0.9

    • Add support for Asynchronous operations
  • 3.0.8

    • Upgrade to Java Driver 2.0.7 and Cassandra 2.0.11
    • Fixes #139 Avoid useless array objects creation for loggers at DEBUG/TRACE level
    • Fixes #144 FromClusterings/ToClusterings methods of SliceQuery API should take into account the clustering order
    • Merge #141 Make Achilles proxies not intercepting `finalize method
    • Fixes #138 Wrong regexp validation for SELECT * from table
    • RENAMING Renaming Event enum and rename remove/removeById to delete/deleteById
    • Add new config options for JUnit Achilles Resource
  • 3.0.7

    • Upgrade to Java Driver 2.0.6 and Cassandra 2.0.10
    • Fixes #95 Type transformer
    • Fixes #136 Achilles is consuming too many resources
    • Fixes #42 Add a naming strategy to @Table
    • Fixes #111 Reoganize Maven dependencies
    • Fixes #127 NativeQuery should expose Iterator&th;TypedMap>
    • Fixes #112 Use Set instead of List for lifecycle interceptors to avoid duplicate
    • Fixes #129 Switch to commons-lang3
    • Fixes #128 Support multi keyspaces
    • Fixes #133 Achilles fails with NPE in case of difference between the actual column families and the achilles mappings
    • Fixes #125 BatchedNativeQuery error with multiple statements in batch
  • 3.0.6

    • Upgrade to Java Driver 2.0.4
    • RENAMING Rename AchillesCASException to AchillesLightweightTransactionException
    • Fixes #110 Fix JSON serialization/deserialization of Counter
    • Fixes #122 Support name & ordinal encoding for Enums
    • Fixes #108 : Slice query partition components and clustering keys should be encoded properly
    • Fixes #113 Apply Tell, Don't Ask to meta data
    • Pull request #121 Fixes #119 Validation of PartitionComponents fails for simple types
    • Pull request #117 Added enableSchemaUpdate and enableSchemaUpdateForTables to PersistenceManagerFactoryBean
    • Pull request #116 NPE when entity not managed for slice query
    • Pull request #115 fixes #114 where batch native queries did not accept DELETE statements
  • 3.0.5:

    • Fixes #103 Refactor PersistenceManager & Batch hierarchy design
    • Fixes #87 @Index validation failing deploy
    • Fixes #107 DML statement not logs when dynamic logging is activated for an entity
    • Fixes #96 Use user comment as comment on table when generating DDL
    • Fixes #99 Stop using Objenesis for object instantiation
    • Fixes #84 Enhance native query to be added to batch manager
    • Fixes #106 CAS Result not decoding properly collection and map types
    • Fixes #100 Apply @EmptyCollectionIfNull to lazy loaded collections/map too
    • Fixes #91 Accept RegularStatement object instead of String type for native query & typed query API
    • Fixes #102 Make it possible to create Batch directly from PersistenceManager
    • RENAMING Fixes #105 Rename persist() to insert()
    • RENAMING Fixes #101 Normalize naming for jsonSerialize() and deserializeJson()
    • Fixes #86 PersistenceManager.typedQuery force lower case
    • Fixes #90 Add new insertOrUpdate() method
    • Fixes #97 SliceQuery.iterator(fetchSize) doesn't seem to work
    • Fixes #98 NPE on proxy when invoking super
    • RENAMING Fixes #104 Rename parameters OBJECT_MAPPER to JACKSON_MAPPER
    • Fixes #78 Improve JavaDoc
    • Fixes #73 TimeUUID is handled incorrectly in SliceQuery
    • Fixes #46 Remove limitation on slice query with several clustering columns
    • Fixes #79 Refactor the Slice Query API
  • 3.0.4:

    • Fixes #75 Add support for static columns
    • Fixes #88 Add SchemaBuilder
    • Fixes #77 Add support for Serial consistency level for CAS operations
    • Fixes #81 Rename BatchingPersistentManager to Batch
    • Fixes #76 Enable 2 batchingPersistenceManager types: Ordered and UnOrdered
    • Fixes #83 Per table consistency level not used
    • Fixes #54 Support for OSGI
    • Fixes #82 Data lossless automatic schema modification
    • Fixes #66 Trace query time from achilles pov
    • Upgrade to Cassandra 2.0.8
    • Fixes #63: Cannot find matching property meta for the type class java.nio.HeapByteBuffer
    • Fixes #72 Use enum for Configuration parameters instead of plain text
    • Fixes #74 Cluster should be injected into Achilles, not built by Achilles
    • Fixes #69 Make insert strategy overridable on an entity
    • Fixes #68 Add support for LOCAL_ONE consistency level
    • Fixes #71 Migrates to Jackson 2.3.3
  • 3.0.3:

    • Upgrade to Cassandra 2.0.7 and Java Driver 2.0.2
    • Disable the batch statement ordering by default
    • Change default PreparedStatement Cache LRU size from 5000 to 10 000
    • Fixes #64 NPE in typedQuery select.getValues()
    • Fixes #61. Refactor implementation of insert with Insert strategies
    • Fixes #53 Add support for @EmptyCollectionIfNull
    • Rename TypedQueryBuilder/NativeQueryBuilder to TypedQuery/NativeQuery
    • Fixes #43 Implement CAS using Options
    • Fixes #40 Add helper method to serialize Entity into Json
    • Fixes #59 @Index on Enum field throws AchillesBeanMappingException
    • Fixes #57 Support inheritance for @EmbeddedId classes
    • Fixes #58 Support list of entities classes
    • Fixes #56 Test failed: EntityMetaTest.should_tostring
    • Fixes #55 Cannot find PersistenceManagerFactory for keyspace 'achilles_test' in test
  • 3.0.2:

    • Add FORCE_BATCH_STATEMENTS_ORDERING parameter to allow overriding the default behavior
    • Upgrade to Cassandra 2.0.6 and Java Driver 2.0.1
    • Fixes #51 Warm up proxies creation on startup
    • Fixes #49 Expose configuration for Max Prepared statement cache size
    • Fixes #52 Fix makeFieldAccessible for multi-threaded execution
    • Fixes #45 Rework on collection & map dirty check to update only added/removed/modified element
    • Improve batch log messages
    • Take into account the settings for cluster name, compression and policies
    • Migrate to Guava 15.0
  • 3.0.1:

    • Add support for Bean Validation (JSR-303)
    • Fix bug on supported Java types. Add support for byte, Byte and byte[]
    • Add TypedMap for user-friendlier native query usage
    • Fix bug on Counter serialization
  • 3.0.0 MAJOR BREAKING CHANGES:

    • Redesign Counter implementation
    • Remove lazy loading feature
    • Rework on persist() and update() API
    • Rename merge() to update(), getReference() to getProxy(), unwrap() to removeProxy() and initAndUnwrap() to initAndRemoveProxy()
    • Add dependency to Objenesis to instanciate entities without requiring default constructor to remove constraint on the mandatory default constructor for entities
    • Add lifecycle interceptors
    • Add support for CQL paging feature with slice query iterators
    • Add support for parameterized query to typed, raw typed and native queries
    • Migrate to Cassandra 2.0.3 and Java Driver 2.0.0-rc2
    • Migrate to Java 7
    • Improve CassandraEmbeddedServerBuilder to bootstrap embedded Cassandra 2.0 server
    • Add "keyspace" parameter to AchillesResourceBuilder
    • Rename "achilles.ddl.force.column.family.creation" parameter to "achilles.ddl.force.table.creation"
    • Remove all CQL prefix from classes since there is only one implementation now
    • Split code into several Maven modules
    • Remove Thrift implementation
  • 2.0.9:

    • Add reversed attribute to @Order annotation
    • Fix missing validation for find() & getReference() when entity class is not managed by Achilles
    • Rework on CQL embedded server and introduce CQLEmbeddedServerBuilder
    • Fix bug when @Column and @Id annotations are put on the same field
    • Fixes #36 Schema validation fails with Cassandra 2.0.x
    • Migrates to Cassandra Driver Core 1.0.4
    • Fixes bug when 'achilles.keyspace.name' parameter not provided when bootstrapping with a Cluster and Session objects
    • Introduce achilles-test module to make Maven dependencies cleaner
    • Add simple support for secondary index
    • Create new achilles-documentation project to package full documentation (HTML and PDF formats) along with each release
  • 2.0.8:

    • Provide an HTML client (AngularJS) for the Twitter Demo
    • Fixes #34 When it is impossible to call a setter on an entity, Achilles should report a better error
    • BREAKING CHANGE stop importing JPA jar. The number of annotations used (5) does not worth pulling JPA dependencies
    • Add custom Jackson serializer & deserializer on Counter interface to fix issue during serialization when CounterImpl is present
    • Rework on ResourceBuilder for JUnit
  • 2.0.7:

    • BREAKING CHANGE Rename all xxEntityManagerxx to xxPersistenceManagerxx
    • Fixes #30 Create partition row key
    • BREAKING CHANGE Remove join feature. Is usage is not relevant enough in real use-cases
    • Fixes #29 [All] Separate Achilles annotations and custom types in a dedicated achilles-model Maven module
    • Allow injection of CQL cluster and session object into CQLEntityManagerFactory
    • Fixes #27 [CQL] Cannot map compound primary key from CQL resulset back to entity for typed queries
    • Fixes #25 [CQL] Introduce new @TimeUUID annotation to translate into timeuuid in Cassandra enhancement
    • Fix #26 Lift the constraint on mandatory "entityPackages" parameters and mandatory entity class to bootstrap Achilles in CQL
    • Fixes #13 Redesign collections & map impl to match the one used in CQL
    • Add Eclipse cleanUp, codeTemplates and formatter for contributors
  • 2.0.6:

    • Add cleaning of embedded Cassandra data files before launching the server in JUnit rule
    • Upgrade to Hector 1.1-4 for Achilles Thrift
  • 2.0.5:

    • Minor refactor for embedded Cassandra server and test resources
    • Display bound values in DML debug messages for bound statements
    • Introduce Options to simplify setting of TTL and Timestamp
    • Force initialization of counter type when calling initialize()
    • Bug with bi-directional relation with a cascade persist/merge and 'achilles.consistency.join.check' option set to true
  • 2.0.4:

    • Migrate to Cassandra 1.2.8
    • Fix NPE when no join entity in collection/map for CQL
    • Remove Cassandra Unit library to avoid dependency on Hector for CQL version
    • Add Cassandra Embedded server. Add JUnit rule to bootstrap Cassandra embedded server and Achilles together
  • 2.0.3:

    • Fix buggy implementation of FactoryBean for Spring integration
    • Fix bug in decoding enums for Slice Queries
  • 2.0.2:

    • Internal refactoring of PropertyMeta
    • Support for value-less entities
    • Remove @CompoundKey annotation, un-used
  • 2.0.1:

    • Add Spring Integration for CQL
    • Add new parameters for CQLEntityManagerFactory
    • Enhance SliceQueryBuilder API
    • Fix bug on Thrift clustered entity validation
    • Fix small bug on CQL RawTyped queries
  • 2.0.0:

    • Official support for CQL. See docs for more details
    • Remove custom Pair type, use the one provided by Cassandra
    • Fixes bug during entities parsing when List/Set/Map have parameterized typse
    • Add removeById() to EntityManager to avoid read-before-write pattern
    • BREAKING CHANGE, removal of WideMap<K,V> structure because its use cases are not consistent
    • Add DML logs to display CQL statements at runtime
    • Serialize enum types using name()
    • BREAKING CHANGE, removal of @WideRow annotation, replaced by clustered entities and slice queries for getting data (see doc for more details) .
  • 1.8.2:

    • Support immutability for @CompoundKey classes (Issue #5). See https://github.com/doanduyhai/Achilles/issues/5#issuecomment-19882998 for more details on new syntax
    • BREAKING CHANGE, for @CompoundKey, enum types are serialized as String instead of Object (Issue #8)
    • BREAKING CHANGE, replace @Key(order=1) by @Order(1) annotation (Issue #6)
    • Throw Exception instead of having NPE when keyspace is not created in Cassandra (Issue #10)
    • BREAKING CHANGE, replace MultiKeyinterface by @CompoundKey annotation (Issue #15)
    • It is no longer required to implements Serializableon all entities (Issue #11)
    • Enforce consistency im ThriftImpl on persist() by removing all row data first (Issue #14 & Issue #7)
    • Add timestamp meta data to KeyValye<K,V> type (Issue #9)
    • Add initAndUnwrap() shortcut to EntityManager (Issue #2)
    • Fix bug on dirty check on join collection/map
  • 1.8.1:

    • Add TTL to persist and merge operations
    • Rework of runtime consistency level
    • Fix small bug in the Column Family comment for wide rows
    • BREAKING CHANGES simplify PropertyType byte flag for Thrift persistence layer. Need data migration
    • Rename 'unproxy' to 'unwrap'
    • Fix bug with cyclic join entities during merge and persist operations
    • Fix buggy property removal after merging
    • Ignore un-mapped properties instead of raising exception
    • Renamming in core package
    • Upgrade to Cassandra 1.2.4
  • 1.8.0:

    • Use the org.reflections.reflections package for entity parsing
    • Split the project into 3 modules: core, thrift and cql
  • 1.7.3:

    • Rework of em.getReference() to avoid hitting the database
    • Refactor generics
    • Migrate to JPA 2
  • 1.7.2:

    • Add commons-collections 3.2.1 to compile dependency
    • Enhance error message for entity mapping
    • Fix bug about default consistency level hard-coded to QUORUM for WideMap and Counters
    • Add firstFirstMatching() and findLastMatching() to the WideMap API
    • Fix bug. Do not load join entity if no join primary keys
  • 1.7.1: fix bug because key validation class & comparator type has changed from Cassandra 1.1 to 1.

  • 1.7: stable release

Home

Clone this wiki locally