Stats printing
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -3,6 +3,7 @@ build/
|
|||||||
!gradle/wrapper/gradle-wrapper.jar
|
!gradle/wrapper/gradle-wrapper.jar
|
||||||
!**/src/main/**/build/
|
!**/src/main/**/build/
|
||||||
!**/src/test/**/build/
|
!**/src/test/**/build/
|
||||||
|
gradle.properties
|
||||||
|
|
||||||
### IntelliJ IDEA ###
|
### IntelliJ IDEA ###
|
||||||
.idea/modules.xml
|
.idea/modules.xml
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
kotlin.code.style=official
|
|
||||||
@@ -29,7 +29,9 @@ class Persistent(
|
|||||||
try {
|
try {
|
||||||
block(transactions.get())
|
block(transactions.get())
|
||||||
|
|
||||||
transactions.get().commit()
|
if (cleanup) {
|
||||||
|
transactions.get().commit()
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (cleanup) {
|
if (cleanup) {
|
||||||
transactions.remove()
|
transactions.remove()
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ class Reference<S : Persistable, H : Persistable>(
|
|||||||
|
|
||||||
operator fun setValue(thisRef: H, property: KProperty<*>, value: S) {
|
operator fun setValue(thisRef: H, property: KProperty<*>, value: S) {
|
||||||
id = value.id
|
id = value.id
|
||||||
|
// todo: only store if not already stored?
|
||||||
currentTransaction()?.store(value)
|
currentTransaction()?.store(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class ListReference<S : Persistable, H : Persistable>(
|
class ListReference<S : Persistable, H : Persistable>(
|
||||||
|
|||||||
@@ -12,6 +12,22 @@ class TransactionLog(
|
|||||||
fileManager.findLastSnapshot().let { (after, snapshot) ->
|
fileManager.findLastSnapshot().let { (after, snapshot) ->
|
||||||
println("Last snapshot: $snapshot")
|
println("Last snapshot: $snapshot")
|
||||||
|
|
||||||
|
println("Snapshot:")
|
||||||
|
snapshot?.inputStream()?.use { input ->
|
||||||
|
ObjectInputStream(input).use { ois ->
|
||||||
|
val versionNumber = ois.readInt()
|
||||||
|
check(versionNumber == 1) { "Unsupported version number: $versionNumber" }
|
||||||
|
val transactionNumber = ois.readLong()
|
||||||
|
println("[$versionNumber] $transactionNumber")
|
||||||
|
val data = ois.readObject() as MutableMap<Class<*>, TypeData>
|
||||||
|
println("Data:")
|
||||||
|
println("\tClasses:")
|
||||||
|
for ((cls, entries) in data.entries) {
|
||||||
|
println("\t\t- $cls: ${entries.data.keys.size}")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val transactions = fileManager.findTransactionsAfter(after ?: 0L)
|
val transactions = fileManager.findTransactionsAfter(after ?: 0L)
|
||||||
|
|
||||||
println("Transactions:")
|
println("Transactions:")
|
||||||
@@ -22,7 +38,10 @@ class TransactionLog(
|
|||||||
check(versionNumber == 1) { "Unsupported version number: $versionNumber" }
|
check(versionNumber == 1) { "Unsupported version number: $versionNumber" }
|
||||||
val transactionNumber = ois.readLong()
|
val transactionNumber = ois.readLong()
|
||||||
val actions = ois.readObject() as Set<Action>
|
val actions = ois.readObject() as Set<Action>
|
||||||
println("[$versionNumber] $transactionNumber - ${actions.joinToString(",")}")
|
println("\t[$transactionNumber]")
|
||||||
|
for (action in actions) {
|
||||||
|
println("\t\t- $action")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package nl.astraeus.persistence
|
|||||||
import nl.astraeus.nl.astraeus.persistence.Persistable
|
import nl.astraeus.nl.astraeus.persistence.Persistable
|
||||||
import nl.astraeus.nl.astraeus.persistence.Persistent
|
import nl.astraeus.nl.astraeus.persistence.Persistent
|
||||||
import nl.astraeus.nl.astraeus.persistence.Reference
|
import nl.astraeus.nl.astraeus.persistence.Reference
|
||||||
|
import nl.astraeus.nl.astraeus.persistence.TransactionLog
|
||||||
import nl.astraeus.nl.astraeus.persistence.find
|
import nl.astraeus.nl.astraeus.persistence.find
|
||||||
import nl.astraeus.nl.astraeus.persistence.findByIndex
|
import nl.astraeus.nl.astraeus.persistence.findByIndex
|
||||||
import nl.astraeus.nl.astraeus.persistence.index
|
import nl.astraeus.nl.astraeus.persistence.index
|
||||||
@@ -23,6 +24,10 @@ class TestPersistence {
|
|||||||
companion object {
|
companion object {
|
||||||
private const val serialVersionUID: Long = 1L
|
private const val serialVersionUID: Long = 1L
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "Company(id=$id, version=$version, name='$name')"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Person(
|
class Person(
|
||||||
@@ -36,6 +41,17 @@ class TestPersistence {
|
|||||||
companion object {
|
companion object {
|
||||||
private const val serialVersionUID: Long = 1L
|
private const val serialVersionUID: Long = 1L
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "Person(id=$id, version=$version, name='$name', age=$age)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun showTransactions() {
|
||||||
|
val log = TransactionLog(File("data", "test-persistence"))
|
||||||
|
|
||||||
|
log.showTransactions()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -153,7 +169,7 @@ class TestPersistence {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pst.snapshot()
|
//pst.snapshot()
|
||||||
|
|
||||||
pst.transaction {
|
pst.transaction {
|
||||||
store(
|
store(
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package nl.astraeus.persistence
|
|||||||
import nl.astraeus.nl.astraeus.persistence.Persistable
|
import nl.astraeus.nl.astraeus.persistence.Persistable
|
||||||
import nl.astraeus.nl.astraeus.persistence.Persistent
|
import nl.astraeus.nl.astraeus.persistence.Persistent
|
||||||
import nl.astraeus.nl.astraeus.persistence.Reference
|
import nl.astraeus.nl.astraeus.persistence.Reference
|
||||||
|
import nl.astraeus.nl.astraeus.persistence.TransactionLog
|
||||||
import nl.astraeus.nl.astraeus.persistence.count
|
import nl.astraeus.nl.astraeus.persistence.count
|
||||||
import nl.astraeus.nl.astraeus.persistence.index
|
import nl.astraeus.nl.astraeus.persistence.index
|
||||||
import nl.astraeus.nl.astraeus.persistence.searchIndex
|
import nl.astraeus.nl.astraeus.persistence.searchIndex
|
||||||
@@ -23,6 +24,11 @@ class TestThreaded {
|
|||||||
companion object {
|
companion object {
|
||||||
private const val serialVersionUID: Long = 1L
|
private const val serialVersionUID: Long = 1L
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "Company(id=$id, version=$version, name='$name', adres='$adres')"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class Person(
|
class Person(
|
||||||
@@ -36,6 +42,17 @@ class TestThreaded {
|
|||||||
companion object {
|
companion object {
|
||||||
private const val serialVersionUID: Long = 1L
|
private const val serialVersionUID: Long = 1L
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "Person(id=$id, version=$version, name='$name', age=$age)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun showTransactions() {
|
||||||
|
val log = TransactionLog(File("data", "test-threaded"))
|
||||||
|
|
||||||
|
log.showTransactions()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -122,7 +139,7 @@ class TestThreaded {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pst.snapshot()
|
//pst.snapshot()
|
||||||
pst.datastore.printStatus()
|
pst.datastore.printStatus()
|
||||||
pst.removeOldFiles()
|
pst.removeOldFiles()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user