<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2013, 2017 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!DOCTYPE chapter [<!ENTITY % ents SYSTEM "tyrus.ent"> %ents;]>
<chapter xmlns="http://docbook.org/ns/docbook"
         version="5.0"
         xml:lang="en"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xsi:schemaLocation="http://docbook.org/ns/docbook http://docbook.org/xml/5.0/xsd/docbook.xsd
                             http://www.w3.org/1999/xlink http://www.w3.org/1999/xlink.xsd"
         xml:id="modules-and-dependencies">
    <title>Tyrus Modules and Dependencies</title>

    <para>
        Tyrus is built, assembled and installed using Maven. Tyrus is deployed to maven.org maven repository
        at the following location:<link xlink:href="http://search.maven.org/">http://search.maven.org/</link>.
        Jars, jar sources, jar javadoc and samples are all available on the java.net maven repository.
    </para>

    <para>
        All Tyrus components are built using Java SE 7 compiler. It means, you will also need at least Java SE 7
        to be able to compile and run your application. Developers using maven are likely to find it easier to include
        and
        manage dependencies of their applications than developers using ant or other build technologies. The following
        table provides an overview of all Tyrus modules and their dependencies with links to the respective binaries.
    </para>

    <table frame='all' xml:id="dependencies-table-modules">
        <title>Tyrus core modules</title>
        <tgroup cols='3' align='left' colsep='1' rowsep='1'>
            <colspec colname='c1' colwidth="2*"/>
            <colspec colname='c2' colwidth="5*"/>
            <colspec colname='c3' colwidth="7*"/>
            <thead>
                <row>
                    <entry>Module</entry>
                    <entry>Dependencies</entry>
                    <entry>Description</entry>
                </row>
            </thead>
            <tbody>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-server|&version;|jar">
                            tyrus-server
                        </link>
                    </entry>
                    <entry>tyrus-core, tyrus-spi, tyrus-websocket-core</entry>
                    <entry>Basic server functionality</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-core|&version;|jar">
                            tyrus-core
                        </link>
                    </entry>
                    <entry>tyrus-spi, tyrus-websocket-core</entry>
                    <entry>Core Tyrus functionality</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-client|&version;|jar">
                            tyrus-client
                        </link>
                    </entry>
                    <entry>tyrus-core, tyrus-spi, tyrus-websocket-core</entry>
                    <entry>Basic client functionality</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-documentation|&version;|jar">
                            tyrus-documentation
                        </link>
                    </entry>
                    <entry>[nothing]</entry>
                    <entry>Project documentation</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-websocket-core|&version;|jar">
                            tyrus-websocket-core
                        </link>
                    </entry>
                    <entry>[nothing]</entry>
                    <entry>The WebSocket protocol</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/remotecontent?filepath=org/glassfish/tyrus/bundles/tyrus-samples/&version;/tyrus-samples-&version;-all.zip">
                            tyrus-samples
                        </link>
                    </entry>
                    <entry>tyrus-server, tyrus-client, tyrus-container-grizzly, tyrus-core, tyrus-spi,
                        tyrus-websocket-core
                    </entry>
                    <entry>Samples of using &ja4w; and Tyrus</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-spi|&version;|jar">
                            tyrus-spi
                        </link>
                    </entry>
                    <entry>[nothing]</entry>
                    <entry>SPI</entry>
                </row>
            </tbody>
        </tgroup>
    </table>

    <table frame='all' xml:id="dependencies-table-containers">
        <title>Tyrus containers</title>
        <tgroup cols='3' align='left' colsep='1' rowsep='1'>
            <colspec colname='c1' colwidth="2*"/>
            <colspec colname='c2' colwidth="5*"/>
            <colspec colname='c3' colwidth="7*"/>
            <thead>
                <row>
                    <entry>Module</entry>
                    <entry>Dependencies</entry>
                    <entry>Description</entry>
                </row>
            </thead>
            <tbody>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-cdi|&version;|jar">
                            tyrus-container-glassfish-cdi
                        </link>
                    </entry>
                    <entry>tyrus-spi</entry>
                    <entry>CDI support</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-glassfish-ejb|&version;|jar">
                            tyrus-container-glassfish-ejb
                        </link>
                    </entry>
                    <entry>tyrus-spi</entry>
                    <entry>EJB support</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-grizzly|&version;|jar">
                            tyrus-container-grizzly
                        </link>
                    </entry>
                    <entry>tyrus-core, tyrus-spi, tyrus-websocket-core</entry>
                    <entry>Grizzly integration for Tyrus client and standalone server usage</entry>
                </row>
                <row>
                    <entry>
                        <link xlink:href="http://search.maven.org/#artifactdetails|org.glassfish.tyrus|tyrus-container-servlet|&version;|bundle">
                            tyrus-container-servlet
                        </link>
                    </entry>
                    <entry>tyrus-server, tyrus-core, tyrus-spi, tyrus-websocket-core</entry>
                    <entry>Servlet support for integration into web containers</entry>
                </row>
            </tbody>
        </tgroup>
    </table>
</chapter>
