http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.png b/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.png deleted file mode 100644 index 1ec6e18..0000000 Binary files a/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.png and /dev/null differ
http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.pptx ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.pptx b/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.pptx deleted file mode 100644 index c0be2a5..0000000 Binary files a/content/guides/ugfun/images/core-concepts/building-blocks/types-of-domain-object.pptx and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.png b/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.png index d8b28bd..9d9a2c6 100644 Binary files a/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.png and b/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.png differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.pptx ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.pptx b/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.pptx index 3eb0aad..f6c7adb 100644 Binary files a/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.pptx and b/content/guides/ugfun/images/core-concepts/philosophy/hexagonal-architecture.pptx differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png b/content/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png index 1dd885a..292698f 100644 Binary files a/content/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png and b/content/guides/ugfun/images/getting-started/simpleapp-webapp-with-fixtures.png differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/simpleapp-webapp.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/simpleapp-webapp.png b/content/guides/ugfun/images/getting-started/simpleapp-webapp.png index 771451b..482531b 100644 Binary files a/content/guides/ugfun/images/getting-started/simpleapp-webapp.png and b/content/guides/ugfun/images/getting-started/simpleapp-webapp.png differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png b/content/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png deleted file mode 100644 index 74e5ff9..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/010-root-page.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png b/content/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png deleted file mode 100644 index fc0d919..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/020-login-to-wicket-viewer.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png b/content/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png deleted file mode 100644 index 3a1bb54..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/030-home-page-run-fixture-scripts.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png b/content/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png deleted file mode 100644 index bc999ee..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/040-first-object.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png b/content/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png deleted file mode 100644 index 166e533..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/050-update-name-prompt.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png b/content/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png deleted file mode 100644 index d34888a..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/060-object-updated.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png b/content/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png deleted file mode 100644 index 59cc275..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/070-list-all-prompt.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png b/content/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png deleted file mode 100644 index e3e67cf..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/080-list-all.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/090-create.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/090-create.png b/content/guides/ugfun/images/getting-started/using-simple-app/090-create.png deleted file mode 100644 index f5708ec..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/090-create.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png b/content/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png deleted file mode 100644 index 9829512..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/100-create-prompt.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png b/content/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png deleted file mode 100644 index 31696f3..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/110-object-created.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png b/content/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png deleted file mode 100644 index 75a4e04..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/120-list-all.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png b/content/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png deleted file mode 100644 index 1b364b5..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/220-login-to-restful-viewer.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png b/content/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png deleted file mode 100644 index d032e68..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/230-home-page.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png b/content/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png deleted file mode 100644 index 57971ef..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/240-list-all-invoke.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png b/content/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png deleted file mode 100644 index b8c8b8b..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/250-list-all-results.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.png b/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.png deleted file mode 100644 index 909d09b..0000000 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.pptx ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.pptx b/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.pptx index 230963a..a3323c2 100644 Binary files a/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.pptx and b/content/guides/ugfun/images/getting-started/using-simple-app/structure/structure.pptx differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/how-tos/domain-services/hexagonal-architecture-addons.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/how-tos/domain-services/hexagonal-architecture-addons.png b/content/guides/ugfun/images/how-tos/domain-services/hexagonal-architecture-addons.png deleted file mode 100644 index af32db1..0000000 Binary files a/content/guides/ugfun/images/how-tos/domain-services/hexagonal-architecture-addons.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/how-tos/tips-n-tricks/action-semantics-are-you-sure.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/how-tos/tips-n-tricks/action-semantics-are-you-sure.png b/content/guides/ugfun/images/how-tos/tips-n-tricks/action-semantics-are-you-sure.png deleted file mode 100644 index f0cf269..0000000 Binary files a/content/guides/ugfun/images/how-tos/tips-n-tricks/action-semantics-are-you-sure.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-happy-case.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-happy-case.png b/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-happy-case.png deleted file mode 100644 index 1981c09..0000000 Binary files a/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-happy-case.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-sad-case.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-sad-case.png b/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-sad-case.png deleted file mode 100644 index 6182447..0000000 Binary files a/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure-sad-case.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure.png b/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure.png deleted file mode 100644 index e1a76fe..0000000 Binary files a/content/guides/ugfun/images/how-tos/tips-n-tricks/are-you-sure.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/reference-layout/4-0-8-0.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/reference-layout/4-0-8-0.png b/content/guides/ugfun/images/reference-layout/4-0-8-0.png deleted file mode 100644 index 1ebb062..0000000 Binary files a/content/guides/ugfun/images/reference-layout/4-0-8-0.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/reference-layout/4-4-4-12.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/reference-layout/4-4-4-12.png b/content/guides/ugfun/images/reference-layout/4-4-4-12.png deleted file mode 100644 index fd946bf..0000000 Binary files a/content/guides/ugfun/images/reference-layout/4-4-4-12.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/reference-layout/6-6-0-12.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/reference-layout/6-6-0-12.png b/content/guides/ugfun/images/reference-layout/6-6-0-12.png deleted file mode 100644 index 369efb7..0000000 Binary files a/content/guides/ugfun/images/reference-layout/6-6-0-12.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/reference-layout/isis-layout-show-facets.css ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/reference-layout/isis-layout-show-facets.css b/content/guides/ugfun/images/reference-layout/isis-layout-show-facets.css deleted file mode 100644 index c6b6334..0000000 --- a/content/guides/ugfun/images/reference-layout/isis-layout-show-facets.css +++ /dev/null @@ -1,3 +0,0 @@ -ul.isis-facets { - display: initial; -} http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/reference-layout/isis-layout.css ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/reference-layout/isis-layout.css b/content/guides/ugfun/images/reference-layout/isis-layout.css deleted file mode 100644 index acd445d..0000000 --- a/content/guides/ugfun/images/reference-layout/isis-layout.css +++ /dev/null @@ -1,253 +0,0 @@ -.primary-1 { - background-color: #669900; -} - -.primary-2 { - background-color: #669900; -} - -.primary-3 { - background-color: #669900; -} - -.primary-4 { - background-color: #99FF66; -} - -.primary-5 { - background-color: #CCFF99; -} - -.secondary-a-1 { - background-color: #006666; -} - -.secondary-a-2 { - background-color: #006666; -} - -.secondary-a-3 { - background-color: #006666; -} - -.secondary-a-4 { - background-color: #66CCCC; -} - -.secondary-a-5 { - background-color: #99CCCC; -} - -.secondary-b-1 { - background-color: #999900; -} - -.secondary-b-2 { - background-color: #999900; -} - -.secondary-b-3 { - background-color: #999900; -} - -.secondary-b-4 { - background-color: #FFFF66; -} - -.secondary-b-5 { - background-color: #FFFFCC; -} - -.complement-1 { - background-color: #990033; -} - -.complement-2 { - background-color: #990033; -} - -.complement-3 { - background-color: #990033; -} - -.complement-4 { - background-color: #FF6699; -} - -.complement-5 { - background-color: #FF99CC; -} - - - -legend { - background-color: white; -} - -fieldset { - padding-bottom: 10px; -} - -span,li { - color: white; -} -span { - font-weight: bold; -} - -li { - padding-bottom: 10px; - margin-bottom: 10px; -} - - - -.isis-header { - padding: 20px 80px 20px 40px; - margin-right: 100px; - background-color: #99CCCC; - display: block; - width: 100%; -} - -.isis-header span.isis-title { - font-size: xx-large; - padding: 5px 80px 5px 40px; - margin-right: 50px; - color: black; - background-color: #99FF66; - display: inline-table; - vertical-align: bottom; -} - -.isis-header div.isis-actions span { - font-size: large; - padding: 5px 5px 5px 5px; - display: inline-table; -} - -.isis-memberGroup, .isis-collection { - margin-top: 10px; - margin-bottom: 10px; - min-height: 100px; -} - -.isis-memberGroup { - background-color: #669900; -} - -.isis-collection { - background-color: #999900; -} - - -div.isis-property > span { - margin-left: 5%; - padding-left: 10px; - width: 90%; - display: block; -} - -fieldset div.isis-property > span { - padding: 5px; - margin: 10px; - background-color: #006666; -} - -.isis-header div.isis-actions, -fieldset div.isis-actions { - margin-left: 60px; -} - -fieldset.isis-collection div.isis-actions { - margin-left: 60px; -} - -.isis-header .isis-actions { - display: inline-block; -} - -.isis-header div.isis-action, -fieldset div.isis-action { - display: inline-table; - padding: 5px; - margin-top: 5px; - margin-bottom: 5px; - background-color: #990033; -} - - -fieldset div.isis-action span { - background-color: #990033; -} - -.isis-memberGroups {} - -.isis-memberGroup.min-height-50, -.isis-collection.min-height-50 { - min-height: 50px; -} - -.isis-memberGroup.min-height-100, -.isis-collection.min-height-100 { - min-height: 100px; -} - -.isis-memberGroup.min-height-150, -.isis-collection.min-height-150 { - min-height: 150px; -} - -.isis-memberGroup.min-height-200, -.isis-collection.min-height-200 { - min-height: 200px; -} - -.isis-memberGroup.min-height-250, -.isis-collection.min-height-250 { - min-height: 250px; -} - -.isis-memberGroup.min-height-300, -.isis-collection.min-height-300 { - min-height: 300px; -} - -.isis-memberGroup.min-height-350, -.isis-collection.min-height-350 { - min-height: 350px; -} - -.isis-memberGroup.min-height-400, -.isis-collection.min-height-400 { - min-height: 400px; -} - -.isis-memberGroup .isis-hidden { - display: none; -} - -.isis-action ul.isis-facets li { - margin-top: 30px; -} -ul.isis-facets li { - margin-left: 40px; - font-size: small; -} -.isis-action ul.isis-facets li { - margin-top: 10px; - margin-left: 20px; -} -.isis-action ul.isis-facets li { - font-size: small; -} -ul.isis-facets { - line-height: 0px; -} -ul.isis-facets { - margin:0px; -} - -.isis-facets { - display: none; -} http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoAppDashboard.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoAppDashboard.png b/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoAppDashboard.png deleted file mode 100644 index 69340be..0000000 Binary files a/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoAppDashboard.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoItem.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoItem.png b/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoItem.png deleted file mode 100644 index c47d52f..0000000 Binary files a/content/guides/ugfun/images/ugfun/_ugfun_object-layout_dynamic_xml/ToDoItem.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/wicket-viewer/application-menu/dividers.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/wicket-viewer/application-menu/dividers.png b/content/guides/ugfun/images/wicket-viewer/application-menu/dividers.png deleted file mode 100644 index dcb415d..0000000 Binary files a/content/guides/ugfun/images/wicket-viewer/application-menu/dividers.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.pdn ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.pdn b/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.pdn deleted file mode 100644 index 01453f7..0000000 Binary files a/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.pdn and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.png b/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.png deleted file mode 100644 index 0bc73d1..0000000 Binary files a/content/guides/ugfun/images/wicket-viewer/application-menu/layout-menus.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/images/wicket-viewer/application-menu/tertiary.png ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/images/wicket-viewer/application-menu/tertiary.png b/content/guides/ugfun/images/wicket-viewer/application-menu/tertiary.png deleted file mode 100644 index f2d2281..0000000 Binary files a/content/guides/ugfun/images/wicket-viewer/application-menu/tertiary.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/isis-site/blob/9d921a51/content/guides/ugfun/ugfun.html ---------------------------------------------------------------------- diff --git a/content/guides/ugfun/ugfun.html b/content/guides/ugfun/ugfun.html index d05d0a6..bf999b9 100644 --- a/content/guides/ugfun/ugfun.html +++ b/content/guides/ugfun/ugfun.html @@ -179,6 +179,7 @@ table.CodeRay td.code>pre{padding:0} <li><a href="../../guides/ugfun/ugfun.html">Fundamentals</a></li> <li><a href="../../guides/ugvw/ugvw.html">Wicket Viewer</a></li> <li><a href="../../guides/ugvro/ugvro.html">Restful Objects Viewer</a></li> + <li><a href="../../guides/ugodn/ugodn.html">DataNucleus Object Store</a></li> <li><a href="../../guides/ugsec/ugsec.html">Security</a></li> <li><a href="../../guides/ugtst/ugtst.html">Testing</a></li> <li><a href="../../guides/ugbtb/ugbtb.html">Beyond the Basics</a></li> @@ -196,25 +197,32 @@ table.CodeRay td.code>pre{padding:0} </ul> </li> <li class="dropdown hidden-sm hidden-md"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Downloads<span class="caret"></span></a> <ul class="dropdown-menu"> - <li><a href="../../downloads.html">Downloads</a></li> - <li><a href="../../release-notes/release-notes.html">Release Notes</a></li> - <li><a href="../../migration-notes/migration-notes.html">Migration Notes</a></li> - <li role="separator" class="divider"></li> <li class="dropdown-header">Maven archetypes</li> <li><a href="../../guides/ugfun/ugfun.html#_ugfun_getting-started_helloworld-archetype">helloworld</a></li> <li><a href="../../guides/ugfun/ugfun.html#_ugfun_getting-started_simpleapp-archetype">simpleapp</a></li> <li role="separator" class="divider"></li> - <li><a href="https://issues.apache.org/jira/browse/ISIS">ASF JIRA</a></li> + <li><a href="../../downloads.html">Downloads</a></li> + <li><a href="../../release-notes/release-notes.html">Release Notes</a></li> + <li><a href="../../migration-notes/migration-notes.html">Migration Notes</a></li> + <li role="separator" class="divider"></li> <li><a href="https://github.com/apache/isis">Github mirror</a></li> </ul> </li> <li class="dropdown hidden-sm"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Support<span class="caret"></span></a> <ul class="dropdown-menu"> - <li><a href="../../support.html">Mailing lists</a></li> + <li class="dropdown-header">Guides</li> + <li><a href="../../guides/dg/dg.html">Developers' Guide</a></li> + <li><a href="../../guides/cgcom/cgcom.html">Committers' Guide</a></li> + <li><a href="../../guides/htg.html">Hints-n-Tips Guide</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Mailing Lists</li> + <li><a href="../../support.html">How to subscribe</a></li> <li><a href="https://lists.apache.org/[email protected]">Archives (ASF Pony mail)</a></li> <li><a href="http://isis.markmail.org/search/?q=">Archives (Markmail)</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Other Resources</li> + <li><a href="https://issues.apache.org/jira/browse/ISIS">ASF JIRA</a></li> <li><a href="http://stackoverflow.com/questions/tagged/isis">Stack Overflow</a></li> - <li><a href="../../guides/dg/dg.html">How to contribute</a></li> - <li><a href="../../help.html">Other resources</a></li> + <li><a href="../../help.html">Wiki, Fisheye etc.</a></li> </ul> </li> <li class="dropdown hidden-sm hidden-md"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">@ASF<span class="caret"></span></a> <ul class="dropdown-menu"> @@ -1797,7 +1805,7 @@ table.CodeRay td.code>pre{padding:0} </ul> </div> <div class="paragraph"> - <p>Although the exact content of an OID should be considered opaque by domain objects, it is possible for domain objects to obtain OIDs. These are represented as <code>Bookmark`s, obtained from the <a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_BookmarkService">`BookmarkService</a></code>. Deep links meanwhile can be obtained from the <a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_DeepLinkService"><code>DeepLinkService</code></a>.</p> + <p>Although the exact content of an OID should be considered opaque by domain objects, it is possible for domain objects to obtain OIDs. These are represented as <code>Bookmark`s, obtained from the <a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_BookmarkService">`BookmarkService</a></code>. Deep links meanwhile can be obtained from the <a href="../rgsvc/rgsvc.html#_rgsvc_presentation-api_DeepLinkService"><code>DeepLinkService</code></a>.</p> </div> <div class="paragraph"> <p>OIDs can also be converted into XML format, useful for integration scenarios. The <a href="../rgcms/rgcms.html#_rgcms_schema-common">common schema</a> XSD defines the <code>oidDto</code> complex type for precisely this purpose.</p> @@ -2028,7 +2036,7 @@ table.CodeRay td.code>pre{padding:0} <p>As explained <a href="../ugfun/ugfun.html#_ugfun_building-blocks_identifiers_title-and-icon">earlier</a>, to allow the end-user to distinguish one domain object from another, it is rendered with a title and an icon.</p> </div> <div class="paragraph"> - <p><a href="../ugfun/ugfun.html#_ugfun_ui-hints_object-titles-and-icons">Normally</a> the code to return title and icon of an object is part of the domain objectâs implementation. However, UI events allow this title and icon to be provided instead by a subscriber. (As of <code>1.15.0</code> onwards), UI events have higher precedence than the other mechanisms of supplying a title</p> + <p><a href="../ugfun/ugfun.html#_ugfun_ui-hints_object-titles-and-icons">Normally</a> the code to return title and icon of an object is part of the domain objectâs implementation. However, UI events allow this title and icon to be provided instead by a subscriber. UI events have higher precedence than the other mechanisms of supplying a title.</p> </div> <div class="paragraph"> <p>If annotated with <a href="../rgant/rgant.html#_rgant_DomainObjectLayout_titleUiEvent"><code>@DomainObjectLayout#titleUiEvent()</code></a>, the appropriate (subclass of) <code>TitleUiEvent</code> will be emitted. Similarly for <a href="../rgant/rgant.html#_rgant_DomainObjectLayout_iconUiEvent"><code>iconUiEvent()</code></a> and <a href="../rgant/rgant.html#_rgant_DomainObjectLayout_cssClassUiEvent"><code>cssClassUiEvent()</code></a>.</p> @@ -2114,18 +2122,14 @@ table.CodeRay td.code>pre{padding:0} <div class="paragraph"> <p>The bootstrapping of Apache Isis also relies on module classes. (Currently) the only role of these classes is to identify a fully qualified package name, for example <code>org.incode.modules.document</code>. The framework then performs classpath scanning across all such packages to locate any domain entities provided by that module (though some modules have no entities), all domain services provided by the module (every module is likely to define at least one), and also any fixture scripts provided by the module.</p> </div> - <div class="admonitionblock tip"> - <table> - <tbody> - <tr> - <td class="icon"> <i class="fa icon-tip" title="Tip"></i> </td> - <td class="content"> - <div class="paragraph"> - <p>In the same way that the Java module act as a namespace for domain objects, itâs good practice to map domain entities to their own (database) schemas.</p> - </div> </td> - </tr> - </tbody> - </table> + <div class="paragraph"> + <p>In the same way that the Java module act as a namespace for domain objects, itâs good practice to map domain entities to their own (database) schemas.</p> + </div> + <div class="paragraph"> + <p>The module class does not <em>need</em> to implement any specific interface; in this case the framework uses the module class simply to obtain a package to scan for entities and domain services. However, itâs recommended to implement the <a href="../rgcms/rgcms.html#_rgcms_classes_Module"><code>Module</code></a> interface because this allows the module to specify its direct dependencies; from these all transitive dependencies are calculated. This should match the compile-time dependencies declared within Maven.</p> + </div> + <div class="paragraph"> + <p>The <code>Module</code> interface also allows a module to declare any configuration properties that should be contributed, as well as fixture scripts for reference data, and to tear down (for integration testing).</p> </div> </div> </div> @@ -2193,7 +2197,7 @@ table.CodeRay td.code>pre{padding:0} <pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate \ -D archetypeGroupId=org.apache.isis.archetype \ -D archetypeArtifactId=helloworld-archetype \ - -D archetypeVersion=1.15.1 \ + -D archetypeVersion=1.16.0 \ -D groupId=com.mycompany \ -D artifactId=myapp \ -D version=1.0-SNAPSHOT \ @@ -2853,7 +2857,7 @@ mvn clean install</code></pre> <pre class="CodeRay highlight"><code data-lang="bash">mvn archetype:generate \ -D archetypeGroupId=org.apache.isis.archetype \ -D archetypeArtifactId=simpleapp-archetype \ - -D archetypeVersion=1.15.1 \ + -D archetypeVersion=1.16.0 \ -D groupId=com.mycompany \ -D artifactId=myapp \ -D version=1.0-SNAPSHOT \ @@ -2948,20 +2952,29 @@ mvn clean install</code></pre> <div class="sect3"> <h4 id="_myapp_application">5.2.2. myapp-application</h4> <div class="paragraph"> - <p>The <code>myapp-application</code> module has three main packages, the most important being <code>domainapp.application.manifest</code>.</p> - </div> - <div class="paragraph"> - <p>Classes for this package can be found under <code>src/main/java</code>:</p> + <p>The production classes for <code>myapp-application</code> module (in <code>src/main/java</code>) are:</p> </div> <div class="listingblock"> <div class="content"> <pre>domainapp/ âââ application/ - âââ manifest/ - âââ DomainAppAppManifest.java - âââ DomainAppAppManifestBypassSecurity.java - âââ DomainAppAppManifestWithFixtures.java - âââ DomainAppAppManifestWithFixturesBypassSecurity.java</pre> + âââ DomainAppApplicationModule.java + âââ fixture/ + â âââ DomainAppFixtureScriptsSpecificationProvider.java + â âââ scenarios/ + â âââ DomainAppDemo.java + âââ manifest/ + â âââ DomainAppAppManifest.java + â âââ DomainAppAppManifestBypassSecurity.java + â âââ DomainAppAppManifestWithFixtures.java + â âââ DomainAppAppManifestWithFixturesBypassSecurity.java + â âââ menubars.layout.xml + âââ services + âââ homepage + âââ HomePageService.java + âââ HomePageViewModel.java + âââ HomePageViewModel.layout.xml + âââ HomePageViewModel.layout.png</pre> </div> </div> <div class="paragraph"> @@ -2984,20 +2997,17 @@ mvn clean install</code></pre> </div> <div class="listingblock"> <div class="content"> - <pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">DomainAppAppManifest</span> <span class="directive">extends</span> AppManifestAbstract { + <pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">DomainAppAppManifest</span> <span class="directive">extends</span> AppManifestAbstract2 { - <span class="directive">public</span> <span class="directive">static</span> <span class="directive">final</span> Builder BUILDER = Builder.forModules( - SimpleModuleDomSubmodule.class, - DomainAppApplicationModuleFixtureSubmodule.class, - DomainAppApplicationModuleServicesSubmodule.class - ) + <span class="directive">public</span> <span class="directive">static</span> <span class="directive">final</span> Builder BUILDER = Builder + .forModule(<span class="keyword">new</span> DomainAppApplicationModule()) .withConfigurationPropertiesFile(DomainAppAppManifest.class, <span class="string"><span class="delimiter">"</span><span class="content">isis.properties</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">authentication_shiro.properties</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">persistor_datanucleus.properties</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content">viewer_restfulobjects.properties</span><span class="delimiter">"</span></span>, - <span class="string"><span class="delimiter">"</span><span class="content">viewer_wicket.properties</span><span class="delimiter">"</span></span> - ).withAuthMechanism(<span class="string"><span class="delimiter">"</span><span class="content">shiro</span><span class="delimiter">"</span></span>); + <span class="string"><span class="delimiter">"</span><span class="content">viewer_wicket.properties</span><span class="delimiter">"</span></span>) + .withAuthMechanism(<span class="string"><span class="delimiter">"</span><span class="content">shiro</span><span class="delimiter">"</span></span>); <span class="directive">public</span> DomainAppAppManifest() { <span class="local-variable">super</span>(BUILDER); @@ -3006,32 +3016,35 @@ mvn clean install</code></pre> </div> </div> <div class="paragraph"> - <p>The manifest uses the builder defined by <code>AppManifestAbstract</code> and references 3 (Isis) modules. These are simply classes that identify packages to search for entities, domain services and fixtures; one defined in the <code>myapp-module-simple</code> module, and two package within the <code>myapp-application</code> module itself (for additional fixtures and services, namely the home page which weâll discuss below).</p> + <p>The manifest uses the builder defined by <code>AppManifestAbstract2</code> and references a single top-level (Isis) module, namely <code>DomainAppApplicationModule</code>:</p> + </div> + <div class="listingblock"> + <div class="content"> + <pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">DomainAppApplicationModule</span> <span class="directive">extends</span> ModuleAbstract { + <span class="annotation">@Override</span> + <span class="directive">public</span> <span class="predefined-type">Set</span><Module> getDependencies() { + <span class="keyword">return</span> Sets.<Module>newHashSet(<span class="keyword">new</span> SimpleModule()); + } +}</code></pre> + </div> </div> <div class="paragraph"> - <p>The manifest also defines a number of static configuration files, all loaded from the classpath. Each file contains configuration setting for a different part of the runtime (<code>isis.properties</code> for the core framework, shiro for security, datanucleus for the objectstore, and the two viewers).</p> + <p>where <code>SimpleModule</code> in defined in the <code>mypp-module-simple</code> module (below).</p> </div> <div class="paragraph"> - <p>There are also several variations on the app manifest; these can be used to bootstrap the application with fixtures, or disabling security.</p> + <p>The primary purpose of the module class is to identify packages and subpackages that the framework should scan for entities and domain services. The transitive dependencies between modules are automatically resolved. The net effect is that all the domain services and entities in this module as well as those modules referenced are included into the app.</p> </div> <div class="paragraph"> - <p>The next package is <code>domainapp.application.services</code>:</p> + <p>Going back to the manifest, it also defines a number of static configuration files, all loaded from the classpath. Each file contains configuration setting for a different part of the runtime (<code>isis.properties</code> for the core framework, shiro for security, datanucleus for the objectstore, and the two viewers).</p> </div> - <div class="listingblock"> - <div class="content"> - <pre>domainapp/ -âââ application/ - âââ services/ - âââ DomainAppApplicationModuleServicesSubmodule.java - âââ homepage/ - âââ HomePageService.java - âââ HomePageViewModel.java - âââ HomePageViewModel.layout.xml - âââ HomePageViewModel.png</pre> - </div> + <div class="paragraph"> + <p>The <code>menubars.layout.xml</code> file also resides in the same package as the manifest; this defines the menubar structure.</p> + </div> + <div class="paragraph"> + <p>There are also several variations on the app manifest; these can be used to bootstrap the application with fixtures, or disabling security.</p> </div> <div class="paragraph"> - <p>The <code>DomainAppApplicationModuleServicesSubmodule</code> class is referenced as a module within the app manifest, meaning that the <code>HomePageService</code> that sits in a subpackage underneath it is picked up automatically. This domain service simply has a single action annotated with <code>@HomePage</code>:</p> + <p>The <code>domainapp.application.services</code> package contains the <code>HomePageService</code> domain service. This simply has a single action annotated with <code>@HomePage</code>:</p> </div> <div class="listingblock"> <div class="content"> @@ -3046,26 +3059,7 @@ mvn clean install</code></pre> <p>which returns the <code>HomePageViewModel</code> for use as the home page. The <code>HomePageViewModel</code> itself just renders a collection of <code>SimpleObject</code>s in a list (<code>HomePageViewModel.layout.xml</code> defines the UI layout).</p> </div> <div class="paragraph"> - <p>The final package in the application module is <code>domainapp.application.fixture</code>:</p> - </div> - <div class="listingblock"> - <div class="content"> - <pre>domainapp/ -âââ application/ - âââ fixture/ - âââ DomainAppApplicationModuleFixtureSubmodule.java - âââ DomainAppFixtureScriptsSpecificationProvider.java - âââ scenarios/ - â âââ DomainAppDemo.java - âââ teardown/ - âââ DomainAppTearDown.java</pre> - </div> - </div> - <div class="paragraph"> - <p>The important class here is <code>DomainAppDemo</code>, which is a fixture script that can be used to setup the application with some dummy data. This is used in the app itself when running in prototype mode (against an in-memory database), and can also be used by integration tests.</p> - </div> - <div class="paragraph"> - <p>The <code>DomainAppApplicationModuleFixtureSubmodule</code> is referenced by the app manifest, meaning that the framework knows to search for domain services and fixtures under its package.</p> + <p>The final package in the application module is <code>domainapp.application.fixture</code>. The important class here is <code>DomainAppDemo</code>, a fixture script that can be used to setup the application with some dummy data. This is used in the app itself when running in prototype mode (against an in-memory database), and can also be used by integration tests.</p> </div> <div class="paragraph"> <p>There is in fact also a domain service defined here, namely <code>DomainAppFixtureScriptsSpecificationProvider</code>. This is just used to configure the run fixture script menu item shown on the "Prototyping" menu.</p> @@ -3087,6 +3081,9 @@ mvn clean install</code></pre> </div> </div> <div class="paragraph"> + <p>Here the <code>BootstrappingGlue</code> glue class inherits from the frameworkâs <code>CukeGlueBootstrappingAbstract</code> class, and bootstraps using the <code>DomainAppApplicationModule</code> mentioned above.</p> + </div> + <div class="paragraph"> <p>There is just one feature file: <code>SimpleObjectSpec_listAllAndCreate.feature</code>, which is pretty simple:</p> </div> <div class="listingblock"> @@ -3094,18 +3091,17 @@ mvn clean install</code></pre> <pre class="CodeRay highlight"><code data-lang="feature">@DomainAppDemo Feature: List and Create New Simple Objects - @integration Scenario: Existing simple objects can be listed and new ones created - Given there are initially 3 simple objects + Given there are initially 10 simple objects When I create a new simple object - Then there are 4 simple objects</code></pre> + Then there are 11 simple objects</code></pre> </div> </div> <div class="paragraph"> - <p>The <code>@DomainAppDemo</code> annotation causes the <code>DomainAppDemo</code> fixture script to be run; this sets up 3 objects. The "glue" defines both in the <code>myapp-application</code> module and in the <code>myapp-module-simple</code> module</p> + <p>The <code>@DomainAppDemo</code> annotation causes the <code>DomainAppDemo</code> fixture script to be run; this is the purpose of the <code>CatalogOfFixturesGlue</code> glue class.</p> </div> <div class="paragraph"> - <p>The tests themselves are run by the <code>RunIntegBddSpecs.java</code> class; this is standard Cucumber bootstrapping.</p> + <p>The specs themselves are run by the <code>RunIntegBddSpecs.java</code> class, which specifies which packages to search for "glue". This is just standard Cucumber bootstrapping.</p> </div> <div class="paragraph"> <p>The integration tests meanwhile are in <code>domainapp.application.integtests</code>:</p> @@ -3120,10 +3116,10 @@ Feature: List and Create New Simple Objects </div> </div> <div class="paragraph"> - <p>The <code>Smoke_IntegTest</code> inherits <code>DomainAppIntegTestAbstract</code>, with the latter bootstrapping the framework using the <code>DomainAppAppManifest</code> already discussed that is used for running the application itself. Moreover, the <code>Smoke_IntegTest</code> uses the same <code>DomainAppDemo</code> fixture script. The application and the smoke tests therefore run with the exact same state, making debugging easy.</p> + <p>The <code>Smoke_IntegTest</code> inherits <code>DomainAppIntegTestAbstract</code>, which in turn inherits from <code>IntegrationTestAbstract3</code> and uses the <code>DomainAppApplicationModule</code> previously discussed. Moreover, the <code>Smoke_IntegTest</code> uses the same <code>DomainAppDemo</code> fixture script. The application and the smoke tests therefore run with the exact same state, making debugging easy.</p> </div> <div class="paragraph"> - <p>The BDD specs and integration tests are named according to the naming convention required by the "surefire" mavenmixin that configures the maven surefire plugin.</p> + <p>With regard to the naming of these various BDD specs and integration tests, they follow the naming convention required by the (non-ASF) <a href="http://github.com/danhaywood/java-mavenmixin-surefire">"surefire" mavenmixin</a> that configures the maven surefire plugin.</p> </div> </div> <div class="sect3"> @@ -3155,9 +3151,9 @@ Feature: List and Create New Simple Objects <pre>domainapp/ âââ modules/ âââ simple/ + âââ SimpleModule.java âââ SimpleModuleManifest.java âââ dom/ - â âââ SimpleModuleDomSubmodule.java â âââ impl/ â âââ SimpleObject.java â âââ SimpleObject.layout.xml @@ -3165,39 +3161,45 @@ Feature: List and Create New Simple Objects â âââ SimpleObjectMenu.java â âââ SimpleObjectRepository.java âââ fixture/ - âââ SimpleModuleFixtureSubmodule.java - âââ scenario/ - â âââ CreateSimpleObjects.java - â âââ SimpleObjectData.java - âââ teardown/ - âââ SimpleModuleTearDown.java + âââ SimpleObject_persona.java + âââ SimpleObjectBuilder.java META-INF/ âââ persistence.xml</pre> </div> </div> <div class="paragraph"> - <p>Note once more that the module class (<code>SimpleModuleDomSubmodule</code>) is referenced in the app manifest class, meaning that all the entities, domain services and fixtures within it are included within the application. Speaking of whichâ¦â</p> - </div> - <div class="paragraph"> - <p><code>SimpleObject</code> is the (one-and-only) domain entity defined (with <code>SimpleObject.layout.xml</code> defines its layout in the UI). In contrast to the helloworld app, though, there are <em>two</em> associated domain services:</p> + <p>The <code>SimpleModule</code> is the (single) module class referenced from the previously discussed <code>DomainAppApplicationModule</code>, meaning that all the entities, domain services and fixtures within it are included within the application.</p> </div> <div class="ulist"> <ul> - <li> <p><code>SimpleObjectMenu</code> domain serviceâs actions appear as menu items, to create and find <code>SimpleObject</code>s. This delegates in turn to:</p> </li> - <li> <p><code>SimpleObjectRepository</code>, which is a repository domain service that actually does the fetching and creating in the database.</p> </li> + <li> <p><code>SimpleObject</code> is the (one-and-only) domain entity defined (with <code>SimpleObject.layout.xml</code> defines its layout in the UI).</p> </li> + <li> <p><code>SimpleObjects</code> domain serviceâs whos actions appear as menu items and which acts as a repository to create and find <code>SimpleObject</code>s.</p> </li> </ul> </div> <div class="paragraph"> - <p>Splitting out domain services like this is quite common since it allows more flexibility with the menu structure.</p> + <p>The <code>SimpleModule</code> class also defines a teardown fixture, automatically called by integration tests.</p> </div> - <div class="paragraph"> - <p>The module also defines its own manifest, <code>SimpleModuleManifest</code>. This is used to run Isis' own <a href="../rgmvn/rgmvn.html">maven plugin</a> to <a href="../rgmvn/rgmvn.html#_rgmvn_validate">validate</a> the domain object model (eg to detect orphaned supported methods).</p> + <div class="listingblock"> + <div class="content"> + <pre class="CodeRay highlight"><code data-lang="java"><span class="directive">public</span> <span class="type">class</span> <span class="class">SimpleModule</span> <span class="directive">extends</span> ModuleAbstract { + <span class="annotation">@Override</span> + <span class="directive">public</span> FixtureScript getTeardownFixture() { + <span class="keyword">return</span> <span class="keyword">new</span> TeardownFixtureAbstract2() { + <span class="annotation">@Override</span> + <span class="directive">protected</span> <span class="type">void</span> execute(ExecutionContext ec) { + deleteFrom(SimpleObject.class); + } + }; + } + ... +}</code></pre> + </div> </div> <div class="paragraph"> - <p>Under <code>fixture.scenario</code> subpackage are fixture scripts that are used by integration tests and by the demo fixture script defined in the <code>myapp-application</code> module (discussed above).</p> + <p>In the <code>fixture</code> subpackage is the <code>SimpleObject_persona</code> "persona" which uses the corresponding <code>SimpleObjectBuilder</code> builder script; further discussion on this pattern <a href="../ugtst/ugtst.html#_ugtst_fixture-scripts_api-and-usage_persona-and-builders">here</a>. These fixtures are also used by "local" integration tests, which reside under <code>src/test/java</code>.</p> </div> <div class="paragraph"> - <p>These fixtures are also used by "local" integration tests, which reside under <code>src/test/java</code>. There are also unit tests and "glue" for the BDD specs:</p> + <p>There are also unit tests and "glue" for the BDD specs:</p> </div> <div class="listingblock"> <div class="content"> @@ -3221,7 +3223,10 @@ META-INF/ <p>The simpleapp application has both "local" integration tests (defined within the <code>myapp-module-simple</code> module) and also "global" integration tests (the "smoke" tests in <code>myapp-application</code> module). Thereâs a role for both: local integration tests should fully exercise the module but may need to mock out collaborations between modules, while global integration tests exercise the whole application (but an over-reliance on these can cause test run times to bloat).</p> </div> <div class="paragraph"> - <p>The surefire mavenmixin plugin configured in the <code>pom.xml</code> establishes the convention that integration tests include the name "IntegTest", while unit tests contain merely "Test". The <code>SimpleModuleIntegTestAbstract</code> also uses the <code>SimpleAppManifest</code> (mentioned above) to define a "cut-down" version of the application that just bootstraps the simple module.</p> + <p>With regard to the naming of these various BDD specs and integration tests, they follow the naming convention required by the (non-ASF) <a href="http://github.com/danhaywood/java-mavenmixin-surefire">"surefire" mavenmixin</a> that configures the maven surefire plugin. Integration tests include the name "IntegTest", while unit tests contain merely "Test".</p> + </div> + <div class="paragraph"> + <p>The module also defines its own manifest, <code>SimpleModuleManifest</code>. This is used to run Isis' own <a href="../rgmvn/rgmvn.html">maven plugin</a> to <a href="../rgmvn/rgmvn.html#_rgmvn_validate">validate</a> the domain object model (eg to detect orphaned supported methods).</p> </div> </div> <div class="sect3"> @@ -3241,7 +3246,7 @@ META-INF/ </div> </div> <div class="paragraph"> - <p>The <code>DomainApplication</code> is required to bootstrap the Wicket viewer (it is configured in <code>WEB-INF/web.xml</code>). Internally it uses Google Guice to configure various static resources served up by Wicket:</p> + <p>The <code>DomainApplication</code> is required to bootstrap the Wicket viewer (it is configured in <code>WEB-INF/web.xml</code>, discussed below). Within <code>DomainApplication</code> is the bootstrapping of the Wicket viewer. Internally it uses Google Guice to configure various static resources served up by Wicket:</p> </div> <div class="listingblock"> <div class="content"> @@ -3284,7 +3289,33 @@ WEB-INF/ </div> </div> <div class="paragraph"> - <p>Most important of these is <code>WEB-INF/web.xml</code>, which bootstraps both the Wicket viewer and the Restful Objects viewer (the REST API derived from the domain object model).</p> + <p>Most important of these is <code>WEB-INF/web.xml</code>, which bootstraps both the Wicket viewer and the Restful Objects viewer (the REST API derived from the domain object model):</p> + </div> + <div class="listingblock"> + <div class="title"> + web.xml + </div> + <div class="content"> + <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag"><web-app</span> <span class="attribute-name">...</span><span class="tag">></span> + ... + <span class="tag"><filter></span> + <span class="tag"><filter-name></span>WicketFilter<span class="tag"></filter-name></span> + <span class="tag"><filter-class></span>org.apache.wicket.protocol.http.WicketFilter<span class="tag"></filter-class></span> + <span class="tag"><init-param></span> + <span class="tag"><param-name></span>applicationClassName<span class="tag"></param-name></span> + <span class="tag"><param-value></span>domainapp.webapp.DomainApplication<span class="tag"></param-value></span> + <span class="tag"></init-param></span> + <span class="tag"></filter></span> + ... + <span class="tag"><context-param></span> + <span class="tag"><param-name></span>javax.ws.rs.Application<span class="tag"></param-name></span> + <span class="tag"><param-value></span> + org.apache.isis.viewer.restfulobjects.server.RestfulObjectsApplication + <span class="tag"></param-value></span> + <span class="tag"></context-param></span> + ... +<span class="tag"></web-app></span></code></pre> + </div> </div> <div class="paragraph"> <p>The <code>about/index.html</code> is the page shown at the root of the package, providing links to either the Wicket viewer or to the Swagger UI. In a production application this is usually replaced with a page that does an HTTP 302 redirect to the Wicket viewer.</p> @@ -5708,7 +5739,7 @@ ProductRepository productRepository;</code></pre> <p>If your JAXB view model contains fields using the JODA datatypes (<code>LocalDate</code> and so on), then <code>@XmlJavaTypeAdapter</code> additional annotations in order to "teach" JAXB how to serialize out the state.</p> </div> <div class="paragraph"> - <p>(As of <code>1.15.0</code>) you can use adapters provided in the Apache Isis applib. For example:</p> + <p>The Apache Isis applib provides a number of adapters to use out-of-the-box. For example:</p> </div> <div class="listingblock"> <div class="content"> @@ -8721,7 +8752,7 @@ repositoryService.remove(customer);</code></pre> <ul> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_BookmarkService"><code>BookmarkService</code></a></p> </li> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_MementoService"><code>MementoService</code></a></p> </li> - <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_DeepLinkService"><code>DeepLinkService</code></a></p> </li> + <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_presentation-api_DeepLinkService"><code>DeepLinkService</code></a></p> </li> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_JaxbService"><code>JaxbService</code></a></p> </li> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_XmlSnapshotService"><code>XmlSnapshotService</code></a></p> </li> </ul> @@ -8746,7 +8777,7 @@ repositoryService.remove(customer);</code></pre> </div> <div class="ulist"> <ul> - <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_application-layer-api_AcceptHeaderService"><code>AcceptHeaderService</code></a></p> </li> + <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_presentation-layer-api_AcceptHeaderService"><code>AcceptHeaderService</code></a></p> </li> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_metadata-api_SwaggerService"><code>SwaggerService</code></a></p> </li> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_presentation-layer-spi_ContentMappingService"><code>ContentMappingService</code></a> (SPI)</p> </li> </ul> @@ -8765,8 +8796,8 @@ repositoryService.remove(customer);</code></pre> </div> <div class="ulist"> <ul> - <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_testing_FixtureScriptsDefault"><code>FixtureScriptsDefault</code></a></p> </li> - <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_integration-api_GuiceBeanProvider"><code>GuiceBeanProvider</code></a></p> </li> + <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_testing_FixtureScripts"><code>FixtureScripts</code></a></p> </li> + <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_presentation-api_GuiceBeanProvider"><code>GuiceBeanProvider</code></a></p> </li> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_testing_SudoService"><code>SudoService</code></a></p> </li> <li> <p><a href="../rgsvc/rgsvc.html#_rgsvc_application-layer-api_TransactionService"><code>TransactionService</code></a></p> </li> </ul>
