You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/29 14:43:55 UTC

[isis] 14/19: ISIS-2062: docs

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2062
in repository https://gitbox.apache.org/repos/asf/isis.git

commit e9ae4593bf2ca906591f9532c3c01fc0019141c3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Jan 29 08:44:57 2020 +0000

    ISIS-2062: docs
---
 .../isis-configurations-and-modules.pptx           | Bin 49903 -> 0 bytes
 .../attachments/modules-dependencies.pptx          | Bin 0 -> 48379 bytes
 .../archdesign/attachments/pom-hierarchy.pptx      | Bin 51849 -> 0 bytes
 .../archdesign/images/modules-dependencies.png     | Bin 0 -> 59588 bytes
 starters/adoc/modules/ROOT/pages/about.adoc        |  17 +++++++---------
 .../adoc/modules/parent-pom}/attachments/.gitkeep  |   0
 .../modules/parent-pom/attachments/parent-pom.pptx | Bin 0 -> 51655 bytes
 .../adoc/modules/parent-pom/images/parent-pom.png  | Bin 0 -> 68515 bytes
 .../adoc/modules/simpleapp}/attachments/.gitkeep   |   0
 .../simpleapp-modules-dependencies.pptx            | Bin 0 -> 47706 bytes
 .../images/simpleapp-modules-dependencies.png      | Bin 0 -> 64551 bytes
 starters/adoc/modules/simpleapp/pages/about.adoc   |  22 +++++++++++++++++++++
 12 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx b/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx
deleted file mode 100644
index 17f9f60..0000000
Binary files a/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx and /dev/null differ
diff --git a/antora/components/core/modules/archdesign/attachments/modules-dependencies.pptx b/antora/components/core/modules/archdesign/attachments/modules-dependencies.pptx
new file mode 100644
index 0000000..02ad262
Binary files /dev/null and b/antora/components/core/modules/archdesign/attachments/modules-dependencies.pptx differ
diff --git a/antora/components/core/modules/archdesign/attachments/pom-hierarchy.pptx b/antora/components/core/modules/archdesign/attachments/pom-hierarchy.pptx
deleted file mode 100644
index 0720727..0000000
Binary files a/antora/components/core/modules/archdesign/attachments/pom-hierarchy.pptx and /dev/null differ
diff --git a/antora/components/core/modules/archdesign/images/modules-dependencies.png b/antora/components/core/modules/archdesign/images/modules-dependencies.png
new file mode 100644
index 0000000..baa01c4
Binary files /dev/null and b/antora/components/core/modules/archdesign/images/modules-dependencies.png differ
diff --git a/starters/adoc/modules/ROOT/pages/about.adoc b/starters/adoc/modules/ROOT/pages/about.adoc
index 585d9c3..2ece453 100644
--- a/starters/adoc/modules/ROOT/pages/about.adoc
+++ b/starters/adoc/modules/ROOT/pages/about.adoc
@@ -8,28 +8,25 @@ To get started with a new application, download one of the two starter apps.
 
 The helloworld app is a very minimal app, intended just as a starting point to learn what the framework is all about.
 
-include::starters:helloworld:page$script.adoc[]
-
+The source code is in this link:https://github.com/apache/isis-app-helloworld[git repo] which you can either fork, or just download as a zip:
 
-Notes:
+include::starters:helloworld:page$script.adoc[]
 
-* you can find an explanation of how to use the app, and of its structure xref:starters:helloworld:about.adoc[here]
-* the source code can be found in this link:https://github.com/apache/isis-app-helloworld[git repo]
 
+An explanation of the structure of the app can be found *xref:starters:helloworld:about.adoc[here]*.
 
 
 == Simple App
 
 This app has the same functionality as _HelloWorld_, but is structured so it can be used as a starting point for developing your own applications.
+It also includes some xref:testing:integtestsupport:about.adoc[integration tests], xref:testing:fixtures:about.adoc[fixtures], and xref:testing:specsupport:about.adoc[BDD (Cucumber)] specs.
 
-include::starters:simpleapp:page$script.adoc[]
+The source code can be found in this link:https://github.com/apache/isis-app-simpleapp[git repo] which you can either fork, or just download as a zip:
 
-It also includes some xref:testing:integtestsupport:about.adoc[integration tests], xref:testing:fixtures:about.adoc[fixtures], and xref:testing:specsupport:about.adoc[BDD (Cucumber)] specs.
+include::starters:simpleapp:page$script.adoc[]
 
-Notes:
 
-* you can find an explanation of how to use the app, and of its structure xref:starters:simpleapp:about.adoc[here]
-* the source code can be found in this link:https://github.com/apache/isis-app-simpleapp[git repo]
+An explanation of the structure of the app can be found *xref:starters:helloworld:about.adoc[here]*.
 
 
 == Updating to Newer Versions
diff --git a/antora/components/core/modules/archdesign/attachments/.gitkeep b/starters/adoc/modules/parent-pom/attachments/.gitkeep
similarity index 100%
copy from antora/components/core/modules/archdesign/attachments/.gitkeep
copy to starters/adoc/modules/parent-pom/attachments/.gitkeep
diff --git a/starters/adoc/modules/parent-pom/attachments/parent-pom.pptx b/starters/adoc/modules/parent-pom/attachments/parent-pom.pptx
new file mode 100644
index 0000000..c664667
Binary files /dev/null and b/starters/adoc/modules/parent-pom/attachments/parent-pom.pptx differ
diff --git a/starters/adoc/modules/parent-pom/images/parent-pom.png b/starters/adoc/modules/parent-pom/images/parent-pom.png
new file mode 100644
index 0000000..da8feee
Binary files /dev/null and b/starters/adoc/modules/parent-pom/images/parent-pom.png differ
diff --git a/antora/components/core/modules/archdesign/attachments/.gitkeep b/starters/adoc/modules/simpleapp/attachments/.gitkeep
similarity index 100%
rename from antora/components/core/modules/archdesign/attachments/.gitkeep
rename to starters/adoc/modules/simpleapp/attachments/.gitkeep
diff --git a/starters/adoc/modules/simpleapp/attachments/simpleapp-modules-dependencies.pptx b/starters/adoc/modules/simpleapp/attachments/simpleapp-modules-dependencies.pptx
new file mode 100644
index 0000000..52e1c3a
Binary files /dev/null and b/starters/adoc/modules/simpleapp/attachments/simpleapp-modules-dependencies.pptx differ
diff --git a/starters/adoc/modules/simpleapp/images/simpleapp-modules-dependencies.png b/starters/adoc/modules/simpleapp/images/simpleapp-modules-dependencies.png
new file mode 100644
index 0000000..8e5f410
Binary files /dev/null and b/starters/adoc/modules/simpleapp/images/simpleapp-modules-dependencies.png differ
diff --git a/starters/adoc/modules/simpleapp/pages/about.adoc b/starters/adoc/modules/simpleapp/pages/about.adoc
index 0ef14cf..89e4f84 100644
--- a/starters/adoc/modules/simpleapp/pages/about.adoc
+++ b/starters/adoc/modules/simpleapp/pages/about.adoc
@@ -272,6 +272,8 @@ The REST API implemented by Apache Isis is specified in the link:http://www.rest
 
 The simpleapp starter app is a multi-module project, structured so that you easily extend it as your application grows.
 
+=== Application Modules
+
 The application consists of three modules, with a top-level module acting as an aggregator, the `module-simple` module that contains the business logic, and `webapp` module that acts as a bootstrapper.
 
 [plantuml]
@@ -307,6 +309,26 @@ For example, you might have a `module-customer` holding a `Customer` entity and
 We can use Maven dependency management to ensure that there are no cyclic dependencies (order "knows about" product but product does not know about orders) and ensure that the codebase remains decoupled.
 When Java9 modules are commonplace, we'll also be able to restrict visibility of classes between modules.
 
+=== Bootstrapping & Framework Modules
+
+One of the main responsibilities of Spring Boot is - naturally enough - to bootstrap the application.
+For the webapp, this is done using a class annotated with link:https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/SpringBootApplication.html[@SpringBootApplication].
+For integration tests, this uses the link:https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/SpringBootTest.html[@SpringBootTest] annotation.
+
+These two different annotations reference a (class annotated with) link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html[@Configuration], which in turn can link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Import.html[@Import] other annotations.
+
+By convention, the top-level `@Configuration` in an Apache Isis application is called the "app manifest".
+This references not only the application-level modules (described xref:about.adoc#application-modules[above]), but also the framework's modules.
+There will be several of these app manifests, typically one for the webapp itself, and one for integration testing each module.
+
+The link:{attachmentsdir}/simpleapp-modules-dependencies.pptx[diagram] below shows how classes fit together:
+
+.Module Dependencies
+image::simpleapp-modules-dependencies.png/[width="600px",link="{imagesdir}/simpleapp-modules-dependencies.png/"]
+
+
+
+
 Let's now review the contents of each of the modules in the simpleapp starter app.