type=page
status=published
title=Preface
next=introduction.html
prev=title.html

Preface
=======

[[sthref2]][[preface]]

Preface
-------

[NOTE]
====
This documentation is part of the Java Enterprise Edition contribution
to the Eclipse Foundation and is not intended for use in relation to
Java Enterprise Edition or Orace GlassFish. The documentation is in the
process of being revised to reflect the new Jakarta EE branding.
Additional changes will be made as requirements and procedures evolve
for Jakarta EE. Where applicable, references to Java EE or Java
Enterprise Edition should be considered references to Jakarta EE.

Please see the Title page for additional license information.
====

This document explains how to use published interfaces of GlassFish
Server Open Source Edition to develop add-on components for GlassFish
Server.
This document explains how to perform only those tasks that
ensure that the add-on component is suitable for GlassFish Server.

This document is for software developers who are developing add-on
components for GlassFish Server. This document assumes that the
developers are working with a distribution of GlassFish Server. Access
to the source code of the GlassFish project is not required to perform
the tasks in this document. This document also assumes the ability to
program in the Java language.

This preface contains information about and conventions for the entire
GlassFish Server Open Source Edition (GlassFish Server) documentation
set.

GlassFish Server 4.0 is developed through the GlassFish project
open-source community at `http://glassfish.java.net/`. The GlassFish
project provides a structured process for developing the GlassFish
Server platform that makes the new features of the Java EE platform
available faster, while maintaining the most important feature of Java
EE: compatibility. It enables Java developers to access the GlassFish
Server source code and to contribute to the development of the GlassFish
Server.
The GlassFish project is designed to encourage communication
between Oracle engineers and the community.

The following topics are addressed here:

* link:#ghpbz[GlassFish Server Documentation Set]
* link:#giprl[Related Documentation]
* link:#fwbkx[Typographic Conventions]
* link:#fquvc[Symbol Conventions]
* link:#ghpfg[Default Paths and File Names]


[[GSACG00079]][[ghpbz]]


[[glassfish-server-documentation-set]]
GlassFish Server Documentation Set
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The GlassFish Server documentation set describes deployment planning and
system installation. For an introduction to GlassFish Server, refer to
the books in the order in which they are listed in the following table.

[width="100%",cols="<30%,<70%",options="header",]
|===
|Book Title |Description
|link:../release-notes/toc.html#GSRLN[Release Notes] |Provides late-breaking information about
the software and the documentation and includes a comprehensive,
table-based summary of the supported hardware, operating system, Java
Development Kit (JDK), and database drivers.

|link:../quick-start-guide/toc.html#GSQSG[Quick Start Guide]
|Explains how to get started with the GlassFish Server product.

|link:../installation-guide/toc.html#GSING[Installation Guide]
|Explains how to install the software and its components.

|link:../upgrade-guide/toc.html#GSUPG[Upgrade Guide]
|Explains how to upgrade to the latest version of GlassFish Server.
This guide also describes differences between adjacent product releases and configuration
options that can result in incompatibility with the product specifications.

|link:../deployment-planning-guide/toc.html#GSPLG[Deployment Planning Guide]
|Explains how to build a production deployment of GlassFish Server that meets the requirements of
your system and enterprise.

|link:../administration-guide/toc.html#GSADG[Administration Guide]
|Explains how to configure, monitor, and manage GlassFish Server subsystems and components
from the command line by using the link:../reference-manual/asadmin.html#GSRFM00263[`asadmin`(1M)] utility.
Instructions for performing these tasks from the Administration Console are provided
in the Administration Console online help.

|link:../security-guide/toc.html#GSSCG[Security Guide]
|Provides instructions for configuring and administering GlassFish Server security.

|link:../application-deployment-guide/toc.html#GSDPG[Application Deployment Guide]
|Explains how to assemble and deploy applications to the GlassFish Server and provides information
about deployment descriptors.

|link:../application-development-guide/toc.html#GSDVG[Application Development Guide]
|Explains how to create and implement Java Platform, Enterprise Edition (Java EE platform)
applications that are intended to run on the GlassFish Server.
These applications follow the open Java standards model for Java EE components
and application programmer interfaces (APIs).
This guide provides information about developer tools, security, and debugging.

|link:../add-on-component-development-guide/toc.html#GSACG[Add-On Component Development Guide]
|Explains how to use published interfaces of GlassFish Server to develop add-on components
for GlassFish Server.
This document explains how to perform only those tasks that ensure that the add-on component
is suitable for GlassFish Server.

|link:../embedded-server-guide/toc.html#GSESG[Embedded Server Guide]
|Explains how to run applications in embedded GlassFish Server and to develop applications
in which GlassFish Server is embedded.

|link:../ha-administration-guide/toc.html#GSHAG[High Availability Administration Guide]
|Explains how to configure GlassFish Server to provide higher availability and
scalability through failover and load balancing.

|link:../performance-tuning-guide/toc.html#GSPTG[Performance Tuning Guide]
|Explains how to optimize the performance of GlassFish Server.

|link:../troubleshooting-guide/toc.html#GSTSG[Troubleshooting Guide]
|Describes common problems that you might encounter when using GlassFish Server and explains how to solve them.

|link:../error-messages-reference/toc.html#GSEMR[Error Message Reference]
|Describes error messages that you might encounter when using GlassFish Server.

|link:../reference-manual/toc.html#GSRFM[Reference Manual]
|Provides reference information in man page format for GlassFish Server administration commands, utility
commands, and related concepts.

|link:../../openmq/mq-release-notes/toc.html#GMRLN[Message Queue Release Notes]
|Describes new features, compatibility issues, and existing bugs for Open Message Queue.

|link:../../openmq/mq-tech-over/toc.html#GMTOV[Message Queue Technical Overview]
|Provides an introduction to the technology, concepts, architecture, capabilities, and features of
the Message Queue messaging service.

|link:../../openmq/mq-admin-guide/toc.html#GMADG[Message Queue Administration Guide]
|Explains how to set up and manage a Message Queue messaging system.

|link:../../openmq/mq-dev-guide-jmx/toc.html#GMJMG[Message Queue Developer's Guide for JMX Clients]
|Describes the application programming interface in Message Queue for
programmatically configuring and monitoring Message Queue resources in
conformance with the Java Management Extensions (JMX).

|link:../../openmq/mq-dev-guide-java/toc.html#GMJVG[Message Queue Developer's Guide for Java Clients]
|Provides information about concepts and procedures for developing Java messaging
applications (Java clients) that work with GlassFish Server.

|link:../../openmq/mq-dev-guide-c/toc.html#GMCCG[Message Queue Developer's Guide for C Clients]
|Provides programming and reference information for developers working with
Message Queue who want to use the C language binding to the Message
Queue messaging service to send, receive, and process Message Queue
messages.
|===


[[GSACG00080]][[giprl]]


[[related-documentation]]
Related Documentation
~~~~~~~~~~~~~~~~~~~~~

The following tutorials explain how to develop Java EE applications:

* http://docs.oracle.com/javaee/7/firstcup/doc/home.html[Your First Cup:
An Introduction to the Java EE Platform](`http://docs.oracle.com/javaee/7/firstcup/doc/home.html`).
For beginning Java EE programmers, this short tutorial explains the entire process for
developing a simple enterprise application.
The sample application is a web application that consists of a component that is based on the
Enterprise JavaBeans specification, a JAX-RS web service,
and a JavaServer Faces component for the web front end.

* http://docs.oracle.com/javaee/7/tutorial/doc/home.html[The Java EE 7
Tutorial](`http://docs.oracle.com/javaee/7/tutorial/doc/home.html`).
This comprehensive tutorial explains how to use Java EE 7 platform
technologies and APIs to develop Java EE applications.

Javadoc tool reference documentation for packages that are provided with
GlassFish Server is available as follows.

* The API specification for version 7 of Java EE is located at `http://docs.oracle.com/javaee/7/api/`.

* The API specification for GlassFish Server 4.0, including Java EE 7
platform packages and nonplatform packages that are specific to the
GlassFish Server product, is located at `http://glassfish.java.net/nonav/docs/v3/api/`.

Additionally, the
http://www.oracle.com/technetwork/java/javaee/tech/index.html[Java EE
Specifications]
(`http://www.oracle.com/technetwork/java/javaee/tech/index.html`) might
be useful.

For information about creating enterprise applications in the NetBeans
Integrated Development Environment (IDE), see the
http://www.netbeans.org/kb/[NetBeans Documentation, Training & Support page](`http://www.netbeans.org/kb/`).

For information about the Java DB database for use with the GlassFish
Server, see the
http://www.oracle.com/technetwork/java/javadb/overview/index.html[Java
DB product page](`http://www.oracle.com/technetwork/java/javadb/overview/index.html`).

The Java EE Samples project is a collection of sample applications that
demonstrate a broad range of Java EE technologies. The Java EE Samples
are bundled with the Java EE Software Development Kit (SDK) and are also
available from the http://glassfish-samples.java.net/[Java EE Samples
project page](`http://glassfish-samples.java.net/`).

[[GSACG00081]][[fwbkx]]


[[typographic-conventions]]
Typographic Conventions
~~~~~~~~~~~~~~~~~~~~~~~

The following table describes the typographic changes that are used in
this book.

[width="100%",cols="<14%,<37%,<49%",options="header",]
|===
|Typeface |Meaning |Example
|`AaBbCc123` |The names of commands, files, and directories, and onscreen computer output
|Edit your `.login` file.

Use `ls` `a` to list all files.

`machine_name% you have mail.`

|`AaBbCc123`
|What you type, contrasted with onscreen computer output
|`machine_name%` `su`

`Password:`

|AaBbCc123
|A placeholder to be replaced with a real name or value
|The command to remove a file is `rm` filename.

|AaBbCc123
|Book titles, new terms, and terms to be emphasized (note that some emphasized items appear bold online)
|Read Chapter 6 in the User's Guide.

A cache is a copy that is stored locally.

Do not save the file.
|===


[[GSACG00082]][[fquvc]]


[[symbol-conventions]]
Symbol Conventions
~~~~~~~~~~~~~~~~~~

The following table explains symbols that might be used in this book.

[width="100%",cols="<10%,<26%,<28%,<36%",options="header",]
|===
|Symbol |Description |Example |Meaning

|`[ ]`
|Contains optional arguments and command options.
|`ls [-l]`
|The `-l` option is not required.

|`{ \| }`
|Contains a set of choices for a required command option.
|`-d {y\|n}`
|The `-d` option requires that you use either the `y` argument or the `n` argument.

|`${ }`
|Indicates a variable reference.
|`${com.sun.javaRoot}`
|References the value of the `com.sun.javaRoot` variable.

|`-`
|Joins simultaneous multiple keystrokes.
|Control-A
|Press the Control key while you press the A key.

|`+`
|Joins consecutive multiple keystrokes.
|Ctrl+A+N
|Press the Control key, release it, and then press the subsequent keys.

|`>`
|Indicates menu item selection in a graphical user interface.
|File > New > Templates
|From the File menu, choose New. From the New submenu, choose Templates.
|===


[[GSACG00083]][[ghpfg]]


[[default-paths-and-file-names]]
Default Paths and File Names
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The following table describes the default paths and file names that are
used in this book.

[%autowidth.stretch,options="header",]
|===
|Placeholder |Description |Default Value
|as-install
a|Represents the base installation directory for GlassFish Server.
In configuration files, as-install is represented as follows:
`${com.sun.aas.installRoot}`
a|* Installations on the Oracle Solaris operating system, Linux operating
system, and Mac OS operating system:
+
user's-home-directory``/glassfish3/glassfish``
+
* Installations on the Windows operating system:
+
SystemDrive``:\glassfish3\glassfish``

|as-install-parent
|Represents the parent of the base installation directory for GlassFish Server.
a|* Installations on the Oracle Solaris operating system, Linux operating
system, and Mac operating system:
+
user's-home-directory``/glassfish3``
+
* Installations on the Windows operating system:
+
SystemDrive``:\glassfish3``

|domain-root-dir
|Represents the directory in which a domain is created by default.
|as-install``/domains/``

|domain-dir
|Represents the directory in which a domain's configuration is stored.
In configuration files, domain-dir is represented as follows:
`${com.sun.aas.instanceRoot}`
|domain-root-dir/domain-name

|instance-dir
|Represents the directory for a server instance.
|domain-dir/instance-name
|===

