<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
Licensed to the Apache Software Foundation (ASF) under one | |
or more contributor license agreements. See the NOTICE file | |
distributed with this work for additional information | |
regarding copyright ownership. The ASF licenses this file | |
to you under the Apache License, Version 2.0 (the | |
"License"); you may not use this file except in compliance | |
with the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, | |
software distributed under the License is distributed on an | |
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations | |
under the License. | |
--> | |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
<!-- Generated by Apache Maven Doxia at Aug 20, 2014 --> | |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
<title>Apache James Server 3.0 - | |
Apache James Server 3 - Build Apache James from Source</title> | |
<style type="text/css" media="all"> | |
@import url("./css/james.css"); | |
@import url("./css/maven-base.css"); | |
@import url("./css/maven-theme.css"); | |
@import url("./css/site.css"); | |
@import url("./js/jquery/css/custom-theme/jquery-ui-1.8.5.custom.css"); | |
@import url("./js/jquery/css/print.css"); | |
@import url("./js/fancybox/jquery.fancybox-1.3.4.css"); | |
</style> | |
<script type="text/javascript" src="./js/jquery/js/jquery-1.4.2.min.js"></script> | |
<script type="text/javascript" src="./js/jquery/js/jquery-ui-1.8.5.custom.min.js"></script> | |
<script type="text/javascript" src="./js/fancybox/jquery.fancybox-1.3.4.js"></script> | |
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" /> | |
<meta name="Date-Revision-yyyymmdd" content="20140820" /> | |
<meta http-equiv="Content-Language" content="en" /> | |
<link title="DOAP" rel="meta" type="application/rdf+xml" href="http://james.apache.org//doap_james-project.rdf"/> | |
<!-- Google Analytics --> | |
<script type="text/javascript"> | |
var _gaq = _gaq || []; | |
_gaq.push(['_setAccount', 'UA-1384591-1']); | |
_gaq.push(['_trackPageview']); | |
(function() { | |
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | |
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | |
var s = document.getElementsByTagName('script').item(0); s.parentNode.insertBefore(ga, s); | |
})(); | |
</script> | |
</head> | |
<body class="composite"> | |
<div id="banner"> | |
<a href="../index.html" id="bannerLeft" title="james-server-logo.gif"> | |
<img src="images/logos/james-server-logo.gif" alt="Apache James Server 3.0" /> | |
</a> | |
<a href="http://www.apache.org/index.html" id="bannerRight"> | |
<img src="images/logos/asf-logo-reduced.gif" alt="The Apache Software Foundation" /> | |
</a> | |
<div class="clear"> | |
<hr/> | |
</div> | |
</div> | |
<div id="breadcrumbs"> | |
<div class="xleft"> | |
<span id="publishDate">Last Published: 2014-08-20</span> | |
</div> | |
<div class="xright"> <a href="../../index.html" title="Home">Home</a> | |
| | |
<a href="../index.html" title="Server">Server</a> | |
| | |
<a href="../../hupa/index.html" title="Hupa">Hupa</a> | |
| | |
<a href="../../protocols/index.html" title="Protocols">Protocols</a> | |
| | |
<a href="../../mailet/index.html" title="Mailets">Mailets</a> | |
| | |
<a href="../../mailbox/index.html" title="Mailbox">Mailbox</a> | |
| | |
<a href="../../mime4j/index.html" title="Mime4J">Mime4J</a> | |
| | |
<a href="../../jsieve/index.html" title="jSieve">jSieve</a> | |
| | |
<a href="../../jspf/index.html" title="jSPF">jSPF</a> | |
| | |
<a href="../../jdkim/index.html" title="jDKIM">jDKIM</a> | |
| | |
<a href="../../mpt/index.html" title="MPT">MPT</a> | |
| | |
<a href="../../postage/index.html" title="Postage">Postage</a> | |
</div> | |
<div class="clear"> | |
<hr/> | |
</div> | |
</div> | |
<div id="leftColumn"> | |
<div id="navcolumn"> | |
<h5>Overview</h5> | |
<ul> | |
<li class="none"> | |
<a href="index.html" title="Introduction">Introduction</a> | |
</li> | |
<li class="none"> | |
<a href="release-notes.html" title="Release Notes">Release Notes</a> | |
</li> | |
</ul> | |
<h5>Features</h5> | |
<ul> | |
<li class="none"> | |
<a href="feature-mailetcontainer.html" title="Mailet Container">Mailet Container</a> | |
</li> | |
<li class="none"> | |
<a href="feature-queue-priority.html" title="Queue Priority">Queue Priority</a> | |
</li> | |
<li class="none"> | |
<a href="feature-persistence.html" title="Persistence">Persistence</a> | |
</li> | |
<li class="none"> | |
<a href="feature-protocols.html" title="Protocols">Protocols</a> | |
</li> | |
<li class="none"> | |
<a href="feature-smtp-hooks.html" title="SMTP Hooks">SMTP Hooks</a> | |
</li> | |
<li class="none"> | |
<a href="feature-performance.html" title="Performance">Performance</a> | |
</li> | |
<li class="none"> | |
<a href="feature-security.html" title="Security">Security</a> | |
</li> | |
</ul> | |
<h5>User Manual</h5> | |
<ul> | |
<li class="none"> | |
<a href="quick-start.html" title="1. Quick Start">1. Quick Start</a> | |
</li> | |
<li class="none"> | |
<a href="install.html" title="2. Install James">2. Install James</a> | |
</li> | |
<li class="collapsed"> | |
<a href="config.html" title="3. Configure James">3. Configure James</a> | |
</li> | |
<li class="collapsed"> | |
<a href="manage.html" title="4. Manage">4. Manage</a> | |
</li> | |
<li class="collapsed"> | |
<a href="monitor.html" title="5. Monitor">5. Monitor</a> | |
</li> | |
<li class="collapsed"> | |
<a href="upgrade.html" title="6. Upgrade">6. Upgrade</a> | |
</li> | |
</ul> | |
<h5>Developers Corner</h5> | |
<ul> | |
<li class="none"> | |
<a href="dev.html" title="Architecture">Architecture</a> | |
</li> | |
<li class="none"> | |
<strong>Build from source</strong> | |
</li> | |
<li class="none"> | |
<a href="dev-database-schema.html" title="Database Schema">Database Schema</a> | |
</li> | |
<li class="collapsed"> | |
<a href="dev-extend.html" title="Develop Extensions">Develop Extensions</a> | |
</li> | |
<li class="collapsed"> | |
<a href="dev-provided.html" title="Provided Extensions">Provided Extensions</a> | |
</li> | |
<li class="none"> | |
<a href="https://repository.apache.org/content/repositories/snapshots/org/apache/james/apache-james/" title="Nightly builds">Nightly builds</a> | |
</li> | |
</ul> | |
<h5>References</h5> | |
<ul> | |
<li class="none"> | |
<a href="apidocs/index.html" title="Javadoc">Javadoc</a> | |
</li> | |
<li class="none"> | |
<a href="https://issues.apache.org/jira/browse/JAMES" title="Issue Tracker">Issue Tracker</a> | |
</li> | |
</ul> | |
<h5>About James</h5> | |
<ul> | |
<li class="none"> | |
<a href="../../index.html" title="Overview">Overview</a> | |
</li> | |
<li class="none"> | |
<a href="../../newsarchive.html" title="News">News</a> | |
</li> | |
<li class="none"> | |
<a href="../../mail.html" title="Mailing Lists">Mailing Lists</a> | |
</li> | |
<li class="none"> | |
<a href="../../contribute.html" title="Contributing">Contributing</a> | |
</li> | |
<li class="none"> | |
<a href="../../guidelines.html" title="Guidelines">Guidelines</a> | |
</li> | |
<li class="none"> | |
<a href="http://wiki.apache.org/james" title="Wiki">Wiki</a> | |
</li> | |
<li class="none"> | |
<a href="../../team-list.html" title="Who We Are">Who We Are</a> | |
</li> | |
<li class="none"> | |
<a href="../../license.html" title="License">License</a> | |
</li> | |
</ul> | |
<h5>Download</h5> | |
<ul> | |
<li class="none"> | |
<a href="../../download.cgi" title="Releases">Releases</a> | |
</li> | |
<li class="none"> | |
<a href="https://repository.apache.org/content/repositories/snapshots/org/apache/james/" title=""></a> | |
</li> | |
</ul> | |
<h5>Apache Software Foundation</h5> | |
<ul> | |
<li> | |
<strong> | |
<a title="ASF" href="http://www.apache.org/">ASF</a> | |
</strong> | |
</li> | |
<li> | |
<a title="Get Involved" href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a> | |
</li> | |
<li> | |
<a title="FAQ" href="http://www.apache.org/foundation/faq.html">FAQ</a> | |
</li> | |
<li> | |
<a title="License" href="http://www.apache.org/licenses/" >License</a> | |
</li> | |
<li> | |
<a title="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> | |
</li> | |
<li> | |
<a title="Thanks" href="http://www.apache.org/foundation/thanks.html">Thanks</a> | |
</li> | |
<li> | |
<a title="Security" href="http://www.apache.org/security/">Security</a> | |
</li> | |
</ul> | |
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> | |
<img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /> | |
</a> | |
</div> | |
</div> | |
<div id="bodyColumn"> | |
<div id="contentBox"> | |
<!-- Licensed to the Apache Software Foundation (ASF) under one | |
or more contributor license agreements. See the NOTICE file | |
distributed with this work for additional information | |
regarding copyright ownership. The ASF licenses this file | |
to you under the Apache License, Version 2.0 (the | |
"License"); you may not use this file except in compliance | |
with the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, | |
software distributed under the License is distributed on an | |
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations | |
under the License. --> | |
<div class="section"><h2>Why Build from Source?<a name="Why_Build_from_Source"></a></h2> | |
<p>This step is not necessary to use the standard out of the box version of James. A | |
pre-built binary version of James is available from the James download directory.</p> | |
<p>But if you wish to customize the James source code, it will be necessary for you to | |
build the distribution yourself.</p> | |
<p>You can read on this page how to build from the command line and from eclipse IDE.</p> | |
</div> | |
<div class="section"><h2>Get Source Code<a name="Get_Source_Code"></a></h2> | |
<p>There are two ways to get the James source code.</p> | |
<ol style="list-style-type: decimal"> | |
<li>Download the source distribution - the source is available from the | |
<a class="externalLink" href="http://james.apache.org/download.cgi">James release mirrors</a>. | |
Simply choose the version of James you'd like to download, and pick the source | |
distribution appropriate for your platform.</li> | |
<li>Get the source code using SVN - this method gives you access to the cutting edge code | |
base. Instructions on how to use SVN to get the James source code | |
can be found <a class="externalLink" href="http://www.apache.org/dev/version-control.html">here</a>. | |
Apache James Server beta4 repository is <a class="externalLink" href="http://svn.apache.org/repos/asf/james/server/tags/james-server-3.0-beta4/">http://svn.apache.org/repos/asf/james/server/tags/james-server-3.0-beta4/</a>.</li> | |
<li>For information, you can download all Apache James sources (server, mailbox, imap, mailet...) if you check out <a class="externalLink" href="http://svn.apache.org/repos/asf/james/current">http://svn.apache.org/repos/asf/james/current/</a>. | |
Watch out!: you will get a release, but what we call a "trunk", that is on constant development and debugging.</li> | |
</ol> | |
<p>We consider in this document that you have checked-out James source code in JAMES_SRC_HOME directory.</p> | |
<p>Consult the <a href="dev.html">architecture</a> page if you want to learn | |
more on the internal source structure.</p> | |
</div> | |
<div class="section"><h2>Required Tools<a name="Required_Tools"></a></h2> | |
<p>To run the build you need two third-party tools.</p> | |
<ol style="list-style-type: decimal"> | |
<li>Java Development Kit - You must have a JDK of Java version 1.6 or higher installed to build the | |
James distribution. The exact JDKs available depend on the platform. A JDK must be downloaded and | |
installed before the build can run.</li> | |
<li>Maven 3.0.2 - This is a Java-tailored, XML-configured, extensible build or make system. You need maven (3.0.2+) in order | |
to build James. You can get maven 3.0.2 from <a class="externalLink" href="http://maven.apache.org/download.html">here</a>. | |
Installation instructions for maven are also available on the same page <a class="externalLink" href="http://maven.apache.org/download.html">http://maven.apache.org/download.html</a>.</li> | |
</ol> | |
<p>Set (on windows) or export (on Unix) MAVEN_OPTS to tune the memory needed by maven with "MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=128m"</p> | |
</div> | |
<div class="section"><h2>Build James Source from Command Line<a name="Build_James_Source_from_Command_Line"></a></h2> | |
<p>In the JAMES_SRC_HOME top level directory (where the parent pom.xml resides), invoke maven with 'mvn' with any of the following command line arguments: | |
</p><ul> | |
<li>clean - deletes the target directory, making the system ready for a clean build.</li> | |
<li>compile - compiles the source code.</li> | |
<li>test - run unit tests for James.</li> | |
<li><b>package - generates all the James distributions, packed. | |
From the root directory, cd to 'container-spring/target' to have the build distribution. | |
Notice, for the latest trunk(revision 1430655+), a specific profile argument need to be set: '-Pwith-assembly'. | |
The location of final distributions is also changed to 'JAMES_SRC_HOME/server/app/target'.</b></li> | |
<li>javadocs:javadocs - builds the James javadocs.</li> | |
<li>site - builds the entirety of the James website.</li> | |
</ul> | |
<p>For example, invoke <tt>mvn package</tt> to get a zip/tar of James distribution.</p> | |
<p>All built products are output in the <tt>container-spring/target</tt> | |
subdirectory of the James source directory. | |
This directory will be deleted if you run build with the clean argument.</p> | |
<p><b>Warning!</b> Any changes you've made in the 'dist' directory | |
will be lost after a recompilation. If you are running James for this directory | |
we recommend you backup to avoid losing work. </p> | |
<p>You can also invoke the command line from a shell. Go to the server project cli folder and type mvn exec:java -Dexec.args="-h localhost -p 9999 help"</p> | |
</div> | |
<div class="section"><h2>Build James Source from Eclipse<a name="Build_James_Source_from_Eclipse"></a></h2> | |
<div class="section"><h3>Import projects in Eclipse with m2eclipse<a name="Import_projects_in_Eclipse_with_m2eclipse"></a></h3> | |
<p>You should have Eclipse IDE with <a class="externalLink" href="http://m2eclipse.sonatype.org">m2eclipse</a> plugin installed.</p> | |
<p>You now need to import the maven projects in the Eclipse workspace.</p> | |
<p>Therefore, click on the <tt>File</tt> menu and select <tt>Import</tt>. | |
Choose <tt>Existing Maven Project</tt> and click on <tt>Next</tt> button.</p> | |
<img src="./images/eclipse/eclipse-import-maven-view-1.gif" alt="" /> | |
</div> | |
<div class="section"><h3>Select Projects to Import<a name="Select_Projects_to_Import"></a></h3> | |
<p>Select the JAMES_SRC_HOME directory where you have checked out the source code.</p> | |
<p>Eclipse should present you with the list of James server modules.</p> | |
<p>Select the modules you want to import (by default, all) and click on <tt>Finish</tt> | |
to execute the import.</p> | |
<img src="./images/eclipse/eclipse-import-maven-view-2.gif" alt="" /> | |
<p>You can also import other projects from | |
<a class="externalLink" href="http://james.apache.org/imap/source-code.html">imap</a>, | |
<a class="externalLink" href="http://james.apache.org/mailbox/source-code.html">mailbox</a> | |
and <a class="externalLink" href="http://james.apache.org/protocols/source-code.html">protocols</a> to have a | |
more complete view on the used sources code.</p> | |
</div> | |
<div class="section"><h3>Enable Workspace Resolution<a name="Enable_Workspace_Resolution"></a></h3> | |
<p>Check that 'Workspace resolution' is enable in m2eclipse plugin.</p> | |
<p>Your changes in code will be directly taken into account.</p> | |
<img src="./images/eclipse/eclipse-m2eclipse-project-dependencies.gif" alt="" /> | |
</div> | |
<div class="section"><h3>Prepare projects<a name="Prepare_projects"></a></h3> | |
<p>Now you have James projects in Eclipse workspace.</p> | |
<p>You still have to prepare the following to be able to run from Eclipse:</p> | |
<ol style="list-style-type: decimal"> | |
<li>Copy the <tt>context</tt> folder, <tt>log4j.properties</tt> | |
and <tt>META-INF</tt> folder from <tt>container-spring\src\main\config\james</tt> | |
directory to a source folder of <tt>container-spring</tt> project (you can use for example a | |
new folder called <tt>stage</tt> as Eclipse source folder).</li> | |
<li>Copy all files (except context folder log4j.properties and META-INF/persistence.xml) | |
from <tt>container-spring\src\main\config\james</tt> folder to a <tt>conf</tt> folder | |
(<tt>conf</tt> folder must be a sub-folder of the JAMES_SRC_HOME directory where you made the check-out). | |
As non-root privilege user, you may need to change the SMTP/IMAP/POP3 ports to values higher than 1024.</li> | |
<li>For ease, you can also create 2 new eclipse projects to edit the files and visualize the created mails/store/...: | |
james-server-container-spring-conf and james-server-container-spring-var.</li> | |
</ol> | |
<img src="./images/eclipse/eclipse-m2eclipse-projects.gif" alt="" /> | |
</div> | |
<div class="section"><h3>Run James from Eclipse<a name="Run_James_from_Eclipse"></a></h3> | |
<p>That's it. Run or Debug James in Eclipse (right-click on the Main class) and Have Fun!.</p> | |
<img src="./images/eclipse/eclipse-run-james.gif" alt="" /> | |
<p>If you change a JPA Entity class, your will need to run 'mvn package' | |
or add the following option to the VM argument of your run configuration | |
'-javaagent:my_home_folder/.m2/repository/org/apache/openjpa/openjpa/2.0.1/openjpa-2.0.1.jar' | |
</p> | |
</div> | |
</div> | |
<div class="section"><h2>Build James from NetBeans<a name="Build_James_from_NetBeans"></a></h2> | |
<p>This was done using NetBeans 7, which comes bundeled with Maven 3, needed to build James 3. | |
Older versions of NetBeans should be able to build James fine, provided that you configure them to use an instance of Maven 3, if they do not have it. | |
I used james 3.0-beta1 release and it builded in 7:40 min on my notebook running Debian Squeeze. | |
</p> | |
<div class="section"><h3>Getting the sources from the repository<a name="Getting_the_sources_from_the_repository"></a></h3> | |
<p>Building James with NetBeans is very easy as it comes with Subersion and Maven support already build in. | |
Maven is bundeled with the IDE, but Subverion is not, so you will have to install Subversion yourself and NetBeans will be able to use it. | |
You can get more details on how to install and where to get Subversion from the NetBeans Help menu by clicking on <b>Help Contents</b> and from there go to the <b>IDE Basics->Version Control and File Hierarchy->Subversion</b> topic. | |
</p> | |
<p>For Linux users, Subversion is probably packaged by your distribution so use your distribution tools to install it (aptitude, yum, etc.)</p> | |
<p>Once you have Subversion, go to <b>Team->Subversion->Checkout</b> menu entry. <br /> | |
You will see an dialog window used to enter the information about the Subversion repository you are going to use. It looks like this:</p> | |
<img src="./images/netbeans/netbeans-svn-checkout1.png" alt="" /> | |
<p>In the <tt>Repository URL</tt> field enter the location for James repository and click <tt>Next</tt>. | |
You can use the following URL to get the trunk or development version: | |
<a class="externalLink" href="http://svn.apache.org/repos/asf/james/server/trunk">http://svn.apache.org/repos/asf/james/server/trunk</a>.<br /> | |
After this you will be presented with another dialog window where you can configure which folders to check out and where to save them on your machine.</p> | |
<img src="./images/netbeans/netbeans-svn-checkout2.png" alt="" /> | |
<p>If you supplied the above URL you can click <tt>Finish</tt> to get trunk version and start hacking. | |
You can choose another folder by clicking <tt>Browse</tt>. A new dialog window will open and from there you can browse | |
the whole subversion repository. I wanted to build James 3.0beta so I choosed <tt>james-serve-3.0-beta1</tt> under james/server/tags/ folder. <br /></p> | |
<img src="./images/netbeans/netbeans-svn-checkout-browse.png" alt="" /> | |
<p>After you click <tt>Finish</tt> NetBeans will checkout the sources. It will detect the Maven project and ask you if you wish to open the project. | |
If you open the project you will see in the Projects Window (<tt>CTRL+1</tt> if not visible) something similar to the next image:<br /></p> | |
<img src="./images/netbeans/netbeans-james-project.png" alt="" /> | |
</div> | |
<div class="section"><h3>Building the project <a name="Building_the_project"></a></h3> | |
<p> Building the project does not require too much work. Just go to <tt>Run->Build Project</tt> menu option. | |
Make sure that James is the main project (if you have other projects open) or NetBeans will build that project instead of James. | |
Once the build is finished you will find the binary distribution in <tt>container-spring/target</tt> directory. <br /></p> | |
<img src="./images/netbeans/james-build-dir.png" alt="" /> | |
</div> | |
</div> | |
<div class="section"><h2>Build James from IntelliJ IDEA<a name="Build_James_from_IntelliJ_IDEA"></a></h2> | |
<p>This section has been created using IntelliJ IDEA 12 and Maven 3. And downloading the trunk version of the server | |
from <tt>http://svn.apache.org/repos/asf/james/server/trunk/</tt>. | |
</p> | |
<div class="section"><h3>Getting the sources from the repository<a name="Getting_the_sources_from_the_repository"></a></h3> | |
<p>To download the source code, you can use the Subversion support that comes with IntelliJ IDEA following the next steps:</p> | |
<p>First, in the Welcome page, click on <b>Check out from Version Control</b> and select <b>Subversion</b>.</p> | |
<img src="./images/intellij-idea/intellij-new-project.png" alt="" /> | |
<p>In the pop-up window, press the <b>+</b> button to add the James code repository in the next pop-up.</p> | |
<img src="./images/intellij-idea/intellij-svn-repo.png" alt="" /> <br /> | |
<img src="./images/intellij-idea/intellij-svn-repo-add-repo.png" alt="" /> <br /> | |
<p>Then, choose the location for the project.</p> | |
<img src="./images/intellij-idea/intellij-svn-repo-checkout-choose-folder.png" alt="" /> | |
<p>When this process is done, the project should look like this. <br /></p> | |
<img src="./images/intellij-idea/intellij-james-project.png" alt="" /> | |
</div> | |
<div class="section"><h3>Building the project<a name="Building_the_project"></a></h3> | |
<p> To build the project, you must open the <b>Maven Projects</b> panel. Then double click on the install goal to run this goal.<br /></p> | |
<img src="./images/intellij-idea/intellij-mvn.png" alt="" /> | |
<p>Then you will find the James server zip in the <b>app/target</b> folder.<br /></p> | |
<img src="./images/intellij-idea/intellij-james-zip.png" alt="" /> | |
</div> | |
</div> | |
<div class="section"><h2>Build James Source from other IDEs<a name="Build_James_Source_from_other_IDEs"></a></h2> | |
<p>We will be happy to include on this page any other tutorial you could send | |
use about developing James with your favorite Integrated Development Environment.</p> | |
</div> | |
</div> | |
</div> | |
<div class="clear"> | |
<hr/> | |
</div> | |
<div id="footer"> | |
<div class="xright">Copyright © 2002-2014 | |
<a href="http://www.apache.org/">The Apache Software Foundation</a>. | |
All Rights Reserved. | |
</div> | |
<div class="clear"> | |
<hr/> | |
</div> | |
</div> | |
</body> | |
</html> |