<
Fork me on GitHub



We’ve prepared a number of screencasts to help you see what Apache Isis has to offer; the following were recorded using Apache Isis v1.12.0.

While these each follow on from each other, you should be able to watch them in any order; the typical duration is 3 minutes. Or, you can watch them all through this playlist.

You can also find some earlier screencasts (for older versions of the framework) here.

Playlist

To watch all of the v1.12.0 screencasts in order, use this playlist.

Archetype, IDE, layouts

Generating an app using the SimpleApp Maven archetype
(v1.12.0)

Importing the generated app into an IDE
(v1.12.0)

Walking through the main classes that make up the SimpleApp: SimpleObject persistent entity, HomePageViewModel view model and SimpleObjects domain service (repository).
(v1.12.0)

Using the optional Xxx.layout.xml file to provide layout metadata to dynamically render a domain object using the Bootstrap 3 grid system.
(v1.12.0)

Fixture scripts, rules, tests

Using fixture scripts to initialize the database, eg while prototyping and for demos
(v1.12.0)

Implementing business rulesfor domain object members, using supporting methods ("see it, use it, do it")
(v1.12.0)

Writing unit tests for a domain object responsibility
(v1.12.0)

Writing end-to-end integration tests for a domain object responsibility
(v1.12.0)

Swagger UI, Maven plugin

Using the Swagger UI to access the REST API automatically exposed for domain services, entities, and/or view models
(v1.12.0)

Using the Apache Isis maven plugin to validate domain object models during the build process (rather than at runtime).
(v1.12.0)

App Manifest

How the framework uses the AppManifest is used to bootstrap the application
(v1.12.0)

Actions

Implementing business logic using a (no-arg) action, and associating with a property using either the @MemberOrder annotations or using dynamic (XML) layouts.
(v1.12.0)

Invoking (no-arg) action on multiple objects at once (using @Action#invokeOn(), and using the ActionInvocationContext domain service for a smoother end-user experience.
(v1.12.0)

Titles and icons, UI event subscribers

Using the title(), iconName() and cssClass() so that end-users can distinguish domain objects within the UI.
(v1.12.0)

Moving the responsibility to specify the icon for a domain object out and into a subscriber, using the IconUiEvent as per the @DomainObjectLayout#iconUiEvent() annotation
(v1.12.0)

Derived collections

How to implement a derived collection on a domain object.
(v1.12.0)

More on fixture scripts

Extending a fixture script to more easily demonstrate new functionality.
(v1.12.0)

Page size of collections

Using dynamic (XML) layouts to specify the page size for a domain object’s collection.
(v1.12.0)

Hints and end-user features

Demonstrates how Apache Isis' Wicket viewer remembers the state of rendered domain objects, and how the end-user of the application can clear these UI hints using the (framework-provided) "clear hints" action.
(v1.12.0)

Demonstrates how the end-user can copy and share URLs for domain objects - including UI hints - using Apache Isis' Wicket viewer.
(v1.12.0)

Demonstrates how the end-user can use bookmarks and breadcrumbs within Apache Isis' Wicket viewer, and how the developer can ensure that domain objects and (query-only) actions can be bookmarked.
(v1.12.0)

Decoupling (mixins & subscribers)

Shows how to refactor a domain object to move an action implementation out of the domain object itself, and instead implement as a mixin (useful for decoupling).
(v1.12.0)

Shows how to refactor a domain object to move (derived) collections out of the domain object and reimplement as a mixin.
(v1.12.0)

Using a domain event subscriber to decouple and abstract business rules ( validation).
(v1.12.0)

Using a domain event subscriber to hide functionality, in this case the "clear hints" action automatically provided by the framework.
(v1.12.0)

Titles using the @Title annotation

Using the @Title annotation (instead of the title() reserved method) to obtain the title of a domain object, so that the end-user can distinguish one object from another..
(v1.12.0)

Integration testing of mixins

How to write an integration test for an mixin.
(v1.12.0)

Removing boilerplate

Using Project Lombok to remove boilerplate from your domain objects (getters and setters).
(v1.12.0)

Using the (non-ASF) Isis addons' paraname8 module to remove boilerplate from your domain object (@ParameterLayout#named() annotation attribute on action parameters).
(v1.12.0)

Action validation

How to validate action parameters using a supporting validateNXxx() method.
(v1.12.0)

How to validate action parameters using the @Parameter#mustSatisfy() and the Specification interface..
(v1.12.0)

Instantiating/Initializing Objects

How to instantiate/initialize objects using RepositoryService, ServiceRegistry and/or FactoryService.
(v1.12.0)

Property and parameter choices

How to provide a set of choices (a drop-down list) when editing a property.
(v1.12.0)

How to provide a set of choices (a drop-down list) when invoking an action.
(v1.12.0)

How to use the choices supporting methods as a source for default values within a fixture script.
(v1.12.0)

How to use an enum for choices (drop down list) for both a property or an action parameter.
(v1.12.0)

Hiding columns

How to hide properties as columns in tables (parented collections or standalone collections), using the dynamic XML layout (equivalent to @PropertyLayout#hidden()) .
(v1.12.0)

How to hide properties as columns in tables, using CSS.
(v1.12.0)

Fixture scripts defaults / fake data

Using the FixtureScript defaultParam(…​) method to reflectively default parameters to fixture scripts that have not been set by the caller.
(v1.12.0)

Using the (non-ASF) Isis addons' fakedata module’s FakeDataService to provide fake (random) names within a fixture script.
(v1.12.0)

BigDecimals

Using BigDecimal as a property within a domain object, also demonstrating the "summary" view within the Wicket viewer.
(v1.12.0)

How to use the @Digits annotation for action parameters of type java.math.BigDecimal.
(v1.12.0)

Action parameters

How to use the supporting defaultXxx(…​) supporting method to provide a default argument value for action parameters.
(v1.12.0)

How to use @DomainObject#bounded() so that a drop-down list is automatically provided for any parameters to actions that are for (domain entity) reference types.
(v1.12.0)

How to use the choicesXxx(…​) supporting method to provide a drop-down list for parameters to actions that are for reference types (domain entities or view models).
(v1.12.0)

How to use the autoCompleteXxx(…​) supporting method to provide a drop-down list for parameters to actions that are for reference types (domain entities or view models).
(v1.12.0)

Excel, Calendars, Maps

Using the (non-ASF) Isis Addons wicket UI extensions to render (collections of) domain objects on a calendar, on a map, or downloadable within an Excel spreadsheet.

Configuring an Apache Isis app to allow tables of objects to be downloaded as an Excel spreadsheet, using the (non-ASF) Isis addons' excel wicket extension.
(v1.12.0)

Configuring an Apache Isis app to allow tables of domain objects with date information to be rendered on a full-page calendar, using the (non-ASF) Isis addons' fullcalendar2 wicket extension.
(v1.12.0)

Using the @Programmatic annotation to exclude methods from a domain object (eg implementing methods of an interface as defined by the (non-ASF) Isis addons' fullcalendar2 wicket extension) that would otherwise be part of the Apache Isis metamodel (and thus show up in the UI).
(v1.12.0)

Configuring an Apache Isis app to allow tables of domain objects with location information to be rendered on map, using the (non-ASF) Isis addons' gmap3 wicket extension.
(v1.12.0)

Using derived properties to persist value types (such as gmap3’s Location value type) as regular primitive datatypes.
(v1.12.0)

Older screencasts

Older screencasts can be found here.


Copyright © 2010~2016 The Apache Software Foundation, licensed under the Apache License, v2.0.
Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.