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 2020/04/08 16:22:12 UTC

[isis] branch master updated (00880a1 -> 65a5781)

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 00880a1  ISIS-2324 ignore all files in .idea
     add c947593  Initial - port from roviz
     add 4f699e2  kvision desktop example (partly)
     add b8d66f3  basic layout with menu, tabs, and status
     add 86ef5c9  rudimentary menu, kotlinx.serialization
     add 6d6a069  kotlinx.serialization used for json parsing
     add e0b8844  tests mostly fixed, 8/63 assertions fail
     add 5e066a7  61/66 assertions green
     add 0bd38ea  layout tests fixed
     add 0935422  tests OK, Invokeable replaced
     add b5aabd8  favicon, menu
     add 7884351  menubar works, action invocation in progress
     add f41c4cc  modal dialogs, enumerations extracted
     add b00e224  POST Action
     add 611f13b  POST invoke part2, kvision 0.30, HttpError handling part1
     add 086240d  handle http errors gracefully
     add 0d2be4f  sample code for invoke action
     add c346916  tests always call handler for parsing
     add 0a70a9c  handler naming streamlined, parsing reduced
     add b9a917e  create xhr body from argument, tweak navbars
     add e0a0226  tabs/tables with sample/LogEvent, docs
     add 655fa61  EventLogTab, documentation
     add ab823ac  Integration tests fixed, LogEntry with state, docs++
     add 3dddee6  kvision 0.32 with tooltip support
     add 082bcec  use tootip in statusbar
     add 1425338  find icon by title, cleanout sample code
     add 6f20cf5  cleanup, todo's updated
     add 686462d  context menu to close tab(s)
     add a99c0bf  Link Button, EventLog detail info
     add ea6b8f4  fix Property*HandlerTest(s)
     add e97ca68  tests fixed (flaky: testPropertyDescription)
     add 4844813  (flaky) tests fixed
     add 9ef751d  tabs, tables, and scrollbars
     add 48b8ce2  uicomp grouped, EventLogTab with Tabulator
     add 2bb4efb  LogEntries with Tabulator
     add 843684a  FixtureResult table opens
     add 000f7e4  ResponseHandler refactored
     add f55345a  FixtureResult table filled (draft)"
     add ecf65f7  TransferObject 'Value' added, MemberTest ok, ValueTest to be fixed
     add b8fb720  Member/Value deserialization impoved
     add fe52cb8  ValueTest ignored
     add 8dea34d  references to deprecated type aliases fixed
     add ca61ed2  dependency with security vulnarability removed
     add 79d1585  use moment.js via kvision module
     add faa9fc4  references to tunnel-agent removed
     add 12df0d7  kotlin 1.3.30, DateSerializer
     add cb456ec  dependency upgrade, docs moved
     add 2c6133f  various version upgrades
     add 3455041  PropertyHandlerTest fixed
     add 769926d  assertion added
     add d9ab4a0  ObjectAdapter/TObject Test fixed
     add c222152  EventLogTable with entries
     add aa4854a  model passed in via primary constructor
     add 3480b90  Action icon in EventLogTable
     add 8fdc21e  EventLogTable with LinkButton
     add 57e22d7  FixtureResultTable shows header
     add 96877c7  FixtureResultTable shows test data
     add 738ba87  Interfaces moved, modal dialogs wide, FixtureResult improved
     add e86188d  kvision/kotlin version upgrade
     add a24f3f1  select first element in dropdown by default, xsd's for bs3
     add 58e521c  MenuItems fixed
     add eb3fcc5  tests, compiler warnings fixed
     add e786b11  more compiler warnings fixed, FixtureResultTable improved
     add a90acae  Link invocation via Observers
     add feed106  Table with dynamic ObjectAdapter - 1.st draft works
     add 31cf256  compiler warnings reduced, active tab selection
     add 103fde1  DynamicTable/2, UI straightened a bit, travis-ci/1
     add f71a338  travis-ci/2
     add 903a596  travis-ci/3
     add 5cfc2b1  documentation updated
     add 8c3131c  list handling, tests refactored
     add 61073ef  fix compiler warnings
     add d7e8717  Value deserialization fixed for Int/Long/String
     add 400de58  Value parsing fixed
     add 03c9ae2  cleanup
     add a32907b  cleanup
     add b4a4950  docs amended
     add 472d3d5  c&p glitch fixed
     add 6848399  doc update, double mavbar
     add bf09aa9  getTime() fixes negative duration, docs amended
     add 7320fc9  double navbar fixed
     add ccc7c3e  tab height fixed for LogEntries
     add a7a0c8b  fixing tabulator height for others as well
     add cfcf6a5  tabulator height finetuning (scrollbar)
     add 2534fba  Exposer refactored
     add a5f2976  Arguments amended for SimpleObject properties
     add 0d8993f  QA
     add 83490c9  logo transparent
     add 0157691  classes for bootstrap added
     add a702c07  fix travis build
     add 3e40784  make gradle executable
     add cb2cede  fix webpack error
     add 27a869e  make test silent
     add d8ff30e  fix webpack-bundle error
     add b435842  bounding box for logo
     add c4f80ae  size down logo
     add 9665851  clean up build script
     add cf61d10  action name as tab title
     add fccd9f8  image sample
     add 58215ac  image sample
     add ad84359  #16 cache pattern extended
     add 8bb960f  fix webpack error for travis
     add 4248b66  travis, xml samples, to clean up
     add e137816  travis/webpack-bundle, logo
     add 69d6563  node_js lts
     add 5e98f1f  tests added for column sequence
     add bfabf67  Exposer simplyfied, TableFactory renamed
     add 0dcc9c5  code cleanup
     add fe2b2ec  Link with Button/Title in FixtureResult list
     add 056112e  decolor overview
     add 259d3da  CSS tweaked for LinkButton in RoTable
     add bc6b1d3  Column sequence based on layout, TODO's cleaned
     add 60585a4  add coverage indicator, QA
     add 9ada4e4  #15 icons added to RoTable for selected and contextMenu
     add 0705564  update docs with screenshots
     add 341d0a0  fix typo
     add 66e6608  #28 contextMenu implemented
     add c4ca582  Statusline amended
     add c20b999  first take at branding
     add 661bab0  #3 handler for bs3 introduced
     add 05a05a1  #3 unmangling package names
     add 5023700  fix typos
     add 6e6894d  #36 Amend DefaultHandler
     add e1a519e  bump kvision to 0.0.39
     add 21ce7c2  #5 QA
     add 1dbd242  #3 downloadLayout
     add a49dcd0  #34 Follow hrefs from /restful
     add b924096  #5 Documentation
     add ee9cef7  #5 package names, KVision bumped to 1.0.0
     add 8766801  #5 package names
     add 28e70fb  #34 /restful/version
     add 8dbcc64  #35 Measure Code Coverage
     add 275df7d  #5 developer doc straightened out
     add 24ab4a0  #35 Measure Code Coverage
     add 9b17ed1  #24 enable all actions
     add 3edc928  #24 rename ResultList to InvocationResult
     add db49f64  #24 Link arguments as Map
     add 57878fa  #24 openSwaggerUi/invoke not working yet
     add 4814754  #24 all TO's implemented, create SimpleObject (/)
     add abdb59f  #5 package names straightened out
     add f6546ab  #5 fix broken build
     add 87c2bd5  #24 XHR with urlParameter, functions moved from Link
     add 5daadd7  #24 Object handling (Aggregator, Display) started
     add 53000a8  #24 download layout (/)
     add ccab615  #24 re-construct arg keys from dialog, testdata amended
     add 3e7eb0e  #24 interface Aggregator renamed to IAggregator and passed on to LogEntry in order to enable reexecution of Actions
     add 1966232  #24 re-execution of listAll, some issues remain
     add 3f27009  #5 package names straightened out
     add 4f4e847  #5 Review by Kevin: simplify Value, use only Long
     add 0700111  #24 re-execution of listAll, some issues remain
     add 52ad296  #26 menu pops up off screen
     add b8f6a29  #5 Review by Kevin: simplify Value, use only Long
     add 6c8acd8  #3 layout.xml for menubar
     add 83778a7  #38 switch to kvision 2.x
     add cc0905d  Fix menus
     add aa0899b  Fix menus & dialogs, statusBar, upgrade npm dependencies
     add 91e3d78  Dialogs pop up at the location of the menu select event, session encapsulated by UIManager, tab content VPanel -> SimplePanel
     add 5352af8  Dialogs and ContextMenus close on ESC, pacjage names fixed
     add b1f23df  fix karam tests, upgrade to 2.4.0
     add 4ccc79e  removing bintray.com/ from repositories reduces build time by 50%
     add 6ed6174  and removing bintray.com/ from the first repositories occurence reduces build time by another 75%
     add 946927b  #38 upgrade to kvision 2.4.0
     add 09d0f81  #38 focus okButton in RoDialog
     add 5d7420f  #5 correct path for architecure overview diagram
     add e7c518c  #5 correct path for architecure overview diagram
     add e1fc08d  #35 Measure Code Coverage
     add 7cf1e6d  merge back to master
     add cec4403  #5 disable broken test
     add 9203741  #38 switch to kvision2
     add 65fd37b  #5 remove console.log's
     add 07a12b5  #33 Colorize Menu Entries
     add 800c48a  #38 switch to kvision2
     add 9aaf875  #38 switch to kvision2.5
     add a4161f2  remove console.log's
     add e29c93f  table column header styling & feature (moving)
     add 35a679f  #22 Create UML Diagram
     add 8233e48  table column header styling & feature (moving)
     add 996bbc3  #3 layout.xml for menubar
     add 0e054d1  remove console.log's
     add f8c41bc  #3 layout.xml for forms
     add 70bca84  give a more descriptive name to package containing test data
     add 7698e6d  inactive tests removed
     add 80cda01  imports cleaned, jsonStr renamed to response
     add f3c4a73  fix test failure
     add 4b7684a  fix compiler complaint
     add 011be2c  fix compiler complaint
     add 1729a0c  #22 Create UML Diagrams (obey SOC)
     add c460a1f  #3 layout.xml for forms
     add a269aed  #3 layout.xml for forms
     add c0a165b  make tab smaller
     add 01d6471  #3 RoDisplay draft (w/o layout)
     add 0cf074f  expression shortened
     add 0038800  #3 RoDisplay shows properties
     add 05a86df  fix visibility
     add 720f23e  #3 RoDisplay loads layout
     add d90d59e  #3 Allow for multiple Aggregators per Response
     add dd79df8  #3 ObjectAggregator wired into LogEntries, (dummy) Object form displayed
     add a8fad45  minor code cleanup
     add 1999252  #3 layout to's build use kv Panels/Component, FormPanelFactory extracted
     add b72b21d  minor code cleanup
     add d3dc6d3  #3 Layout hierarchy being rendered. Data, tab names yet to do.
     add cf463b0  #3 members passed in to layout for retrieval
     add cec8880  #3 Object Display with Tabs
     add 0917b2b  #3 Object Display with Tabs
     add 80b6316  #3 DropDown with object actions
     add 2e06ecf  #3 DropDown menu in tablulator
     add 858bb60  #5 kvision 2.7.0, cleanup
     add 6bb2d63  #40 decrease tab view offset
     add f810aa2  #5 code formatting
     add 51439fd  #5 move action to first column, enlarge title column
     add 72f9540  #5 remove superflous overrides, compiler warnings
     add f9574e8  #5 Menu/Entry moved to org.ro.ui, imports and comments fixed
     add ce575a2  #5 remove unused bs3 classes
     add c55478b  #5 remove unused bs3 classes
     add 7b33044  #34 follow all hrefs from /restful in order to use menubars xml
     add d9f16ca  #3 use /menuBars
     add 476b3a2  #3 add seperators for secondary
     add a1ffee1  #3 move menu build function to factory
     add d6314cb  #5 simplify handlers
     add 3ce3fc7  #5 simplify aggregators
     add 787ba63  #5 simplify aggregators
     add f9df037  #5 rename aggregators that do not really aggregate
     add 2fc045c  #5 minor fixes, point removed from UiManager
     add cb3ae67  #43 Save and update added to Menu and UiManager
     add e846a6b  #43 use disabledReason for readonly fields
     add 6136f92  #5 comments changed
     add 2de0a20  #43 request payload yet to be fixed & filled
     add ae8c9fb  #43 changed value from Text/Area is PUTted
     add c083bcc  #42 first snapshot for demo added
     add 8b80a3c  #5 upgrade to kvision 2.9.0
     add 84fc708  #42 Primary Menu displayed
     add a206725  #42 Demo Text displayed
     add 094b0d0  #42 Demo Tree (take 1/n:)
     add bf59f8d  #42 Demo Primitives
     add cb5a3eb  #42 Handle Property
     add 72c44a1  #5 fix logentry regression
     add b5bf46a  #5 fix refactor into builder
     add d2d8b22  #5 fix refactor into builder
     add 773d4d9  #42 Widgets for Primitives (1/n)
     add e8f2387  #42 Menu action and tab titles 'De Cameled'
     add a5afc9b  #42 Temporals Date (1/n)
     add cba8c1a  #42 (Most) Primitive Numbers with Spinners
     add 6eaefaa  #5 fix refactor into builder
     add 01159b9  #42 Test for Demo Text Layout, TypeMapper enum
     add f33a832  #42 HTML-description -> div in a panel
     add b3502e6  #5 make title column wider
     add 5ca62bc  #42 improve HTML/Temporals
     add a7022de  #42 Demo Temporals 2/3
     add 9d643ba  #42 Demo Temporals 3/3
     add a665f11  #42 Cleanup
     add d4db6ca  #21 Amend Statusline
     add 3605fd9  #21 Amend Statusline
     add c958120  #5 cleanup test
     add cba09d3  #5 prepare for upcoming demo menu
     add 53865f4  #42 Html Div in Panel with css
     add e3fc1d2  #5 Tellurium sketch
     add 9b11b06  #46 Export Events for Replay
     add 92129f3  #5 RoDialog triggered with open
     add 58ca986  #46 Export Events for Replay
     add 407e069  #46 Export Events for Replay
     add 3f31044  #42 Html Div in Panel with css
     add acfacef  #46 Export Events for Replay
     add 3918d49  #46 Export Events for Replay
     add bea46e9  #5 shorten expression
     add bfbedba  #46 Export Events for Replay
     add 68d9dba  #5 shorten expression
     add 1a2b07b  #46 Export Events for Replay
     add 30b6bbf  #5 shorten expression
     add 30a4ff4  #42 collapseIfOne added
     add 2447666  #46 bind button-bar to bottom of parent and make textarea scale with parent (1/n)
     add 416e91b  #42 collapseIfOne added
     add f4788e9  #19 ChicagoFLF.ttf included. According to https://usemodify.com/fonts/chicago/ the License is SIL Open Font License, 1.1
     add c17c7be  #19 Hourglass, replacement for history icon
     add c2b2406  #19 Chicago is cute, but less readable than default
     add b4f30b9  #42 ErrorHandling improved for Primitives.Blobs
     add 572cfb4  #42 Actions.AssociatedActions renders tab
     add c13315a  #42 Security.Me: Correct Aggregator yet to be set
     add 1c5eb06  #19 Animated Logo appendable to NavBar
     add 1e260c8  #19 Apache logo in pos 2
     add f026bc9  #19 Apache Isis logo (svg))
     add 7b0480f  #19 logo tuning, status line indicates errors
     add 47c79bd  #5 update doc, remove unused code
     add e90f14e  #46 reenact setting number of rows for TextArea
     add 6339f18  #5 upgrade to KVision 2.10.1
     add ab2e42c  #5 Shorten TextArea
     add 74e3c20  #21 Amend Statusline
     add 319170e  #42 TupleDemo adds row in new place
     add 474e699  #19 Users Gude started with hint on Branding and Rendering
     add e974aab  #5 Amend Documentation
     add 04fd3cb  #42 bs3 classes removed
     add 73b2ab8  #42 Unexpected JsonDecodingException
     add 4ac2ea7  #22 Display UML Diagram
     add 8b1ccfa  #5 Amend Documentation, test for ColLayout issue, cleanup
     add ae973f4  #22 Add Slider, make Button text/icon settable
     add d638ed3  #22 Add Slider, make Button text/icon settable
     add a5e83ba  #21 Amend Statusline
     add fde860a  #21 Amend Statusline
     add d7a2b16  #5 Amend Documentation, test for ColLayout issue, cleanup
     add fc585ef  #22 Set opacity for background only
     add 34e9885  #5 cleanup, OK icon fixed
     add d29a98e  #42 Layout TO's renamed, Sample for kotlinx.serialization
     add 9083f2d  #5 cleanup
     add 8296401  #42 fix Primitives.Boolean
     add 63309ed  #22 Prepare aggregating DomainTypes
     add 80194b8  #5 Move AI logo to the left, amend dev doc
     add 12beab9  #48 UI Polishing
     add 4c8e5f9  #5 Fix Travis Build
     add b857c04  #5 Fix Travis Build
     add f29edbf  #22 DomainTypes visualized, PumlBuilder to be continued
     add ab1ec44  #22 PumlBuilder/MetaModel to be continued
     add 8a33b48  #22 Display UML Diagram with all Packages from DomainTypes
     add 137010a  #22 cleanup
     add b99363f  #5 Amend Documentation
     add d2924e3  #22 Preview Video, cleanup
     add e48328f  #5 Utils reorganized, FileHelper added, typos fixed, cleanup
     add 8049887  #5 console log's removed
     add 9469197  #42 Only single Col parsed, even with custom serializer
     add 6afcb24  #42 Revert to XML based Layout
     add fec2981  #42 Combine XML (Grid) and JSON based Layout 1/n
     add 0f759b4  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 2/n
     add f235249  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 3/n. 3 EventStoreTest's left to be fixed
     add 55dc0c1  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 4/n.  EventStoreTest.testLayout yet to be fixed
     add 1c8da56  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 5/n. properties/propertyDescriptions yet to be sorted out
     add f2b376f  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 5/n. properties/propertyDescriptions yet to be sorted out
     add 53e0ec4  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 6/n. grid added to RoDisplay
     add f2ce504  #5 cleanup
     add 3df1f2e  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 7/n. recurse into Row and collect datanucleus properties as well
     add 744b948  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 7/n. recurse into Row and collect datanucleus properties as well
     add 448fc2c  #5 rename DisplayObject* to *DisplayModel
     add 12d40be  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 8/n. multiple redundant property layouts avoided
     add f406395  #42 Combine XML (Grid) and JSON based Layout in DisplayList/Object 9/n. SimpleObject list with DN properties rendered (again)
     add dba4957  change root package name
     add 6c7745f  new root incubator/clients/kroviz
     add 01147f4  group transfer objects without behavior into PleinTransferObjects, ASF Copyright added
     add da01b3f  group handler with parse() only into PleinHandlers, ASF Copyright added
     add 9c52144  move notice
     add 07e7ed9  move notice
     add 6b19f43  ISIS-2324 Merge kroviz
     add 48e5daa  ISIS-2324 Merge kroviz, root adjusted, DevelopmentGuide amended
     add 7dbd53a  ISIS-2324 gradle called from pom.xml
     add 654a4f5  ISIS-2324 jar built, but js' missing yet
     add 21d4d87  ISIS-2324 import missed packages
     add dc5dfe0  ISIS-2324 prepare switch to build.gradle.kts
     add 166d677  ISIS-2324 Fix Object layout
     add a792a10  ISIS-2324 upgrade to kvision 3
     add 7620f4c  ISIS-2324 upgrade to *.kts
     add 38c3a2c  ISIS-2324 upgrade to *.kts, fix package names and imports
     add 626b0ae  ISIS-2324 cleanup DisplayModel hierarchy, code cosmetic
     add 5e59d51  ISIS-2324 code cleanup
     add 44f59f8  ISIS-2324 kvision3 adoption
     add 83bb471  ISIS-2324 Documentation
     add 365fa4e  ISIS-2324 code cleanup
     add 5e8b4e0  ISIS-2324 Col layout with FieldSetPanel
     add a02c13e  ISIS-2324 Documentation
     add b174330  ISIS-2324 code cleanup
     add 300530a  ISIS-2324 Documentation
     add e4a5a8f  ISIS-2324 Col layout with FieldSetPanel
     add 2bc21ac  ISIS-2324 Fix Tab layout parsing and rendering
     add 71b43e1  ISIS-2324 code cleanup
     add 0453724  ISIS-2324 Documentation
     add 93da190  ISIS-2324 code cleanup
     new c75bb57  ISIS-2324 merge branch for good
     new 65a5781  ISIS-2324 ignorance++

The 2 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:
 .idea/.gitignore                                   |    2 +
 .idea/gradle.xml                                   |   20 +
 .idea/jarRepositories.xml                          |   55 +
 .idea/kroviz.iml                                   |    9 +
 .idea/misc.xml                                     |    8 +
 .idea/modules.xml                                  |    8 +
 .idea/vcs.xml                                      |    6 +
 incubator/clients/kroviz/.gitignore                |    9 +-
 incubator/clients/kroviz/.travis.yml               |   24 +
 LICENSE => incubator/clients/kroviz/LICENSE        |    0
 incubator/clients/kroviz/README.md                 |   64 +
 incubator/clients/kroviz/build.gradle.kts          |  230 ++++
 incubator/clients/kroviz/docs/DevelopmentGuide.md  |  295 +++++
 incubator/clients/kroviz/docs/UsersGuide.md        |   76 ++
 incubator/clients/kroviz/docs/arc-overview.adoc    |   34 +
 incubator/clients/kroviz/docs/arc-overview.png     |  Bin 0 -> 164448 bytes
 incubator/clients/kroviz/docs/demo_preview.gif     |  Bin 0 -> 28473347 bytes
 incubator/clients/kroviz/docs/dev-mindmap.adoc     |   57 +
 incubator/clients/kroviz/docs/dev-mindmap.png      |  Bin 0 -> 86762 bytes
 incubator/clients/kroviz/docs/dev-overview.adoc    |   65 +
 incubator/clients/kroviz/docs/dev-overview.png     |  Bin 0 -> 88720 bytes
 incubator/clients/kroviz/docs/regression-test.adoc |   80 ++
 incubator/clients/kroviz/docs/regression-test.png  |  Bin 0 -> 240468 bytes
 incubator/clients/kroviz/docs/seq-aggregator.adoc  |   60 +
 incubator/clients/kroviz/docs/seq-aggregator.png   |  Bin 0 -> 309074 bytes
 incubator/clients/kroviz/docs/uml-aggregator.adoc  |   63 +
 incubator/clients/kroviz/docs/uml-aggregator.png   |  Bin 0 -> 161326 bytes
 incubator/clients/kroviz/docs/uml-handler.png      |  Bin 0 -> 148574 bytes
 incubator/clients/kroviz/docs/uml-hanlder.adoc     |   34 +
 incubator/clients/kroviz/docs/uml-layout.adoc      |   25 +
 incubator/clients/kroviz/docs/uml-layout.png       |  Bin 0 -> 26132 bytes
 incubator/clients/kroviz/docs/uml-overview.adoc    |  115 ++
 incubator/clients/kroviz/docs/uml-overview.png     |  Bin 0 -> 435594 bytes
 incubator/clients/kroviz/docs/uml-renderer.adoc    |   61 +
 incubator/clients/kroviz/docs/uml-renderer.png     |  Bin 0 -> 163215 bytes
 incubator/clients/kroviz/docs/uml-to.adoc          |  106 ++
 incubator/clients/kroviz/docs/uml-to.png           |  Bin 0 -> 300970 bytes
 incubator/clients/kroviz/gradle.properties         |    6 +
 .../gradle/wrapper/gradle-wrapper.properties       |    5 +
 incubator/clients/kroviz/gradlew                   |  183 +++
 incubator/clients/kroviz/gradlew.bat               |  100 ++
 incubator/clients/kroviz/images/Connect1.png       |  Bin 0 -> 3520 bytes
 incubator/clients/kroviz/images/Connect2.png       |  Bin 0 -> 13491 bytes
 incubator/clients/kroviz/images/Crow_2_(PSF).png   |  Bin 0 -> 309116 bytes
 incubator/clients/kroviz/images/DemoPrimitives.png |  Bin 0 -> 33016 bytes
 incubator/clients/kroviz/images/DemoText.png       |  Bin 0 -> 18443 bytes
 incubator/clients/kroviz/images/DemoTree.png       |  Bin 0 -> 17584 bytes
 .../clients/kroviz/images/Extinction_Symbol.svg    |   39 +
 incubator/clients/kroviz/images/ListAll1.png       |  Bin 0 -> 28186 bytes
 incubator/clients/kroviz/images/ListAll2.png       |  Bin 0 -> 26797 bytes
 incubator/clients/kroviz/images/LogEntries1.png    |  Bin 0 -> 63686 bytes
 incubator/clients/kroviz/images/LogEntries2.png    |  Bin 0 -> 21257 bytes
 incubator/clients/kroviz/images/Meuble_corbeau.png |  Bin 0 -> 9463 bytes
 incubator/clients/kroviz/images/README.md          |   37 +
 .../clients/kroviz/images/RunFixtureScript1.png    |  Bin 0 -> 20294 bytes
 .../clients/kroviz/images/RunFixtureScript2.png    |  Bin 0 -> 14751 bytes
 .../clients/kroviz/images/RunFixtureScript3.png    |  Bin 0 -> 57851 bytes
 .../clients/kroviz/images/RunFixtureScript4.png    |  Bin 0 -> 25002 bytes
 .../clients/kroviz/images/WheatFieldWithCrows.jpg  |  Bin 0 -> 264883 bytes
 .../clients/kroviz/images/WheatFieldWithCrows.png  |  Bin 0 -> 282527 bytes
 incubator/clients/kroviz/images/isis_clut.png      |  Bin 0 -> 214 bytes
 incubator/clients/kroviz/images/kroviz-logo.svg    |   56 +
 .../images/kroviz_Run_Debug_Configuration.png      |  Bin 0 -> 76837 bytes
 incubator/clients/kroviz/karma.config.d/proxy.js   |    1 +
 .../clients/kroviz/package.json.d/project.info     |    3 +
 incubator/clients/kroviz/settings.gradle.kts       |   19 +
 .../kotlin/org/apache/isis/client/kroviz/App.kt    |   37 +
 .../org/apache/isis/client/kroviz/core/Session.kt  |   56 +
 .../kroviz/core/aggregator/ActionDispatcher.kt     |   54 +
 .../kroviz/core/aggregator/BaseAggregator.kt       |   60 +
 .../kroviz/core/aggregator/DiagramDispatcher.kt    |   12 +
 .../core/aggregator/DomainTypesAggregator.kt       |   80 ++
 .../kroviz/core/aggregator/DownloadDispatcher.kt   |   12 +
 .../kroviz/core/aggregator/ErrorDispatcher.kt      |   20 +
 .../kroviz/core/aggregator/ListAggregator.kt       |  121 ++
 .../kroviz/core/aggregator/NavigationDispatcher.kt |   15 +
 .../kroviz/core/aggregator/ObjectAggregator.kt     |   83 ++
 .../kroviz/core/aggregator/RestfulDispatcher.kt    |   30 +
 .../kroviz/core/aggregator/SystemAggregator.kt     |   34 +
 .../kroviz/core/aggregator/UndefinedDispatcher.kt  |   12 +
 .../isis/client/kroviz/core/event/EventStore.kt    |  136 ++
 .../isis/client/kroviz/core/event/LogEntry.kt      |  179 +++
 .../isis/client/kroviz/core/event/ReplayEvent.kt   |   13 +
 .../kroviz/core/event/ResourceSpecification.kt     |   46 +
 .../client/kroviz/core/event/RoXmlHttpRequest.kt   |  100 ++
 .../isis/client/kroviz/core/model/DiagramDM.kt     |   37 +
 .../isis/client/kroviz/core/model/DisplayModel.kt  |   35 +
 .../kroviz/core/model/DisplayModelWithLayout.kt    |   74 ++
 .../isis/client/kroviz/core/model/Exposer.kt       |   50 +
 .../apache/isis/client/kroviz/core/model/ListDM.kt |   20 +
 .../isis/client/kroviz/core/model/ObjectDM.kt      |   65 +
 .../isis/client/kroviz/core/model/SystemDM.kt      |   27 +
 .../client/kroviz/core/model/meta/MetaAction.kt    |    5 +
 .../client/kroviz/core/model/meta/MetaClass.kt     |   29 +
 .../client/kroviz/core/model/meta/MetaPackage.kt   |    5 +
 .../client/kroviz/core/model/meta/MetaProperty.kt  |    5 +
 .../isis/client/kroviz/handler/ActionHandler.kt    |   21 +
 .../isis/client/kroviz/handler/BaseHandler.kt      |   67 +
 .../isis/client/kroviz/handler/DefaultHandler.kt   |   13 +
 .../isis/client/kroviz/handler/DiagramHandler.kt   |   11 +
 .../client/kroviz/handler/DomainTypesHandler.kt    |   22 +
 .../isis/client/kroviz/handler/HttpErrorHandler.kt |   20 +
 .../isis/client/kroviz/handler/LayoutHandler.kt    |   25 +
 .../isis/client/kroviz/handler/LayoutXmlHandler.kt |   23 +
 .../isis/client/kroviz/handler/PlainHandlers.kt    |   85 ++
 .../isis/client/kroviz/handler/ResponseHandler.kt  |   59 +
 .../isis/client/kroviz/handler/RestfulHandler.kt   |   21 +
 .../client/kroviz/handler/ResultListHandler.kt     |   21 +
 .../client/kroviz/handler/ResultObjectHandler.kt   |   21 +
 .../client/kroviz/handler/ResultValueHandler.kt    |   21 +
 .../apache/isis/client/kroviz/layout/ActionLt.kt   |   21 +
 .../org/apache/isis/client/kroviz/layout/ColLt.kt  |   28 +
 .../isis/client/kroviz/layout/CollectionLt.kt      |   20 +
 .../org/apache/isis/client/kroviz/layout/ColsLt.kt |   18 +
 .../isis/client/kroviz/layout/DomainObjectLt.kt    |   16 +
 .../apache/isis/client/kroviz/layout/FieldSetLt.kt |   14 +
 .../org/apache/isis/client/kroviz/layout/Layout.kt |   13 +
 .../apache/isis/client/kroviz/layout/PropertyLt.kt |   24 +
 .../org/apache/isis/client/kroviz/layout/RowLt.kt  |   11 +
 .../apache/isis/client/kroviz/layout/TabGroupLt.kt |   11 +
 .../org/apache/isis/client/kroviz/layout/TabLt.kt  |    9 +
 .../org/apache/isis/client/kroviz/to/Action.kt     |   21 +
 .../org/apache/isis/client/kroviz/to/Argument.kt   |   18 +
 .../org/apache/isis/client/kroviz/to/IResult.kt    |   29 +
 .../org/apache/isis/client/kroviz/to/Link.kt       |   58 +
 .../org/apache/isis/client/kroviz/to/Member.kt     |   38 +
 .../org/apache/isis/client/kroviz/to/Parameter.kt  |   50 +
 .../isis/client/kroviz/to/PlainTransferObjects.kt  |  197 +++
 .../org/apache/isis/client/kroviz/to/TObject.kt    |   41 +
 .../apache/isis/client/kroviz/to/TransferObject.kt |   26 +
 .../org/apache/isis/client/kroviz/to/TypeMapper.kt |   49 +
 .../org/apache/isis/client/kroviz/to/Value.kt      |   66 +
 .../org/apache/isis/client/kroviz/to/bs3/Action.kt |   41 +
 .../org/apache/isis/client/kroviz/to/bs3/Col.kt    |   54 +
 .../isis/client/kroviz/to/bs3/DomainObject.kt      |   27 +
 .../apache/isis/client/kroviz/to/bs3/FieldSet.kt   |   35 +
 .../org/apache/isis/client/kroviz/to/bs3/Grid.kt   |   37 +
 .../org/apache/isis/client/kroviz/to/bs3/Link.kt   |   40 +
 .../apache/isis/client/kroviz/to/bs3/Property.kt   |   47 +
 .../org/apache/isis/client/kroviz/to/bs3/Row.kt    |   32 +
 .../org/apache/isis/client/kroviz/to/bs3/Tab.kt    |   31 +
 .../apache/isis/client/kroviz/to/bs3/TabGroup.kt   |   29 +
 .../org/apache/isis/client/kroviz/to/mb/Menu.kt    |   11 +
 .../apache/isis/client/kroviz/to/mb/MenuEntry.kt   |    9 +
 .../apache/isis/client/kroviz/to/mb/Menubars.kt    |   11 +
 .../org/apache/isis/client/kroviz/to/mb/Section.kt |    9 +
 .../isis/client/kroviz/to/mb/ServiceAction.kt      |   19 +
 .../apache/isis/client/kroviz/ui/ClassDiagram.kt   |   30 +
 .../org/apache/isis/client/kroviz/ui/Command.kt    |   15 +
 .../apache/isis/client/kroviz/ui/Displayable.kt    |    8 +
 .../org/apache/isis/client/kroviz/ui/ErrorAlert.kt |   35 +
 .../apache/isis/client/kroviz/ui/EventLogDetail.kt |   26 +
 .../apache/isis/client/kroviz/ui/ExportAlert.kt    |   49 +
 .../org/apache/isis/client/kroviz/ui/FileAlert.kt  |   25 +
 .../org/apache/isis/client/kroviz/ui/FormItem.kt   |   57 +
 .../apache/isis/client/kroviz/ui/IconManager.kt    |  136 ++
 .../org/apache/isis/client/kroviz/ui/ImageAlert.kt |   42 +
 .../org/apache/isis/client/kroviz/ui/Point.kt      |    3 +
 .../apache/isis/client/kroviz/ui/PumlBuilder.kt    |   88 ++
 .../apache/isis/client/kroviz/ui/UndefinedAlert.kt |   30 +
 .../isis/client/kroviz/ui/builder/ColBuilder.kt    |   30 +
 .../client/kroviz/ui/builder/FieldSetBuilder.kt    |   47 +
 .../isis/client/kroviz/ui/builder/LayoutBuilder.kt |   27 +
 .../isis/client/kroviz/ui/builder/RowBuilder.kt    |   45 +
 .../isis/client/kroviz/ui/builder/TabBuilder.kt    |   27 +
 .../client/kroviz/ui/builder/TabGroupBuilder.kt    |   25 +
 .../isis/client/kroviz/ui/kv/ActionPrompt.kt       |   93 ++
 .../isis/client/kroviz/ui/kv/ColumnFactory.kt      |  145 +++
 .../isis/client/kroviz/ui/kv/EventLogTable.kt      |   84 ++
 .../isis/client/kroviz/ui/kv/FormPanelFactory.kt   |  151 +++
 .../apache/isis/client/kroviz/ui/kv/LoginPrompt.kt |   57 +
 .../apache/isis/client/kroviz/ui/kv/MenuFactory.kt |  109 ++
 .../isis/client/kroviz/ui/kv/PlantumlPanel.kt      |   49 +
 .../org/apache/isis/client/kroviz/ui/kv/RoApp.kt   |   14 +
 .../apache/isis/client/kroviz/ui/kv/RoDialog.kt    |   91 ++
 .../apache/isis/client/kroviz/ui/kv/RoDisplay.kt   |   45 +
 .../apache/isis/client/kroviz/ui/kv/RoMenuBar.kt   |   86 ++
 .../isis/client/kroviz/ui/kv/RoSimplePanel.kt      |   11 +
 .../apache/isis/client/kroviz/ui/kv/RoStatusBar.kt |   85 ++
 .../apache/isis/client/kroviz/ui/kv/RoTabPanel.kt  |   30 +
 .../org/apache/isis/client/kroviz/ui/kv/RoTable.kt |   46 +
 .../apache/isis/client/kroviz/ui/kv/RoToolPanel.kt |   26 +
 .../org/apache/isis/client/kroviz/ui/kv/RoView.kt  |   59 +
 .../apache/isis/client/kroviz/ui/kv/ToolButton.kt  |   27 +
 .../apache/isis/client/kroviz/ui/kv/UiManager.kt   |  164 +++
 .../apache/isis/client/kroviz/utils/DateHelper.kt  |   37 +
 .../apache/isis/client/kroviz/utils/DomHelper.kt   |   29 +
 .../apache/isis/client/kroviz/utils/FileHelper.kt  |   15 +
 .../apache/isis/client/kroviz/utils/UmlUtils.kt    |   23 +
 .../org/apache/isis/client/kroviz/utils/Utils.kt   |  161 +++
 .../apache/isis/client/kroviz/utils/XmlHelper.kt   |   33 +
 .../kroviz/src/main/resources}/bootstrap3.xsd      |    0
 .../src/main/resources/component/component.xsd     |  179 +++
 .../kroviz/src/main/resources/css/kroviz.css       |  146 +++
 .../kroviz/src/main/resources/fonts/ChicagoFLF.ttf |  Bin 0 -> 31256 bytes
 .../kroviz/src/main/resources/hbs/template1.en.hbs |    2 +
 .../kroviz/src/main/resources/hbs/template1.pl.hbs |    2 +
 .../resources/img/2-2-clapperboard-png-thumb.png   |  Bin 0 -> 4213 bytes
 .../clients/kroviz/src/main/resources/img/crow.gif |  Bin 0 -> 5560 bytes
 .../kroviz/src/main/resources/img/favicon.ico      |  Bin 0 -> 32038 bytes
 .../kroviz/src/main/resources/img/kroviz-logo.svg  |   56 +
 .../main/resources/img/plantUml_stateSample.svg    |  136 ++
 .../kroviz/src/main/resources/img/uml-overview.png |  Bin 0 -> 435594 bytes
 .../kroviz/src/main/resources}/links/links.xsd     |    0
 incubator/clients/kroviz/src/main/web/index.html   |   14 +
 .../org/apache/isis/client/kroviz/AppSpec.kt       |   14 +
 .../apache/isis/client/kroviz/IconManagerTest.kt   |    0
 .../apache/isis/client/kroviz/IntegrationTest.kt   |   68 +
 .../apache/isis/client/kroviz/PumlBuilderTest.kt   |   32 +
 .../org/apache/isis/client/kroviz/TestUtil.kt      |   32 +
 .../apache/isis/client/kroviz/core/UtilsTest.kt    |  102 ++
 .../kroviz/core/aggregator/ListAggregatorTest.kt   |   76 ++
 .../kroviz/core/aggregator/ObjectAggregatorTest.kt |   36 +
 .../client/kroviz/core/event/EventStoreTest.kt     |  195 +++
 .../isis/client/kroviz/core/event/LogEntryTest.kt  |   26 +
 .../client/kroviz/core/model/DisplayListTest.kt    |   76 ++
 .../isis/client/kroviz/core/model/ExposerTest.kt   |   57 +
 .../client/kroviz/core/model/FixtureResultTest.kt  |   52 +
 .../client/kroviz/handler/PropertyHandlerTest.kt   |   19 +
 .../client/kroviz/handler/RestfulHandlerTest.kt    |   23 +
 .../apache/isis/client/kroviz/layout/LayoutTest.kt |   24 +
 .../client/kroviz/snapshots/FR_OBJECT_LAYOUT.json  |  248 ++++
 .../isis/client/kroviz/snapshots/LAYOUT.adoc       |  380 ++++++
 .../isis/client/kroviz/snapshots/LAYOUT.puml       |  376 ++++++
 .../apache/isis/client/kroviz/snapshots/LAYOUT.svg |  389 ++++++
 .../isis/client/kroviz/snapshots/Response.kt       |    6 +
 .../snapshots/demo2_0_0/ACTIONS_TEXT_INVOKE.kt     |  150 +++
 .../DEMO_ASSOCIATED_ACTION_OBJECT_LAYOUT.kt        |  262 ++++
 .../kroviz/snapshots/demo2_0_0/DEMO_FILE_NODE.kt   |  105 ++
 .../snapshots/demo2_0_0/DEMO_HTTP_ERROR_500.kt     |  646 ++++++++++
 .../kroviz/snapshots/demo2_0_0/DEMO_MENUBARS.kt    |  990 +++++++++++++++
 .../snapshots/demo2_0_0/DEMO_OBJECT_LAYOUT.kt      |  328 +++++
 .../kroviz/snapshots/demo2_0_0/DEMO_PRIMITIVES.kt  |  562 +++++++++
 .../kroviz/snapshots/demo2_0_0/DEMO_PROPERTY.kt    |   51 +
 .../demo2_0_0/DEMO_PROPERTY_DESCRIPTION.kt         |   38 +
 .../demo2_0_0/DEMO_RESTFUL_DOMAIN_TYPES.kt         | 1061 ++++++++++++++++
 .../snapshots/demo2_0_0/DEMO_TAB_LAYOUT_XML.kt     |  160 +++
 .../snapshots/demo2_0_0/DEMO_TAB_OBJECT_LAYOUT.kt  |  387 ++++++
 .../kroviz/snapshots/demo2_0_0/DEMO_TEMPORALS.kt   |  186 +++
 .../kroviz/snapshots/demo2_0_0/DEMO_TEXT_LAYOUT.kt |  327 +++++
 .../demo2_0_0/DEMO_TOOLTIP_OBJECT_LAYOUT.kt        |  563 +++++++++
 .../demo2_0_0/DEMO_TUPLE_OBJECT_LAYOUT.kt          |  473 +++++++
 .../kroviz/snapshots/demo2_0_0/HTTP_ERROR_405.kt   |  125 ++
 .../demo2_0_0/ISIS_SECURITY_ME_SERVICE.kt          |  431 +++++++
 .../isis/client/kroviz/snapshots/sample.json       |  347 ++++++
 .../apache/isis/client/kroviz/snapshots/sample.xml |   88 ++
 .../snapshots/simpleapp1_16_0/ACTIONS_CREATE.kt    |   55 +
 .../snapshots/simpleapp1_16_0/ACTIONS_DELETE.kt    |   44 +
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_LAYOUTS.kt    |   53 +
 .../ACTIONS_DOWNLOAD_MENUBARS_LAYOUT.kt            |   62 +
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_META_MODEL.kt |   53 +
 .../ACTIONS_DOWNLOAD_SWAGGER_SCHEMA_DEFINITION.kt  |   73 ++
 .../ACTIONS_DOWNLOAD_TRANSLATIONS.kt               |   59 +
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_VALUE.kt      |   32 +
 .../simpleapp1_16_0/ACTIONS_FIND_BY_NAME.kt        |   55 +
 .../simpleapp1_16_0/ACTIONS_OPEN_SWAGGER_UI.kt     |   31 +
 .../simpleapp1_16_0/ACTIONS_RUN_FIXTURE_SCRIPT.kt  |   80 ++
 .../snapshots/simpleapp1_16_0/ACTION_SO_CREATE.kt  |  154 +++
 .../kroviz/snapshots/simpleapp1_16_0/CFG_1.kt      |  120 ++
 .../snapshots/simpleapp1_16_0/CFG_LAYOUT_JSON.kt   |  299 +++++
 .../snapshots/simpleapp1_16_0/CFG_LAYOUT_XML.kt    |   97 ++
 .../kroviz/snapshots/simpleapp1_16_0/FR_OBJECT.kt  |  161 +++
 .../snapshots/simpleapp1_16_0/FR_OBJECT_BAZ.kt     |  167 +++
 .../snapshots/simpleapp1_16_0/FR_OBJECT_FRODO.kt   |  146 +++
 .../snapshots/simpleapp1_16_0/FR_OBJECT_LAYOUT.kt  |   94 ++
 .../simpleapp1_16_0/FR_OBJECT_PROPERTY.kt          |   37 +
 .../simpleapp1_16_0/FR_OBJECT_PROPERTY_.kt         |   40 +
 .../simpleapp1_16_0/FR_PROPERTY_DESCRIPTION.kt     |   35 +
 .../kroviz/snapshots/simpleapp1_16_0/HTTP_ERROR.kt |   88 ++
 .../snapshots/simpleapp1_16_0/HTTP_ERROR_404.kt    |   13 +
 .../snapshots/simpleapp1_16_0/HTTP_ERROR_405.kt    |   81 ++
 .../HTTP_ERROR_500_UNIQUE_CONSTRAINT_VIOLATION.kt  |  308 +++++
 .../kroviz/snapshots/simpleapp1_16_0/RESTFUL.kt    |   41 +
 .../simpleapp1_16_0/RESTFUL_DOMAIN_TYPES.kt        | 1294 ++++++++++++++++++++
 .../snapshots/simpleapp1_16_0/RESTFUL_MENUBARS.kt  |  386 ++++++
 .../snapshots/simpleapp1_16_0/RESTFUL_SERVICES.kt  |   84 ++
 .../snapshots/simpleapp1_16_0/RESTFUL_USER.kt      |   28 +
 .../snapshots/simpleapp1_16_0/RESTFUL_VERSION.kt   |   31 +
 .../snapshots/simpleapp1_16_0/SECONDARY_MENU.kt    |   58 +
 .../client/kroviz/snapshots/simpleapp1_16_0/SO.kt  |  111 ++
 .../kroviz/snapshots/simpleapp1_16_0/SO_0.kt       |  188 +++
 .../kroviz/snapshots/simpleapp1_16_0/SO_1.kt       |  201 +++
 .../snapshots/simpleapp1_16_0/SO_LAYOUT_JSON.kt    |  356 ++++++
 .../snapshots/simpleapp1_16_0/SO_LAYOUT_XML.kt     |   82 ++
 .../snapshots/simpleapp1_16_0/SO_LIST_ALL.kt       |   45 +
 .../simpleapp1_16_0/SO_LIST_ALL_INVOKE.kt          |  102 ++
 .../simpleapp1_16_0/SO_LIST_ALL_OBJECTS.kt         |  110 ++
 .../kroviz/snapshots/simpleapp1_16_0/SO_MENU.kt    |   82 ++
 .../snapshots/simpleapp1_16_0/SO_OBJECT_LAYOUT.kt  |  354 ++++++
 .../snapshots/simpleapp1_16_0/SO_PROPERTY.kt       |   45 +
 .../kroviz/snapshots/simpleapp1_16_0/UrlsTest.kt   |   57 +
 .../org/apache/isis/client/kroviz/to/ActionTest.kt |  232 ++++
 .../apache/isis/client/kroviz/to/DomainTypeTest.kt |   56 +
 .../isis/client/kroviz/to/FeaturedTypesTest.kt     |   74 ++
 .../apache/isis/client/kroviz/to/HttpErrorTest.kt  |   85 ++
 .../org/apache/isis/client/kroviz/to/LinkTest.kt   |   42 +
 .../org/apache/isis/client/kroviz/to/MemberTest.kt |   74 ++
 .../apache/isis/client/kroviz/to/PropertyTest.kt   |   65 +
 .../apache/isis/client/kroviz/to/ResultListTest.kt |   21 +
 .../isis/client/kroviz/to/ResultObjectTest.kt      |   28 +
 .../isis/client/kroviz/to/ResultValueTest.kt       |   41 +
 .../apache/isis/client/kroviz/to/ServiceTest.kt    |   40 +
 .../apache/isis/client/kroviz/to/TObjectTest.kt    |   92 ++
 .../org/apache/isis/client/kroviz/to/ToTest.kt     |   11 +
 .../org/apache/isis/client/kroviz/to/UserTest.kt   |   18 +
 .../apache/isis/client/kroviz/to/VersionTest.kt    |   19 +
 .../isis/client/kroviz/to/bs3/LayoutXmlTest.kt     |   70 ++
 .../isis/client/kroviz/to/mb/MenubarsTest.kt       |   86 ++
 .../isis/client/kroviz/ui/IconManagerTest.kt       |   19 +
 .../client/kroviz/ui/table/TableFactoryTest.kt     |   47 +
 .../clients/kroviz/translation/messages-de.po      |   23 +
 .../clients/kroviz/translation/messages-en.po      |   23 +
 .../clients/kroviz/translation/messages-es.po      |   23 +
 incubator/clients/kroviz/translation/messages.pot  |   22 +
 .../clients/kroviz/webpack.config.d/bootstrap.js   |    3 +
 incubator/clients/kroviz/webpack.config.d/css.js   |    2 +
 incubator/clients/kroviz/webpack.config.d/file.js  |    9 +
 .../clients/kroviz/webpack.config.d/handlebars.js  |    6 +
 incubator/clients/kroviz/webpack.config.d/jed.js   |    7 +
 .../clients/kroviz/webpack.config.d/jquery.js      |    9 +
 .../clients/kroviz/webpack.config.d/minify.js      |   17 +
 .../clients/kroviz/webpack.config.d/moment.js      |   12 +
 .../clients/kroviz/webpack.config.d/webpack.js     |   39 +
 incubator/pom.xml                                  |   31 +-
 324 files changed, 24930 insertions(+), 16 deletions(-)
 create mode 100644 .idea/.gitignore
 create mode 100644 .idea/gradle.xml
 create mode 100644 .idea/jarRepositories.xml
 create mode 100644 .idea/kroviz.iml
 create mode 100644 .idea/misc.xml
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/vcs.xml
 create mode 100644 incubator/clients/kroviz/.travis.yml
 copy LICENSE => incubator/clients/kroviz/LICENSE (100%)
 create mode 100644 incubator/clients/kroviz/README.md
 create mode 100644 incubator/clients/kroviz/build.gradle.kts
 create mode 100644 incubator/clients/kroviz/docs/DevelopmentGuide.md
 create mode 100644 incubator/clients/kroviz/docs/UsersGuide.md
 create mode 100644 incubator/clients/kroviz/docs/arc-overview.adoc
 create mode 100644 incubator/clients/kroviz/docs/arc-overview.png
 create mode 100644 incubator/clients/kroviz/docs/demo_preview.gif
 create mode 100644 incubator/clients/kroviz/docs/dev-mindmap.adoc
 create mode 100644 incubator/clients/kroviz/docs/dev-mindmap.png
 create mode 100644 incubator/clients/kroviz/docs/dev-overview.adoc
 create mode 100644 incubator/clients/kroviz/docs/dev-overview.png
 create mode 100644 incubator/clients/kroviz/docs/regression-test.adoc
 create mode 100644 incubator/clients/kroviz/docs/regression-test.png
 create mode 100644 incubator/clients/kroviz/docs/seq-aggregator.adoc
 create mode 100644 incubator/clients/kroviz/docs/seq-aggregator.png
 create mode 100644 incubator/clients/kroviz/docs/uml-aggregator.adoc
 create mode 100644 incubator/clients/kroviz/docs/uml-aggregator.png
 create mode 100644 incubator/clients/kroviz/docs/uml-handler.png
 create mode 100644 incubator/clients/kroviz/docs/uml-hanlder.adoc
 create mode 100644 incubator/clients/kroviz/docs/uml-layout.adoc
 create mode 100644 incubator/clients/kroviz/docs/uml-layout.png
 create mode 100644 incubator/clients/kroviz/docs/uml-overview.adoc
 create mode 100644 incubator/clients/kroviz/docs/uml-overview.png
 create mode 100644 incubator/clients/kroviz/docs/uml-renderer.adoc
 create mode 100644 incubator/clients/kroviz/docs/uml-renderer.png
 create mode 100644 incubator/clients/kroviz/docs/uml-to.adoc
 create mode 100644 incubator/clients/kroviz/docs/uml-to.png
 create mode 100644 incubator/clients/kroviz/gradle.properties
 create mode 100644 incubator/clients/kroviz/gradle/wrapper/gradle-wrapper.properties
 create mode 100644 incubator/clients/kroviz/gradlew
 create mode 100644 incubator/clients/kroviz/gradlew.bat
 create mode 100644 incubator/clients/kroviz/images/Connect1.png
 create mode 100644 incubator/clients/kroviz/images/Connect2.png
 create mode 100644 incubator/clients/kroviz/images/Crow_2_(PSF).png
 create mode 100644 incubator/clients/kroviz/images/DemoPrimitives.png
 create mode 100644 incubator/clients/kroviz/images/DemoText.png
 create mode 100644 incubator/clients/kroviz/images/DemoTree.png
 create mode 100644 incubator/clients/kroviz/images/Extinction_Symbol.svg
 create mode 100644 incubator/clients/kroviz/images/ListAll1.png
 create mode 100644 incubator/clients/kroviz/images/ListAll2.png
 create mode 100644 incubator/clients/kroviz/images/LogEntries1.png
 create mode 100644 incubator/clients/kroviz/images/LogEntries2.png
 create mode 100644 incubator/clients/kroviz/images/Meuble_corbeau.png
 create mode 100644 incubator/clients/kroviz/images/README.md
 create mode 100644 incubator/clients/kroviz/images/RunFixtureScript1.png
 create mode 100644 incubator/clients/kroviz/images/RunFixtureScript2.png
 create mode 100644 incubator/clients/kroviz/images/RunFixtureScript3.png
 create mode 100644 incubator/clients/kroviz/images/RunFixtureScript4.png
 create mode 100644 incubator/clients/kroviz/images/WheatFieldWithCrows.jpg
 create mode 100644 incubator/clients/kroviz/images/WheatFieldWithCrows.png
 create mode 100644 incubator/clients/kroviz/images/isis_clut.png
 create mode 100644 incubator/clients/kroviz/images/kroviz-logo.svg
 create mode 100644 incubator/clients/kroviz/images/kroviz_Run_Debug_Configuration.png
 create mode 100644 incubator/clients/kroviz/karma.config.d/proxy.js
 create mode 100644 incubator/clients/kroviz/package.json.d/project.info
 create mode 100644 incubator/clients/kroviz/settings.gradle.kts
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/App.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/Session.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ActionDispatcher.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/BaseAggregator.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/DiagramDispatcher.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/DomainTypesAggregator.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/DownloadDispatcher.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ErrorDispatcher.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ListAggregator.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/NavigationDispatcher.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/ObjectAggregator.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/RestfulDispatcher.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/SystemAggregator.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/UndefinedDispatcher.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/EventStore.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/LogEntry.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ReplayEvent.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/ResourceSpecification.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/event/RoXmlHttpRequest.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DiagramDM.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModel.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/DisplayModelWithLayout.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/Exposer.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ListDM.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/ObjectDM.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/SystemDM.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/meta/MetaAction.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/meta/MetaClass.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/meta/MetaPackage.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/model/meta/MetaProperty.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/ActionHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/BaseHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/DefaultHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/DiagramHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/DomainTypesHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/HttpErrorHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/LayoutHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/LayoutXmlHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/PlainHandlers.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/ResponseHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/RestfulHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/ResultListHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/ResultObjectHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/handler/ResultValueHandler.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/ActionLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/ColLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/CollectionLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/ColsLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/DomainObjectLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/FieldSetLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/Layout.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/PropertyLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/RowLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/TabGroupLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/layout/TabLt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Action.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/IResult.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Link.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Member.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Parameter.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/PlainTransferObjects.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TObject.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TransferObject.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TypeMapper.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Value.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Action.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Col.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/DomainObject.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/FieldSet.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Grid.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Link.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Property.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Row.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Tab.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/TabGroup.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Menu.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/MenuEntry.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Menubars.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Section.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/ServiceAction.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ClassDiagram.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/Command.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/Displayable.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ErrorAlert.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/EventLogDetail.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ExportAlert.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FileAlert.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/IconManager.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/ImageAlert.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/Point.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/PumlBuilder.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/UndefinedAlert.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/ColBuilder.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/FieldSetBuilder.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/LayoutBuilder.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/RowBuilder.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/TabBuilder.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/TabGroupBuilder.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/ActionPrompt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/ColumnFactory.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/EventLogTable.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/FormPanelFactory.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/LoginPrompt.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/MenuFactory.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/PlantumlPanel.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoApp.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoDialog.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoDisplay.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoMenuBar.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoSimplePanel.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoStatusBar.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoTabPanel.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoTable.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoToolPanel.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/RoView.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/ToolButton.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/UiManager.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/DateHelper.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/DomHelper.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/FileHelper.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/UmlUtils.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/Utils.kt
 create mode 100644 incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/XmlHelper.kt
 copy {antora/supplemental-ui/applib/layout/grid/bootstrap3 => incubator/clients/kroviz/src/main/resources}/bootstrap3.xsd (100%)
 create mode 100644 incubator/clients/kroviz/src/main/resources/component/component.xsd
 create mode 100644 incubator/clients/kroviz/src/main/resources/css/kroviz.css
 create mode 100644 incubator/clients/kroviz/src/main/resources/fonts/ChicagoFLF.ttf
 create mode 100644 incubator/clients/kroviz/src/main/resources/hbs/template1.en.hbs
 create mode 100644 incubator/clients/kroviz/src/main/resources/hbs/template1.pl.hbs
 create mode 100644 incubator/clients/kroviz/src/main/resources/img/2-2-clapperboard-png-thumb.png
 create mode 100644 incubator/clients/kroviz/src/main/resources/img/crow.gif
 create mode 100644 incubator/clients/kroviz/src/main/resources/img/favicon.ico
 create mode 100644 incubator/clients/kroviz/src/main/resources/img/kroviz-logo.svg
 create mode 100644 incubator/clients/kroviz/src/main/resources/img/plantUml_stateSample.svg
 create mode 100644 incubator/clients/kroviz/src/main/resources/img/uml-overview.png
 copy {antora/supplemental-ui/applib/layout => incubator/clients/kroviz/src/main/resources}/links/links.xsd (100%)
 create mode 100644 incubator/clients/kroviz/src/main/web/index.html
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/AppSpec.kt
 copy testing/unittestsupport/applib/xml/objects/CUS/2.xml => incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/IconManagerTest.kt (100%)
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/IntegrationTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/PumlBuilderTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/TestUtil.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/UtilsTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/aggregator/ListAggregatorTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/aggregator/ObjectAggregatorTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/EventStoreTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/LogEntryTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/model/DisplayListTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/model/ExposerTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/model/FixtureResultTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/PropertyHandlerTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/RestfulHandlerTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/layout/LayoutTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/FR_OBJECT_LAYOUT.json
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/LAYOUT.adoc
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/LAYOUT.puml
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/LAYOUT.svg
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/Response.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/ACTIONS_TEXT_INVOKE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_ASSOCIATED_ACTION_OBJECT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_FILE_NODE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_HTTP_ERROR_500.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_MENUBARS.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_OBJECT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_PRIMITIVES.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_PROPERTY.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_PROPERTY_DESCRIPTION.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_RESTFUL_DOMAIN_TYPES.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_TAB_LAYOUT_XML.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_TAB_OBJECT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_TEMPORALS.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_TEXT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_TOOLTIP_OBJECT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/DEMO_TUPLE_OBJECT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/HTTP_ERROR_405.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/demo2_0_0/ISIS_SECURITY_ME_SERVICE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/sample.json
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/sample.xml
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_CREATE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_DELETE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_DOWNLOAD_LAYOUTS.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_DOWNLOAD_MENUBARS_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_DOWNLOAD_META_MODEL.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_DOWNLOAD_SWAGGER_SCHEMA_DEFINITION.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_DOWNLOAD_TRANSLATIONS.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_DOWNLOAD_VALUE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_FIND_BY_NAME.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_OPEN_SWAGGER_UI.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTIONS_RUN_FIXTURE_SCRIPT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/ACTION_SO_CREATE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/CFG_1.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/CFG_LAYOUT_JSON.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/CFG_LAYOUT_XML.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/FR_OBJECT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/FR_OBJECT_BAZ.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/FR_OBJECT_FRODO.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/FR_OBJECT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/FR_OBJECT_PROPERTY.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/FR_OBJECT_PROPERTY_.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/FR_PROPERTY_DESCRIPTION.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/HTTP_ERROR.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/HTTP_ERROR_404.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/HTTP_ERROR_405.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/HTTP_ERROR_500_UNIQUE_CONSTRAINT_VIOLATION.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/RESTFUL.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/RESTFUL_DOMAIN_TYPES.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/RESTFUL_MENUBARS.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/RESTFUL_SERVICES.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/RESTFUL_USER.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/RESTFUL_VERSION.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SECONDARY_MENU.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_0.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_1.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_LAYOUT_JSON.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_LAYOUT_XML.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_LIST_ALL.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_LIST_ALL_INVOKE.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_LIST_ALL_OBJECTS.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_MENU.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_OBJECT_LAYOUT.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/SO_PROPERTY.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/snapshots/simpleapp1_16_0/UrlsTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ActionTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/DomainTypeTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/FeaturedTypesTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/HttpErrorTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/LinkTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/PropertyTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ResultListTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ResultObjectTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ResultValueTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ServiceTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/TObjectTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ToTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/UserTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/VersionTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/bs3/LayoutXmlTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/mb/MenubarsTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/IconManagerTest.kt
 create mode 100644 incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/ui/table/TableFactoryTest.kt
 create mode 100644 incubator/clients/kroviz/translation/messages-de.po
 create mode 100644 incubator/clients/kroviz/translation/messages-en.po
 create mode 100644 incubator/clients/kroviz/translation/messages-es.po
 create mode 100644 incubator/clients/kroviz/translation/messages.pot
 create mode 100644 incubator/clients/kroviz/webpack.config.d/bootstrap.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/css.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/file.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/handlebars.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/jed.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/jquery.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/minify.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/moment.js
 create mode 100644 incubator/clients/kroviz/webpack.config.d/webpack.js


[isis] 01/02: ISIS-2324 merge branch for good

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 c75bb57de682b84899bd92802b1fc704f2cb0b8c
Merge: 00880a1 93da190
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Wed Apr 8 18:17:42 2020 +0200

    ISIS-2324 merge branch for good

 .idea/.gitignore                                   |    2 +
 .idea/gradle.xml                                   |   20 +
 .idea/jarRepositories.xml                          |   55 +
 .idea/kroviz.iml                                   |    9 +
 .idea/misc.xml                                     |    8 +
 .idea/modules.xml                                  |    8 +
 .idea/vcs.xml                                      |    6 +
 incubator/clients/kroviz/.gitignore                |    7 +
 incubator/clients/kroviz/.travis.yml               |   24 +
 incubator/clients/kroviz/LICENSE                   |  201 +++
 incubator/clients/kroviz/README.md                 |   64 +
 incubator/clients/kroviz/build.gradle.kts          |  230 ++++
 incubator/clients/kroviz/docs/DevelopmentGuide.md  |  295 +++++
 incubator/clients/kroviz/docs/UsersGuide.md        |   76 ++
 incubator/clients/kroviz/docs/arc-overview.adoc    |   34 +
 incubator/clients/kroviz/docs/arc-overview.png     |  Bin 0 -> 164448 bytes
 incubator/clients/kroviz/docs/demo_preview.gif     |  Bin 0 -> 28473347 bytes
 incubator/clients/kroviz/docs/dev-mindmap.adoc     |   57 +
 incubator/clients/kroviz/docs/dev-mindmap.png      |  Bin 0 -> 86762 bytes
 incubator/clients/kroviz/docs/dev-overview.adoc    |   65 +
 incubator/clients/kroviz/docs/dev-overview.png     |  Bin 0 -> 88720 bytes
 incubator/clients/kroviz/docs/regression-test.adoc |   80 ++
 incubator/clients/kroviz/docs/regression-test.png  |  Bin 0 -> 240468 bytes
 incubator/clients/kroviz/docs/seq-aggregator.adoc  |   60 +
 incubator/clients/kroviz/docs/seq-aggregator.png   |  Bin 0 -> 309074 bytes
 incubator/clients/kroviz/docs/uml-aggregator.adoc  |   63 +
 incubator/clients/kroviz/docs/uml-aggregator.png   |  Bin 0 -> 161326 bytes
 incubator/clients/kroviz/docs/uml-handler.png      |  Bin 0 -> 148574 bytes
 incubator/clients/kroviz/docs/uml-hanlder.adoc     |   34 +
 incubator/clients/kroviz/docs/uml-layout.adoc      |   25 +
 incubator/clients/kroviz/docs/uml-layout.png       |  Bin 0 -> 26132 bytes
 incubator/clients/kroviz/docs/uml-overview.adoc    |  115 ++
 incubator/clients/kroviz/docs/uml-overview.png     |  Bin 0 -> 435594 bytes
 incubator/clients/kroviz/docs/uml-renderer.adoc    |   61 +
 incubator/clients/kroviz/docs/uml-renderer.png     |  Bin 0 -> 163215 bytes
 incubator/clients/kroviz/docs/uml-to.adoc          |  106 ++
 incubator/clients/kroviz/docs/uml-to.png           |  Bin 0 -> 300970 bytes
 incubator/clients/kroviz/gradle.properties         |    6 +
 .../gradle/wrapper/gradle-wrapper.properties       |    5 +
 incubator/clients/kroviz/gradlew                   |  183 +++
 incubator/clients/kroviz/gradlew.bat               |  100 ++
 incubator/clients/kroviz/images/Connect1.png       |  Bin 0 -> 3520 bytes
 incubator/clients/kroviz/images/Connect2.png       |  Bin 0 -> 13491 bytes
 incubator/clients/kroviz/images/Crow_2_(PSF).png   |  Bin 0 -> 309116 bytes
 incubator/clients/kroviz/images/DemoPrimitives.png |  Bin 0 -> 33016 bytes
 incubator/clients/kroviz/images/DemoText.png       |  Bin 0 -> 18443 bytes
 incubator/clients/kroviz/images/DemoTree.png       |  Bin 0 -> 17584 bytes
 .../clients/kroviz/images/Extinction_Symbol.svg    |   39 +
 incubator/clients/kroviz/images/ListAll1.png       |  Bin 0 -> 28186 bytes
 incubator/clients/kroviz/images/ListAll2.png       |  Bin 0 -> 26797 bytes
 incubator/clients/kroviz/images/LogEntries1.png    |  Bin 0 -> 63686 bytes
 incubator/clients/kroviz/images/LogEntries2.png    |  Bin 0 -> 21257 bytes
 incubator/clients/kroviz/images/Meuble_corbeau.png |  Bin 0 -> 9463 bytes
 incubator/clients/kroviz/images/README.md          |   37 +
 .../clients/kroviz/images/RunFixtureScript1.png    |  Bin 0 -> 20294 bytes
 .../clients/kroviz/images/RunFixtureScript2.png    |  Bin 0 -> 14751 bytes
 .../clients/kroviz/images/RunFixtureScript3.png    |  Bin 0 -> 57851 bytes
 .../clients/kroviz/images/RunFixtureScript4.png    |  Bin 0 -> 25002 bytes
 .../clients/kroviz/images/WheatFieldWithCrows.jpg  |  Bin 0 -> 264883 bytes
 .../clients/kroviz/images/WheatFieldWithCrows.png  |  Bin 0 -> 282527 bytes
 incubator/clients/kroviz/images/isis_clut.png      |  Bin 0 -> 214 bytes
 incubator/clients/kroviz/images/kroviz-logo.svg    |   56 +
 .../images/kroviz_Run_Debug_Configuration.png      |  Bin 0 -> 76837 bytes
 incubator/clients/kroviz/karma.config.d/proxy.js   |    1 +
 .../clients/kroviz/package.json.d/project.info     |    3 +
 incubator/clients/kroviz/settings.gradle.kts       |   19 +
 .../kotlin/org/apache/isis/client/kroviz/App.kt    |   37 +
 .../org/apache/isis/client/kroviz/core/Session.kt  |   56 +
 .../kroviz/core/aggregator/ActionDispatcher.kt     |   54 +
 .../kroviz/core/aggregator/BaseAggregator.kt       |   60 +
 .../kroviz/core/aggregator/DiagramDispatcher.kt    |   12 +
 .../core/aggregator/DomainTypesAggregator.kt       |   80 ++
 .../kroviz/core/aggregator/DownloadDispatcher.kt   |   12 +
 .../kroviz/core/aggregator/ErrorDispatcher.kt      |   20 +
 .../kroviz/core/aggregator/ListAggregator.kt       |  121 ++
 .../kroviz/core/aggregator/NavigationDispatcher.kt |   15 +
 .../kroviz/core/aggregator/ObjectAggregator.kt     |   83 ++
 .../kroviz/core/aggregator/RestfulDispatcher.kt    |   30 +
 .../kroviz/core/aggregator/SystemAggregator.kt     |   34 +
 .../kroviz/core/aggregator/UndefinedDispatcher.kt  |   12 +
 .../isis/client/kroviz/core/event/EventStore.kt    |  136 ++
 .../isis/client/kroviz/core/event/LogEntry.kt      |  179 +++
 .../isis/client/kroviz/core/event/ReplayEvent.kt   |   13 +
 .../kroviz/core/event/ResourceSpecification.kt     |   46 +
 .../client/kroviz/core/event/RoXmlHttpRequest.kt   |  100 ++
 .../isis/client/kroviz/core/model/DiagramDM.kt     |   37 +
 .../isis/client/kroviz/core/model/DisplayModel.kt  |   35 +
 .../kroviz/core/model/DisplayModelWithLayout.kt    |   74 ++
 .../isis/client/kroviz/core/model/Exposer.kt       |   50 +
 .../apache/isis/client/kroviz/core/model/ListDM.kt |   20 +
 .../isis/client/kroviz/core/model/ObjectDM.kt      |   65 +
 .../isis/client/kroviz/core/model/SystemDM.kt      |   27 +
 .../client/kroviz/core/model/meta/MetaAction.kt    |    5 +
 .../client/kroviz/core/model/meta/MetaClass.kt     |   29 +
 .../client/kroviz/core/model/meta/MetaPackage.kt   |    5 +
 .../client/kroviz/core/model/meta/MetaProperty.kt  |    5 +
 .../isis/client/kroviz/handler/ActionHandler.kt    |   21 +
 .../isis/client/kroviz/handler/BaseHandler.kt      |   67 +
 .../isis/client/kroviz/handler/DefaultHandler.kt   |   13 +
 .../isis/client/kroviz/handler/DiagramHandler.kt   |   11 +
 .../client/kroviz/handler/DomainTypesHandler.kt    |   22 +
 .../isis/client/kroviz/handler/HttpErrorHandler.kt |   20 +
 .../isis/client/kroviz/handler/LayoutHandler.kt    |   25 +
 .../isis/client/kroviz/handler/LayoutXmlHandler.kt |   23 +
 .../isis/client/kroviz/handler/PlainHandlers.kt    |   85 ++
 .../isis/client/kroviz/handler/ResponseHandler.kt  |   59 +
 .../isis/client/kroviz/handler/RestfulHandler.kt   |   21 +
 .../client/kroviz/handler/ResultListHandler.kt     |   21 +
 .../client/kroviz/handler/ResultObjectHandler.kt   |   21 +
 .../client/kroviz/handler/ResultValueHandler.kt    |   21 +
 .../apache/isis/client/kroviz/layout/ActionLt.kt   |   21 +
 .../org/apache/isis/client/kroviz/layout/ColLt.kt  |   28 +
 .../isis/client/kroviz/layout/CollectionLt.kt      |   20 +
 .../org/apache/isis/client/kroviz/layout/ColsLt.kt |   18 +
 .../isis/client/kroviz/layout/DomainObjectLt.kt    |   16 +
 .../apache/isis/client/kroviz/layout/FieldSetLt.kt |   14 +
 .../org/apache/isis/client/kroviz/layout/Layout.kt |   13 +
 .../apache/isis/client/kroviz/layout/PropertyLt.kt |   24 +
 .../org/apache/isis/client/kroviz/layout/RowLt.kt  |   11 +
 .../apache/isis/client/kroviz/layout/TabGroupLt.kt |   11 +
 .../org/apache/isis/client/kroviz/layout/TabLt.kt  |    9 +
 .../org/apache/isis/client/kroviz/to/Action.kt     |   21 +
 .../org/apache/isis/client/kroviz/to/Argument.kt   |   18 +
 .../org/apache/isis/client/kroviz/to/IResult.kt    |   29 +
 .../org/apache/isis/client/kroviz/to/Link.kt       |   58 +
 .../org/apache/isis/client/kroviz/to/Member.kt     |   38 +
 .../org/apache/isis/client/kroviz/to/Parameter.kt  |   50 +
 .../isis/client/kroviz/to/PlainTransferObjects.kt  |  197 +++
 .../org/apache/isis/client/kroviz/to/TObject.kt    |   41 +
 .../apache/isis/client/kroviz/to/TransferObject.kt |   26 +
 .../org/apache/isis/client/kroviz/to/TypeMapper.kt |   49 +
 .../org/apache/isis/client/kroviz/to/Value.kt      |   66 +
 .../org/apache/isis/client/kroviz/to/bs3/Action.kt |   41 +
 .../org/apache/isis/client/kroviz/to/bs3/Col.kt    |   54 +
 .../isis/client/kroviz/to/bs3/DomainObject.kt      |   27 +
 .../apache/isis/client/kroviz/to/bs3/FieldSet.kt   |   35 +
 .../org/apache/isis/client/kroviz/to/bs3/Grid.kt   |   37 +
 .../org/apache/isis/client/kroviz/to/bs3/Link.kt   |   40 +
 .../apache/isis/client/kroviz/to/bs3/Property.kt   |   47 +
 .../org/apache/isis/client/kroviz/to/bs3/Row.kt    |   32 +
 .../org/apache/isis/client/kroviz/to/bs3/Tab.kt    |   31 +
 .../apache/isis/client/kroviz/to/bs3/TabGroup.kt   |   29 +
 .../org/apache/isis/client/kroviz/to/mb/Menu.kt    |   11 +
 .../apache/isis/client/kroviz/to/mb/MenuEntry.kt   |    9 +
 .../apache/isis/client/kroviz/to/mb/Menubars.kt    |   11 +
 .../org/apache/isis/client/kroviz/to/mb/Section.kt |    9 +
 .../isis/client/kroviz/to/mb/ServiceAction.kt      |   19 +
 .../apache/isis/client/kroviz/ui/ClassDiagram.kt   |   30 +
 .../org/apache/isis/client/kroviz/ui/Command.kt    |   15 +
 .../apache/isis/client/kroviz/ui/Displayable.kt    |    8 +
 .../org/apache/isis/client/kroviz/ui/ErrorAlert.kt |   35 +
 .../apache/isis/client/kroviz/ui/EventLogDetail.kt |   26 +
 .../apache/isis/client/kroviz/ui/ExportAlert.kt    |   49 +
 .../org/apache/isis/client/kroviz/ui/FileAlert.kt  |   25 +
 .../org/apache/isis/client/kroviz/ui/FormItem.kt   |   57 +
 .../apache/isis/client/kroviz/ui/IconManager.kt    |  136 ++
 .../org/apache/isis/client/kroviz/ui/ImageAlert.kt |   42 +
 .../org/apache/isis/client/kroviz/ui/Point.kt      |    3 +
 .../apache/isis/client/kroviz/ui/PumlBuilder.kt    |   88 ++
 .../apache/isis/client/kroviz/ui/UndefinedAlert.kt |   30 +
 .../isis/client/kroviz/ui/builder/ColBuilder.kt    |   30 +
 .../client/kroviz/ui/builder/FieldSetBuilder.kt    |   47 +
 .../isis/client/kroviz/ui/builder/LayoutBuilder.kt |   27 +
 .../isis/client/kroviz/ui/builder/RowBuilder.kt    |   45 +
 .../isis/client/kroviz/ui/builder/TabBuilder.kt    |   27 +
 .../client/kroviz/ui/builder/TabGroupBuilder.kt    |   25 +
 .../isis/client/kroviz/ui/kv/ActionPrompt.kt       |   93 ++
 .../isis/client/kroviz/ui/kv/ColumnFactory.kt      |  145 +++
 .../isis/client/kroviz/ui/kv/EventLogTable.kt      |   84 ++
 .../isis/client/kroviz/ui/kv/FormPanelFactory.kt   |  151 +++
 .../apache/isis/client/kroviz/ui/kv/LoginPrompt.kt |   57 +
 .../apache/isis/client/kroviz/ui/kv/MenuFactory.kt |  109 ++
 .../isis/client/kroviz/ui/kv/PlantumlPanel.kt      |   49 +
 .../org/apache/isis/client/kroviz/ui/kv/RoApp.kt   |   14 +
 .../apache/isis/client/kroviz/ui/kv/RoDialog.kt    |   91 ++
 .../apache/isis/client/kroviz/ui/kv/RoDisplay.kt   |   45 +
 .../apache/isis/client/kroviz/ui/kv/RoMenuBar.kt   |   86 ++
 .../isis/client/kroviz/ui/kv/RoSimplePanel.kt      |   11 +
 .../apache/isis/client/kroviz/ui/kv/RoStatusBar.kt |   85 ++
 .../apache/isis/client/kroviz/ui/kv/RoTabPanel.kt  |   30 +
 .../org/apache/isis/client/kroviz/ui/kv/RoTable.kt |   46 +
 .../apache/isis/client/kroviz/ui/kv/RoToolPanel.kt |   26 +
 .../org/apache/isis/client/kroviz/ui/kv/RoView.kt  |   59 +
 .../apache/isis/client/kroviz/ui/kv/ToolButton.kt  |   27 +
 .../apache/isis/client/kroviz/ui/kv/UiManager.kt   |  164 +++
 .../apache/isis/client/kroviz/utils/DateHelper.kt  |   37 +
 .../apache/isis/client/kroviz/utils/DomHelper.kt   |   29 +
 .../apache/isis/client/kroviz/utils/FileHelper.kt  |   15 +
 .../apache/isis/client/kroviz/utils/UmlUtils.kt    |   23 +
 .../org/apache/isis/client/kroviz/utils/Utils.kt   |  161 +++
 .../apache/isis/client/kroviz/utils/XmlHelper.kt   |   33 +
 .../kroviz/src/main/resources/bootstrap3.xsd       |  157 +++
 .../src/main/resources/component/component.xsd     |  179 +++
 .../kroviz/src/main/resources/css/kroviz.css       |  146 +++
 .../kroviz/src/main/resources/fonts/ChicagoFLF.ttf |  Bin 0 -> 31256 bytes
 .../kroviz/src/main/resources/hbs/template1.en.hbs |    2 +
 .../kroviz/src/main/resources/hbs/template1.pl.hbs |    2 +
 .../resources/img/2-2-clapperboard-png-thumb.png   |  Bin 0 -> 4213 bytes
 .../clients/kroviz/src/main/resources/img/crow.gif |  Bin 0 -> 5560 bytes
 .../kroviz/src/main/resources/img/favicon.ico      |  Bin 0 -> 32038 bytes
 .../kroviz/src/main/resources/img/kroviz-logo.svg  |   56 +
 .../main/resources/img/plantUml_stateSample.svg    |  136 ++
 .../kroviz/src/main/resources/img/uml-overview.png |  Bin 0 -> 435594 bytes
 .../kroviz/src/main/resources/links/links.xsd      |   16 +
 incubator/clients/kroviz/src/main/web/index.html   |   14 +
 .../org/apache/isis/client/kroviz/AppSpec.kt       |   14 +
 .../apache/isis/client/kroviz/IconManagerTest.kt   |    0
 .../apache/isis/client/kroviz/IntegrationTest.kt   |   68 +
 .../apache/isis/client/kroviz/PumlBuilderTest.kt   |   32 +
 .../org/apache/isis/client/kroviz/TestUtil.kt      |   32 +
 .../apache/isis/client/kroviz/core/UtilsTest.kt    |  102 ++
 .../kroviz/core/aggregator/ListAggregatorTest.kt   |   76 ++
 .../kroviz/core/aggregator/ObjectAggregatorTest.kt |   36 +
 .../client/kroviz/core/event/EventStoreTest.kt     |  195 +++
 .../isis/client/kroviz/core/event/LogEntryTest.kt  |   26 +
 .../client/kroviz/core/model/DisplayListTest.kt    |   76 ++
 .../isis/client/kroviz/core/model/ExposerTest.kt   |   57 +
 .../client/kroviz/core/model/FixtureResultTest.kt  |   52 +
 .../client/kroviz/handler/PropertyHandlerTest.kt   |   19 +
 .../client/kroviz/handler/RestfulHandlerTest.kt    |   23 +
 .../apache/isis/client/kroviz/layout/LayoutTest.kt |   24 +
 .../client/kroviz/snapshots/FR_OBJECT_LAYOUT.json  |  248 ++++
 .../isis/client/kroviz/snapshots/LAYOUT.adoc       |  380 ++++++
 .../isis/client/kroviz/snapshots/LAYOUT.puml       |  376 ++++++
 .../apache/isis/client/kroviz/snapshots/LAYOUT.svg |  389 ++++++
 .../isis/client/kroviz/snapshots/Response.kt       |    6 +
 .../snapshots/demo2_0_0/ACTIONS_TEXT_INVOKE.kt     |  150 +++
 .../DEMO_ASSOCIATED_ACTION_OBJECT_LAYOUT.kt        |  262 ++++
 .../kroviz/snapshots/demo2_0_0/DEMO_FILE_NODE.kt   |  105 ++
 .../snapshots/demo2_0_0/DEMO_HTTP_ERROR_500.kt     |  646 ++++++++++
 .../kroviz/snapshots/demo2_0_0/DEMO_MENUBARS.kt    |  990 +++++++++++++++
 .../snapshots/demo2_0_0/DEMO_OBJECT_LAYOUT.kt      |  328 +++++
 .../kroviz/snapshots/demo2_0_0/DEMO_PRIMITIVES.kt  |  562 +++++++++
 .../kroviz/snapshots/demo2_0_0/DEMO_PROPERTY.kt    |   51 +
 .../demo2_0_0/DEMO_PROPERTY_DESCRIPTION.kt         |   38 +
 .../demo2_0_0/DEMO_RESTFUL_DOMAIN_TYPES.kt         | 1061 ++++++++++++++++
 .../snapshots/demo2_0_0/DEMO_TAB_LAYOUT_XML.kt     |  160 +++
 .../snapshots/demo2_0_0/DEMO_TAB_OBJECT_LAYOUT.kt  |  387 ++++++
 .../kroviz/snapshots/demo2_0_0/DEMO_TEMPORALS.kt   |  186 +++
 .../kroviz/snapshots/demo2_0_0/DEMO_TEXT_LAYOUT.kt |  327 +++++
 .../demo2_0_0/DEMO_TOOLTIP_OBJECT_LAYOUT.kt        |  563 +++++++++
 .../demo2_0_0/DEMO_TUPLE_OBJECT_LAYOUT.kt          |  473 +++++++
 .../kroviz/snapshots/demo2_0_0/HTTP_ERROR_405.kt   |  125 ++
 .../demo2_0_0/ISIS_SECURITY_ME_SERVICE.kt          |  431 +++++++
 .../isis/client/kroviz/snapshots/sample.json       |  347 ++++++
 .../apache/isis/client/kroviz/snapshots/sample.xml |   88 ++
 .../snapshots/simpleapp1_16_0/ACTIONS_CREATE.kt    |   55 +
 .../snapshots/simpleapp1_16_0/ACTIONS_DELETE.kt    |   44 +
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_LAYOUTS.kt    |   53 +
 .../ACTIONS_DOWNLOAD_MENUBARS_LAYOUT.kt            |   62 +
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_META_MODEL.kt |   53 +
 .../ACTIONS_DOWNLOAD_SWAGGER_SCHEMA_DEFINITION.kt  |   73 ++
 .../ACTIONS_DOWNLOAD_TRANSLATIONS.kt               |   59 +
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_VALUE.kt      |   32 +
 .../simpleapp1_16_0/ACTIONS_FIND_BY_NAME.kt        |   55 +
 .../simpleapp1_16_0/ACTIONS_OPEN_SWAGGER_UI.kt     |   31 +
 .../simpleapp1_16_0/ACTIONS_RUN_FIXTURE_SCRIPT.kt  |   80 ++
 .../snapshots/simpleapp1_16_0/ACTION_SO_CREATE.kt  |  154 +++
 .../kroviz/snapshots/simpleapp1_16_0/CFG_1.kt      |  120 ++
 .../snapshots/simpleapp1_16_0/CFG_LAYOUT_JSON.kt   |  299 +++++
 .../snapshots/simpleapp1_16_0/CFG_LAYOUT_XML.kt    |   97 ++
 .../kroviz/snapshots/simpleapp1_16_0/FR_OBJECT.kt  |  161 +++
 .../snapshots/simpleapp1_16_0/FR_OBJECT_BAZ.kt     |  167 +++
 .../snapshots/simpleapp1_16_0/FR_OBJECT_FRODO.kt   |  146 +++
 .../snapshots/simpleapp1_16_0/FR_OBJECT_LAYOUT.kt  |   94 ++
 .../simpleapp1_16_0/FR_OBJECT_PROPERTY.kt          |   37 +
 .../simpleapp1_16_0/FR_OBJECT_PROPERTY_.kt         |   40 +
 .../simpleapp1_16_0/FR_PROPERTY_DESCRIPTION.kt     |   35 +
 .../kroviz/snapshots/simpleapp1_16_0/HTTP_ERROR.kt |   88 ++
 .../snapshots/simpleapp1_16_0/HTTP_ERROR_404.kt    |   13 +
 .../snapshots/simpleapp1_16_0/HTTP_ERROR_405.kt    |   81 ++
 .../HTTP_ERROR_500_UNIQUE_CONSTRAINT_VIOLATION.kt  |  308 +++++
 .../kroviz/snapshots/simpleapp1_16_0/RESTFUL.kt    |   41 +
 .../simpleapp1_16_0/RESTFUL_DOMAIN_TYPES.kt        | 1294 ++++++++++++++++++++
 .../snapshots/simpleapp1_16_0/RESTFUL_MENUBARS.kt  |  386 ++++++
 .../snapshots/simpleapp1_16_0/RESTFUL_SERVICES.kt  |   84 ++
 .../snapshots/simpleapp1_16_0/RESTFUL_USER.kt      |   28 +
 .../snapshots/simpleapp1_16_0/RESTFUL_VERSION.kt   |   31 +
 .../snapshots/simpleapp1_16_0/SECONDARY_MENU.kt    |   58 +
 .../client/kroviz/snapshots/simpleapp1_16_0/SO.kt  |  111 ++
 .../kroviz/snapshots/simpleapp1_16_0/SO_0.kt       |  188 +++
 .../kroviz/snapshots/simpleapp1_16_0/SO_1.kt       |  201 +++
 .../snapshots/simpleapp1_16_0/SO_LAYOUT_JSON.kt    |  356 ++++++
 .../snapshots/simpleapp1_16_0/SO_LAYOUT_XML.kt     |   82 ++
 .../snapshots/simpleapp1_16_0/SO_LIST_ALL.kt       |   45 +
 .../simpleapp1_16_0/SO_LIST_ALL_INVOKE.kt          |  102 ++
 .../simpleapp1_16_0/SO_LIST_ALL_OBJECTS.kt         |  110 ++
 .../kroviz/snapshots/simpleapp1_16_0/SO_MENU.kt    |   82 ++
 .../snapshots/simpleapp1_16_0/SO_OBJECT_LAYOUT.kt  |  354 ++++++
 .../snapshots/simpleapp1_16_0/SO_PROPERTY.kt       |   45 +
 .../kroviz/snapshots/simpleapp1_16_0/UrlsTest.kt   |   57 +
 .../org/apache/isis/client/kroviz/to/ActionTest.kt |  232 ++++
 .../apache/isis/client/kroviz/to/DomainTypeTest.kt |   56 +
 .../isis/client/kroviz/to/FeaturedTypesTest.kt     |   74 ++
 .../apache/isis/client/kroviz/to/HttpErrorTest.kt  |   85 ++
 .../org/apache/isis/client/kroviz/to/LinkTest.kt   |   42 +
 .../org/apache/isis/client/kroviz/to/MemberTest.kt |   74 ++
 .../apache/isis/client/kroviz/to/PropertyTest.kt   |   65 +
 .../apache/isis/client/kroviz/to/ResultListTest.kt |   21 +
 .../isis/client/kroviz/to/ResultObjectTest.kt      |   28 +
 .../isis/client/kroviz/to/ResultValueTest.kt       |   41 +
 .../apache/isis/client/kroviz/to/ServiceTest.kt    |   40 +
 .../apache/isis/client/kroviz/to/TObjectTest.kt    |   92 ++
 .../org/apache/isis/client/kroviz/to/ToTest.kt     |   11 +
 .../org/apache/isis/client/kroviz/to/UserTest.kt   |   18 +
 .../apache/isis/client/kroviz/to/VersionTest.kt    |   19 +
 .../isis/client/kroviz/to/bs3/LayoutXmlTest.kt     |   70 ++
 .../isis/client/kroviz/to/mb/MenubarsTest.kt       |   86 ++
 .../isis/client/kroviz/ui/IconManagerTest.kt       |   19 +
 .../client/kroviz/ui/table/TableFactoryTest.kt     |   47 +
 .../clients/kroviz/translation/messages-de.po      |   23 +
 .../clients/kroviz/translation/messages-en.po      |   23 +
 .../clients/kroviz/translation/messages-es.po      |   23 +
 incubator/clients/kroviz/translation/messages.pot  |   22 +
 .../clients/kroviz/webpack.config.d/bootstrap.js   |    3 +
 incubator/clients/kroviz/webpack.config.d/css.js   |    2 +
 incubator/clients/kroviz/webpack.config.d/file.js  |    9 +
 .../clients/kroviz/webpack.config.d/handlebars.js  |    6 +
 incubator/clients/kroviz/webpack.config.d/jed.js   |    7 +
 .../clients/kroviz/webpack.config.d/jquery.js      |    9 +
 .../clients/kroviz/webpack.config.d/minify.js      |   17 +
 .../clients/kroviz/webpack.config.d/moment.js      |   12 +
 .../clients/kroviz/webpack.config.d/webpack.js     |   39 +
 incubator/pom.xml                                  |   31 +-
 324 files changed, 25303 insertions(+), 15 deletions(-)

diff --cc incubator/clients/kroviz/.gitignore
index 95ad0e6,e710fa4..80d39f7
--- a/incubator/clients/kroviz/.gitignore
+++ b/incubator/clients/kroviz/.gitignore
@@@ -1,4 -1,12 +1,11 @@@
 -.*/
 -build/
 -out/
 +./build
 +./out
 +./target
 +./.gradle
+ .idea/
+ *.iml
+ *.ipr
+ *.iws
+ /refresh.sh
+ package-lock.json
+ node_modules/
 -/build.log
 -/src/test/kotlin/BugTest.kt
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/SystemAggregator.kt
index 0000000,94ba3c3..545a3fa
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/SystemAggregator.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/core/aggregator/SystemAggregator.kt
@@@ -1,0 -1,34 +1,34 @@@
+ package org.apache.isis.client.kroviz.core.aggregator
+ 
+ import org.apache.isis.client.kroviz.core.event.LogEntry
+ import org.apache.isis.client.kroviz.core.model.SystemDM
+ import org.apache.isis.client.kroviz.to.DomainTypes
+ import org.apache.isis.client.kroviz.to.User
+ import org.apache.isis.client.kroviz.to.Version
+ 
+ class SystemAggregator() : BaseAggregator() {
+ 
+     init {
+         dsp = SystemDM("not filled (yet)")
+     }
+ 
+     override fun update(logEntry: LogEntry, subType: String) {
+ 
+         when (val obj = logEntry.getTransferObject()) {
+             is User -> dsp.addData(obj)
+             is Version -> dsp.addData(obj)
+             is DomainTypes -> dsp.addData(obj)
+             else -> log(logEntry)
+         }
+ 
+         if (dsp.canBeDisplayed()) {
 -//            UiManager.openObjectView(this)
++//  TODO          UiManager.openObjectView(this)
+         }
+     }
+ 
+     override fun reset(): SystemAggregator {
+         dsp.isRendered = false
+         return this
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt
index 0000000,50d919a..23c991f
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Argument.kt
@@@ -1,0 -1,18 +1,18 @@@
+ package org.apache.isis.client.kroviz.to
+ 
+ import kotlinx.serialization.Serializable
+ 
+ //IMPROVE initialize value="", move behavior out of TO
+ @Serializable
+ //TODO either have kotlinx.serialization cope with empty key or implement custom serialization (cf. to.Value)
+ data class Argument(var key: String = "",
+                     var value: String? = null,
+                     val potFileName: String = "",
 -                    val href: String? = null) :org.apache.isis.client.kroviz.to.TransferObject {
++                    val href: String? = null) : TransferObject {
+     init {
+         if (value == null) {
+             value = ""
+         }
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TypeMapper.kt
index 0000000,a435241..94cd7d6
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TypeMapper.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/TypeMapper.kt
@@@ -1,0 -1,49 +1,49 @@@
+ package org.apache.isis.client.kroviz.to
+ 
+ import org.apache.isis.client.kroviz.utils.XmlHelper
+ 
+ enum class ValueType(val type: String) {
+     BOOLEAN("Boolean"),
+     DATE("Date"),
+     HTML("Html"),
+     IMAGE("Image"),
+     NUMERIC("Numeric"),
+     PASSWORD("Password"),
+     TEXT("Text"),
+     TEXT_AREA("TextArea"),
+     TIME("Time"),
+     SIMPLE_SELECT("SimpleSelect"),
+     SLIDER("Slider")
+ }
+ 
+ class TypeMapper {
+ 
+     fun match(member: Member): String {
+         val mf = member.format
+         val mex = member.extensions?.xIsisFormat
+         return when {
+             mf == "int" -> ValueType.NUMERIC.type
+             mf == "date" -> ValueType.DATE.type
+             mf == "date-time" -> ValueType.TIME.type
+             mf == "utc-millisec" -> ValueType.TIME.type
+             mex == "boolean" -> ValueType.BOOLEAN.type
+             //mex == "javasqltimestamp" -> TypeMapperType.DATE.type
+             //mex == "javautildate" -> TypeMapperType.DATE.type
+             else -> {
+                 match(member.value)
+             }
+         }
+     }
+ 
+     private val isoDate = Regex("^([+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([.,]\\d+(?!:))?)?(\\17[0-5]\\d([.,]\\d+)?)?([zZ]|([+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?\$")
+ 
 -    private fun match(value: org.apache.isis.client.kroviz.to.Value?): String {
++    private fun match(value: Value?): String {
+         val contentStr = value?.content.toString()
+         return when {
+             isoDate.matches(contentStr) -> ValueType.DATE.type
+             XmlHelper.isXml(contentStr) -> ValueType.HTML.type
+             else -> ValueType.TEXT.type
+         }
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Value.kt
index 0000000,1167d03..9b58717
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Value.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/Value.kt
@@@ -1,0 -1,66 +1,66 @@@
+ package org.apache.isis.client.kroviz.to
+ 
+ import kotlinx.serialization.*
+ import kotlinx.serialization.builtins.nullable
+ import kotlinx.serialization.json.Json
+ import kotlinx.serialization.json.JsonElement
+ import kotlinx.serialization.json.JsonException
+ import kotlinx.serialization.json.content
+ 
+ /**
+  *  Custom data structure to handle 'untyped' value in Member, Property, Parameter
+  *  "value" can either be:
+  *  @Item 'null'
+  *  @Item Int with format "int"
+  *  @Item Long with format "utc-millisec"
+  *  @Item String
+  *  @Item Link
+  */
+ @Serializable
+ data class Value(
+         //IMPROVE: make content immutable (again) and handle property edits eg. via a wrapper
+         @ContextualSerialization @SerialName("value") var content: Any? = null
+ ) : TransferObject {
+ 
+     @Serializer(forClass = Value::class)
+     companion object : KSerializer<Value> {
+         override fun serialize(encoder: Encoder, obj: Value) {
+             // Not required yet
+         }
+ 
+         override val descriptor: SerialDescriptor = SerialDescriptor("Value")
+ 
+         @UnstableDefault
+         override fun deserialize(decoder: Decoder): Value {
+             var result: Value
+             var jse: JsonElement? = null
+             try {
+                 val nss = JsonElement.serializer().nullable
+                 jse = decoder.decode(nss)!!
+                 val jsct = jse.content
+                 when {
+                     jse.isNull -> result = Value(null)
 -                    Value.Companion.isLong(jsct) -> result = Value(jsct.toLong())
++                    isLong(jsct) -> result = Value(jsct.toLong())
+                     else -> result = Value(jsct)
+                 }
+             } catch (je: JsonException) {
+                 val linkStr = jse.toString()
+                 val link = Json.parse(Link.serializer(), linkStr)
+                 result = Value(link)
+             }
+             return result
+         }
+ 
+         private fun isLong(raw: String): Boolean {
+             var answer = true
+             try {
+                 raw.toLong()
+             } catch (nfe: NumberFormatException) {
+                 answer = false
+             }
+             return answer
+         }
+ 
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Property.kt
index 0000000,158fa09..37e9598
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Property.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Property.kt
@@@ -1,0 -1,47 +1,47 @@@
+ package org.apache.isis.client.kroviz.to.bs3
+ 
+ import org.apache.isis.client.kroviz.to.Link
+ import org.w3c.dom.Node
+ import org.w3c.dom.asList
+ 
+ //IMPROVE class differs in many aspects from org.ro.to.Property - to be refactored?
+ class Property(node: Node) {
+     var id: String
 -    var link:org.apache.isis.client.kroviz.to.Link? = null
++    var link: Link? = null
+     var hidden: String // USE ENUM Where? = null
+     var typicalLength: Int = 0
+     var multiLine: Int = 1
+     var describedAs: String? = null
+     var named = ""
 -    lateinit var action:org.apache.isis.client.kroviz.to.bs3.Action
++    lateinit var action: Action
+ 
+     init {
+         val dn = node.asDynamic()
+         hidden = dn.getAttribute("hidden")
+         id = dn.getAttribute("id") as String
+         typicalLength = dn.getAttribute("typicalLength")
+         multiLine = dn.getAttribute("multiLine")
+         describedAs = dn.getAttribute("describedAs")
+ 
+         val nodeList = node.childNodes.asList()
+         val namedList = nodeList.filter { it.nodeName.equals("cpt:named") }
+         if (namedList.isNotEmpty()) {
+             val n = namedList.first()
+             named = n.textContent as String
+         }
+ 
+         val actList = nodeList.filter { it.nodeName.equals("cpt:action") }
+         if (actList.isNotEmpty()) {
+             val n = actList.first()
 -            action =org.apache.isis.client.kroviz.to.bs3.Action(n)
++            action = Action(n)
+         }
+ 
+         val linkList = nodeList.filter { it.nodeName.equals("cpt:link") }
+         if (linkList.isNotEmpty()) {
+             val n = linkList.first()
 -            val bs3l =org.apache.isis.client.kroviz.to.bs3.Link(n)
 -            link =org.apache.isis.client.kroviz.to.Link(bs3l.rel, bs3l.method, bs3l.href, bs3l.type)
++            val bs3l = Link(n)
++            link = Link(bs3l.rel, bs3l.method, bs3l.href, bs3l.type)
+         }
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Tab.kt
index 0000000,4125a98..f2c29f1
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Tab.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/bs3/Tab.kt
@@@ -1,0 -1,31 +1,31 @@@
+ package org.apache.isis.client.kroviz.to.bs3
+ 
+ import org.w3c.dom.Node
+ import org.w3c.dom.asList
+ 
+ class Tab(node: Node) {
+     val rowList = mutableListOf<Row>()
+     var name: String
+ 
+     init {
+         val dyNode = node.asDynamic()
+         name = dyNode.getAttribute("name") as String
+ 
+         val nl = node.childNodes.asList()
+ 
+         val rNodes = nl.filter { it.nodeName.equals("bs3:row") }
+         for (n: Node in rNodes) {
 -            val row =org.apache.isis.client.kroviz.to.bs3.Row(n)
++            val row = Row(n)
+             rowList.add(row)
+         }
+     }
+ 
+     fun getPropertyList(): List<Property> {
+         val list = mutableListOf<Property>()
+         rowList.forEach { r ->
+             list.addAll(r.getPropertyList())
+         }
+         return list
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Menubars.kt
index 0000000,5f51b85..16f8467
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Menubars.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/Menubars.kt
@@@ -1,0 -1,11 +1,11 @@@
+ package org.apache.isis.client.kroviz.to.mb
+ 
+ import kotlinx.serialization.Serializable
+ import org.apache.isis.client.kroviz.to.TransferObject
+ 
+ @Serializable
 -data class Menubars(val primary:org.apache.isis.client.kroviz.to.mb.MenuEntry,
 -                    val secondary:org.apache.isis.client.kroviz.to.mb.MenuEntry,
 -                    val tertiary:org.apache.isis.client.kroviz.to.mb.MenuEntry,
++data class Menubars(val primary: MenuEntry,
++                    val secondary: MenuEntry,
++                    val tertiary: MenuEntry,
+                     val metadataError: String? = null
 -) :org.apache.isis.client.kroviz.to.TransferObject
++) : TransferObject
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/ServiceAction.kt
index 0000000,3c3efb8..e5d57be
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/ServiceAction.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/to/mb/ServiceAction.kt
@@@ -1,0 -1,19 +1,19 @@@
+ package org.apache.isis.client.kroviz.to.mb
+ 
+ import kotlinx.serialization.Serializable
+ import org.apache.isis.client.kroviz.to.Link
+ import org.apache.isis.client.kroviz.to.TransferObject
+ 
+ @Serializable
+ data class ServiceAction(
+         val objectType: String? = null,
+         val id: String? = null,
+         val named: String? = null,
+         val namedEscaped: String? = null,
+         val bookmarking: String? = null,
+         val cssClass: String? = null,
+         val cssClassFa: String? = null,
+         val describedAs: String? = null,
+         val metadataError: String? = null,
 -        val link:org.apache.isis.client.kroviz.to.Link? = null
 -) :org.apache.isis.client.kroviz.to.TransferObject
++        val link: Link? = null
++) : TransferObject
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/Command.kt
index 0000000,01c8bc5..0b0a1f7
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/Command.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/Command.kt
@@@ -1,0 -1,15 +1,15 @@@
+ package org.apache.isis.client.kroviz.ui
+ 
+ import org.apache.isis.client.kroviz.core.event.RoXmlHttpRequest
+ import org.apache.isis.client.kroviz.to.Link
+ 
+ interface Command {
+     fun execute() {
+         // subclass responsibility
+     }
+ 
 -    fun invoke(link:org.apache.isis.client.kroviz.to.Link) {
 -       org.apache.isis.client.kroviz.core.event.RoXmlHttpRequest().invoke(link, null)
++    fun invoke(link: Link) {
++        RoXmlHttpRequest().invoke(link, null)
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt
index 0000000,c0c8daa..ac90137
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/FormItem.kt
@@@ -1,0 -1,57 +1,57 @@@
+ package org.apache.isis.client.kroviz.ui
+ 
+ import org.apache.isis.client.kroviz.to.Member
+ import pl.treksoft.kvision.window.Window
+ 
+ class FormItem(
+         val label: String,
+         val type: String,
+         var content: Any? = null,
+         val size: Int? = null,
+         val description: String? = "not set",
+         val member: Member? = null,
+         var dspl: Displayable? = null,
+         val callBackId: String? = null) {
+ 
+     private var originalContent: Any?
+     var readOnly = false
+ 
+     init {
+         originalContent = content
+         if (member != null) {
+             readOnly = member.isReadOnly()
+         }
+     }
+ 
+     fun changed(value: String?) {
+         dspl?.setDirty(true)
+         if (member != null) {
+             member.value?.content = value
+         }
+         //IMPROVE this is special logic in a generic place
+         if (type == org.apache.isis.client.kroviz.to.ValueType.SLIDER.type) {
+             setOpacity(value!!)
+         }
+     }
+ 
+     fun reset() {
+         dspl?.setDirty(false)
+         if (member != null) {
+             content = originalContent
+         }
+     }
+ 
 -    fun setDisplay(displayable: org.apache.isis.client.kroviz.ui.Displayable) {
++    fun setDisplay(displayable: Displayable) {
+         dspl = displayable
+     }
+ 
+     @Deprecated("this needs a better home")
+     fun setOpacity(value: String) {
+         val opacity = value.toDouble()
+         (dspl as Window).getElementJQuery()?.css(
+                 "background-color",
+                 "rgba(255, 255, 255, $opacity)"
+         )
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/ToolButton.kt
index 0000000,74071b1..9a3e70a
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/ToolButton.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/kv/ToolButton.kt
@@@ -1,0 -1,27 +1,27 @@@
+ package org.apache.isis.client.kroviz.ui.kv
+ 
+ import org.w3c.dom.DragEvent
+ import pl.treksoft.kvision.html.Div
+ 
+ class ToolButton(text: String) : Div(text) {
+ 
+     init {
+         //style = ButtonStyle.LINK
+         // onEvent { DragEvent. }
+     }
+ 
+     fun ondragover(ev: DragEvent) {
 -        ev.preventDefault();
++        ev.preventDefault()
+     }
+ 
+     fun allowDrop(ev: DragEvent) {
 -        ev.preventDefault();
++        ev.preventDefault()
+     }
+ 
+     fun drop(ev: DragEvent) {
 -        ev.preventDefault();
++        ev.preventDefault()
+         //TODO
+         //var data = ev.dataTransfer.getData("text");
+         //ev.target.appendChild(document.getElementById(data));
+     }
+ }
diff --cc incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/FileHelper.kt
index 0000000,25cca8a..5d956fa
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/FileHelper.kt
+++ b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/FileHelper.kt
@@@ -1,0 -1,15 +1,15 @@@
+ package org.apache.isis.client.kroviz.utils
+ 
+ import org.w3c.xhr.XMLHttpRequest
+ 
+ /* see: https://stackoverflow.com/questions/13709482/how-to-read-text-file-in-javascript */
+ class FileHelper {
+ 
+     fun readStringFromFileAtPath(pathOfFileToReadFrom: String): String {
 -        val request = XMLHttpRequest();
++        val request = XMLHttpRequest()
+         request.open("GET", pathOfFileToReadFrom, false)
+         request.send(null)
+         return request.responseText
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/IntegrationTest.kt
index 0000000,3389577..6d8db74
mode 000000,100644..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
@@@ -1,0 -1,68 +1,68 @@@
+ package org.apache.isis.client.kroviz
+ 
+ import kotlinx.coroutines.GlobalScope
+ import kotlinx.coroutines.delay
+ import kotlinx.coroutines.launch
+ import kotlinx.serialization.UnstableDefault
+ import org.apache.isis.client.kroviz.core.aggregator.BaseAggregator
+ 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.snapshots.Response
+ import org.apache.isis.client.kroviz.to.Method
+ import org.apache.isis.client.kroviz.ui.kv.UiManager
+ import org.apache.isis.client.kroviz.utils.XmlHelper
+ import org.w3c.xhr.XMLHttpRequest
+ 
+ // subclasses expect a running backend, here SimpleApp localhost:8080/restful*
+ 
+ @UnstableDefault
+ open class IntegrationTest {
+ 
+     fun isAppAvailable(): Boolean {
+         val user = "sven"
+         val pw = "pass"
+         val url = "http://${user}:${pw}@localhost:8080/restful/"
+         UiManager.login(url, user, pw)
+         val credentials: String = UiManager.getCredentials()
 -        val xhr = XMLHttpRequest();
 -        xhr.open("GET", url, false, user, pw);
++        val xhr = XMLHttpRequest()
++        xhr.open("GET", url, false, user, pw)
+         xhr.setRequestHeader("Authorization", "Basic $credentials")
+         xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8")
+         xhr.setRequestHeader("Accept", "application/json")
+ 
+         try {
 -            xhr.send(); // there will be a 'pause' here until the response comes.
++            xhr.send() // there will be a 'pause' here until the response comes.
+         } catch (e: Throwable) {
+             return false
+         }
+         val answer = xhr.status.equals(200)
+         return answer
+     }
+ 
+     fun mockResponse(response: Response, aggregator: BaseAggregator?): LogEntry {
+         val str = response.str
+         val subType = if (XmlHelper.isXml(response.str)) {
+             "xml"
+         } else {
+             "json"
+         }
+         val reSpec = ResourceSpecification(response.url, subType)
+         EventStore.start(
+                 reSpec,
+                 Method.GET.operation,
+                 "",
+                 aggregator)
+         val le = EventStore.end(reSpec, str)!!
+         org.apache.isis.client.kroviz.handler.ResponseHandler.handle(le)
+         wait(100)
+         return le
+     }
+ 
+     fun wait(milliseconds: Long) {
+         GlobalScope.launch {
+             delay(milliseconds)
+         }
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/UtilsTest.kt
index 0000000,8cbb74e..3de3124
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/UtilsTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/UtilsTest.kt
@@@ -1,0 -1,102 +1,102 @@@
+ package org.apache.isis.client.kroviz.core
+ 
+ import org.apache.isis.client.kroviz.to.Argument
+ import org.apache.isis.client.kroviz.to.Link
+ import org.apache.isis.client.kroviz.to.Method
+ import org.apache.isis.client.kroviz.utils.DateHelper
+ import org.apache.isis.client.kroviz.utils.Utils
+ import kotlin.test.Test
+ import kotlin.test.assertEquals
+ import kotlin.test.assertNotNull
+ 
+ class UtilsTest {
+ 
+     @Test
+     fun testDecamel() {
+         //given
+         val word = "OK"
+         val expected = "OK"
+         //when
+         val actual = Utils.deCamel(word)
+         //
+         assertEquals(expected, actual)
+     }
+ 
+     //@Test //@Test  breaks on Travis #153 ???
+     fun testDate() {
+         // given
+         val rawDate: Any? = "2020-01-25T13:07:05Z"
+         //when
+         val dateTime = DateHelper.toDate(rawDate)
+         // then
+         assertNotNull(dateTime)
+         assertEquals(2020, dateTime.getFullYear())
+         assertEquals(0, dateTime.getMonth()) // c braintwist strikes again
+         assertEquals(14, dateTime.getHours())  // MEZ = GMT + 1
+         assertEquals(7, dateTime.getMinutes())  // and again? shouldn't it be 7??
+     }
+ 
+     //@Test  breaks on Travis #152 ? https://travis-ci.com/joerg-rade/kroviz/builds/149958789
+     fun test_javaOffsetDateTime() {
+         // given
+         val rawDate: Any? = "20200125T140705.356+0100"
 -        val expected: String = "2020-01-25T14:07:05.356+0100"
++        val expected = "2020-01-25T14:07:05.356+0100"
+         //when Then
+ 
+         val actual = DateHelper.convertJavaOffsetDateTimeToISO(rawDate as String)
+         assertEquals(expected, actual)
+ 
+         val dateTime = DateHelper.toDate(actual)
+         assertNotNull(dateTime)
+         assertEquals(2020, dateTime.getFullYear())
+         assertEquals(0, dateTime.getMonth()) // c braintwist strikes again
+         assertEquals(25, dateTime.getDate())
+         assertEquals(14, dateTime.getHours())  // MEZ = GMT + 1
+         assertEquals(7, dateTime.getMinutes())
+     }
+ 
+ 
+     // @Test
+     fun test_argumentsAsBody() {
+         //given
+         val href = "http://localhost:8080/restful/services/isisApplib.FixtureScriptsDefault/actions/runFixtureScript/invoke"
+         val rel = "urn:org.restfulobjects:rels/invoke;action='runFixtureScript'"
+         val type = "application/json;profile='urn:org.restfulobjects:repr-types/object-action'"
+         val link = Link(method = Method.POST.operation, href = href, rel = rel, type = type)
+         //val arguments = LinkedHashMap<String, String>() //
+         //link.setArgument(arguments)
+ 
+         // when
+         val body = Utils.argumentsAsBody(link)
+ 
+         // then
+ //        console.log("[UtilsTest.test_argumentsAsBody]")
+         console.log(body)
+         //TODO add assert
+     }
+ 
+     @Test
+     fun testScriptAsBody() {
+         //given
+         val expected = """"script": {"value": {"href": "http://localhost:8080"}}"""
+         val value = "http://localhost:8080"
+         val arg = Argument("script", value)
+         // when
+         val actual = Utils.asBody(arg)
+         // then
+         assertEquals(expected, actual)
+     }
+ 
+     @Test
+     fun testParametersAsBody() {
+         //given
+         val expected = """"parameters": {"value": ""}"""
+         val value = ""
+         val arg = Argument("parameters", value)
+         // when
+         val actual = Utils.asBody(arg)
+         // then
+         assertEquals(expected, actual)
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/LogEntryTest.kt
index 0000000,0a77a70..c2d1ed9
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/LogEntryTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/core/event/LogEntryTest.kt
@@@ -1,0 -1,28 +1,26 @@@
+ package org.apache.isis.client.kroviz.core.event
+ 
+ import kotlinx.serialization.UnstableDefault
+ import kotlin.test.Test
+ import kotlin.test.assertTrue
+ 
+ @UnstableDefault
+ class LogEntryTest {
+ 
+     @Test
+     fun testCalculate() {
+         // given
 -        val le =org.apache.isis.client.kroviz.core.event.LogEntry("http://test/url")
++        val le = LogEntry("http://test/url")
+ 
+         // when
+         le.setSuccess()
+ 
+         // then
+         assertTrue(0 <= le.duration)
+ 
+         if (le.duration < 0 && le.cacheHits == 0) {
 -//            console.log("[LogEntry.calculate] duration out of range")
 -//            console.log(this)
+             //TODO add assert
+         }
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/PropertyHandlerTest.kt
index 0000000,5f7ae1a..7f3894e
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/PropertyHandlerTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/PropertyHandlerTest.kt
@@@ -1,0 -1,19 +1,19 @@@
+ package org.apache.isis.client.kroviz.handler;
+ 
+ import kotlinx.serialization.UnstableDefault
+ import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.SO_PROPERTY
+ import org.apache.isis.client.kroviz.to.Property
+ import kotlin.test.Test
+ import kotlin.test.assertNotNull
+ 
+ @UnstableDefault
 -public class PropertyHandlerTest {
++class PropertyHandlerTest {
+ 
+     @Test
+     fun testParse() {
+         val jsonStr = SO_PROPERTY.str
+         val p = PropertyHandler().parse(jsonStr) as Property
+         assertNotNull(p)
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/RestfulHandlerTest.kt
index 0000000,60bf21c..8850cf0
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/RestfulHandlerTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/handler/RestfulHandlerTest.kt
@@@ -1,0 -1,23 +1,23 @@@
+ package org.apache.isis.client.kroviz.handler
+ 
+ import kotlinx.serialization.UnstableDefault
+ import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.RESTFUL
+ import org.apache.isis.client.kroviz.to.Restful
+ import kotlin.test.Test
+ import kotlin.test.assertEquals
+ import kotlin.test.assertNotNull
+ 
+ @UnstableDefault
 -public class RestfulHandlerTest {
++class RestfulHandlerTest {
+ 
+     @Test
+     fun testParse() {
+         val jsonStr = RESTFUL.str
+         val ro =RestfulHandler().parse(jsonStr) as Restful
+         assertNotNull(ro)
+ 
+         assertEquals(6, ro.links.size)
+         assertEquals("", ro.extensions.oid)
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ActionTest.kt
index 0000000,20cec95..503624f
mode 000000,100644..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
@@@ -1,0 -1,232 +1,232 @@@
+ package org.apache.isis.client.kroviz.to
+ 
+ import kotlinx.serialization.UnstableDefault
+ 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.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.utils.Utils
+ import kotlin.test.Test
+ import kotlin.test.assertEquals
+ import kotlin.test.assertNotNull
+ import kotlin.test.assertTrue
+ 
+ @UnstableDefault
+ class ActionTest : IntegrationTest() {
+ 
+     // @Test
+     // IntegrationTest, assumes a server is running, furthermore expects the fingerPrint (PD94*) to be valid
+     fun testInvokeAction() {
+         val url = "http://localhost:8080/restful/services/isisApplib.FixtureScriptsDefault/actions/runFixtureScript/invoke"
+         val fingerPrint = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPG1lbWVudG8-PHBhdGg-PC9wYXRoPjwvbWVtZW50bz4="
+ /*        val body = """{
+                 "script": {
+                     "value": {
+                         "href": "http://localhost:8080/restful/objects/domainapp.application.fixture.scenarios.DomainAppDemo/$fingerPrint"}
+                         },
+                 "parameters": {"value": ""}
+             }  """   */
+         val href = "\"href\": \"http://localhost:8080/restful/objects/domainapp.application.fixture.scenarios.DomainAppDemo/$fingerPrint\"".trimIndent()
+         //TODO construct link, invoke and check response
+         if (isAppAvailable()) {
+             console.log("[AT.testInvokeAction]")
+             val action = ActionHandler().parse(ACTIONS_RUN_FIXTURE_SCRIPT.str) as Action
+ 
+             val link = action.getInvokeLink()
+             assertNotNull(link)
+             //now pass on body in order to prepare everything to invoke
+             val arguments = link.arguments as MutableMap
 -            val arg = org.apache.isis.client.kroviz.to.Argument(href)
++            val arg = Argument(href)
+             arguments.put("script", arg)
+             //ensure link arguments make up valid json body
+             val body = Utils.argumentsAsBody(link)
+             console.log(body)
+             val json = JSON.parse<Argument>(body)
+             console.log(json)
+             ActionDispatcher().invoke(link)
+             val urlSpec = ResourceSpecification(url)
+             val le = EventStore.find(urlSpec)!!
+             console.log(EventStore.log)
+             console.log(le)
+             assertTrue(!le.isError())
+         }
+     }
+ 
+     @Test
+     fun testParseActionGETArgument() {
+         val jsonStr = ACTIONS_FIND_BY_NAME.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val linkList = action.links
+         assertEquals(4, linkList.size)
+ 
+         val invokeLink: Link = action.getInvokeLink()!!
+         val args = invokeLink.arguments
+         assertNotNull(args)
+     }
+ 
+     @Test
+     fun testParseActionPOSTArgumentFS() {
+         val jsonStr = ACTIONS_RUN_FIXTURE_SCRIPT.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)   //1
+ 
+         val invokeLink = action.getInvokeLink()!!
+         val argList = invokeLink.arguments
+         assertEquals(2, argList.size)  //2
+ 
+         val paramList = action.parameters
+         assertEquals(2, paramList.size)  //3
+ 
+         val p = action.findParameterByName("script")!!
+         assertEquals("script", p.id)   //4
+ 
+         val choiceList = p.choices
+         assertEquals(1, choiceList.size) //5
+ 
+         val defaultChoice = p.defaultChoice!!.content as Link
+         val l = choiceList.first().content as Link
+         assertEquals(l.href, defaultChoice.href)   //6
+     }
+ 
+     @Test
+     fun testParseActionPOSTArgument() {
+         val jsonStr = ACTIONS_CREATE.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)
+     }
+ 
+     @Test
+     fun testParseActionPOSTDelete() {
+         val jsonStr = ACTIONS_DELETE.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)
+     }
+ 
+     @Test
+     fun testParseActionDownloadLayout() {
+         val jsonStr = ACTIONS_DOWNLOAD_LAYOUTS.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)
+ 
+         val invokeLink = action.getInvokeLink()
+         val argList = invokeLink!!.arguments
+         assertEquals(1, argList.size)  //2
+ 
+         val paramList = action.parameters
+         assertEquals(1, paramList.size)
+ 
+         val p = action.findParameterByName("style")!!
+         assertEquals("style", p.id)
+ 
+         val choiceList = p.choices
+         assertEquals(4, choiceList.size)
+ 
+         val defaultChoice = p.defaultChoice!!.content as String
+         assertEquals(choiceList[2].content, defaultChoice)
+     }
+ 
+     @Test
+     fun testParseActionDownloadMenubarsLayout() {
+         val jsonStr = ACTIONS_DOWNLOAD_MENUBARS_LAYOUT.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)
+ 
+         val invokeLink = action.getInvokeLink()
+         val argList = invokeLink!!.arguments
+         assertEquals(2, argList.size)  //2
+ 
+         val paramList = action.parameters
+         assertEquals(2, paramList.size)
+ 
+         val p = action.findParameterByName("type")
+         assertEquals("type", p!!.id)
+ 
+         val choiceList = p.choices
+         assertEquals(2, choiceList.size)
+ 
+         val defaultChoice = p.defaultChoice!!.content as String
+         assertEquals(choiceList[0].content, defaultChoice)
+     }
+ 
+     @Test
+     fun testParseActionDownloadSwaggerSchemaDefinition() {
+         val jsonStr = ACTIONS_DOWNLOAD_SWAGGER_SCHEMA_DEFINITION.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)
+ 
+         val invokeLink = action.getInvokeLink()
+         val argList = invokeLink!!.arguments
+         assertEquals(3, argList.size)  //2
+ 
+         val paramList = action.parameters
+         assertEquals(3, paramList.size)
+ 
+         val p0 = action.findParameterByName("filename")
+         assertEquals("filename", p0!!.id)
+         val p1 = action.findParameterByName("visibility")
+         assertEquals("visibility", p1!!.id)
+         val p2 = action.findParameterByName("format")
+         assertEquals("format", p2!!.id)
+ 
+         val choiceList = p1.choices
+         assertEquals(3, choiceList.size)
+ 
+         val defaultChoice = p1.defaultChoice!!.content as String
+         assertEquals("Private", defaultChoice)
+     }
+ 
+     //    @Test    //TODO-> empty key in arguments msg: Encountered unknown key csvFileName
+     fun testParseActionDownloadMetaModel() {
+         val jsonStr = ACTIONS_DOWNLOAD_META_MODEL.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)
+ 
+         val invokeLink = action.getInvokeLink()
+         val argList = invokeLink!!.arguments
+         assertEquals(2, argList.size)  //2
+ 
+         val paramList = action.parameters
+         assertEquals(2, paramList.size)
+ 
+         val p = action.findParameterByName(".csvFileName")
+         assertEquals(".csvFileName", p!!.id)
+ 
+ //        val choiceList = p.choices
+ //        assertEquals(2, choiceList.size)
+ 
+         val defaultChoice = p.defaultChoice!!.content as String
+         assertEquals("metamodel.csv", defaultChoice)
+     }
+ 
+     //@Test    //TODO-> empty key in arguments msg: Encountered unknown key csvFileName
+     fun testDownloadTranslations() {
+         val jsonStr = ACTIONS_DOWNLOAD_TRANSLATIONS.str
+         val action = ActionHandler().parse(jsonStr) as Action
+         val links = action.links
+         assertEquals(4, links.size)
+ 
+         val invokeLink = action.getInvokeLink()
+         val argList = invokeLink!!.arguments
+         assertEquals(1, argList.size)  //2
+ 
+         val paramList = action.parameters
+         assertEquals(1, paramList.size)
+ 
+         val p = action.findParameterByName(".potFileName")
+         assertEquals(".potFileName", p!!.id)
+ 
+         val defaultChoice = p.defaultChoice!!.content as String
+         assertEquals("translations.pot", defaultChoice)
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt
index 0000000,4fe2c9f..7b784f1
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/MemberTest.kt
@@@ -1,0 -1,73 +1,74 @@@
+ package org.apache.isis.client.kroviz.to
+ 
+ import kotlinx.serialization.UnstableDefault
+ import kotlinx.serialization.json.Json
++import org.apache.isis.client.kroviz.handler.MemberHandler
+ import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.FR_PROPERTY_DESCRIPTION
+ import kotlin.test.Test
+ import kotlin.test.assertEquals
+ import kotlin.test.assertNotNull
+ 
+ @UnstableDefault
+ class MemberTest() {
+ 
+     @Test
+     fun testParseLong() {
+         val jsonStr = buildJsonWith(1234567890)
+         val actual = parse(jsonStr)
+         assertEquals(1234567890L, actual.value!!.content as Number)
+     }
+ 
+     @Test
+     fun testParseInt() {
+         val jsonStr = buildJsonWith(0)
+         val actual = parse(jsonStr)
+         assertEquals(0L, actual.value!!.content as Long)
+     }
+ 
+     @Test
+     fun testParseString() {
+         val jsonStr = buildJsonWith("\"Object: Foo\"")
+         val actual = parse(jsonStr)
+         assertEquals("className", actual.id)
+         assertEquals("Object: Foo", (actual.value!!.content.toString()))
+     }
+ 
+     @Test
+     fun testParseLink() {
+         val jsonStr = buildJsonWith("""{"rel": "R", "href": "H", "method": "GET", "type": "TY", "title": "TI"}""")
+         val m = parse(jsonStr)
+         assertEquals("className", m.id)
+         val actual = m.value!!.content as Link
+         val expected = Link(href = "")
+         assertEquals(expected::class, actual::class)
+     }
+ 
+     @Test
+     fun testParseNull() {
+         val jsonStr = buildJsonWith("null")
+         val actual = parse(jsonStr)
+         assertEquals("className", actual.id)
+         assertEquals(null, actual.value)
+     }
+ 
+     @Test
+     fun testParse() {
 -        val m = org.apache.isis.client.kroviz.handler.MemberHandler().parse(FR_PROPERTY_DESCRIPTION.str) as org.apache.isis.client.kroviz.to.Member
++        val m = MemberHandler().parse(FR_PROPERTY_DESCRIPTION.str) as Member
+         val extensions: Extensions? = m.extensions
+         assertNotNull(extensions)
+         assertEquals("ResultListResult class", extensions.friendlyName)
+     }
+ 
+     private fun parse(jsonStr: String): Member {
+         return Json.parse(Member.serializer(), jsonStr)
+     }
+ 
+     private fun buildJsonWith(value: Any): String {
+         return """{
+         "id": "className",
+         "memberType": "property",
+         "value": $value
+     }"""
+     }
+ 
+ }
diff --cc incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ServiceTest.kt
index 0000000,db8dcc7..2a67d9c
mode 000000,100644..100644
--- a/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ServiceTest.kt
+++ b/incubator/clients/kroviz/src/test/kotlin/org/apache/isis/client/kroviz/to/ServiceTest.kt
@@@ -1,0 -1,40 +1,40 @@@
+ package org.apache.isis.client.kroviz.to
+ 
+ import kotlinx.serialization.UnstableDefault
+ import org.apache.isis.client.kroviz.handler.ServiceHandler
+ import org.apache.isis.client.kroviz.snapshots.simpleapp1_16_0.SO_MENU
+ import kotlin.test.Test
+ import kotlin.test.assertEquals
+ import kotlin.test.assertTrue
+ 
+ @UnstableDefault
+ class ServiceTest : ToTest() {
+ 
+     @Test
+     fun testSimpleObjectMenu() {
+         val jsonStr = SO_MENU.str
+         val service = ServiceHandler().parse(jsonStr) as Service
+         assertEquals("Simple Objects", service.title)
 -        val actions: kotlin.collections.List<Member> = service.getMemberList()
++        val actions: List<Member> = service.getMemberList()
+         assertEquals(3, actions.size)
+ 
+         assertTrue(service.containsMemberWith("listAll"))
+         assertTrue(service.containsMemberWith("findByName"))
+         assertTrue(service.containsMemberWith("create"))
+ 
+         // jsonObj contains '"members": {}' not '"members": []'
+         // this results in an unordered list (Map),
+         // but intended is an ordered list (Array[])
+         //TODO use object-layout / menu layout instead
+     }
+ 
+     fun Service.containsMemberWith(id: String): Boolean {
+         for (m in getMemberList()) {
+             if (m.id == id) {
+                 return true
+             }
+         }
+         return false
+     }
+ 
+ }
diff --cc incubator/pom.xml
index 4276bd8,27f9b64..9e1d781
--- a/incubator/pom.xml
+++ b/incubator/pom.xml
@@@ -64,15 -64,15 +64,15 @@@
  			<dependency>
  				<groupId>org.apache.isis.incubator</groupId>
  				<artifactId>isis-incubator-model</artifactId>
 -				<version>2.0.0-M3-SNAPSHOT</version>
 +				<version>2.0.0-SNAPSHOT</version>
  			</dependency>
- 			
+ 
  			<dependency>
  				<groupId>org.apache.isis.incubator</groupId>
  				<artifactId>isis-incubator-microprofile</artifactId>
 -				<version>2.0.0-M3-SNAPSHOT</version>
 +				<version>2.0.0-SNAPSHOT</version>
  			</dependency>
- 			
+ 
  			<dependency>
  				<groupId>org.apache.isis.incubator.viewer</groupId>
  				<artifactId>isis-viewer-vaadin</artifactId>
@@@ -82,15 -82,15 +82,15 @@@
  			<dependency>
  				<groupId>org.apache.isis.incubator.viewer</groupId>
  				<artifactId>isis-viewer-vaadin-model</artifactId>
 -				<version>2.0.0-M3-SNAPSHOT</version>
 +				<version>2.0.0-SNAPSHOT</version>
  			</dependency>
- 		
+ 
  			<dependency>
  				<groupId>org.apache.isis.incubator.viewer</groupId>
  				<artifactId>isis-viewer-vaadin-ui</artifactId>
 -				<version>2.0.0-M3-SNAPSHOT</version>
 +				<version>2.0.0-SNAPSHOT</version>
  			</dependency>
- 		
+ 
  			<dependency>
  				<groupId>org.apache.isis.incubator.viewer</groupId>
  				<artifactId>isis-viewer-vaadin-viewer</artifactId>


[isis] 02/02: ISIS-2324 ignorance++

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 65a57811708f5c11c3323562fa5f53b86323a53a
Author: Jörg Rade <jo...@kuehne-nagel.com>
AuthorDate: Wed Apr 8 18:21:19 2020 +0200

    ISIS-2324 ignorance++
---
 incubator/clients/kroviz/.gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/incubator/clients/kroviz/.gitignore b/incubator/clients/kroviz/.gitignore
index 80d39f7..b550c2a 100644
--- a/incubator/clients/kroviz/.gitignore
+++ b/incubator/clients/kroviz/.gitignore
@@ -1,7 +1,7 @@
 ./build
 ./out
 ./target
-./.gradle
+.gradle
 .idea/
 *.iml
 *.ipr