You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by jo...@apache.org on 2021/10/22 16:00:58 UTC
[isis] branch master updated (d1bf3be -> bc28a29)
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.
from d1bf3be Merge remote-tracking branch 'origin/master'
new 59ec70a ISIS-2348 EventStore refactored from object (Singleton) to class
new 2c8fe0b ISIS-2348 replay timing improved
new bc28a29 ISIS-2348 set cursor shape to indicate system activity
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../org/apache/isis/client/kroviz/core/Session.kt | 2 +
.../kroviz/core/aggregator/ErrorDispatcher.kt | 4 +-
.../isis/client/kroviz/core/event/EventStore.kt | 2 +-
.../isis/client/kroviz/core/event/LogEntry.kt | 5 +
.../isis/client/kroviz/core/event/ReplayCommand.kt | 16 +--
.../isis/client/kroviz/core/event/ResourceProxy.kt | 12 +-
.../client/kroviz/core/event/RoXmlHttpRequest.kt | 12 +-
.../isis/client/kroviz/core/model/ObjectDM.kt | 48 +++----
.../isis/client/kroviz/ui/core/MenuFactory.kt | 2 +-
.../apache/isis/client/kroviz/ui/core/RoIconBar.kt | 2 +-
.../apache/isis/client/kroviz/ui/core/RoMenuBar.kt | 2 +-
.../apache/isis/client/kroviz/ui/core/UiManager.kt | 29 ++++-
.../client/kroviz/ui/diagram/LinkTreeDiagram.kt | 2 +-
.../isis/client/kroviz/ui/dialog/DiagramDialog.kt | 2 +-
.../client/kroviz/ui/dialog/EventExportDialog.kt | 7 +-
.../isis/client/kroviz/ui/dialog/EventLogDetail.kt | 3 +-
.../client/kroviz/ui/panel/DynamicMenuBuilder.kt | 2 +-
.../apache/isis/client/kroviz/IntegrationTest.kt | 5 +-
.../core/aggregator/CollectionAggregatorTest.kt | 9 +-
.../client/kroviz/core/event/EventStoreTest.kt | 140 +++++++++++----------
.../org/apache/isis/client/kroviz/to/ActionTest.kt | 7 +-
.../isis/client/kroviz/to/ResultValueTest.kt | 3 +-
.../client/kroviz/ui/table/LinkTreeDiagramTest.kt | 24 ++--
23 files changed, 196 insertions(+), 144 deletions(-)
[isis] 02/03: ISIS-2348 replay timing improved
Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 2c8fe0b73e0af255fda1e72407f94ae0c6c33ad2
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri Oct 22 16:25:43 2021 +0200
ISIS-2348 replay timing improved
---
.../org/apache/isis/client/kroviz/core/event/ReplayCommand.kt | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt
index 4aa7604..5a5cb36 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt
@@ -47,10 +47,10 @@ class ReplayCommand {
var previous: LogEntry? = null
userActions.forEach {
if (it.isUserAction() && previous != null) {
+ val ms = calculateDelay(previous!!, it) // needs to be outside of launch{} - or current=previous
+ val obj = it.obj as TObject
AppScope.launch {
- val ms = calculateDelay(previous!!, it)
delay(ms) // non-blocking delay
- val obj = it.obj as TObject
ResourceProxy().load(obj)
}
} else {
@@ -62,9 +62,9 @@ class ReplayCommand {
}
private fun calculateDelay(previous: LogEntry, current: LogEntry): Long {
- val currentMillis = current.createdAt.getTime().toLong()
- val previousMillis = previous.createdAt.getTime().toLong()
- return currentMillis - previousMillis
+ val currentMs = current.createdAt.getTime()
+ val previousMs = previous.createdAt.getTime()
+ return currentMs.minus(previousMs).toLong()
}
private fun filterReplayEvents(events: List<LogEntry>): List<LogEntry> {
[isis] 03/03: ISIS-2348 set cursor shape to indicate system activity
Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit bc28a29d4cd1afc341f1895a76cd300af32b6ffd
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri Oct 22 17:59:56 2021 +0200
ISIS-2348 set cursor shape to indicate system activity
---
.../apache/isis/client/kroviz/core/event/LogEntry.kt | 5 +++++
.../isis/client/kroviz/core/event/ResourceProxy.kt | 5 ++---
.../apache/isis/client/kroviz/ui/core/UiManager.kt | 19 +++++++++++++++++++
3 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt
index 09e57ac..0aca7f4 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt
@@ -22,12 +22,14 @@ import io.kvision.html.ButtonStyle
import io.kvision.panel.SimplePanel
import kotlinx.serialization.Contextual
import kotlinx.serialization.Serializable
+import org.apache.isis.client.kroviz.core.aggregator.ActionDispatcher
import org.apache.isis.client.kroviz.core.aggregator.BaseAggregator
import org.apache.isis.client.kroviz.to.HasLinks
import org.apache.isis.client.kroviz.to.Link
import org.apache.isis.client.kroviz.to.Relation
import org.apache.isis.client.kroviz.to.TransferObject
import org.apache.isis.client.kroviz.ui.core.Constants
+import org.apache.isis.client.kroviz.ui.core.UiManager
import org.w3c.files.Blob
import kotlin.js.Date
@@ -232,6 +234,9 @@ data class LogEntry(
}
fun addAggregator(aggregator: BaseAggregator) {
+ if (aggregator is ActionDispatcher) {
+ UiManager.setBusyCursor()
+ }
aggregators.add(aggregator)
nOfAggregators = aggregators.size
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt
index aeb5f2d..0ef46f7 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt
@@ -46,12 +46,11 @@ class ResourceProxy {
fun load(tObject: TObject) {
val aggregator = ObjectAggregator(tObject.title)
// ASSUMPTION: there can be max one LogEntry for an Object
- val es = UiManager.getEventStore()
- val le = es.findBy(tObject)
+ val le = UiManager.getEventStore().findBy(tObject)
if (le != null) {
le.addAggregator(aggregator)
aggregator.update(le, le.subType)
- es.addUserAction(aggregator, tObject)
+ UiManager.performUserAction(aggregator, tObject)
}
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt
index d6f9ac7..395c603 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt
@@ -22,6 +22,7 @@ import io.kvision.core.Widget
import io.kvision.dropdown.ContextMenu
import io.kvision.panel.SimplePanel
import io.kvision.utils.ESC_KEY
+import kotlinx.browser.document
import kotlinx.browser.window
import org.apache.isis.client.kroviz.App
import org.apache.isis.client.kroviz.core.Session
@@ -32,6 +33,7 @@ import org.apache.isis.client.kroviz.core.event.EventStore
import org.apache.isis.client.kroviz.core.event.LogEntry
import org.apache.isis.client.kroviz.core.model.CollectionDM
import org.apache.isis.client.kroviz.core.model.ObjectDM
+import org.apache.isis.client.kroviz.to.TObject
import org.apache.isis.client.kroviz.to.ValueType
import org.apache.isis.client.kroviz.to.mb.Menubars
import org.apache.isis.client.kroviz.ui.kv.override.RoTab
@@ -138,6 +140,7 @@ object UiManager {
fun amendMenu(menuBars: Menubars) {
getRoApp().roMenuBar.amendMenu(menuBars)
+ setNormalCursor()
}
fun updateStatus(entry: LogEntry) {
@@ -148,12 +151,21 @@ object UiManager {
getRoStatusBar().updateUser(user)
}
+ fun setBusyCursor() {
+ document.body?.style?.cursor = "progress"
+ }
+
+ fun setNormalCursor() {
+ document.body?.style?.cursor = "default"
+ }
+
fun openCollectionView(aggregator: BaseAggregator) {
val displayable = aggregator.dpm
val title: String = StringUtils.extractTitle(displayable.title)
val panel = RoTable(displayable as CollectionDM)
add(title, panel, aggregator)
displayable.isRendered = true
+ setNormalCursor()
}
fun openObjectView(aggregator: ObjectAggregator) {
@@ -165,6 +177,7 @@ object UiManager {
val panel = RoDisplay(dm)
add(title, panel, aggregator)
dm.isRendered = true
+ setNormalCursor()
}
fun openDialog(panel: RoDialog) {
@@ -229,4 +242,10 @@ object UiManager {
}
}
+ fun performUserAction(aggregator: BaseAggregator, obj: TObject) {
+ setBusyCursor()
+ getEventStore().addUserAction(aggregator, obj)
+ setNormalCursor()
+ }
+
}
[isis] 01/03: ISIS-2348 EventStore refactored from object
(Singleton) to class
Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 59ec70a50d31d8f8765b52b9deca6d5460722744
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Fri Oct 22 12:44:01 2021 +0200
ISIS-2348 EventStore refactored from object (Singleton) to class
---
.../org/apache/isis/client/kroviz/core/Session.kt | 2 +
.../kroviz/core/aggregator/ErrorDispatcher.kt | 4 +-
.../isis/client/kroviz/core/event/EventStore.kt | 2 +-
.../isis/client/kroviz/core/event/ReplayCommand.kt | 6 +-
.../isis/client/kroviz/core/event/ResourceProxy.kt | 13 +-
.../client/kroviz/core/event/RoXmlHttpRequest.kt | 12 +-
.../isis/client/kroviz/core/model/ObjectDM.kt | 48 +++----
.../isis/client/kroviz/ui/core/MenuFactory.kt | 2 +-
.../apache/isis/client/kroviz/ui/core/RoIconBar.kt | 2 +-
.../apache/isis/client/kroviz/ui/core/RoMenuBar.kt | 2 +-
.../apache/isis/client/kroviz/ui/core/UiManager.kt | 10 +-
.../client/kroviz/ui/diagram/LinkTreeDiagram.kt | 2 +-
.../isis/client/kroviz/ui/dialog/DiagramDialog.kt | 2 +-
.../client/kroviz/ui/dialog/EventExportDialog.kt | 7 +-
.../isis/client/kroviz/ui/dialog/EventLogDetail.kt | 3 +-
.../client/kroviz/ui/panel/DynamicMenuBuilder.kt | 2 +-
.../apache/isis/client/kroviz/IntegrationTest.kt | 5 +-
.../core/aggregator/CollectionAggregatorTest.kt | 9 +-
.../client/kroviz/core/event/EventStoreTest.kt | 140 +++++++++++----------
.../org/apache/isis/client/kroviz/to/ActionTest.kt | 7 +-
.../isis/client/kroviz/to/ResultValueTest.kt | 3 +-
.../client/kroviz/ui/table/LinkTreeDiagramTest.kt | 24 ++--
22 files changed, 168 insertions(+), 139 deletions(-)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/Session.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/Session.kt
index eee34ee..feb12f0 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/Session.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/Session.kt
@@ -18,6 +18,7 @@
*/
package org.apache.isis.client.kroviz.core
+import org.apache.isis.client.kroviz.core.event.EventStore
import org.apache.isis.client.kroviz.ui.core.UiManager
import org.apache.isis.client.kroviz.utils.StringUtils
@@ -28,6 +29,7 @@ class Session {
private var user: String = ""
private var pw: String = ""
var url: String = ""
+ val eventStore = EventStore()
fun login(url: String, user: String, pw: String) {
this.user = user
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ErrorDispatcher.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ErrorDispatcher.kt
index 89ccc28..35add14 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ErrorDispatcher.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ErrorDispatcher.kt
@@ -18,10 +18,10 @@
*/
package org.apache.isis.client.kroviz.core.aggregator
-import org.apache.isis.client.kroviz.core.event.EventStore
import org.apache.isis.client.kroviz.core.event.LogEntry
import org.apache.isis.client.kroviz.core.event.ResourceSpecification
import org.apache.isis.client.kroviz.to.HttpError
+import org.apache.isis.client.kroviz.ui.core.UiManager
import org.apache.isis.client.kroviz.ui.dialog.ErrorDialog
class ErrorDispatcher : BaseAggregator() {
@@ -31,7 +31,7 @@ class ErrorDispatcher : BaseAggregator() {
val url = logEntry.url
val message = error.message
val reSpec = ResourceSpecification(url)
- EventStore.fault(reSpec, message)
+ UiManager.getEventStore().fault(reSpec, message)
ErrorDialog(logEntry).open()
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt
index 75f6bec..a0ae52b 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt
@@ -37,7 +37,7 @@ import org.w3c.files.Blob
* @see "https://en.wikipedia.org/wiki/Proxy_pattern"
* @see "https://martinfowler.com/eaaDev/EventSourcing.html"
*/
-object EventStore {
+class EventStore {
var log = observableListOf<LogEntry>()
var logStartTime: Int = 0
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt
index d7b7ce6..4aa7604 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayCommand.kt
@@ -27,14 +27,16 @@ import org.apache.isis.client.kroviz.main
import org.apache.isis.client.kroviz.to.Link
import org.apache.isis.client.kroviz.to.Represention
import org.apache.isis.client.kroviz.to.TObject
+import org.apache.isis.client.kroviz.ui.core.UiManager
val AppScope = CoroutineScope(window.asCoroutineDispatcher())
class ReplayCommand {
fun execute() {
- val expectedEvents = copyEvents(EventStore.log)
- EventStore.reset()
+ val es = UiManager.getEventStore()
+ val expectedEvents = copyEvents(es.log)
+ es.reset()
main() // re-creates the UI, but keeps the UiManager(singleton/object) and the session
val replayEvents = filterReplayEvents(expectedEvents)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt
index 5254e05..aeb5f2d 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceProxy.kt
@@ -26,6 +26,7 @@ import org.apache.isis.client.kroviz.handler.ResponseHandler
import org.apache.isis.client.kroviz.to.Link
import org.apache.isis.client.kroviz.to.TObject
import org.apache.isis.client.kroviz.ui.core.Constants
+import org.apache.isis.client.kroviz.ui.core.UiManager
import org.apache.isis.client.kroviz.ui.diagram.Node
import org.apache.isis.client.kroviz.ui.diagram.Tree
@@ -45,11 +46,12 @@ class ResourceProxy {
fun load(tObject: TObject) {
val aggregator = ObjectAggregator(tObject.title)
// ASSUMPTION: there can be max one LogEntry for an Object
- val le = EventStore.findBy(tObject)
+ val es = UiManager.getEventStore()
+ val le = es.findBy(tObject)
if (le != null) {
le.addAggregator(aggregator)
aggregator.update(le, le.subType)
- EventStore.addUserAction(aggregator, tObject)
+ es.addUserAction(aggregator, tObject)
}
}
@@ -59,7 +61,7 @@ class ResourceProxy {
isRest: Boolean = true,
referrer: String = "") {
val rs = ResourceSpecification(link.href, subType = subType, referrerUrl = referrer)
- val isCached = when (val le = EventStore.findBy(rs)) {
+ val isCached = when (val le = UiManager.getEventStore().findBy(rs)) {
null -> false
else -> le.isCached(rs, link.method)
}
@@ -83,7 +85,8 @@ class ResourceProxy {
}
private fun processCached(rs: ResourceSpecification, aggregator: BaseAggregator?) {
- val le = EventStore.findBy(rs)!!
+ val es = UiManager.getEventStore()
+ val le = es.findBy(rs)!!
le.retrieveResponse()
if (aggregator == null) {
ResponseHandler.handle(le)
@@ -91,7 +94,7 @@ class ResourceProxy {
aggregator.update(le, le.subType)
}
le.setCached()
- EventStore.updateStatus(le)
+ es.updateStatus(le)
}
fun invokeKroki(pumlCode: String, aggregator: SvgDispatcher) {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/RoXmlHttpRequest.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/RoXmlHttpRequest.kt
index 00b933f..5f77a1e 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/RoXmlHttpRequest.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/RoXmlHttpRequest.kt
@@ -65,14 +65,14 @@ class RoXmlHttpRequest(val aggregator: BaseAggregator?) {
body.isEmpty() -> xhr.send()
else -> xhr.send(body)
}
- EventStore.start(rs, method, body, aggregator)
+ UiManager.getEventStore().start(rs, method, body, aggregator)
}
private fun buildBody(link: Link): String {
return when {
link.hasArguments() -> StringUtils.argumentsAsBody(link)
link.method == Method.PUT.operation -> {
- val logEntry = EventStore.findBy(aggregator!!)
+ val logEntry = UiManager.getEventStore().findBy(aggregator!!)
when (val obj = logEntry?.obj) {
is TObject -> StringUtils.propertiesAsBody(obj)
else -> ""
@@ -94,7 +94,7 @@ class RoXmlHttpRequest(val aggregator: BaseAggregator?) {
xhr.send(body)
val rs = buildResourceSpecificationAndSetupHandler(url, subType, body)
- EventStore.start(rs, method, body, aggregator)
+ UiManager.getEventStore().start(rs, method, body, aggregator)
}
internal fun invokeKroki(pumlCode: String) {
@@ -108,7 +108,7 @@ class RoXmlHttpRequest(val aggregator: BaseAggregator?) {
val rs = buildResourceSpecificationAndSetupHandler(url, Constants.subTypeJson, pumlCode)
xhr.send(pumlCode)
- EventStore.start(rs, method, pumlCode, aggregator)
+ UiManager.getEventStore().start(rs, method, pumlCode, aggregator)
}
private fun buildResourceSpecificationAndSetupHandler(
@@ -124,7 +124,7 @@ class RoXmlHttpRequest(val aggregator: BaseAggregator?) {
private fun handleResult(rs: ResourceSpecification, body: String) {
val response: Any? = xhr.response
- val le: LogEntry? = EventStore.end(rs, body, response)
+ val le: LogEntry? = UiManager.getEventStore().end(rs, body, response)
if (le != null) {
when {
aggregator == null -> ResponseHandler.handle(le)
@@ -137,7 +137,7 @@ class RoXmlHttpRequest(val aggregator: BaseAggregator?) {
private fun handleError(rs: ResourceSpecification) {
val responseText = xhr.responseText
- EventStore.fault(rs, responseText)
+ UiManager.getEventStore().fault(rs, responseText)
}
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt
index ec80bfb..94f4e07 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt
@@ -18,11 +18,10 @@
*/
package org.apache.isis.client.kroviz.core.model
-import org.apache.isis.client.kroviz.core.event.EventStore
-import org.apache.isis.client.kroviz.core.event.EventStore.findBy
import org.apache.isis.client.kroviz.core.event.ResourceProxy
import org.apache.isis.client.kroviz.core.event.ResourceSpecification
import org.apache.isis.client.kroviz.to.*
+import org.apache.isis.client.kroviz.ui.core.UiManager
class ObjectDM(override val title: String) : DisplayModelWithLayout() {
var data: Exposer? = null
@@ -30,7 +29,7 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
private var dirty: Boolean = false
override fun canBeDisplayed(): Boolean {
- // debug()
+ // debug()
return when {
isRendered -> false
(layout == null) && (grid == null) -> false
@@ -38,7 +37,7 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
}
}
- private fun debug() {
+ private fun debug() {
console.log("[]")
console.log("[ODM.debug] data / collections / layout / grid / properties / icon / aggregator / logEntries")
console.log(data)
@@ -51,10 +50,11 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
val delegate = (data as Exposer).delegate
val selfLink = delegate.getSelfLink()
val rs = ResourceSpecification(selfLink.href)
- val le = EventStore.findBy(rs)!!
+ val es = UiManager.getEventStore()
+ val le = es.findBy(rs)!!
val aggt = le.getAggregator()
console.log(aggt)
- val logEntries = EventStore.findAllBy(aggt)
+ val logEntries = es.findAllBy(aggt)
logEntries.forEach {
console.log(it)
}
@@ -94,12 +94,13 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
val getLink = tObject.links.first()
val href = getLink.href
val reSpec = ResourceSpecification(href)
+ val es = UiManager.getEventStore()
//WATCHOUT this is sequence dependent: GET and PUT share the same URL - if called after PUTting, it may fail
- val getLogEntry = findBy(reSpec)!!
+ val getLogEntry = es.findBy(reSpec)!!
getLogEntry.setReload()
val putLink = Link(method = Method.PUT.operation, href = href)
- val logEntry = findBy(reSpec)
+ val logEntry = es.findBy(reSpec)
val aggregator = logEntry?.getAggregator()!!
// there may be more than one aggt - which may break this code
@@ -117,27 +118,28 @@ class ObjectDM(override val title: String) : DisplayModelWithLayout() {
private fun createPropertyFrom(m: Member): Property {
return Property(
- id = m.id,
- memberType = m.memberType,
- links = m.links,
- optional = m.optional,
- title = m.id,
- value = m.value,
- extensions = m.extensions,
- format = m.format,
- disabledReason = m.disabledReason
+ id = m.id,
+ memberType = m.memberType,
+ links = m.links,
+ optional = m.optional,
+ title = m.id,
+ value = m.value,
+ extensions = m.extensions,
+ format = m.format,
+ disabledReason = m.disabledReason
)
}
private fun createObjectFrom(resultObject: ResultObject): TObject {
val r = resultObject.result!!
return TObject(
- links = r.links,
- extensions = r.extensions!!,
- title = r.title,
- domainType = r.domainType,
- instanceId = r.instanceId.toString(),
- members = r.members)
+ links = r.links,
+ extensions = r.extensions!!,
+ title = r.title,
+ domainType = r.domainType,
+ instanceId = r.instanceId.toString(),
+ members = r.members
+ )
}
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/MenuFactory.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/MenuFactory.kt
index 22e9cdb..3658bcf 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/MenuFactory.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/MenuFactory.kt
@@ -104,7 +104,7 @@ object MenuFactory {
}
private fun findMenuByTitle(menuTitle: String): Menu? {
- val menuBars = EventStore.findMenuBars()!!.obj as Menubars
+ val menuBars = UiManager.getEventStore().findMenuBars()!!.obj as Menubars
var menu = findMenu(menuBars.primary, menuTitle)
if (menu == null) menu = findMenu(menuBars.secondary, menuTitle)
if (menu == null) menu = findMenu(menuBars.tertiary, menuTitle)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoIconBar.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoIconBar.kt
index ceece35..ddc7cff 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoIconBar.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoIconBar.kt
@@ -101,7 +101,7 @@ class RoIconBar : SimplePanel() {
private fun createObjectIcon(url: String): DropDown? {
val reSpec = ResourceSpecification(url)
- val logEntry = EventStore.findBy(reSpec)!!
+ val logEntry = UiManager.getEventStore().findBy(reSpec)!!
return when (val obj = logEntry.obj) {
(obj == null) -> null
is TObject -> {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
index c5903da..13f1610 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
@@ -87,7 +87,7 @@ class RoMenuBar : SimplePanel() {
)
mainMenu.add(
- buildMenuEntry("Event Log", "History", { UiManager.add("Event Log", EventLogTable(EventStore.log)) })
+ buildMenuEntry("Event Log", "History", { UiManager.add("Event Log", EventLogTable(UiManager.getEventStore().log)) })
)
val chartTitle = "Sample Chart"
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt
index 16fa92f..d6f9ac7 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/UiManager.kt
@@ -96,7 +96,7 @@ object UiManager {
fun add(title: String, panel: SimplePanel, aggregator: BaseAggregator = UndefinedDispatcher()) {
getRoView().addTab(title, panel)
- EventStore.addView(title, aggregator, panel)
+ getEventStore().addView(title, aggregator, panel)
}
fun remove(panel: SimplePanel) {
@@ -126,13 +126,13 @@ object UiManager {
tab.svg = svg
val aggregator: BaseAggregator = UndefinedDispatcher()
- EventStore.addView(title, aggregator, panel)
+ getEventStore().addView(title, aggregator, panel)
}
fun closeView(tab: SimplePanel) {
val tt = tab.title
if (tt != null) {
- EventStore.closeView(tt)
+ getEventStore().closeView(tt)
}
}
@@ -189,6 +189,10 @@ object UiManager {
}
}
+ fun getEventStore() : EventStore {
+ return getSession().eventStore
+ }
+
fun loadDomainTypes(): Boolean {
val k = "loadDomainTypes"
return when {
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt
index decb7c1..eae17e8 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/diagram/LinkTreeDiagram.kt
@@ -48,7 +48,7 @@ object LinkTreeDiagram {
private fun toPumlCode(node: Node, level: Int): String {
val url = node.name
val rs = ResourceSpecification(url)
- val le = EventStore.findBy(rs)
+ val le = UiManager.getEventStore().findBy(rs)
val pc = PumlCode()
if (le != null) {
val title = StringUtils.shortTitle(url, protocolHostPort)
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/DiagramDialog.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/DiagramDialog.kt
index ed239bc..c04544b 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/DiagramDialog.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/DiagramDialog.kt
@@ -67,7 +67,7 @@ class DiagramDialog(
}
private fun getDiagramCode(): String {
- val logEntry = EventStore.findByDispatcher(callBack as UUID)
+ val logEntry = UiManager.getEventStore().findByDispatcher(callBack as UUID)
return logEntry.getResponse()
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventExportDialog.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventExportDialog.kt
index 445b9af..b41f475 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventExportDialog.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventExportDialog.kt
@@ -27,6 +27,7 @@ import org.apache.isis.client.kroviz.ui.core.RoDialog
import io.kvision.core.StringPair
import io.kvision.form.select.SimpleSelect
import org.apache.isis.client.kroviz.ui.core.FormItem
+import org.apache.isis.client.kroviz.ui.core.UiManager
class EventExportDialog() : Command() {
@@ -36,7 +37,7 @@ class EventExportDialog() : Command() {
val events = mutableListOf<ReplayEvent>()
private fun collectReplayEvents() {
- EventStore.log.forEach { it ->
+ UiManager.getEventStore().log.forEach { it ->
val re = buildExportEvent(it)
when (it.state) {
EventState.SUCCESS_JS -> events.add(re)
@@ -102,7 +103,7 @@ class EventExportDialog() : Command() {
}
private fun collectUnfinishedEvents() {
- EventStore.log.forEach { it ->
+ UiManager.getEventStore().log.forEach { it ->
val re = buildExportEvent(it)
when (it.state) {
EventState.RUNNING -> events.add(re)
@@ -114,7 +115,7 @@ class EventExportDialog() : Command() {
}
private fun collectAllEvents() {
- EventStore.log.forEach { it ->
+ UiManager.getEventStore().log.forEach { it ->
val re = buildExportEvent(it)
events.add(re)
}
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt
index cf63a15..8b49cc3 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/dialog/EventLogDetail.kt
@@ -26,6 +26,7 @@ import org.apache.isis.client.kroviz.to.bs3.Grid
import org.apache.isis.client.kroviz.ui.core.Constants
import org.apache.isis.client.kroviz.ui.core.FormItem
import org.apache.isis.client.kroviz.ui.core.RoDialog
+import org.apache.isis.client.kroviz.ui.core.UiManager
import org.apache.isis.client.kroviz.ui.diagram.JsonDiagram
import org.apache.isis.client.kroviz.ui.diagram.LayoutDiagram
import org.apache.isis.client.kroviz.ui.diagram.LinkTreeDiagram
@@ -41,7 +42,7 @@ class EventLogDetail(val logEntryFromTabulator: LogEntry) : Command() {
// For a yet unknown reason, aggregators are not transmitted via tabulator.
// As a WORKAROUND, we fetch the full blown LogEntry from the EventStore again.
val rs = ResourceSpecification(logEntryFromTabulator.title)
- logEntry = EventStore.findBy(rs) ?: logEntryFromTabulator // in case of xml, we use the entry passed in
+ logEntry = UiManager.getEventStore().findBy(rs) ?: logEntryFromTabulator // in case of xml, we use the entry passed in
}
// callback parameter
diff --git a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/DynamicMenuBuilder.kt b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/DynamicMenuBuilder.kt
index 7f01d61..6e9aba0 100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/DynamicMenuBuilder.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/panel/DynamicMenuBuilder.kt
@@ -60,7 +60,7 @@ class DynamicMenuBuilder {
val title = "Chart"
val a4 = buildMenuEntry(title, title, {
- UiManager.add(title, ChartFactory().build(EventStore.log))
+ UiManager.add(title, ChartFactory().build(UiManager.getEventStore().log))
})
menu.add(a4)
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/IntegrationTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/IntegrationTest.kt
index 8e15ff0..8214df4 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/IntegrationTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/IntegrationTest.kt
@@ -67,12 +67,13 @@ open class IntegrationTest {
else -> Constants.subTypeJson
}
val reSpec = ResourceSpecification(response.url, subType)
- EventStore.start(
+ val es = EventStore()
+ es.start(
reSpec,
Method.GET.operation,
"",
aggregator)
- val le = EventStore.end(reSpec, str)!!
+ val le = es.end(reSpec, str)!!
ResponseHandler.handle(le)
wait(100)
return le
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregatorTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregatorTest.kt
index fd60757..557b0a6 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregatorTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/aggregator/CollectionAggregatorTest.kt
@@ -19,12 +19,12 @@
package org.apache.isis.client.kroviz.core.aggregator
import org.apache.isis.client.kroviz.IntegrationTest
-import org.apache.isis.client.kroviz.core.event.EventStore
import org.apache.isis.client.kroviz.core.event.ResourceSpecification
import org.apache.isis.client.kroviz.core.model.CollectionDM
import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.*
import org.apache.isis.client.kroviz.to.Property
import org.apache.isis.client.kroviz.to.Relation
+import org.apache.isis.client.kroviz.ui.core.UiManager
import kotlin.test.assertEquals
import kotlin.test.assertNotNull
import kotlin.test.assertTrue
@@ -37,14 +37,15 @@ class CollectionAggregatorTest : IntegrationTest() {
fun testFixtureResult() {
if (isAppAvailable()) {
// given
- EventStore.reset()
+ val es = UiManager.getEventStore()
+ es.reset()
val obs = CollectionAggregator("test")
// when
mockResponse(FR_OBJECT, obs)
mockResponse(FR_OBJECT_LAYOUT, obs)
mockResponse(FR_OBJECT_PROPERTY, obs)
val reSpec = ResourceSpecification(FR_OBJECT_PROPERTY.url)
- val pLe = EventStore.findBy(reSpec)!!
+ val pLe = es.findBy(reSpec)!!
val pdLe = mockResponse(FR_PROPERTY_DESCRIPTION, obs)
val layoutLe = mockResponse(FR_OBJECT_LAYOUT, obs)
@@ -81,7 +82,7 @@ class CollectionAggregatorTest : IntegrationTest() {
fun testService() {
if (isAppAvailable()) {
// given
- EventStore.reset()
+ UiManager.getEventStore().reset()
val obs = CollectionAggregator("test")
// when
mockResponse(SO_LIST_ALL, obs)
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/EventStoreTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/EventStoreTest.kt
index 8ab2beb..3513b45 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/EventStoreTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/EventStoreTest.kt
@@ -39,21 +39,22 @@ class EventStoreTest : IntegrationTest() {
val url2 = Constants.krokiUrl + "plantuml"
val rs2 = ResourceSpecification(url2)
val body2 = "zwoa"
+ val es = EventStore()
// when
- EventStore.reset()
- EventStore.start(rs1, Method.POST.operation, body = body1)
- EventStore.start(rs2, Method.POST.operation, body = body2)
+ es.reset()
+ es.start(rs1, Method.POST.operation, body = body1)
+ es.start(rs2, Method.POST.operation, body = body2)
// then
- assertEquals(2, EventStore.log.size) //1
+ assertEquals(2, es.log.size) //1
console.log("[EST.testFindPlantuml]")
- val le1 = EventStore.findBy(rs1, body1)
+ val le1 = es.findBy(rs1, body1)
assertNotNull(le1) //2
console.log("le1: ${le1.toString()}")
- val le2 = EventStore.findBy(rs2, body2)
+ val le2 = es.findBy(rs2, body2)
assertNotNull(le2) //3
console.log("le2: ${le2.toString()}")
@@ -66,7 +67,8 @@ class EventStoreTest : IntegrationTest() {
fun testLayout() {
if (isAppAvailable()) {
// given
- EventStore.reset()
+ val es = EventStore()
+ es.reset()
val obs = CollectionAggregator("test")
//when
@@ -80,25 +82,26 @@ class EventStoreTest : IntegrationTest() {
mockResponse(SO_LAYOUT_XML, obs)
// then
- val soListLe = EventStore.findBy(soList)!!
+ val soListLe = es.findBy(soList)!!
assertEquals(Constants.subTypeJson, soListLe.subType) // 1
- val leJson = EventStore.findBy(rsJson)!!
+ val leJson = es.findBy(rsJson)!!
assertEquals(Constants.subTypeJson, leJson.subType) // 2
- val leXml = EventStore.findBy(rsXml)!!
+ val leXml = es.findBy(rsXml)!!
assertEquals(Constants.subTypeXml, leXml.subType) // 3
assertTrue(XmlHelper.isXml(leXml.response)) // 4
- assertTrue(EventStore.log.size > 3)
+ assertTrue(es.log.size > 3)
}
}
@Test
fun testSecondEntry() {
// given
- EventStore.reset()
- val initialSize: Int = EventStore.log.size
+ val es = EventStore()
+ es.reset()
+ val initialSize: Int = es.log.size
val myFirst = "1"
val myLast = "n"
val method = Method.GET.operation
@@ -111,24 +114,24 @@ class EventStoreTest : IntegrationTest() {
val selfSpec = ResourceSpecification(selfUrl)
val upSpec = ResourceSpecification(upUrl)
// when
- EventStore.start(selfSpec, method, body = myFirst)
- EventStore.start(upSpec, method, body = myFirst)
- EventStore.end(selfSpec, selfStr)
- EventStore.end(upSpec, upStr)
- EventStore.start(selfSpec, method, body = myLast)
- EventStore.start(upSpec, method, body = myLast)
+ es.start(selfSpec, method, body = myFirst)
+ es.start(upSpec, method, body = myFirst)
+ es.end(selfSpec, selfStr)
+ es.end(upSpec, upStr)
+ es.start(selfSpec, method, body = myLast)
+ es.start(upSpec, method, body = myLast)
// then
- val currentSize: Int = EventStore.log.size
+ val currentSize: Int = es.log.size
assertEquals(4 + initialSize, currentSize) //1
// Entries with the same key can be written, but when updated or retrieved the first (oldest) entry should be used
//when
- val le2 = EventStore.findBy(selfSpec)!!
+ val le2 = es.findBy(selfSpec)!!
//then
assertEquals(myFirst, le2.request) //2
assertEquals(selfStr.length, le2.response.length) //3
//when
- val leU = EventStore.findBy(upSpec)!!
+ val leU = es.findBy(upSpec)!!
//then
assertEquals(myFirst, leU.request) //4
assertEquals(upStr.length, leU.response.length) //5
@@ -143,31 +146,33 @@ class EventStoreTest : IntegrationTest() {
val i1 = "Test (1)"
val i2 = "Test (2)"
val agg = ObjectAggregator("testFindView")
+ val es = EventStore()
// construct list with urls
- EventStore.add(h1Spec)
- EventStore.addView(i1, agg, VPanel())
- EventStore.add(h2Spec)
- EventStore.addView(i2, agg, VPanel())
+ es.add(h1Spec)
+ es.addView(i1, agg, VPanel())
+ es.add(h2Spec)
+ es.addView(i2, agg, VPanel())
- val le1 = EventStore.findBy(h1Spec)!!
+ val le1 = es.findBy(h1Spec)!!
assertEquals(h1, le1.url) //1
- val le2 = EventStore.findBy(h2Spec)!!
+ val le2 = es.findBy(h2Spec)!!
assertEquals(h2, le2.url) //2
- val le3 = EventStore.findView(i2)
+ val le3 = es.findView(i2)
assertNotNull(le3) //3
- val le4 = EventStore.findView(i1)
+ val le4 = es.findView(i1)
assertNotNull(le4) //4
- EventStore.closeView(i1)
+ es.closeView(i1)
assertTrue(le4.isClosedView())
}
@Test
fun testFind() {
- EventStore.reset()
+ val es = EventStore()
+ es.reset()
val ol1 = "http://localhost:8080/restful/objects/simple.SimpleObject/51/object-layout"
val ol1Spec = ResourceSpecification(ol1)
val ol2 = "http://localhost:8080/restful/objects/simple.SimpleObject/52/object-layout"
@@ -177,25 +182,25 @@ class EventStoreTest : IntegrationTest() {
val olx = "http://localhost:8080/restful/objects/simple.SimpleObject/object-layout"
// construct list with urls
- EventStore.add(ol1Spec)
- EventStore.add(ResourceSpecification(ol2))
- EventStore.add(ResourceSpecification(ol3))
+ es.add(ol1Spec)
+ es.add(ResourceSpecification(ol2))
+ es.add(ResourceSpecification(ol3))
- val le1 = EventStore.findBy(ol1Spec)
+ val le1 = es.findBy(ol1Spec)
assertNotNull(le1) //1
- val le2 = EventStore.findExact(ol9Spec)
+ val le2 = es.findExact(ol9Spec)
assertEquals(null, le2) //2
- val le3 = EventStore.findEquivalent(ol9Spec)
+ val le3 = es.findEquivalent(ol9Spec)
assertNotNull(le3) //3
assertEquals(ol1, le3.url) //4
- val le4 = EventStore.findBy(ol9Spec)
+ val le4 = es.findBy(ol9Spec)
assertEquals(le3, le4) //5
val olxSpec = ResourceSpecification(olx)
- val le5 = EventStore.findEquivalent(olxSpec)
+ val le5 = es.findEquivalent(olxSpec)
assertNull(le5) //6
val p1 = "http://localhost:8080/restful/objects/simple.SimpleObject/11/properties/name"
@@ -204,10 +209,10 @@ class EventStoreTest : IntegrationTest() {
val p2Spec = ResourceSpecification(p2)
val p3 = "http://localhost:8080/restful/objects/simple.SimpleObject/13/properties/name"
val p3Spec = ResourceSpecification(p3)
- EventStore.add(p1Spec)
- EventStore.add(p2Spec)
- EventStore.add(p3Spec)
- val le6 = EventStore.findBy(p3Spec)
+ es.add(p1Spec)
+ es.add(p2Spec)
+ es.add(p3Spec)
+ val le6 = es.findBy(p3Spec)
assertNotNull(le6) //7
assertEquals(le6.url, p1) //8
@@ -215,29 +220,30 @@ class EventStoreTest : IntegrationTest() {
val pNameSpec = ResourceSpecification(pName)
val pNotes = "http://localhost:8080/restful/domain-types/simple.SimpleObject/properties/notes"
val pNotesSpec = ResourceSpecification(pNotes)
- EventStore.add(pNameSpec)
- EventStore.add(pNotesSpec)
- val le7 = EventStore.findBy(pNotesSpec)
+ es.add(pNameSpec)
+ es.add(pNotesSpec)
+ val le7 = es.findBy(pNotesSpec)
assertNotNull(le7) //9
assertEquals(le7.url, pNotes) //10
}
@Test
fun testFindEquivalent_ConfigurationLayout() {
- EventStore.reset()
+ val es = EventStore()
+ es.reset()
val ol1 = "http://localhost:8080/restful/objects/isisApplib.ConfigurationProperty/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI_Pgo8Y29uZmlndXJhdGlvblByb3BlcnR5PgogICAgPGtleT5pc2lzLnBlcnNpc3Rvci5kYXRhbnVjbGV1cy5pbXBsLmRhdGFudWNsZXVzLmNhY2hlLmxldmVsMi50eXBlPC9rZXk-CiAgICA8dmFsdWU-bm9uZTwvdmFsdWU-CjwvY29uZmlndXJhdGlvblByb3BlcnR5Pgo=/object-layout"
val ol1Spec = ResourceSpecification(ol1)
val ol2 = "http://localhost:8080/restful/objects/isisApplib.ConfigurationProperty/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI_Pgo8Y29uZmlndXJhdGlvblByb3BlcnR5PgogICAgPGtleT5pc2lzLnJlZmxlY3Rvci52YWxpZGF0b3Iuc2VydmljZUFjdGlvbnNPbmx5PC9rZXk-CiAgICA8dmFsdWU-dHJ1ZTwvdmFsdWU-CjwvY29uZmlndXJhdGlvblByb3BlcnR5Pgo=/object-layout"
val ol2Spec = ResourceSpecification(ol2)
// construct list with urls
- EventStore.add(ol1Spec)
- EventStore.add(ol2Spec)
+ es.add(ol1Spec)
+ es.add(ol2Spec)
- val le1 = EventStore.findBy(ol1Spec)
+ val le1 = es.findBy(ol1Spec)
assertNotNull(le1) //1
- val le2 = EventStore.findEquivalent(ol2Spec)
+ val le2 = es.findEquivalent(ol2Spec)
assertNotNull(le2) //2
assertEquals(ol1, le2.url) //3
}
@@ -245,18 +251,19 @@ class EventStoreTest : IntegrationTest() {
@Test
fun testAnonymousEntry() {
// given
- EventStore.reset()
+ val es = EventStore()
+ es.reset()
val method = Method.POST.operation
val url = Constants.krokiUrl
val rs = ResourceSpecification(url)
// when
- EventStore.start(rs, method, body = "first invocation")
- EventStore.start(rs, method, body = "second invocation")
- EventStore.end(rs, "first response")
+ es.start(rs, method, body = "first invocation")
+ es.start(rs, method, body = "second invocation")
+ es.end(rs, "first response")
// then
- val currentSize: Int = EventStore.log.size
+ val currentSize: Int = es.log.size
assertEquals(2, currentSize) //1
- val le = EventStore.findBy(rs)!!
+ val le = es.findBy(rs)!!
assertEquals("first response", le.response)
}
@@ -269,19 +276,20 @@ class EventStoreTest : IntegrationTest() {
val rs2 = ResourceSpecification(url2)
//when
- EventStore.reset()
- EventStore.add(rs1)
- EventStore.add(rs2)
- val le1 = EventStore.findBy(rs1)
- val le2 = EventStore.findBy(rs2)
+ val es = EventStore()
+ es.reset()
+ es.add(rs1)
+ es.add(rs2)
+ val le1 = es.findBy(rs1)
+ val le2 = es.findBy(rs2)
//then
- assertEquals(2, EventStore.log.size)
+ assertEquals(2, es.log.size)
assertNotEquals(le1, le2)
//when
- val le1eq = EventStore.findEquivalent(rs1)
- val le2eq = EventStore.findEquivalent(rs2)
+ val le1eq = es.findEquivalent(rs1)
+ val le2eq = es.findEquivalent(rs2)
//then
assertNotEquals(le1eq, le2eq)
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ActionTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ActionTest.kt
index 26dea78..11abd50 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ActionTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ActionTest.kt
@@ -20,11 +20,11 @@ package org.apache.isis.client.kroviz.to
import org.apache.isis.client.kroviz.IntegrationTest
import org.apache.isis.client.kroviz.core.aggregator.ActionDispatcher
-import org.apache.isis.client.kroviz.core.event.EventStore
import org.apache.isis.client.kroviz.core.event.ResourceProxy
import org.apache.isis.client.kroviz.core.event.ResourceSpecification
import org.apache.isis.client.kroviz.handler.ActionHandler
import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.*
+import org.apache.isis.client.kroviz.ui.core.UiManager
import org.apache.isis.client.kroviz.utils.StringUtils
import kotlin.test.Test
import kotlin.test.assertEquals
@@ -64,8 +64,9 @@ class ActionTest : IntegrationTest() {
console.log(json)
ResourceProxy().fetch(link, ActionDispatcher())
val urlSpec = ResourceSpecification(url)
- val le = EventStore.findBy(urlSpec)!!
- console.log(EventStore.log)
+ val es = UiManager.getEventStore()
+ val le = es.findBy(urlSpec)!!
+ console.log(es.log)
console.log(le)
assertTrue(!le.isError())
}
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ResultValueTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ResultValueTest.kt
index e84cf73..29a93ff 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ResultValueTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ResultValueTest.kt
@@ -25,6 +25,7 @@ import org.apache.isis.client.kroviz.core.event.EventStore
import org.apache.isis.client.kroviz.handler.ResultValueHandler
import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.ACTIONS_DOWNLOAD_VALUE
import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.ACTIONS_OPEN_SWAGGER_UI
+import org.apache.isis.client.kroviz.ui.core.UiManager
import kotlin.test.Test
import kotlin.test.assertEquals
@@ -48,7 +49,7 @@ class ResultValueTest : IntegrationTest() {
// given
val aggregator = ObjectAggregator("object test")
// when
- EventStore.reset()
+ UiManager.getEventStore().reset()
val logEntry = mockResponse(ACTIONS_DOWNLOAD_VALUE, aggregator)
val ro = logEntry.getTransferObject() as ResultValue
val type = ro.resulttype
diff --git a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/LinkTreeDiagramTest.kt b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/LinkTreeDiagramTest.kt
index 90bdf8e..f1bc3c7 100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/LinkTreeDiagramTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/LinkTreeDiagramTest.kt
@@ -34,19 +34,21 @@ class LinkTreeDiagramTest {
//@Test //TODO rework test to use AggregatorWithLayout
fun testLinkTreeDiagram() {
+ // given
+ val es = EventStore()
//when
val aggregator = SystemAggregator()
- load(RESTFUL, "", RestfulHandler(), aggregator)
+ load(RESTFUL, "", RestfulHandler(), aggregator, es)
val referer = RESTFUL.url
- load(RESTFUL_SERVICES, referer, ServiceHandler(), aggregator)
- load(RESTFUL_USER, referer, UserHandler(), aggregator)
- load(RESTFUL_MENUBARS, referer, MenuBarsHandler(), aggregator)
- load(RESTFUL_VERSION, referer, VersionHandler(), aggregator)
- load(RESTFUL_DOMAIN_TYPES, referer, DomainTypesHandler(), aggregator)
+ load(RESTFUL_SERVICES, referer, ServiceHandler(), aggregator, es)
+ load(RESTFUL_USER, referer, UserHandler(), aggregator, es)
+ load(RESTFUL_MENUBARS, referer, MenuBarsHandler(), aggregator, es)
+ load(RESTFUL_VERSION, referer, VersionHandler(), aggregator, es)
+ load(RESTFUL_DOMAIN_TYPES, referer, DomainTypesHandler(), aggregator, es)
// then
- assertTrue(EventStore.log.size >= 6)
+ assertTrue(es.log.size >= 6)
val rootRs = ResourceSpecification(RESTFUL.url)
- val rootLogEntry = EventStore.findBy(rootRs)
+ val rootLogEntry = es.findBy(rootRs)
assertNotNull(rootLogEntry) //1
// when
@@ -60,10 +62,10 @@ class LinkTreeDiagramTest {
assertTrue(code.contains("http://localhost:8080/restful/menuBars"))
}
- private fun load(response: Response, referer: String, handler: BaseHandler, aggregator: SystemAggregator) {
+ private fun load(response: Response, referer: String, handler: BaseHandler, aggregator: SystemAggregator, es: EventStore) {
val rs = ResourceSpecification(response.url, referrerUrl = referer)
- EventStore.start(rs, Method.GET.operation, aggregator = aggregator)
- val le = EventStore.end(rs, response.str)!!
+ es.start(rs, Method.GET.operation, aggregator = aggregator)
+ val le = es.end(rs, response.str)!!
val tObj = handler.parse(response.str)!!
le.setTransferObject(tObj)
}