All Versions
29
Latest Version
Avg Release Cycle
63 days
Latest Release
2512 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v0.18.0 Changes
- โ
2016.12.06 - Prevent emblem leakage of
TestDataGenerator
andCustomGeneratorPool
by wrapping them in longevity classes. Slightly simplified the API for adding a custom test data generators. - 2016.12.06 - Add
LongevityContext
constructors andapply
methods that take either aLongevityConfig
or a Typesafe config. - ๐ฆ 2016.12.06 - Add annotation macro
@subdomain
in packagelongevity.subdomain.annotations
. - 2016.12.06 - Add
Subdomain
constructor andapply
method that collect all thePTypes
andCTypes
by package scanning. - 2016.11.30 - Add annotation macros
@component
,@derivedComponent
,@derivedPersistent
,@keyVal
,@mprops
,@persistent
,@polyComponent
, and@polyPersistent
in packagelongevity.subdomain.annotations
. - ๐ 2016.11.30 - Remove scanning of
PType
inner objectskeys
andindexes
to look for keys and indexes. Users must now definePType.keySet
, and overridePType.indexSet
, to declare keys and indexes. We made this change since the object scanning was superfluous, and complicates the API. (In contrast, scanning for properties is useful, as users need to be able to call properties by name. However, users never really need to call keys and indexes by name, so there is no advantage to naming them in an inner object.) - 2016.11.23 - Add method
PType.emptyKeySet
. - 2016.11.23 - Make
PType.partitionKey
methods returnKey[P]
instead ofPartitionKey[P]
. this is for convenience of Scala 2.11 users, so they dont have to declare the full type of their keySet. - ๐ 2016.11.22 - Remove second type parameter from
longevity.subdomain.Key
andlongevity.subdomain.PartitionKey
. Remove typeslongevity.subdomain.AnyKey
andlongevity.subdomain.AnyPartitionKey
, as they no longer serve any purpose.
- โ
2016.12.06 - Prevent emblem leakage of
-
v0.17.0 Changes
- ๐ 2016.11.13 - Remove second type parameter from
longevity.subdomain.KeyVal
. - 2016.11.12 - Rename
longevity.subdomain.EType
(for "embeddable type") tolongevity.subdomain.CType
(for "component type"). - ๐ 2016.11.12 - Remove traits
longevity.subdomain.Embeddable
andlongevity.subdomain.Persistent
. Users no longer need to extend their subdomain classes with these empty marker traits. - 2016.11.12 - Change
RepoCrudSpec
from aFeatureSpec
to aFlatSpec
. Users usingLongevityContext.repoCrudSpec
will notice significantly less verbose test output.
- ๐ 2016.11.13 - Remove second type parameter from
-
v0.16.0 Changes
- 2016.11.09 - Uniformly convert
DateTime
to UTC time zone. This seems like the best approach right now, as both Cassandra and MongoDB back ends support timestamps without time zone information. It also resolves issues with sorting dates. - ๐ 2016.11.09 - Implement partition keys. Please see the user manual for details.
- 2016.10.27 - Replace Casbah with Java driver in MongoDB back end. We are now using the vanilla Java driver for Mongo. This change should not affect users.
- 2016.10.27 - Fix MongoDB URIs so they work in a sharded environment.
- 2016.10.27 - Disallow keys and indexes that duplicate the properties of other keys or indexes. This may cause existing code to break. Fix is to root out the duplicates. If you have a key and an index that duplicate each other, you can safely remove the index, as it is redundant with the key.
- 2016.11.09 - Uniformly convert
-
v0.15.0 Changes
- ๐ 2016.10.08 - Remove
KeyVal.key
and changeKeyVal
from an abstract class into a trait. To migrate existing code, you will need to remove theKey
argument supplied to each of yourKeyVal
types. - 2016.10.12 - Queries have been extended with "order-by", "offset", and "limit" clauses. The query DSL has likewise been extended.
- ๐ 2016.10.12 - Many of the classes used to build queries have been
re-organized into new package
longevity.subdomain.query
. This should not affect you if you are only using the query DSL.
Please refer to the user manual โ for the latest on the query API.
- ๐ 2016.10.08 - Remove
-
v0.14.0 Changes
- 2016.10.04 - Rename
DerivedType
toDerivedEType
. RenamePolyType
toPolyEType
. - ๐ 2016.10.04 - Move
CoreDomain
,GenericSubdomain
, andSupportingSubdomain
from packagelongevity.subdomain
tolongevity.ddd.subdomain
. - ๐ 2016.10.04 - Move
Entity
,EntityType
,ValueObject
, andValueType
from packagelongevity.subdomain.embeddable
tolongevity.ddd.subdomain
. - ๐ฆ 2016.10.04 - Move
Event
,Root
, andViewItem
from packagelongevity.subdomain.persistent
to packagelongevity.ddd.subdomain
. - ๐ฆ 2016.10.04 - Move
EventType
,RootType
, andView
from packagelongevity.subdomain.ptype
to packagelongevity.ddd.subdomain
. - ๐ 2016.10.04 - Move
DerivedEType
,EType
,ETypePool
,Embeddable
, andPolyEType
from packagelongevity.subdomain.embeddable
tolongevity.subdomain
. - ๐ฆ 2016.10.04 - Move
Persistent
from packagelongevity.subdomain.persistent
tolongevity.subdomain
. - ๐ 2016.10.04 - Move
DerivedPType
,PType
,PTypePool
, andPolyPType
from packagelongevity.subdomain.ptype
tolongevity.subdomain
. - ๐ฆ 2016.10.04 - Move package
longevity.ddd.subdomain
into a separate project calledlongevity-ddd
. If you want to continue using the wrapper classes found there, please add the following dependency to your project:libraryDependencies += "org.longevityframework" %% "longevity-ddd" % "x.y.z"
.
- 2016.10.04 - Rename
-
v0.13.1 Changes
There was a bug in our use of Scala reflection. In brief, we were using the class loader (i.e., scala reflection
Mirror
) that was used to load the longevity library. This is bogus, as we are reflecting against user classes! We changed things to reflect on the mirror of theTypeTags
(they get wrapped inTypeKeys
) that the user library provides to use.End result is that projects that do funky things with class loaders will not get reflection exceptions when using longevity.
-
v0.13.0 Changes
Some odds and ends that have been accumulating in the backlog.
- ๐ 2016.09.22 - Rename
PersistenceStrategy
toBackEnd
. MoveBackEnd
from being a separate argument toLongevityContext
creator methods, to being part of the config, under config propertylongevity.backEnd
. - 2016.09.19 - Add
OPState
to go along withFPState
andFOPState
. - 2016.09.19 - Add JSON marshallers at
LongevityContext.jsonMarshaller
andLongevityContext.jsonUnmarshaller
.
- ๐ 2016.09.22 - Rename
-
v0.12.0 Changes
Some odds and ends that have been accumulating in the backlog.
- ๐ 2016.09.15 - Remove
PState.dirty
. We are taking this out because there we may decide to stop keeping track of the original version of the persistent object, in order to reduce memory usage. - ๐ง 2016.09.14 - Add
RepoPool.createSchema()
and configuration flagautogenerateSchema
. - ๐ฒ 2016.09.13 - Add logging for all
Repo
methods and database calls. - 2016.09.13 - Add API method
RepoPool.closeConnection()
. This was added because leaving the Cassandra session open can cause user programs to fail to terminate under certain circumstances, If your main program is hanging when using Cassandra, please call this method at the end of your program.
- ๐ 2016.09.15 - Remove
-
v0.11.0 Changes
- 2016.08.29 - Add factory methods for
EType
and all its descendents. The older pattern of making embeddable companion objects intoETypes
(e.g.,case class Email extends EType[Email]
) still works, but now you can just mention theEType
directly, when building your subdomain. (E.g.,Subdomain(???, ???, ETypePool(EType[Email]))
). - 2016.08.28 - Get rid of
DerivedType.polyType
andDerivedPType.polyPType
.DerivedType
andDerivedPType
are now abstract classes instead of traits, so users may need to reorder their inheritancewith
clauses. (It's highly unlikely a user would have been be using these traits to extend a class.)
- 2016.08.29 - Add factory methods for
-
v0.10.0 Changes
- ๐ 2016.08.25 - Fix JSON translation of DateTimes to use time zone codes instead of offsets. Fix JSON parser to respect the time zone in the string representation of the DateTime.
- 2016.08.24 - Add optimistic locking. To turn it on, you will need to
set
longevity.optimisticLocking = true
in your typesafe config. - โ
2016.08.23 - Add
LongevityContext.testDataGenerator
. - ๐ 2016.08.17 - Add support for
Persistents
andEmbeddables
that are case objects. - 2016.07.29 - Add
LongevityConfig
for well-typed configuration. Users can useLongevityConfig
instead of a Typesafe Config to configure their context. Just use theLongevityContext
constructor instead of theLongevityContext.apply
factor method. - 2016.07.29 - Make
PType.indexes
optional. You used to have to declare an emptyindexes
singleton object within yourPType
if you had no indexes. Now, you can just leave it out. This should have no effect on existing code, but you can go back and remove emptyindexes
objects if you want. - 2016.07.22 - Make Akka
Streams an optional
dependency. If you are using
Repo.streamByQuery
, you must now declare a dependency on Akka Streams yourself:libraryDependencies += "com.typesafe.akka" %% "akka-stream" % "2.4.9"
.