<h1>GlassFish v3 Application Development Guide Document Plan</h1>
People and Roles
Name |
Role |
Location |
Time Zone |
Email |
June Parks |
Document Owner |
SCA16 1724 |
US Pacific |
junesm@dev.java.net |
|
Additional Writers |
|
|
java.netID@dev.java.net |
Julie Bettis |
Editor |
|
|
java.netID@dev.java.net |
See Reviewers |
Software Engineers |
|
|
java.netID@dev.java.net |
See Reviewers |
QA Engineers |
|
|
java.netID@dev.java.net |
Audience The Application Development Guide (formerly Developer's Guide) is for application developers. Purpose and Description The Application Development Guide describes how to create and run Java^TM^ Platform, Enterprise Edition (Java EE platform) applications that follow the open Java standards model for Java EE components and APIs in the Sun Java System Application Server environment. Topics include developer tools, security, and debugging. This book is intended for use by software developers who create, assemble, and deploy Java EE applications using GlassFish servers and software. For Technology Preview 2 (TP2) and Prelude, this book only discussed topics related to web modules and JDBC. Statement of Work This section describes in detail for each milestone the work that is needed on the document, such as changes, addition of new material, relocation of existing material, and removal of existing material. Work might result from new features, changes to existing features, bug fixes, RFEs, and editorial enhancements. Documentation Impact:
- None
- Minor
- Moderate
- Major
- New
TP2 Statement of Work For TP2, 10 of the 20 chapters were suppressed because they were not relevant to the small scope of TP2.
Section |
Documentation Impact |
Description of Change |
Chapter 1 Setting Up a Development Environment |
Minor |
Suppress info not relevant to TP2 |
Chapter 2 Class Loaders |
Moderate |
Change class loading for OSGi |
Chapter 3 Debugging Applications |
Minor |
Suppress info not relevant to TP2 |
Chapter 4 Securing Applications |
Minor |
Suppress info not relevant to TP2 |
Chapter 5 Using the Java Persistence API |
Moderate |
Change the provider to EclipseLink |
Chapter 6 Developing Web Applications |
Moderate |
Add information on Comet |
Chapter 7 Using Enterprise JavaBeans Technology |
Moderate |
Add EJB 3.1 info |
Chapter 8 Using the JDBC API for Database Access |
Minor |
Suppress info not relevant to TP2 |
Chapter 9 Using the Transaction Service |
Minor |
Suppress info not relevant to TP2 |
Chapter 10 Using the Java Naming and Directory Interface |
Minor |
Suppress info not relevant to TP2 |
Prelude Statement of Work For Prelude, 9 of the 20 chapters were suppressed because they were not relevant to the small scope of Prelude.
Section |
Documentation Impact |
Description of Change |
Chapter 1 Setting Up a Development Environment |
Minor |
Suppress info not relevant to Prelude |
Chapter 2 Class Loaders |
Moderate |
Change class loading for OSGi |
Chapter 3 Debugging Applications |
Minor |
Suppress info not relevant to Prelude |
Chapter 4 Securing Applications |
Minor |
Suppress info not relevant to Prelude |
Chapter 5 Developing Web Services |
Minor |
Suppress info not relevant to Prelude |
Chapter 6 Using the Java Persistence API |
Moderate |
Change the provider to EclipseLink |
Chapter 7 Developing Web Applications |
Moderate |
Add Bayeux, Groovy/Grails, SSI, CGI, PHP, Scala/Lift |
Chapter 8 Using Enterprise JavaBeans Technology |
Moderate |
Add EJB 3.1 info |
Chapter 9 Using the JDBC API for Database Access |
Minor |
Add statement timeout & connection unwrap |
Chapter 10 Using the Transaction Service |
Minor |
Suppress info not relevant to Prelude |
Chapter 11 Using the Java Naming and Directory Interface |
Minor |
Suppress info not relevant to Prelude |
FCS Statement of Work For FCS, all of the GFv2 chapters will be restored except the MBean and AMX chapters. Scripting info will be moved from the Web Applications chapter into its own book, which Devika owns.
Chapter |
Documentation Impact |
Description of Change |
Chapter 1 Setting Up a Development Environment |
Minor |
Version and bundling updates |
Chapter 2 Class Loaders |
Minor |
Updates for components not in Prelude |
Chapter 3 Using Ant with Enterprise Server |
Minor |
GFv2 functionality minus asant |
Chapter 4 Debugging Applications |
None |
Prelude functionality |
Chapter 5 Securing Applications |
Moderate |
Add Ron's blog "Adding Authentication Mechanisms to the Servlet Container" |
Chapter 6 Developing Web Services |
Minor |
Java EE 6 & Metro 2.0 |
Chapter 7 Using the Java Persistence API |
Minor |
Possible updates from Prelude |
Chapter 8 Developing Web Applications |
Minor |
Possible updates from Prelude, some content moved to the Administration Guide and the Scripting Framework Guide. |
Chapter 9 Using Enterprise JavaBeans Technology |
Minor |
EJB 3.1 |
Chapter 10 Using Container-Managed Persistence |
None |
GFv2 functionality |
Chapter 11 Developing Java Clients |
Moderate |
New GFv3 features in spec |
Chapter 12 Developing Connectors |
Moderate |
New GFv3 features in spec |
Chapter 13 Developing Lifecycle Listeners |
Minor |
A few small changes from GFv2 |
Chapter 14 Using the JDBC API for Database Access |
Moderate |
New GFv3 features in spec |
Chapter 15 Using the Transaction Service |
Minor |
Possible updates from Prelude |
Chapter 16 Using the Java Naming and Directory Interface |
Moderate |
Custom Resource Factories |
Chapter 17 Using the Java Message Service |
Minor |
GFv2 functionality, possible updates |
Chapter 18 Using the JavaMail API |
None |
GFv2 functionality |
Overall Content Outline
- Setting Up a Development Environment
- Installing and Preparing the Server for Development
- Using the Update Center
- Development Tools
- The asadmin Command
- The Admin Console
- Ant Tasks
- The NetBeans IDE
- The Eclipse IDE
- The Migration Tool
- Debugging Tools
- Profiling Tools
- Sample Applications
- Class Loaders
- The Class Loader Hierarchy
- Delegation
- Using the Java Optional Package Mechanism
- Using the Endorsed Standards Override Mechanism
- Class Loader Universes
- Application-Specific Class Loading
- Circumventing Class Loader Isolation
- Using the Application Server Parent Class Loader
- Sharing Libraries Across a Cluster
- Packaging the Client JAR for One Application in Another Application
- Using Ant with Enterprise Server
- Enterprise Server Ant Tasks
- The sun-appserv-deploy Task
- The sun-appserv-undeploy Task
- The sun-appserv-instance Task
- The sun-appserv-component Task
- The sun-appserv-admin Task
- The sun-appserv-jspc Task
- The sun-appserv-update Task
- The wsgen Task
- The wsimport Task
- Reusable Subelements
- The server Subelement
- The component Subelement
- The fileset Subelement
- Debugging Applications
- Enabling Debugging
- JPDA Options
- Generating a Stack Trace for Debugging
- Application Client Debugging
- Sun GlassFish Message Queue Debugging
- Enabling Verbose Mode
- Application Server Logging
- Profiling Tools
- The NetBeans Profiler
- The HPROF Profiler
- The JProbe Profiler
- Securing Applications
- Security Goals
- Application Server Specific Security Features
- Container Security
- Declarative Security
- Programmatic Security
- Roles, Principals, and Principal to Role Mapping
- Realm Configuration
- Supported Realms
- How to Configure a Realm
- How to Set a Realm for an Application or Module
- Creating a Custom Realm
- JACC Support
- Pluggable Audit Module Support
- Configuring an Audit Module
- The AuditModule Class
- The server.policy File
- Default Permissions
- Changing Permissions for an Application
- Enabling and Disabling the Security Manager
- Configuring Message Security for Web Services
- Message Security Providers
- Message Security Responsibilities
- Application-Specific Message Protection
- Understanding and Running the Sample Application
- Programmatic Login
- Programmatic Login Precautions
- Granting Programmatic Login Permission
- The ProgrammaticLogin Class
- User Authentication for Single Sign-on
- Adding Authentication Mechanisms to the Servlet Container
- The Enterprise Server and JSR 196
- Writing a Server Authentication Module
- Sample Server Authentication Module
- Compiling and Installing a Server Authentication Module
- Configuring a Server Authentication Module
- Binding a Server Authentication Module to Your Application
- Developing Web Services
- Creating Portable Web Service Artifacts
- Deploying a Web Service
- The Web Service URI, WSDL File, and Test Page
- Using the Java Persistence API
- Specifying the Database
- Additional Database Properties
- Configuring the Cache
- Setting the Logging Level
- Using Lazy Loading
- Primary Key Generation Defaults
- Automatic Schema Generation
- Annotations
- Supported Data Types
- Generation Options
- Query Hints
- Changing the Persistence Provider
- Database Restrictions and Optimizations
- Extended Persistence Context Failover
- Using @OrderBy with a Shared Session Cache
- Using BLOB or CLOB Types with the Inet Oraxo JDBC Driver
- Database Case Sensitivity
- Sybase Finder Limitation
- MySQL Database Restrictions
- Developing Web Applications
- Using Servlets
- Caching Servlet Results
- About the Servlet Engine
- Using JavaServer Pages
- JSP Tag Libraries and Standard Portable Tags
- JSP Caching
- Options for Compiling JSP Files
- Creating and Managing Sessions
- Configuring Sessions
- Session Managers
- Advanced Web Application Features
- Internationalization Issues
- Virtual Server Properties
- Class Loader Delegation
- Using the default-web.xml File
- Configuring Logging and Monitoring in the Web Container
- Header Management
- Configuring Valves and Catalina Listeners
- Alternate Document Roots
- Using a context.xml File
- Enabling WebDav
- Using SSI
- Using CGI
- Using Enterprise JavaBeans Technology
- Summary of EJB 3.1 Changes
- Value Added Features
- Read-Only Beans
- The pass-by-reference Element
- Pooling and Caching
- Bean-Level Container-Managed Transaction Timeouts
- Priority Based Scheduling of Remote Bean Invocations
- Immediate Flushing
- EJB Timer Service
- Using Session Beans
- About the Session Bean Containers
- Session Bean Restrictions and Optimizations
- Using Read-Only Beans
- Read-Only Bean Characteristics and Life Cycle
- Read-Only Bean Good Practices
- Refreshing Read-Only Beans
- Deploying Read-Only Beans
- Using Message-Driven Beans
- Message-Driven Bean Configuration
- Message-Driven Bean Restrictions and Optimizations
- Handling Transactions With Enterprise Beans
- Flat Transactions
- Global and Local Transactions
- Commit Options
- Administration and Monitoring
- Using Container-Managed Persistence
- Communications Server Support for CMP
- CMP Mapping
- Mapping Capabilities
- The Mapping Deployment Descriptor File
- Mapping Considerations
- Automatic Schema Generation for CMP
- Supported Data Types for CMP
- Generation Options for CMP
- Schema Capture
- Automatic Database Schema Capture
- Using the capture-schema Utility
- Configuring the CMP Resource
- Performance-Related Features
- Version Column Consistency Checking
- Relationship Prefetching
- Read-Only Beans
- Default Fetch Group Flags
- Configuring Queries for 1.1 Finders
- About JDOQL Queries
- Query Filter Expression
- Query Parameters
- Query Variables
- JDOQL Examples
- CMP Restrictions and Optimizations
- Disabling ORDER BY Validation
- Setting the Heap Size onDB2
- Eager Loading of Field State
- Restrictions on Remote Interfaces
- PostgreSQL Case Insensitivity
- No Support for lock-when-loaded on Sybase
- Sybase Finder Limitation
- Date and Time Fields
- Set RECURSIVE_TRIGGERS to false on MSSQL
- MySQL Database Restrictions
- Developing Java Clients
- Introducing the Application Client Container
- ACC Security
- ACC Naming
- ACC Annotation
- Java Web Start
- Application Client JAR File
- Developing Clients Using the ACC
- To Access an EJB Component From an Application Client
- To Access a JMS Resource From an Application Client
- Using Java Web Start
- Enabling and Disabling Java Web Start
- Downloading and Launching an Application Client
- The Application Client URL
- Signing JAR Files Used in Java Web Start
- Error Handling
- Vendor Icon, Splash Screen, and Text
- Using the Embeddable ACC
- Running an Application Client Using the appclient Script
- Using the package-appclient Script
- The client.policy File
- Using RMI/IIOP Over SSL
- Connecting to a Remote EJB Module Through a Firewall
- Using JavaFX Code
- Specifying a Splash Screen
- Developing Connectors
- Connector Support in the Communications Server
- Connector Architecture for JMS and JDBC
- Connector Configuration
- Advanced Connector Configuration Options
- Thread Associations
- Security Maps
- Work Security Maps
- Overriding Configuration Properties
- Testing a Connector Connection Pool
- Flushing a Connector Connection Pool
- Handling Invalid Connections
- Setting the Shutdown Timeout
- Using Last Agent Optimization of Transactions
- Disabling Pooling for a Connection
- Application-Scoped Connectors
- Inbound Communication Support
- Outbound Communication Support
- Configuring a Message Driven Bean to Use a Resource Adapter
- Developing Lifecycle Listeners
- Server Life Cycle Events
- The LifecycleListener Interface
- The LifecycleEvent Class
- The Server Lifecycle Event Context
- Deploying a Lifecycle Module
- Considerations for LifecycleModules
- Using the JDBC API for Database Access
- General Steps for Creating a JDBC Resource
- Integrating the JDBC Driver
- Supported Database Drivers
- Making the JDBC Driver JAR Files Accessible
- Detecting Installed Drivers
- Creating a JDBC Connection Pool
- Testing a JDBC Connection Pool
- Flushing a JDBC Connection Pool
- Creating a JDBC Resource
- Creating Applications That Use the JDBC API
- Statements
- Using an Initialization Statement
- Setting a Statement Timeout
- Statement Caching
- Statement Tracing
- Connections
- Disabling Pooling for a Connection
- Associating Connections with Threads
- Custom Connection Validation
- Sharing Connections
- Marking Bad Connections
- Handling Invalid Connections
- Connection Wrapping
- Wrapping Connections
- Obtaining a Physical Connection From a Wrapped Connection
- Using the Connection.unwrap() Method
- Transactions
- Using Non-Transactional Connections
- Using JDBC Transaction Isolation Levels
- Other Features
- Allowing Non-Component Callers
- Using Application-Scoped Databases
- Restrictions and Optimizations
- Disabling Stored Procedure Creation on Sybase
- Using the Transaction Service
- Transaction Resource Managers
- Transaction Scope
- Distributed Transaction Recovery
- Configuring the Transaction Service
- The Transaction Manager, the Transaction Synchronization Registry, and UserTransaction
- Transaction Logging
- Storing Transaction Logs in a Database
- Recovery Workarounds
- Using the Java Naming and Directory Interface
- Accessing the Naming Context
- Global JNDI Names
- Accessing EJB Components Using the CosNaming Naming Context
- Accessing EJB Components in a Remote Application Server
- Naming Environment for Lifecycle Modules
- Configuring Resources
- External JNDI Resources
- Custom Resources
- Built-In Custom Resource Factories
- Using a Custom jndi.properties File
- Mapping References
- Using the Java Message Service
- The JMS Provider
- Message Queue Resource Adapter
- Generic Resource Adapter
- Administration of the JMS Service
- Configuring the JMS Service
- The Default JMS Host
- Creating JMS Hosts
- Checking Whether the JMS Provider Is Running
- Creating Physical Destinations
- Creating JMS Resources: Destinations and Connection Factories
- Restarting the JMS Client After JMS Configuration
- JMS Connection Features
- Connection Pooling
- Connection Failover
- Transactions and Non-Persistent Messages
- Authentication With ConnectionFactory
- Message Queue varhome Directory
- Delivering SOAP Messages Using the JMS API
- To Send SOAP Messages Using the JMS API
- To Receive SOAP Messages Using the JMS API
- Using the JavaMail API
- Introducing JavaMail
- Creating a JavaMail Session
- JavaMail Session Properties
- Looking Up a JavaMail Session
- Sending and Reading Messages Using JavaMail
- To Send a Message Using JavaMail
- To Read a Message Using JavaMail
Reviewers The review schedule for this document is provided in the following table.
Review Milestone |
Start Date |
End Date |
TP2 Draft |
4/23/08 |
4/30/08 |
TP2 Draft 2 |
5/16/08 |
5/28/08 |
Prelude Draft |
10/03/08 |
10/10/08 |
Preview Draft |
5/18/09 |
5/20/09 |
FishCAT Draft |
9/08/09 |
9/22/09 |
Final Version |
11/09/09 |
11/13/09 |
The reviewers of this document are listed in the following table.
Chapter |
Writers |
Reviewers |
Preview Done |
FishCAT Done |
Final Done |
Chapter 1 Setting Up a Development Environment |
June Parks |
Snjezana Sevo-Zenzerovic Ludovic Champenois |
5/20/09 |
|
|
Chapter 2 Class Loaders |
June Parks |
Sanjeeb Sahoo |
5/20/09 |
|
|
Chapter 3 Using Ant with Enterprise Server |
June Parks |
Lloyd Chambers Kedar Mhaswade Sankar Neelakandan |
5/20/09 |
|
|
Chapter 4 Debugging Applications |
June Parks |
Ludovic Champenois |
5/20/09 |
|
|
Chapter 5 Securing Applications |
June Parks |
VB Kumar Jayanti K Venugopal Ron Monzillo Jagadesh Munta QA |
5/20/09 |
|
|
Chapter 6 Developing Web Services |
June Parks |
Bhakti Mehta Harold Carr Anand Mishra QA Eric Jendrock |
5/20/09 |
|
|
Chapter 7 Using the Java Persistence API |
June Parks |
Mitesh Meswani Ming Zhang QA Sherry Shen QA Ian Evans |
5/20/09 |
|
|
Chapter 8 Developing Web Applications |
June Parks |
Rajiv Mordani Jean-Francois Arcand Jan Luehe Oleksiy Stashok Dhiru Pandey Shaline Sudipa Bhattacharya QA Devika Gollapudi |
5/20/09 |
|
|
Chapter 9 Using Enterprise JavaBeans Technology |
June Parks |
Mahesh Kannan Marina Vatkina Ian Evans |
5/20/09 |
|
|
Chapter 10 Using Container-Managed Persistence |
June Parks |
Mitesh Meswani Ming Zhang QA Sherry Shen QA |
5/20/09 |
|
|
Chapter 11 Developing Java Clients |
June Parks |
Tim Quinn Hong Zhang Ken Saks |
5/20/09 |
|
|
Chapter 12 Developing Connectors |
June Parks |
Jagadish Prasad Ramu Shalini Muthukrishnan Smitha Prabhu QA Chinmayee Srivathsa |
5/20/09 |
|
|
Chapter 13 Developing Lifecycle Listeners |
June Parks |
Hong Zhang |
N/A |
|
|
Chapter 14 Using the JDBC API for Database Access |
June Parks |
Jagadish Prasad Ramu Shalini Muthukrishnan Smitha Prabhu QA Chinmayee Srivathsa |
5/20/09 |
|
|
Chapter 15 Using the Transaction Service |
June Parks |
Marina Vatkina Smitha Prabhu QA |
5/20/09 |
|
|
Chapter 16 Using the Java Naming and Directory Interface |
June Parks |
Jagadish Ramu Shalini Muthukrishnan Mahesh Kannan Sanjeeb Sahoo Smitha Prabhu QA Chinmayee Srivathsa |
5/20/09 |
|
|
Chapter 17 Using the Java Message Service |
June Parks |
Satish Kumar |
5/20/09 |
|
|
Chapter 18 Using the JavaMail API |
June Parks |
Sanjeeb Sahoo Mahesh Kannan |
5/20/09 |
|
|
Delivery Methods The Application Development Guide will be published on the docs.sun.com^SM^ site in PDF and HTML formats. Related Information Latest draft (PDF): Application Development Guide Comments Page Previous Preview version (HTML): Developer's Guide Email aliases:
- [admin@glassfish.java.net]
- [users@glassfish.java.net]
- [docs@glassfish.java.net]
|