Smack/resources
Florian Schmaus 4133eb175c Replace XPP3 by XmlPullParser interface wrapping StAX and XPP3
Introducing Smack's own XmlPullParser interface which tries to stay as
compatible as possible to XPP3. The interface is used to either wrap
StAX's XMLStreamReader if Smack is used on Java SE, and XPP3's
XmlPullParser if Smack is used on on Android.

Fixes SMACK-591.

Also introduce JUnit 5 and non-strict javadoc projects.
2019-05-06 22:10:50 +02:00
..
eclipse SmackReactor/NIO, Java8/Android19, Pretty print XML, FSM connections 2019-02-05 13:18:03 +01:00
logo Add smack-logo-plain-minimized.svg using scour 2017-09-29 17:18:42 +02:00
releasedocs Replace XPP3 by XmlPullParser interface wrapping StAX and XPP3 2019-05-06 22:10:50 +02:00
sample Remove legacy CVS keywords 2017-01-05 12:03:36 -06:00
README.html Replace references to 'smack.jar' 2014-07-05 12:10:43 +02:00
getCopyright.sh Add support for XEP-0198: Stream Management 2014-09-11 09:49:16 +02:00
gradle.properties.example Change keyringfile example to real file 2014-04-17 13:47:19 +02:00
javadoc-overview.html Link to Manager from javadoc-overview.html 2018-08-02 17:14:33 +02:00
sample.providers Normalize newlines to '\n' 2014-02-17 23:58:40 +01:00
smacklint.sh Introduce CloseableUtil 2018-08-15 17:25:22 +02:00

README.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Smack Source Distribution</title>
    <style type="text/css">
        BODY {
            font-size : 100%;
        }
        BODY, TD, TH {
            font-family : tahoma, verdana, arial, helvetica, sans-serif;
            font-size : 0.8em;
        }
        A:hover {
            text-decoration : none;
        }
        TT {
            font-family : courier new, monospace;
            font-weight : bold;
            color : #060;
        }
        PRE, CODE {
            font-family : courier new, monospace;
            font-size : 100%;
        }
    </style>
</head>

<body>

<font size=4>
Smack Source Distribution<br>
</font><br>
<p>

This document provides detailed information for developers that wish to 
compile and make changes to the Smack source code.

<p>For additional developer resources, please visit: 
<a href="http://www.igniterealtime.org/projects/smack">
http://www.igniterealtime.org/projects/smack</a>. The Smack build process is based on Gradle. Visit the
<a href="http://www.gradle.org">Gradle website</a>
for more information and downloads.
<p>
This documentation is divided into two sections:
<ol>
	<li> <a href="#setup">Setup</a> -- how to setup your environment for Smack development.
	<li> <a href="#tasks">Build tasks</a> -- tasks that can be performed using the build program.
</ol>

<p><a name="setup"><b><font color="#0066cc">1.</font> Setup Your Environment</b></a><p>

Getting your machine ready for Smack development requires a few steps. Wherever
possible, instructions are provided for both Unix/Linux and Windows users.
<p>
<b><a name="javaSetup">Configure Java</a></b>
<ul>
	A Java Development Kit (JDK) must be installed and setup on your machine. To test the installation,
	open a shell in a Unix or a MS-DOS prompt in Windows. Check your version of
	Java with "javac -version".
	If Java isn't installed, download a copy from the 
	<a href="http://java.oracle.com/">Java website</a>.
</ul>

<b><a name="antSetup">Configure Gradle</a></b>
<ul>
Download Gradle from the <a href="http://www.gradle.org">Gradle website</a>. Follow
the setup instructions for your operating system.
</ul>

<p><b><a name="checkout">Test the Build Script</a></b><p>
<ul>

<p>
Now, invoke the build tool to compile the Smack source code

<p>
</font><code>gradle build</code><font face="verdana, arial, helvetica" size=2>
<p>

If the build tool is invoked correctly and Smack compiles, you've correctly
configured your copy of the Smack developer distribution.
</font>
</ul>

<p><b>Finished!</b><p>
<ul>
If you've gotten this far, you've finished setting up the Smack developer
distribution. Now, read below to learn about all of the tasks that you can perform
with the build tool.
</ul>

<br><br>
	
<p><b><a name="tasks"><font color="#0066cc">2.</font> Gradle Tasks</a></b><p>

	The list of build tasks is below.

	<br><br>

	For a list of the commands and a brief description from the command line, type
	<code>gradle tasks</code>. For more complete help, read the documentation below.

	<br><br>

	To execute a build task, type <code>gradle [options] targetname</code> where "targetname" is
	one of the targets listed below:
	
	<ul>
        <li><a href="#build">build</a>
        <li><a href="#javadoc">javadocAll</a>
        <li><a href="#clean">clean</a>
        <li><a href="#eclipse">eclipse</a>
		<li><a href="#projects">projects</a>
	</ul>
<p>
Each task is documented with a syntax guide and description. Optional paramaters 
for each task are enclosed with braces.
	
<p><b><a name="build">build</a></b>
<ul>
<i>Syntax:</i><p>

<code>
gradle build <br>
</code>

<p><i>Description:</i></p>

Compiles all the Smack source code and run the test suite. The
artifacts of the sub-projects can be found
at <code>&lt;subprojectDir&gt;/build/libs</code>

<p>[<a href="#tasks">return to task list</a>]
</ul>

<p><b><a name="javadoc">javadocAll</a></b>
<ul>
<i>Syntax:</i><p>

<code>
gradle javadocAll<br>
</code>

<p><i>Description:</i></p>

JavaDocs all Smack source code and saves it under <code>build/javadoc</code>.

<p>[<a href="#tasks">return to task list</a>]
</ul>

<p><b><a name="clean">clean</a></b>
<ul>
<i>Syntax:</i><p>

<code>
gradle clean<br>
</code>

<p><i>Description:</i></p>

Cleans your Smack distribution directory by deleting compiled class
files and artifacts.

<p>[<a href="#tasks">return to task list</a>]
</ul>

<p><b><a name="eclipse">eclipse</a></b>
<ul>
<i>Syntax:</i><p>

<code>
gradle eclipse<br>
</code>

<p><i>Description:</i></p>

Generates Eclipse configuration files for every project. After
running <code>gradle build eclipse</code> you can import Smack in
Eclipse by selecting <code>File</code> &rarr; <code>Import...</code>
&rarr; <code>Existing Projects into Workspace</code>
<br>
Make sure to check "<code>Search for nested projects</code>". It may be
also a good idea to create a working set for Smack, and add all Smack
projects to that working set.
<br>
Note that it's recommended to also call the <code>build</code> target
when generating the Eclipse files, or else Eclipse may not find all
requirements.

<p>[<a href="#tasks">return to task list</a>]
</ul>

<p><b><a name="projects">projects</a></b>
<ul>
<i>Syntax:</i><p>

<code>
gradle projects<br>
</code>

<p><i>Description:</i></p>

Show all Smack projects and  their description.

<p>[<a href="#tasks">return to task list</a>]
</ul>


</body>
</html>