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 2014/11/18 23:19:57 UTC

svn commit: r1640436 - in /isis/site/trunk/content: reference/recognized-annotations/DomainService.md reference/recognized-annotations/about.md tutorials/apacheconeu-2014.md

Author: danhaywood
Date: Tue Nov 18 22:19:57 2014
New Revision: 1640436

URL: http://svn.apache.org/r1640436
Log:
tutorial, @DomainService stub

Added:
    isis/site/trunk/content/reference/recognized-annotations/DomainService.md
Modified:
    isis/site/trunk/content/reference/recognized-annotations/about.md
    isis/site/trunk/content/tutorials/apacheconeu-2014.md

Added: isis/site/trunk/content/reference/recognized-annotations/DomainService.md
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/reference/recognized-annotations/DomainService.md?rev=1640436&view=auto
==============================================================================
--- isis/site/trunk/content/reference/recognized-annotations/DomainService.md (added)
+++ isis/site/trunk/content/reference/recognized-annotations/DomainService.md Tue Nov 18 22:19:57 2014
@@ -0,0 +1,4 @@
+Title: @DomainService
+
+
+> this is a stub

Modified: isis/site/trunk/content/reference/recognized-annotations/about.md
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/reference/recognized-annotations/about.md?rev=1640436&r1=1640435&r2=1640436&view=diff
==============================================================================
--- isis/site/trunk/content/reference/recognized-annotations/about.md (original)
+++ isis/site/trunk/content/reference/recognized-annotations/about.md Tue Nov 18 22:19:57 2014
@@ -148,6 +148,7 @@ go back to: [documentation](../../docume
         </td>
         <td></td>
         <td></td>
+    </tr>
     <tr>
         <td><a href="./Disabled.html">@Disabled</a></td>
         <td>UI, Domain</td>
@@ -158,6 +159,13 @@ go back to: [documentation](../../docume
         <td></td>
     </tr>
     <tr>
+        <td><a href="./DomainService.html">@DomainService</a></td>
+        <td>Domain</td>
+        <td>Class is a domain service (rather than an entity or view model)</td>
+        <td></td>
+        <td></td>
+    </tr>
+    <tr>
         <td><a href="./Encodable.html">@Encodable</a></td>
         <td>Persistence</td>
         <td>Indicates that a (value) class can be serialized/encoded.
@@ -183,7 +191,7 @@ go back to: [documentation](../../docume
     </tr>
     <tr>
         <td><a href="./Facets.html">@Facets</a></td>
-        <th>(any)</th>
+        <td>(any)</td>
         <td>Install arbitrary facets within the Isis metamodel.
         </td>
         <td></td>
@@ -249,7 +257,7 @@ go back to: [documentation](../../docume
     </tr>
     <tr>
         <td><a href="./Mask.html">@Mask</a></td>
-        <th>UI/domain</th>
+        <td>UI/domain</td>
         <td>How to parse/render values (not properly supported)
         </td>
         <td></td>
@@ -390,7 +398,7 @@ go back to: [documentation](../../docume
     </tr>
     <tr>
         <td><a href="./Parseable.html">@Parseable</a></td>
-        <th>UI/domain</th>
+        <td>UI/domain</td>
         <td>Indicates that a (value) class can be reconstructed from a string.
         </td>
         <td></td>
@@ -546,7 +554,7 @@ go back to: [documentation](../../docume
     <tr>
         <td><a href="./ViewModel.html">@ViewModel</a></td>
         <td>Domain, Persistence</td>
-        <td>Specify that a class is a view model (rather than a persisted entity).
+        <td>Specify that a class is a view model (as opposed to an entity or domain service).
         </td>
         <td></td>
         <td></td>

Modified: isis/site/trunk/content/tutorials/apacheconeu-2014.md
URL: http://svn.apache.org/viewvc/isis/site/trunk/content/tutorials/apacheconeu-2014.md?rev=1640436&r1=1640435&r2=1640436&view=diff
==============================================================================
--- isis/site/trunk/content/tutorials/apacheconeu-2014.md (original)
+++ isis/site/trunk/content/tutorials/apacheconeu-2014.md Tue Nov 18 22:19:57 2014
@@ -131,7 +131,9 @@ which in yuml.me's DSL is:
 * rename the `SimpleObject` class' `name` property
 * specify a [title](http://isis.apache.org/how-tos/how-to-01-040-How-to-specify-a-title-for-a-domain-entity.html)
 * specify an [icon](http://isis.apache.org/how-tos/how-to-01-070-How-to-specify-the-icon-for-a-domain-entity.html)
-
+* add the [@Bookmarkable](http://isis.apache.org/reference/recognized-annotations/Bookmarkable.html) annotation
+  * confirm is available from bookmark panel (top-left of Wicket UI)
+  
 
 ## Domain service
 
@@ -141,6 +143,7 @@ which in yuml.me's DSL is:
 * review `listAll` action (acting as a repository)
   - as per our [docs](http://isis.apache.org/how-tos/how-to-09-040-How-to-write-a-custom-repository.html)
   - note the annotations on the corresponding domain class (`SimpleObject` above, probably renamed by now)
+* note the `@DomainService` annotation
 
   
 ## Fixture scripts
@@ -224,7 +227,18 @@ which in yuml.me's DSL is:
 ## Actions (ctd)
 
 * Add domain actions to add/remove from the collection
+  * to create objects, [inject](http://isis.apache.org/how-tos/how-to-01-150-How-to-inject-services-into-a-domain-entity-or-other-service.html) associated domain service
+    * generally we recommend using the `@Inject` annotation with either private or default visibility
+  * the service itself use [DomainObjectContainer]()
+* optional: add an action to clone an object  
+
 
+## Clock Service
+
+* To ensure testability, remove any dependencies on system time (eg defaults for date/time action parameters)
+  * ie calls `LocalDate.now()`
+  * instead, inject [ClockService](http://isis.apache.org/reference/services/ClockService.html) and delegate to it
+  
 
 ## Layout
 
@@ -253,83 +267,116 @@ which in yuml.me's DSL is:
 * Validate string properties or action paramters:
   - use the [@Regex](http://isis.apache.org/reference/recognized-annotations/RegEx.html) annotation to specify a pattern
   - use the [@MinLength](http://isis.apache.org/reference/recognized-annotations/MinLength.html) annotation to indicate a minimum number of characters
-* For any data type:
+* Use the `validateXxx()` supporting method on [properties](http://isis.staging.apache.org/how-tos/how-to-02-100-How-to-validate-user-input-for-a-property.html) or [action parameter](http://isis.staging.apache.org/how-tos/how-to-02-120-How-to-validate-an-action-parameter-argument.html)
+* optional: for any data type:
   - use the [@MustSatisfy](http://isis.apache.org/reference/recognized-annotations/MustSatisfy.html) annotation to specify an arbitrary constraint
+  
 
-Use the `validateXxx()` supporting method on [properties](
+## Dashboard (home page)
 
+* Add the [@HomePage](http://isis.apache.org/reference/recognized-annotations/HomePage.html) annotation to one (no more) of the domain services' no-arg actions
 
-- disable
-- hide
-- vaidate
 
+## Decoupling using Contributions
+
+### Contributed Actions
+
+* Write a new domain service
+  - by convention, called "XxxContributions"
+  - annotate with `@DomainService`
+* Write an action accepting >1 args:
+  - one being a domain entity
+  - other being a primitive or String
+* For this action, add the [@NotInServiceMenu](http://isis.apache.org/reference/recognized-annotations/NotInServiceMenu.html) annotation
+  * indicates service's actions should *not* be included in the main application menu bar
+* should be rendered "as if" an action of the entity
 
-Bookmarkable  
-  
   
-dashboards (home page)
+### Contributed Collections
+
+* Write a new domain service (or update the one previously)
+* Write a query-only action accepting exactly 1 arg (a domain entity)
+  - returning a collection, list or set
+* For this action:
+  * add the [@NotInServiceMenu](http://isis.apache.org/reference/recognized-annotations/NotInServiceMenu.html) annotation
+  * add the [@NotContributed(As.ACTION)](http://isis.apache.org/reference/recognized-annotations/NotContributed.html) annotation
+* should be rendered in the UI "as if" a collection of the entity
+* use `.layout.json` to position as required
+
+
+### Contributed Properties
 
+* As for contributed collections, write a new domain service with a query-only action accepting exactly 1 arg (a domain entity); except:
+  - returning a scalar value rather than a collection
+* For this action, annotate as [@NotInServiceMenu](http://isis.apache.org/reference/recognized-annotations/NotInServiceMenu.html) and [@NotContributed(As.ACTION)](http://isis.apache.org/reference/recognized-annotations/NotContributed.html)
+* should be rendered in the UI "as if" a property of the entity
+* use `.layout.json` to position as required
 
 
+## Decoupling using the Event Bus
 
+TODO
 
 
-contributed properties/collections
 
+## Extending the Wicket UI
 
-contributed actions
 
+### Excel download
 
-creating objects:
-- domainobjectcontainer
+TODO
 
+### Fullcalendar2
 
-clockservice
+TODO
 
+### gmap3
 
-.layout.json
+TODO
 
-CSS
 
-@HomePage
+## Add-ons
 
+### Security
 
-view models
+TODO
 
+### Command
 
+TODO
 
-Customising the REST API
 
+### Auditing
 
+TODO
 
+### Publishing
 
-wicket extensions
-- excel download
-- fullcalendar
-- gmap3
+TODO
 
 
-add-ons
-- security
-- command
-- auditing
-- publishing
 
+## CSS
 
-event bus
+TODO
 
 
-RESTful API
+## View models
 
+TODO
 
 
 
+## Integration tests
 
-composite fixture scripts (a la Estatio)
+TODO
 
 
+## Composite fixture scripts (a la Estatio)
 
+TODO
 
 
-integration tests
+## Customising the REST API
 
+TODO