|  | <?xml version="1.0"?> | 
|  | <!-- | 
|  |  | 
|  | Copyright (c) 2010, 2019 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 "jersey.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="how-to-build"> | 
|  | <title>Building and Testing Jersey</title> | 
|  |  | 
|  | <section xml:id="checkout"> | 
|  | <title>Checking Out the Source</title> | 
|  | <para> | 
|  | Jersey source code is available on GitHub. You can browse the sources at | 
|  | <link xlink:href="https://github.com/eclipse-ee4j/jersey">https://github.com/eclipse-ee4j/jersey</link>. | 
|  | </para> | 
|  | <para> | 
|  | In case you are not familiar with Git, we recommend reading some of the many "Getting Started with Git" articles | 
|  | you can find on the web. For example this | 
|  | <link xlink:href="http://refcardz.dzone.com/refcardz/getting-started-git">DZone RefCard</link>. | 
|  | </para> | 
|  | <!--<para>--> | 
|  | <!--Before you can clone Jersey repository you have to sign up for a--> | 
|  | <!--<link xlink:href="http://java.net">java.net</link>--> | 
|  | <!--account. Once you are registered, you have to add an SSH key to your java.net profile - see this article on how--> | 
|  | <!--to do that:--> | 
|  | <!--<link xlink:href="http://java.net/projects/help/pages/ProfileSettings#SSH_Keys_Tab">http://java.net/projects/help/pages/ProfileSettings#SSH_Keys_Tab</link>--> | 
|  | <!--</para>--> | 
|  | <para> | 
|  | To clone the Jersey repository you can execute the following command on the command-line | 
|  | (provided you have a command-line Git client installed on your machine): | 
|  | <programlisting language="bash" linenumbering="unnumbered">git clone git://github.com/eclipse-ee4j/jersey.git</programlisting> | 
|  | This creates read-only copy of Jersey workspace. If you want to contribute, please use "pull request": | 
|  | <link xlink:href="https://help.github.com/articles/creating-a-pull-request">https://help.github.com/articles/creating-a-pull-request</link>. | 
|  | </para> | 
|  | <para> | 
|  | Milestones and releases of Jersey are tagged. You can list the tags by executing the standard Git command in the repository directory: | 
|  | <programlisting language="bash" linenumbering="unnumbered">git tag -l</programlisting> or by visiting | 
|  | <link xlink:href="https://github.com/eclipse-ee4j/jersey/tags">https://github.com/eclipse-ee4j/jersey/tags</link>. | 
|  | </para> | 
|  | </section> | 
|  |  | 
|  | <section xml:id="building"> | 
|  | <title>Building the Source</title> | 
|  | <para> | 
|  | Jersey source code requires Java SE 7 or higher. The build is based on Maven. | 
|  | Maven 3.1 or higher is highly recommended. Also it is recommended you use the following | 
|  | Maven options when building the workspace (can be set in <literal>MAVEN_OPTS</literal> environment | 
|  | variable): | 
|  | <programlisting language="bash" linenumbering="unnumbered">-Xmx1048m -XX:PermSize=64M -XX:MaxPermSize=128M</programlisting> | 
|  | </para> | 
|  | <para> | 
|  | It is recommended to build all of Jersey after you cloned the source code repository. | 
|  | To do that execute the following commands in the directory where jersey source repository | 
|  | was cloned (typically the directory named "jersey"): | 
|  | <programlisting language="bash" linenumbering="unnumbered">mvn -Dmaven.test.skip=true clean install</programlisting> | 
|  | This command will build Jersey, but skip the test execution. | 
|  | If you don't want to skip the tests, execute the following instead: | 
|  | <programlisting language="bash" linenumbering="unnumbered">mvn clean install</programlisting> | 
|  | Building the whole Jersey project including tests could take significant amount of time. | 
|  | </para> | 
|  | </section> | 
|  |  | 
|  | <section xml:id="testing"> | 
|  | <title>Testing</title> | 
|  | <para> | 
|  | Jersey contains many tests. Unit tests are in the individual Jersey modules, | 
|  | integration and end-to-end tests are in <literal>jersey/tests/e2e</literal> directory. | 
|  | You can run tests related to a particular area using the following command: | 
|  | <programlisting language="bash" linenumbering="unnumbered">mvn -Dtest=<pattern> test</programlisting> | 
|  | where | 
|  | <literal>pattern</literal> | 
|  | may be a comma separated set of names matching tests classes or individual methods (like | 
|  | <literal>LinkTest#testDelimiters</literal>). | 
|  | </para> | 
|  | </section> | 
|  | <section xml:id="netbeans-build"> | 
|  | <title>Using NetBeans</title> | 
|  | <para> | 
|  | <link xlink:href="http://netbeans.org">NetBeans IDE</link> | 
|  | has excellent maven support. The Jersey maven | 
|  | modules can be loaded, built and tested in NetBeans without any additional | 
|  | NetBeans-specific project files. | 
|  | </para> | 
|  | </section> | 
|  |  | 
|  | </chapter> |