Masthead
HomeComposable Futures with Akka 2.0Enterprise Adobe Flash Platform SeriesFree Presentations

The Enterprise Adobe Flash Platform Series

Flex Data Services, Hibernate and Eclipse

Table of Contents

Preface

About This Series

About This Book

Target Audience

How to Read This Book

About the Code Examples

Java EE or J2EE?

Why Eclipse?

Why Not Maven?

Why Hibernate?

Why Tomcat?

Why not Spring?

Why not JBoss, WebSphere, Weblogic, IAS, etc?

Why BlazeDS and LiveCycle Data Services ES?

Why not GraniteDS or Pimento?

What about WebOrb?

Acknowledgements

About the Author

PART 1 - TUTORIAL

1.    Overview

POJOs and Persistence

Client-Server Architecture

2.    Tooling

Operating Systems

Topology

Updating JDK 6

Macintosh

Installing and Configuring Eclipse and Flex/Flash Builder

Obtaining an Up-to-Date Flex SDK

Source Control

Network

Database

Windows Issues

Database Instances

Unit Testing With Database Snapshots

3.     Hibernate Basics

Hibernate Packages

Installing Hibernate

User Libraries vs. Catch-all lib Directory vs. Working Sets

Eclipse Working Sets

Adding Eclipse Libraries to the Project Build Path

4.    Configuring Hibernate

Matching a Developer Database to Production

Manual Table Creation

Table Creation Using a GUI

SQuirrel SQL Client

MySQL Administrator

Hibernate Configuration Files

Connecting Hibernate to a Database

Hibernate Initialization

5.     Mapping POJOs to Tables

Creating POJOs and Mapping Files from Tables

Running hbm2java from Eclipse

Listing of the Generated POJOs

Discussion of the Generated POJOs

Declaring ActionScript Class References

Solution – Calling out ActionScript Class Dependencies

6.    Testing Hibernate Annotations

Entity Relationships

Hibernate Sessions

Testing with JUnit 4

Setting up

Sample JUnit 4 Test

Debugging Hibernate

7.    Creating Database Tables from Annotated POJOs

Naming Conventions

Consider Schema when Designing Class Hierarchy

8.    Data Services

AMF over HTTP in another Multiverse

About Flex Data Services

Documentation Issues

Channels, Endpoints and Destinations

Channel Types

Client Channels in Combination with Server Endpoints

Channel Sets

Flex Data Services Channel Designer

Common Properties

Client Channel Properties

Server Endpoint Properties

XML Channel Definition

NIO and RTMP Server Endpoints

Polling

Long Polling

Streaming

Server Endpoint Properties

RTMP

Services

Data Services Configuration

RPC Visibility Rules

Serialization and Deserialization

Introspective Serialization

Explicit Serialization

TypeMarshaller

Serialization Practicalities

[RemoteClass]

registerClassAlias()

Deep Copy

[Transient]

[Managed]

Deserialization RPC and Messaging Results

AMF

JSON

XML

Performance

TypeMarshaller Example Project

IExternalizable Example Project

Data Compression

Tomcat

Apache httpd

9. Working With BlazeDS

Installing the BlazeDS Turnkey Package

Installing the BlazeDS Binary Distribution

BlazeDS Files and Directories

BlazeDS Binary Package Contents

BlazeDS Configuration

Tomcat and AMF

Tunneling and Proxying AMF

Eclipse Project Setups

Defining Application Server Instances

Macintosh Server Setup Problem

Combined Flex / Java Project Setup

Combined Flex / Java Project Directories

Retrofitting Flex to an Existing Java WST Project

Multiple Flex Projects for a Single Java Project

Server-side WST Projects

Creating a WST Project

Relocating an Eclipse Project

Testing the Eclipse Web Project

Editing Eclipse Server Configuration

Testing the Server

Adding BlazeDS Libraries

10. Remoting Service

Channels

Destinations

Creating the Destination Source

Testing the Destination Source

Adapters

Assemblers

Statically Bound Technique Overview

Using the Statically Bound Technique

Modifying web.xml

Setting Java EE Web Library Dependencies

Setting Inter-Project Dependencies

Creating the echoTest Client Form

Debugging the echoTest Client

Dynamic Configuration Technique

The Service

Server-Side Logging

Flex Data Dervices Logging

Log4j

Discovering the Originating URL

Constructing the Endpoint

Obtaining a Service Instance

AmfFactory.as

AmfServices.as

StopWatch.as

Event Classes

dynamicServer.mxml

Creating the Flex Builder Project

11.    Messaging Service

Channels

Destinations

Adapters

Programmable ChannelSet Sample Project

How the program works

Client logging

Automatically Filtering Messages

ActionScript

Subtopics

Custom Messaging Adapter Narrowcasting

Running the Project

About the Project

12.    Proxy Service

Channels

Destinations

Adapters

HTTPService and WebService Review

Translation AJAX / JSON Project

HTTPService, WebService and the Proxy Service

Proxy Service Properties

External Proxies

13.    Automatically Generating ActionScript Value Objects from POJOs

Enhancing the POJO

Granite ActionScript 3 Code Generator

Auto-Refresh

Installing Granite Eclipse Builder

Adding the GraniteDS Nature to a Java EE Project

Updating the POJO

14.    LiveCycle Data Services ES

Choosing between BlazeDS and LCDS

Threading Models

LCDS Licensing

Purchasing an Enterprise License

OEM Licenses

Installing LCDS

Data Management Service

Channels

Destinations

Messages

Adapters

Assemblers

Hibernate Assemblers

HibernateAnnotationsAssembler

HibernateAssembler

Custom Assemblers

[Managed]

Properties

Test Drive

How the Program Works

Syncing Occasionally Connected AIR Clients

DataService Properties for Synchronization

Sync Project

Defining a Launch Configuration for the HSQLDB Database

About the Application

Running the Application

How the Program Works

Synching Occasionally Connection AIR Clients

DataService Properties for Synchronization

InSync Projects

How to use the Application

Common Project Details

Tip for Developing Flex Data Services with Hibernate

HSQLDB

Defining a Launch Configuration for the HSQLDB Database

Custom Assembler Version

How It Works

Defining a Launch Configuration for the HSQLDB Database

Hibernate Assembler Version

About the Application

Transaction Support

Unit Tests

Running the Unit Tests

Running the Application

How It Works

Interpreting the Client Debug Log

Edge Servers

15.    Lazy Loading

Lazy Loading with the LCDS DMS

PART 2 - REFERENCE

16.    Eclipse Tips and Techniques

Flex Builder Source Code

Hot Keys

Defining Hot Keys

Bookmarks

Comparing Files

Beyond Compare

TCP/IP Monitor

Other TCP Monitoring Tools

Flash Builder 4

Charles Proxy

Fiddler 2

Apache TCPMon

Updating a Flex Builder Project for BlazeDS or LCDS

Creating an Eclipse User Library

Installing Hibernate Tools for Eclipse

Multi-User Deployment Issues

Multiple Eclipse Installations

GuideLines

Workspace Organization

Project Organanization

Remote Debugging

Remotely Debugging Server-side Java programs

Remotely Debugging Client-side Flex programs

Debugging BlazeDS and LCDS

Eclipse Problems

HTML and JSP Validation Errors

Setting property 'source' to 'org.elipse.jst.Java EE.server

Flex Builder 3 / Ganymede SR1 Incompatibility

Apache httpd Port Misuse

Grouped Breakpoints

TODO and FIXME

17.    Annotation Summary

Java Persistence Annotations

Hibernate Annotations

18.    Tomcat Connector Configuration

Standard Implementation

NIO Implementation

HTTP/1.1 and HTTP/1.0 Support

Proxy Support

TLS/SSL Support

Connector Comparison

19.    BlazeDS and LCDS Features

BlazeDS Features

LCDS Features

20.    Data Services

History of Flex Data Services

Comparison of BlazeDS and LCDS

Client Channel / Server Endpoint Combinations

Servlet-Based Endpoints and Their Client Channels

NIO-Based Server Endpoints and Their Client Channels

Properties of Client Channels and Server Endpoints

General Properties

Client Dhannel Properties

Server Endpoint Properties

Polling

Client Channel Properties

Server Endpoint Properties

Streaming

Client Channel Properties

Server Endpoint Properties

RTMP

Destination Properties and Elements

Common Elements

RPC and Data Management Service Properties

Data Management Service Properties

Network Elements

Hibernate Assembler Elements

Hibernate Assembler fill-configuration Elements

Hibernate Assembler metadata Elements

Hibernate Assembler server Elements

SQL Assembler Elements

SQL Assembler metadata Properties

SQL Assembler server Elements

SQL Assembler server database Elements

SQL Assembler server count, CRUD and fill Elements

HTTP Service Properties

Web Service Properties

Java to ActionScript Type Mappings

ActionScript to Java Type Mappings

Logging Filter Patterns

BlazeDS Files and Directories

BlazeDS JARs

LCDS Files and Directories

LCDS JARS

21.    Glossary

Index