OfficeFloor Tutorials
Once you have installed the OfficeFloor Eclipse plug-ins (by dragging the bottom left install icon to your Eclipse IDE) you have the tools ready for the below tutorials.
The tutorials are ordered so that each builds on the knowledge of the previous tutorials. It is therefore best to work though them in order. Please however feel free to jump between them to get a feel for OfficeFloor.
The following tutorials cover developing OfficeFloor (WoOF) web applications.
The acronym WoOF standards for Web on OfficeFloor. It is a set of prefabricated plug-ins for OfficeFloor that enables OfficeFloor to work as a high performance Web Application Server. As you become more familiar with OfficeFloor, you will realise OfficeFloor is a very light weight and versatile plugin application framework that provides open integration of software.
| Tutorial | Description | Covered |
|---|---|---|
| My first WoOF application | Walks through the simple steps to create and run an OfficeFloor (WoOF) web application. | Maven and Eclipse plug-ins |
| Wireframe prototyping | Build working web prototypes and then later extend into a working web application. | #{link} |
| Dynamic web page | Rendering dynamic content. | ${bean ... $} , ${property} |
| Interactive web page | Handling of requests to provide interactive pages. | #{link} , @HttpParameters |
| Dynamic navigation between pages | Controlling the navigation between pages. | @NextTask , @FlowInterface |
| Session state | Storing state between requests within the HTTP session. | @HttpSessionStateful |
| Exception handling | Handling exceptions. | @Parameter |
| Generating HTML | Render generated HTML. | @UnescapedHtml |
| Sectioning content | Sectionally rendering content. | <!-- {section} --> |
| Template Inheritance | Inheriting sectioned content. | <!-- {:override} --> , <!-- {!} --> |
| JavaScript | Using JavaScript, AJAX, JSON. | @NotRenderTemplateAfter, @HttpJson, JsonResponseWriter |
| GWT | Easy configuration of GWT to generate JavaScript within the page | EntryPoint |
| AJAX via GWT RPC | Provides easy implementation of both AJAX functionality within the page and servicing by the server | Service Async Interface |
| Comet | Shows the ease of using Comet (AJAX push, reverse AJAX) with WoOF | OfficeFloorComet |
| Server events | Demonstrates the ease of publishing events | @Comet |
| Secure Page | Shows the ease of securing a page | Template Secure |
| Secure Link | Demonstrates the ease of securing a link | Link Secure |
| Authentication | Easy means to provide authentication | Authentication |
| Test | Testing the application | Unit/System/Integration testing |
The previous tutorials have covered the built in dependency objects for WoOF. They have also covered Continuation Injection and Operation Orchestration.
The following tutorials focus on extending the web application's functionality by using further inversion of control features of OfficeFloor.
| Tutorial | Description |
|---|---|
| Dependency Injection | Dependency injecting customised objects. |
| Governance | Managing transactions with Governance. |
| Thread Injection | Thread injection to performance tune the application. |
OfficeFloor is a plugin application framework that is highly extensible. For example, the WoOF functionality is provided by plugins (extensions) to OfficeFloor. The following tutorial covers creating an example extension for OfficeFloor.
| Tutorial | Description | Covered |
|---|---|---|
| Extend OfficeFloor | Shows the ease of extending OfficeFloor / WoOF with your own plugins | ExtensionSource |
These tutorials explain how to make use of WoOF within a JEE Servlet Container. They also explains how to migrate a Servlet application to run within OfficeFloor for OfficeFloor's inversion of control benefits.
| Tutorial | Description | Covered |
|---|---|---|
| Running within Servlet Container | Running the above web functionality within a JEE Servlet container. | WoofServlet |
| Integration with a Java Server Page (JSP) | Enables re-use of an existing JSP by providing it the necessary beans. | @HttpApplicationStateful, @HttpSessionStateful, @HttpRequestStateful |
| Utilising dependency injection of the Servlet Container | Use of Servlet container dependency injection (e.g. making use of EJBs). | @EJB |
| Embedding Servlet Container within WoOF | Embedding Servlet functionality within WoOF. | ServletContainerWoofApplicationExtensionService |
| Migrate JEE Servlet application to run in OfficeFloor | Migrating an exsting JEE Servlet application to run within OfficeFloor as a WoOF application. |