JBoss.orgCommunity Documentation

Errai

Errai Reference Guide

Legal Notice

Abstract

This is the Errai Reference Guide.


Preface
1. Document Conventions
2. Feedback
1. Introduction
1.1. What is it?
1.2. Required software
2. Messaging
2.1. Messaging Overview
2.2. Messaging API Basics
2.2.1. Sending Messages with the Client Bus
2.2.2. Recieving Messages on the Server Bus / Server Services
2.2.3. Sending Messages with the Server Bus
2.2.4. Receiving Messages on the Client Bus/ Client Services
2.3. Conversations
2.4. Bus Lifecycle
2.4.1. Turning Server Communication On and Off
2.4.2. Observing Bus Lifecycle State and Communication Status
2.5. Handling Errors
2.6. Handling Transport Errors
2.7. Single-Response Conversations & Pseudo-Synchronous Messaging
2.8. Broadcasting
2.9. Client-to-Client Communication
2.9.1. Relay Services
2.10. Asynchronous Message Tasks
2.11. Repeating Tasks
2.12. Sender Inferred Subjects
2.13. Message Routing Information
2.14. Queue Sessions
2.14.1. Lifecycle
2.14.2. Scopes
2.15. Client Logging and Error Handling
2.16. Wire Protocol (J.REP)
2.16.1. Payload Structure
2.16.2. Message Routing
2.16.3. Bus Management and Handshaking Protocols
2.17. WebSockets
2.17.1. Configuring the sideband server
2.17.2. Deploying with JBoss AS 7
3. Dependency Injection
3.1. Container Wiring
3.2. Wiring server side components
3.3. Scopes
3.3.1. Dependent Scope
3.4. Built-in Extensions
3.4.1. Bus Services
3.4.2. Client Components
3.4.3. Lifecycle Tools
3.5. Client-Side Bean Manager
3.5.1. Looking up beans
3.5.2. Availability of beans
3.6. Alternatives and Mocks
3.6.1. Alternatives
3.6.2. Test Mocks
3.7. Bean Lifecycle
3.7.1. Destruction of Beans
4. Errai CDI
4.1. Features and Limitations
4.1.1. Other features
4.2. Events
4.2.1. Conversational events
4.2.2. Client-Server Event Example
4.3. Producers
4.4. safe dynamic lookup
4.5. Deploying Errai CDI
4.5.1. Deployment in Development Mode
4.5.2. Deployment to a Servlet Engine
4.5.3. Deployment to an Application Server
5. Marshalling
5.1. Mapping Your Domain
5.1.1. @Portable and @NonPortable
5.1.2. Manual Mapping
5.1.3. Manual Class Mapping
5.1.4. Custom Marshallers
6. Remote Procedure Calls (RPC)
6.1. Making calls
6.1.1. Proxy Injection
6.2. Handling exceptions
6.3. Client-side Interceptors
6.4. Session and request objects in RPC endpoints
7. Errai JAX-RS
7.1. Getting Started
7.1.1. Dependencies
7.1.2. GWT Module
7.1.3. Server-Side JAX-RS Implementation
7.1.4. Shared JAX-RS Interface
7.2. Creating Requests
7.2.1. Proxy Injection
7.3. Handling Responses
7.4. Client-side Interceptors
7.5. Wire Format
7.6. Configuration
7.6.1. Configuring the default root path of JAX-RS endpoints
7.6.2. Enabling Jackson marshalling
8. Errai JPA
8.1. Getting Started
8.1.1. Compile-time dependency
8.1.2. GWT Module Descriptor
8.1.3. INF/persistence.xml
8.1.4. Declaring an Entity Class
8.1.5. Entity Lifecycle States
8.1.6. Obtaining an instance of EntityManager
8.1.7. Named Queries
8.1.8. Entity Lifecycle Events
8.1.9. JPA Metamodel
8.1.10. JPA Features Not Implemented in Errai 2.1
8.1.11. Other Caveats for Errai 2.1 JPA
9. Data Binding
9.1. Bindable Objects
9.2. Initializing a DataBinder
9.3. Creating Bindings
9.4. Specifying Converters
9.4.1. Registering a global default converter
9.4.2. Providing a binding-specific converter
9.5. Property Change Handlers
10. Errai UI
10.1. Get started
10.1.1. App.gwt.xml
10.2. Use Errai UI Composite components
10.2.1. Inject a single instance
10.2.2. Inject multiple instances (for iteration)
10.3. Create a @Templated Composite component
10.3.1. Basic component
10.3.2. Custom template names
10.4. Create an HTML template
10.4.1. Select a template from a larger HTML file
10.5. Use other Widgets in a composite component
10.5.1. Annotate Widgets in the template with @DataField
10.5.2. Add corresponding data-field attributes
10.6. How HTML templates are merged with Components
10.6.1. Example
10.6.2. Element attributes (template wins)
10.6.3. DOM Elements (component field wins)
10.6.4. Inner text and inner HTML (preserved when component implements HasText or HasHTML)
10.7. Event handlers
10.7.1. Concepts
10.7.2. GWT events on Widgets
10.7.3. GWT events on DOM Elements
10.7.4. Native DOM events on Elements
10.8. Data Binding
10.8.1. Default, Simple, and Chained Property Bindings
10.8.2. Binding of Lists
10.8.3. Data Converters
10.9. Nest Composite components
10.10. Extend Composite components
10.10.1. Template
10.10.2. Parent component
10.10.3. Child component
11. Errai UI Navigation
11.1. Getting Started
11.1.1. Compile-time dependency
11.1.2. GWT Module Descriptor
11.2. How it Works
11.2.1. Declaring a Page
11.2.2. Declaring a Link
11.2.3. Following a Link
11.2.4. Installing the Navigation Panel into the User Interface
11.2.5. Viewing the Generated Navigation Graph
12. Configuration
12.1. Appserver Configuration
12.2. Client Configuration
12.2.1. Disabling remote communication
12.2.2. Configuring an alternative remote remote bus endpoint
12.3. ErraiApp.properties
12.3.1. As a Marker File
12.3.2. As a Configuration File
12.3.3.
12.4. ErraiService.properties
12.4.1. Configuration Properties
12.4.2. Example Configuration
12.5. Dispatcher Implementations
12.5.1. SimpleDispatcher
12.5.2. AsyncDispatcher
12.6. Servlet Implementations
12.6.1. DefaultBlockingServlet
12.6.2. JBossCometServlet
12.6.3. JettyContinuationsServlet
12.6.4. StandardAsyncServlet
13. Debugging Errai Applications
14. Troubleshooting & FAQ
14.1. Why does it seem that Errai can't see my class at compile time?
14.2. Why am I getting "java.lang.ClassFormatError: Illegal method name "<init>$" in class org/xyz/package/MyClass"?
14.3. I'm getting "java.lang.RuntimeException: There are no proxy providers registered yet." in my @PostConstruct method!
15. Upgrade Guide
15.1. Upgrading from 1.* to 2.0
15.2. Upgrading from 2.0.Beta to 2.0.*.Final
15.3. Upgrading from Errai 2.2.x to 3.0
16. Downloads
17. Sources
18. Reporting problems
19. Errai License
A. Revision History