type=page
status=published
title=Preface
next=installing.html
prev=title.html
~~~~~~
Preface
=======

[[GSING00001]][[gjxfa]]


[[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 contains instructions for installing and uninstalling
GlassFish Server Open Source Edition 5.0 software.

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

GlassFish Server 5.0 is developed through the GlassFish project
open-source community at `https://javaee.github.io/glassfish/`. 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]

[[GSING00014]][[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`] 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:../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.
|=======================================================================


[[GSING00015]][[giprl]]


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

The following tutorials explain how to develop Java EE applications:

* https://javaee.github.io/firstcup/[Your First Cup: An Introduction to
the Java EE Platform] (`https://javaee.github.io/firstcup/`). 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.
* https://javaee.github.io/tutorial/[The Java EE Tutorial]
(`https://javaee.github.io/tutorial/`). This comprehensive tutorial
explains how to use Java EE 8 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 of Java EE is located at
`https://javaee.github.io/javaee-spec/javadocs/`.
* The API specification for GlassFish Server 5.0, including Java EE
platform packages and nonplatform packages that are specific to the
GlassFish Server product, is located at
`https://javaee.github.io/javaee-spec/javadocs/`.

Additionally, the
https://javaee.github.io/javaee-spec/Specifications[Java EE
Specifications] 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].

For information about the Apache Derby for use with the GlassFish
Server, see the
https://db.apache.org/derby/[`Apache Derby product page`].

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 https://javaee.github.io/glassfish-samples/[Java EE
Samples project page].

[[GSING00016]][[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 a|
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 a|
`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) a|
Read Chapter 6 in the User's Guide.

A cache is a copy that is stored locally.

Do not save the file.

|=======================================================================


[[GSING00017]][[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.
|=======================================================================


[[GSING00018]][[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.

[width="100%",cols="14%,34%,52%",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`/glassfish6/glassfish`

Installations on the Windows operating system:

SystemDrive`:\glassfish6\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`/glassfish6`

Installations on the Windows operating system:

SystemDrive`:\glassfish6`

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

|domain-dir + a|
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
|=======================================================================

