You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jo...@apache.org on 2017/03/12 16:08:19 UTC
svn commit: r1008195 [24/46] - in
/websites/production/activemq/content/artemis/docs/1.5.4: ./ diagrams/
gitbook/ gitbook/fonts/ gitbook/fonts/fontawesome/
gitbook/gitbook-plugin-fontsettings/ gitbook/gitbook-plugin-highlight/
gitbook/gitbook-plugin-lu...
Added: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/ide.html
==============================================================================
--- websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/ide.html (added)
+++ websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/ide.html Sun Mar 12 16:08:18 2017
@@ -0,0 +1,451 @@
+
+<!DOCTYPE HTML>
+<html lang="" >
+ <head>
+ <title>IDE Integration · ActiveMQ Artemis Documentation</title>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <meta name="description" content="">
+ <meta name="generator" content="GitBook 3.1.1">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/style.css">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
+ <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
+
+
+ <link rel="next" href="building.html" />
+
+
+ <link rel="prev" href="code.html" />
+
+
+ </head>
+ <body>
+
+<div class="book">
+ <div class="book-summary">
+
+
+<div id="book-search-input" role="search">
+ <input type="text" placeholder="Type to search" />
+</div>
+
+
+ <nav role="navigation">
+
+
+
+<ul class="summary">
+
+
+
+
+
+
+
+
+
+ <li class="chapter " data-level="1.1" data-path="./">
+
+ <a href="./">
+
+
+ Introduction
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.2" data-path="notice.html">
+
+ <a href="notice.html">
+
+
+ Legal Notice
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.3" data-path="code.html">
+
+ <a href="code.html">
+
+
+ Working with the Code
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter active" data-level="1.4" data-path="ide.html">
+
+ <a href="ide.html">
+
+
+ IDE Integration
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.5" data-path="building.html">
+
+ <a href="building.html">
+
+
+ Building
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.6" data-path="tests.html">
+
+ <a href="tests.html">
+
+
+ Tests
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="formatting.html">
+
+ <a href="formatting.html">
+
+
+ Code Formatting
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.8" data-path="validating-releases.html">
+
+ <a href="validating-releases.html">
+
+
+ Validating releases
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.9" data-path="maintainers.html">
+
+ <a href="maintainers.html">
+
+
+ Notes for Maintainers
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.10" data-path="history.html">
+
+ <a href="history.html">
+
+
+ History
+
+ </a>
+
+
+
+ </li>
+
+
+
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ Published with GitBook
+ </a>
+ </li>
+</ul>
+
+
+ </nav>
+
+
+ </div>
+
+ <div class="book-body">
+
+ <div class="body-inner">
+
+
+
+<div class="book-header" role="navigation">
+
+
+ <!-- Title -->
+ <h1>
+ <i class="fa fa-circle-o-notch fa-spin"></i>
+ <a href="." >IDE Integration</a>
+ </h1>
+</div>
+
+
+
+
+ <div class="page-wrapper" tabindex="-1" role="main">
+ <div class="page-inner">
+
+<div id="book-search-results">
+ <div class="search-noresults">
+
+ <section class="normal markdown-section">
+
+ <h1 id="ide-integration">IDE Integration</h1>
+<p>There a few files useful for IDE integration under ./etc/ide-settings on a checked out folder. This folder is not part of the source distribution, but it can be easily obtained:</p>
+<ul>
+<li><a href="https://github.com/apache/activemq-artemis/tree/master/etc/ide-settings" target="_blank">https://github.com/apache/activemq-artemis/tree/master/etc/ide-settings</a></li>
+</ul>
+<h2 id="intellij-idea">IntelliJ IDEA</h2>
+<h3 id="importing-the-project">Importing the Project</h3>
+<p>The following steps show how to import ActiveMQ Artemis source into IntelliJ IDEA and setup the correct maven profile to allow
+running of JUnit tests from within the IDE. (Steps are based on version: 13.1.4)</p>
+<ul>
+<li>File --> Import Project --> Select the root directory of the ActiveMQ Artemis source folder. --> Click OK</li>
+</ul>
+<p>This should open the import project wizard. From here:</p>
+<ul>
+<li>Select "Import from existing model" toggle box, then select Maven from the list box below. Click Next.</li>
+<li>Leave the defaults set on this page and click next.</li>
+<li>On the "Select profiles page", select the checkbox next to "dev" and click next.</li>
+<li>From here the default settings should suffice. Continue through the wizard, clicking next until the wizard is complete.</li>
+</ul>
+<p>Once the project has been imported and IDEA has caught up importing all the relevant dependencies, you should be able to
+run JUnit tests from with the IDE. Select any test class in the tests -> integration tests folder. Right click on the
+class in the project tab and click "Run <classname>". If the "Run <classname>" option is present then you're all set to go.</classname></classname></p>
+<h3 id="note-about-ibm-jdk-on-idea">Note about IBM JDK on Idea</h3>
+<p>If you are running IBM JDK it may be a little tricky to get it working.</p>
+<p>After you add the JDK to the IDE, add also the vm.jar specific to your platform under that jdk.</p>
+<pre><code>(e.g: JAVA_HOME/jre/lib/amd64/default/jclSC180/vm.jar
+</code></pre><p>There's a <a href="http://stackoverflow.com/questions/27906481/can-intellij-14-be-used-to-work-with-ibm-jdk-1-7/32852361#32852361" target="_blank">SOF Question</a> about this that could be useful in case you are running into this issue.</p>
+<h3 id="style-templates-and-inspection-settings-for-idea">Style Templates and Inspection Settings for Idea</h3>
+<p>We have shared the style templates that are good for this project. If you want to apply them use these steps:</p>
+<ul>
+<li>File->Import Settings</li>
+<li>Select the file under ./artemis-cloned-folder/etc/ide-settings/idea/IDEA-style.jar</li>
+<li>Select both Code Style Templates and File templates (it's the default option)</li>
+<li>Select OK and restart Idea</li>
+</ul>
+<p>Alternatively you can copy artemis-codestyle.xml under your home settings at <code>IntelliJIdea15/codestyles</code>.</p>
+<h4 id="to-import-inspection-settings">To import inspection settings:</h4>
+<ul>
+<li>File->Settings->Editor->Inspections->Manage->Import</li>
+<li>Select the file ./artemis-cloned-folder/etc/ide-settings/idea/artemis-inspections.xml</li>
+<li>Select OK</li>
+</ul>
+<h3 id="issue-my-junit-tests-are-not-runnable-with-in-the-ide">Issue: My JUnit tests are not runnable with in the IDE.</h3>
+<p>If the "Run <classname>" or "Run all tests" option is not present. It is likely that the default profile has not been
+imported properly. To (re)import the "tests" Maven profile in an existing project.</classname></p>
+<ul>
+<li>Open the Maven Projects Tool Window: View -> Tool Windows -> Maven Projects</li>
+<li>Select the "profiles" drop down</li>
+<li>Unselect then reselect the checkbox next to "tests".</li>
+<li>Click on the "Reimport all maven projects" button in the top left hand corner of the window. (It looks like a circular
+blue arrow.</li>
+<li>Wait for IDEA to reload and try running a JUnit test again. The option to run should now be present.</li>
+</ul>
+<h2 id="eclipse">Eclipse</h2>
+<p>We recommend using Eclipse Kepler (4.3), due to the built-in support for Maven and Git. Note that there are still some
+Maven plugins used by sub-projects (e.g. documentation) which are not supported even in Eclipse Kepler (4.3).</p>
+<p>Eclipse <a href="http://eclipse.org/m2e/" target="_blank">m2e</a> is already included in "Eclipse IDE for Java Developers", or it can be installed
+from <a href="http://download.eclipse.org/releases/kepler" target="_blank">Eclipse Kepler release repository</a>.</p>
+<h3 id="git-setup">Git setup</h3>
+<p>It is strongly recommended to turn off the auto-updating of .gitignore files by the Git Team extension. Otherwise, it
+generates new .gitignore files in many directories that are not needed due to the top level .gitignore file. To turn
+it off, go to Preferences->Team->Git->Projects and deselect the "Automatically ignore derived resources" checkbox.</p>
+<h3 id="schema-setup">Schema setup</h3>
+<p>For proper schema validation you can add the Artemis schemas to your Eclipse XML Catalog</p>
+<ul>
+<li>Open: Window -> Preferences -> XML -> XML Catalog</li>
+<li>Select Add -> Workspace -> Navigate to artemis-server and select src/main/resources/schema/artemis-server.xsd -> click OK</li>
+<li>Repeat the above steps and add src/main/resources/schema/artemis-configuration.xsd</li>
+</ul>
+<h3 id="checkstyle-setup">Checkstyle setup</h3>
+<p>You can import the Artemis Checkstyle template into eclipse to do Checkstyle validation. As a prerequisite you need to make sure the Checkstyle plugin is installed into Eclipse which you can get form the Eclipse Marketplace. You also will need to configure Sevntu-Checkstyle. See <a href="http://sevntu-checkstyle.github.io/sevntu.checkstyle/" target="_blank">http://sevntu-checkstyle.github.io/sevntu.checkstyle/</a> for instructions. Then to configure the template:</p>
+<ul>
+<li>Open: Window -> Preferences -> Checkstyle</li>
+<li>Select New -> "Project Relative Configuration" in the "Type" dropdown</li>
+<li>Give the configuration a name and under location put "/artemis-pom/etc/checkstyle.xml" then hit ok</li>
+<li>You should now see your new configuration in the list of Checkstyle profiles. You can select the new configuration as the default if you want.</li>
+</ul>
+<h3 id="annotation-pre-processing">Annotation Pre-Processing</h3>
+<p>ActiveMQ Artemis uses <a href="https://community.jboss.org/wiki/JBossLoggingTooling" target="_blank">JBoss Logging</a> and that requires source
+code generation from Java annotations. In order for it to 'just work' in Eclipse you need to install the
+<em>Maven Integration for Eclipse JDT Annotation Processor Toolkit</em> <a href="https://github.com/jbosstools/m2e-apt" target="_blank">m2e-apt</a>. See
+this <a href="https://community.jboss.org/en/tools/blog/2012/05/20/annotation-processing-support-in-m2e-or-m2e-apt-100-is-out" target="_blank">JBoss blog post</a>
+ for details.</p>
+<h3 id="running-tests-from-eclipse">Running tests from Eclipse</h3>
+<p>Setting up annotation pre-processing in the above section is all you need to run tests in the "unit-tests" project as that will properly add the generated logger to the source. However, one more step is needed to run tests in other projects such as "performance-tests" or "integration-tests" that have a dependency on "unit-tests". Currently m2eclipse does not properly link the generated source annotations folder from "unit-tests" which causes the logger that is generated to not be available. To simplest way to fix this is to manually add a project dependency on "unit-tests" to each of the projects where you want to run a test class from:</p>
+<ul>
+<li>Right click on the test project (i.e. integration-tests): Properties -> Java Build Path -> Projects -> Add</li>
+<li>Select the "unit-tests" project and click Ok</li>
+</ul>
+<p>You should now be able to run tests assuming that the annotation pre-processing was set up properly in the previous step.</p>
+<h3 id="m2e-connector-for-javacc-maven-plugin">M2E Connector for Javacc-Maven-Plugin</h3>
+<p>Eclipse Indigo (3.7) has out-of-the-box support for it.</p>
+<p>As of this writing, Eclipse Kepler (4.3) still lacks support for Maven's javacc plugin. The available <a href="https://github.com/objectledge/maven-extensions" target="_blank">m2e connector for
+javacc-maven-plugin</a> requires a downgrade of Maven components to be
+installed. manual installation instructions (as of this writing you need to use the development update site). See
+<a href="http://dev.eclipse.org/mhonarc/lists/m2e-users/msg02725.html" target="_blank">this post</a> for how to do this with Eclipse Juno (4.2).</p>
+<p>The current recommended solution for Eclipse Kepler is to mark <code>javacc-maven-plugin</code> as ignored by Eclipse, run Maven
+from the command line and then modify the project <code>activemq-core-client</code> adding the folder
+<code>target/generated-sources/javacc</code> to its build path.</p>
+<h3 id="use-project-working-sets">Use <em>Project Working Sets</em></h3>
+<p>Importing all ActiveMQ Artemis subprojects will create <em>too many</em> projects in Eclipse, cluttering your <em>Package Explorer</em>
+and <em>Project Explorer</em> views. One way to address that is to use
+<a href="http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Fconcepts%2Fcworkset.htm" target="_blank">Eclipse's Working Sets</a>
+feature. A good introduction to it can be found at a
+<a href="http://eclipse.dzone.com/articles/categorise-projects-package" target="_blank">Dzone article on Eclipse Working Sets</a>.</p>
+
+
+ </section>
+
+ </div>
+ <div class="search-results">
+ <div class="has-results">
+
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+ <ul class="search-results-list"></ul>
+
+ </div>
+ <div class="no-results">
+
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+
+
+ <a href="code.html" class="navigation navigation-prev " aria-label="Previous page: Working with the Code">
+ <i class="fa fa-angle-left"></i>
+ </a>
+
+
+ <a href="building.html" class="navigation navigation-next " aria-label="Next page: Building">
+ <i class="fa fa-angle-right"></i>
+ </a>
+
+
+
+ </div>
+
+ <script>
+ var gitbook = gitbook || [];
+ gitbook.push(function() {
+ gitbook.page.hasChanged({"page":{"title":"IDE Integration","level":"1.4","depth":1,"next":{"title":"Building","level":"1.5","depth":1,"path":"building.md","ref":"building.md","articles":[]},"previous":{"title":"Working with the Code","level":"1.3","depth":1,"path":"code.md","ref":"code.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print
.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ Artemis Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ Artemis Hacking Guide"},"file":{"path":"ide.md","mtime":"2016-10-22T12:23:36.000Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2016-11-12T01:00:25.209Z"},"basePath":".","book":{"language":""}});
+ });
+ </script>
+</div>
+
+
+ <script src="gitbook/gitbook.js"></script>
+ <script src="gitbook/theme.js"></script>
+
+
+ <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-search/search.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
+
+
+
+ </body>
+</html>
+
Added: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/images/artemis-logo.jpg
==============================================================================
Binary file - no diff available.
Propchange: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/images/artemis-logo.jpg
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/index.html
==============================================================================
--- websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/index.html (added)
+++ websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/index.html Sun Mar 12 16:08:18 2017
@@ -0,0 +1,343 @@
+
+<!DOCTYPE HTML>
+<html lang="" >
+ <head>
+ <title>Introduction · ActiveMQ Artemis Documentation</title>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <meta name="description" content="">
+ <meta name="generator" content="GitBook 3.1.1">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/style.css">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
+ <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
+
+
+ <link rel="next" href="notice.html" />
+
+
+
+ </head>
+ <body>
+
+<div class="book">
+ <div class="book-summary">
+
+
+<div id="book-search-input" role="search">
+ <input type="text" placeholder="Type to search" />
+</div>
+
+
+ <nav role="navigation">
+
+
+
+<ul class="summary">
+
+
+
+
+
+
+
+
+
+ <li class="chapter active" data-level="1.1" data-path="./">
+
+ <a href="./">
+
+
+ Introduction
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.2" data-path="notice.html">
+
+ <a href="notice.html">
+
+
+ Legal Notice
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.3" data-path="code.html">
+
+ <a href="code.html">
+
+
+ Working with the Code
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.4" data-path="ide.html">
+
+ <a href="ide.html">
+
+
+ IDE Integration
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.5" data-path="building.html">
+
+ <a href="building.html">
+
+
+ Building
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.6" data-path="tests.html">
+
+ <a href="tests.html">
+
+
+ Tests
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="formatting.html">
+
+ <a href="formatting.html">
+
+
+ Code Formatting
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.8" data-path="validating-releases.html">
+
+ <a href="validating-releases.html">
+
+
+ Validating releases
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.9" data-path="maintainers.html">
+
+ <a href="maintainers.html">
+
+
+ Notes for Maintainers
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.10" data-path="history.html">
+
+ <a href="history.html">
+
+
+ History
+
+ </a>
+
+
+
+ </li>
+
+
+
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ Published with GitBook
+ </a>
+ </li>
+</ul>
+
+
+ </nav>
+
+
+ </div>
+
+ <div class="book-body">
+
+ <div class="body-inner">
+
+
+
+<div class="book-header" role="navigation">
+
+
+ <!-- Title -->
+ <h1>
+ <i class="fa fa-circle-o-notch fa-spin"></i>
+ <a href="." >Introduction</a>
+ </h1>
+</div>
+
+
+
+
+ <div class="page-wrapper" tabindex="-1" role="main">
+ <div class="page-inner">
+
+<div id="book-search-results">
+ <div class="search-noresults">
+
+ <section class="normal markdown-section">
+
+ <p><img src="images/artemis-logo.jpg" alt="ActiveMQ Artemis logo"></p>
+<h1 id="apache-activemq-artemis-hacking-guide">Apache ActiveMQ Artemis Hacking Guide</h1>
+<p>This hacking guide outlines how developers can get involved in contributing to the Apache ActiveMQ Artemis project.</p>
+
+
+ </section>
+
+ </div>
+ <div class="search-results">
+ <div class="has-results">
+
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+ <ul class="search-results-list"></ul>
+
+ </div>
+ <div class="no-results">
+
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+
+
+
+ <a href="notice.html" class="navigation navigation-next navigation-unique" aria-label="Next page: Legal Notice">
+ <i class="fa fa-angle-right"></i>
+ </a>
+
+
+
+ </div>
+
+ <script>
+ var gitbook = gitbook || [];
+ gitbook.push(function() {
+ gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"Legal Notice","level":"1.2","depth":1,"path":"notice.md","ref":"notice.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf
":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ Artemis Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ Artemis Hacking Guide"},"file":{"path":"README.md","mtime":"2016-10-22T12:23:36.000Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2016-11-12T01:00:25.209Z"},"basePath":".","book":{"language":""}});
+ });
+ </script>
+</div>
+
+
+ <script src="gitbook/gitbook.js"></script>
+ <script src="gitbook/theme.js"></script>
+
+
+ <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-search/search.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
+
+
+
+ </body>
+</html>
+
Added: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/maintainers.html
==============================================================================
--- websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/maintainers.html (added)
+++ websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/maintainers.html Sun Mar 12 16:08:18 2017
@@ -0,0 +1,472 @@
+
+<!DOCTYPE HTML>
+<html lang="" >
+ <head>
+ <title>Notes for Maintainers · ActiveMQ Artemis Documentation</title>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <meta name="description" content="">
+ <meta name="generator" content="GitBook 3.1.1">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/style.css">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
+ <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
+
+
+ <link rel="next" href="history.html" />
+
+
+ <link rel="prev" href="validating-releases.html" />
+
+
+ </head>
+ <body>
+
+<div class="book">
+ <div class="book-summary">
+
+
+<div id="book-search-input" role="search">
+ <input type="text" placeholder="Type to search" />
+</div>
+
+
+ <nav role="navigation">
+
+
+
+<ul class="summary">
+
+
+
+
+
+
+
+
+
+ <li class="chapter " data-level="1.1" data-path="./">
+
+ <a href="./">
+
+
+ Introduction
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.2" data-path="notice.html">
+
+ <a href="notice.html">
+
+
+ Legal Notice
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.3" data-path="code.html">
+
+ <a href="code.html">
+
+
+ Working with the Code
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.4" data-path="ide.html">
+
+ <a href="ide.html">
+
+
+ IDE Integration
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.5" data-path="building.html">
+
+ <a href="building.html">
+
+
+ Building
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.6" data-path="tests.html">
+
+ <a href="tests.html">
+
+
+ Tests
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="formatting.html">
+
+ <a href="formatting.html">
+
+
+ Code Formatting
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.8" data-path="validating-releases.html">
+
+ <a href="validating-releases.html">
+
+
+ Validating releases
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter active" data-level="1.9" data-path="maintainers.html">
+
+ <a href="maintainers.html">
+
+
+ Notes for Maintainers
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.10" data-path="history.html">
+
+ <a href="history.html">
+
+
+ History
+
+ </a>
+
+
+
+ </li>
+
+
+
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ Published with GitBook
+ </a>
+ </li>
+</ul>
+
+
+ </nav>
+
+
+ </div>
+
+ <div class="book-body">
+
+ <div class="body-inner">
+
+
+
+<div class="book-header" role="navigation">
+
+
+ <!-- Title -->
+ <h1>
+ <i class="fa fa-circle-o-notch fa-spin"></i>
+ <a href="." >Notes for Maintainers</a>
+ </h1>
+</div>
+
+
+
+
+ <div class="page-wrapper" tabindex="-1" role="main">
+ <div class="page-inner">
+
+<div id="book-search-results">
+ <div class="search-noresults">
+
+ <section class="normal markdown-section">
+
+ <h1 id="notes-for-maintainers">Notes for Maintainers</h1>
+<p>Core ActiveMQ Artemis members have write access to the Apache ActiveMQ Artemis repositories and will be responsible for
+acknowledging and pushing commits contributed via pull requests on GitHub.</p>
+<p>Core ActiveMQ Artemis members are also able to push their own commits directly to the canonical Apache repository.
+However, the expectation here is that the developer has made a good effort to test their changes and is reasonably
+confident that the changes that are being committed will not break the build.</p>
+<p>What does it mean to be reasonably confident? If the developer has run the same maven commands that the pull-request
+builds are running they can be reasonably confident. Currently the <a href="https://builds.apache.org/job/ActiveMQ-Artemis-PR-Build/" target="_blank">PR build</a>
+runs this command:</p>
+<pre><code>mvn -Pfast-tests -Pextra-tests install
+</code></pre><p>However, if the changes are significant, touches a wide area of code, or even if the developer just wants a second
+opinion they are encouraged to engage other members of the community to obtain an additional review prior to pushing.
+This can easily be done via a pull request on GitHub, a patch file attached to an email or JIRA, commit to a branch
+in the Apache git repo, etc. Having additional eyes looking at significant changes prior to committing to the main
+development branches is definitely encouraged if it helps obtain the "reasonable confidence" that the build is not
+broken and code quality has not decreased.</p>
+<p>If the build does break then developer is expected to make their best effort to get the builds fixed in a reasonable
+amount of time. If it cannot be fixed in a reasonable amount of time the commit can be reverted and re-reviewed.</p>
+<h1 id="using-the-dev-profile">Using the dev profile.</h1>
+<p>Developers are encouraged also to use the Dev profile, which will activate checkstyle during the build:</p>
+<pre><code>mvn -Pdev install
+</code></pre><h2 id="commit-messages">Commit Messages</h2>
+<p>Please ensure the commit messages follow the 50/72 format as described <a href="code.html#commitMessageDetails">here</a>.</p>
+<h2 id="configuring-git-repositories">Configuring git repositories</h2>
+<p>Aside from the traditional <code>origin</code> and <code>upstream</code> repositories committers will need an additional reference for the
+canonical Apache git repository where they will be merging and pushing pull-requests. For the purposes of this document,
+let's assume these ref/repo associations already exist as described in the <a href="code.html">Working with the Code</a> section:</p>
+<ul>
+<li><code>origin</code> : <a href="https://github.com/(your-user-name)/activemq-artemis.git" target="_blank">https://github.com/(your-user-name)/activemq-artemis.git</a></li>
+<li><p><code>upstream</code> : <a href="https://github.com/apache/activemq-artemis" target="_blank">https://github.com/apache/activemq-artemis</a></p>
+</li>
+<li><p>Add the canonical Apache repository as a remote. Here we call it <code>apache</code>.</p>
+<pre><code> $ git remote add apache https://git-wip-us.apache.org/repos/asf/activemq-artemis.git
+</code></pre></li>
+<li><p>Add the following section to your <artemis-repo>/.git/config statement to fetch all pull requests sent to the GitHub
+mirror. We are using <code>upstream</code> as the remote repo name (as noted above), but the remote repo name may be different
+if you choose. Just be sure to edit all references to the remote repo name so it's consistent.</artemis-repo></p>
+<pre><code> [remote "upstream"]
+ url = git@github.com:apache/activemq-artemis.git
+ fetch = +refs/heads/*:refs/remotes/upstream/*
+ fetch = +refs/pull/*/head:refs/remotes/upstream/pr/*
+</code></pre></li>
+</ul>
+<h2 id="merging-and-pushing-pull-requests">Merging and pushing pull requests</h2>
+<p>Here are the basic commands to retrieve pull requests, merge, and push them to the canonical Apache repository:</p>
+<ol>
+<li><p>Download all the remote branches etc... including all the pull requests.</p>
+<pre><code> $ git fetch --all
+ Fetching origin
+ Fetching upstream
+ remote: Counting objects: 566, done.
+ remote: Compressing objects: 100% (188/188), done.
+ remote: Total 566 (delta 64), reused 17 (delta 17), pack-reused 351
+ Receiving objects: 100% (566/566), 300.67 KiB | 0 bytes/s, done.
+ Resolving deltas: 100% (78/78), done.
+ From github.com:apache/activemq-artemis
+ * [new ref] refs/pull/105/head -> upstream/pr/105
+</code></pre></li>
+<li><p>Checkout the pull request you wish to review</p>
+<pre><code> $ git checkout pr/105 -B 105
+</code></pre></li>
+<li><p>Rebase the branch against master, so the merge would happen at the top of the current master</p>
+<pre><code> $ git pull --rebase apache master
+</code></pre></li>
+<li><p>Once you've reviewed the change and are ready to merge checkout <code>master</code>.</p>
+<pre><code> $ git checkout master
+</code></pre></li>
+<li><p>Ensure you are up to date on your master also.</p>
+<pre><code> $ git pull --rebase apache master
+</code></pre></li>
+<li><p>We actually recommend checking out master again, to make sure you wouldn't add any extra commits by accident:</p>
+<pre><code> $ git fetch apache
+ $ git checkout apache/master -B master
+</code></pre></li>
+<li><p>Create a new merge commit from the pull-request. IMPORTANT: The commit message here should be something like: "This
+closes #105" where "105" is the pull request ID. The "#105" shows up as a link in the GitHub UI for navigating to
+the PR from the commit message. This will ensure the github pull request is closed even if the commit ID changed due
+to eventual rebases.</p>
+<pre><code> $ git merge --no-ff 105 -m "This closes #105"
+</code></pre></li>
+<li><p>Push to the canonical Apache repo.</p>
+<pre><code> $ git push apache master
+</code></pre></li>
+</ol>
+<h2 id="using-the-automated-script">Using the automated script</h2>
+<p>If you followed the naming conventions described here you can use the <code>scripts/rebase-PR.sh</code> script to automate
+the merging process. This will execute the exact steps described on this previous section.</p>
+<ul>
+<li>Simply use:</li>
+</ul>
+<pre><code>$ <checkout-directory>/scripts/merge-pr.sh <PR number> Message on the PR
+</code></pre><p>Example:</p>
+<pre><code>$ pwd
+/checkouts/apache-activemq-artemis
+
+$ ./scripts/merge-PR.sh 175 ARTEMIS-229 address on Security Interface
+</code></pre><p>The previous example was taken from a real case that generated this <a href="https://github.com/apache/activemq-artemis/commit/e85bb3ca4a75b0f1dfbe717ff90b34309e2de794" target="_blank">merge commit on #175</a>.</p>
+<ul>
+<li>After this you can push to the canonical Apache repo.<pre><code>$ git push apache master
+</code></pre></li>
+</ul>
+<h2 id="use-a-separate-branch-for-your-changes">Use a separate branch for your changes</h2>
+<p>It is recommended that you work away from master for two reasons:</p>
+<ol>
+<li><p>When you send a PR, your PR branch could be rebased during the process and your commit ID changed. You might
+get unexpected conflicts while rebasing your old branch.</p>
+</li>
+<li><p>You could end up pushing things upstream that you didn't intend to. Minimize your risks by working on a branch
+away from master.</p>
+</li>
+</ol>
+<h2 id="notes">Notes:</h2>
+<p>The GitHub mirror repository (i.e. <code>upstream</code>) is cloning the canonical Apache repository. Because of this there may be
+a slight delay between when a commit is pushed to the Apache repo and when that commit is reflected in the GitHub mirror.
+This may cause some difficulty when trying to push a PR to <code>apache</code> that has been merged on the out-of-date GitHub mirror.
+You can wait for the mirror to update before performing the steps above or you can change your local master branch to
+track the master branch on the canonical Apache repository rather than the master branch on the GitHub mirror:</p>
+<pre><code>$ git branch master -u apache/master
+</code></pre><p>Where <code>apache</code> points to the canonical Apache repository.</p>
+<p>If you'd like your local master branch to always track <code>upstream/master</code> (i.e. the GitHub mirror) then another way to
+achieve this is to add another branch that tracks <code>apache/master</code> and push from that branch e.g.</p>
+<pre><code>$ git checkout master
+$ git branch apache_master --track apache/master
+$ git pull
+$ git merge --no-ff pr/105
+$ git push
+</code></pre>
+
+ </section>
+
+ </div>
+ <div class="search-results">
+ <div class="has-results">
+
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+ <ul class="search-results-list"></ul>
+
+ </div>
+ <div class="no-results">
+
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+
+
+ <a href="validating-releases.html" class="navigation navigation-prev " aria-label="Previous page: Validating releases">
+ <i class="fa fa-angle-left"></i>
+ </a>
+
+
+ <a href="history.html" class="navigation navigation-next " aria-label="Next page: History">
+ <i class="fa fa-angle-right"></i>
+ </a>
+
+
+
+ </div>
+
+ <script>
+ var gitbook = gitbook || [];
+ gitbook.push(function() {
+ gitbook.page.hasChanged({"page":{"title":"Notes for Maintainers","level":"1.9","depth":1,"next":{"title":"History","level":"1.10","depth":1,"path":"history.md","ref":"history.md","articles":[]},"previous":{"title":"Validating releases","level":"1.8","depth":1,"path":"validating-releases.md","ref":"validating-releases.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/
ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ Artemis Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ Artemis Hacking Guide"},"file":{"path":"maintainers.md","mtime":"2016-10-22T12:23:36.000Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2016-11-12T01:00:25.209Z"},"basePath":".","book":{"language":""}});
+ });
+ </script>
+</div>
+
+
+ <script src="gitbook/gitbook.js"></script>
+ <script src="gitbook/theme.js"></script>
+
+
+ <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-search/search.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
+
+
+
+ </body>
+</html>
+
Added: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/notice.html
==============================================================================
--- websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/notice.html (added)
+++ websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/notice.html Sun Mar 12 16:08:18 2017
@@ -0,0 +1,359 @@
+
+<!DOCTYPE HTML>
+<html lang="" >
+ <head>
+ <title>Legal Notice · ActiveMQ Artemis Documentation</title>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <meta name="description" content="">
+ <meta name="generator" content="GitBook 3.1.1">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/style.css">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
+ <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
+
+
+ <link rel="next" href="code.html" />
+
+
+ <link rel="prev" href="./" />
+
+
+ </head>
+ <body>
+
+<div class="book">
+ <div class="book-summary">
+
+
+<div id="book-search-input" role="search">
+ <input type="text" placeholder="Type to search" />
+</div>
+
+
+ <nav role="navigation">
+
+
+
+<ul class="summary">
+
+
+
+
+
+
+
+
+
+ <li class="chapter " data-level="1.1" data-path="./">
+
+ <a href="./">
+
+
+ Introduction
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter active" data-level="1.2" data-path="notice.html">
+
+ <a href="notice.html">
+
+
+ Legal Notice
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.3" data-path="code.html">
+
+ <a href="code.html">
+
+
+ Working with the Code
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.4" data-path="ide.html">
+
+ <a href="ide.html">
+
+
+ IDE Integration
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.5" data-path="building.html">
+
+ <a href="building.html">
+
+
+ Building
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.6" data-path="tests.html">
+
+ <a href="tests.html">
+
+
+ Tests
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="formatting.html">
+
+ <a href="formatting.html">
+
+
+ Code Formatting
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.8" data-path="validating-releases.html">
+
+ <a href="validating-releases.html">
+
+
+ Validating releases
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.9" data-path="maintainers.html">
+
+ <a href="maintainers.html">
+
+
+ Notes for Maintainers
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.10" data-path="history.html">
+
+ <a href="history.html">
+
+
+ History
+
+ </a>
+
+
+
+ </li>
+
+
+
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ Published with GitBook
+ </a>
+ </li>
+</ul>
+
+
+ </nav>
+
+
+ </div>
+
+ <div class="book-body">
+
+ <div class="body-inner">
+
+
+
+<div class="book-header" role="navigation">
+
+
+ <!-- Title -->
+ <h1>
+ <i class="fa fa-circle-o-notch fa-spin"></i>
+ <a href="." >Legal Notice</a>
+ </h1>
+</div>
+
+
+
+
+ <div class="page-wrapper" tabindex="-1" role="main">
+ <div class="page-inner">
+
+<div id="book-search-results">
+ <div class="search-noresults">
+
+ <section class="normal markdown-section">
+
+ <h1 id="legal-notice">Legal Notice</h1>
+<p>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</p>
+<p><a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">http://www.apache.org/licenses/LICENSE-2.0</a></p>
+<p>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.</p>
+
+
+ </section>
+
+ </div>
+ <div class="search-results">
+ <div class="has-results">
+
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+ <ul class="search-results-list"></ul>
+
+ </div>
+ <div class="no-results">
+
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+
+
+ <a href="./" class="navigation navigation-prev " aria-label="Previous page: Introduction">
+ <i class="fa fa-angle-left"></i>
+ </a>
+
+
+ <a href="code.html" class="navigation navigation-next " aria-label="Next page: Working with the Code">
+ <i class="fa fa-angle-right"></i>
+ </a>
+
+
+
+ </div>
+
+ <script>
+ var gitbook = gitbook || [];
+ gitbook.push(function() {
+ gitbook.page.hasChanged({"page":{"title":"Legal Notice","level":"1.2","depth":1,"next":{"title":"Working with the Code","level":"1.3","depth":1,"path":"code.md","ref":"code.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.cs
s"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ Artemis Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ Artemis Hacking Guide"},"file":{"path":"notice.md","mtime":"2016-10-22T12:23:36.000Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2016-11-12T01:00:25.209Z"},"basePath":".","book":{"language":""}});
+ });
+ </script>
+</div>
+
+
+ <script src="gitbook/gitbook.js"></script>
+ <script src="gitbook/theme.js"></script>
+
+
+ <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-search/search.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
+
+
+
+ </body>
+</html>
+
Added: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/search_index.json
==============================================================================
--- websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/search_index.json (added)
+++ websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/search_index.json Sun Mar 12 16:08:18 2017
@@ -0,0 +1 @@
[... 3 lines stripped ...]
Added: websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/tests.html
==============================================================================
--- websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/tests.html (added)
+++ websites/production/activemq/content/artemis/docs/1.5.4/hacking-guide/tests.html Sun Mar 12 16:08:18 2017
@@ -0,0 +1,402 @@
+
+<!DOCTYPE HTML>
+<html lang="" >
+ <head>
+ <title>Tests · ActiveMQ Artemis Documentation</title>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
+ <meta name="description" content="">
+ <meta name="generator" content="GitBook 3.1.1">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/style.css">
+
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
+
+
+
+ <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <meta name="HandheldFriendly" content="true"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
+ <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
+
+
+ <link rel="next" href="formatting.html" />
+
+
+ <link rel="prev" href="building.html" />
+
+
+ </head>
+ <body>
+
+<div class="book">
+ <div class="book-summary">
+
+
+<div id="book-search-input" role="search">
+ <input type="text" placeholder="Type to search" />
+</div>
+
+
+ <nav role="navigation">
+
+
+
+<ul class="summary">
+
+
+
+
+
+
+
+
+
+ <li class="chapter " data-level="1.1" data-path="./">
+
+ <a href="./">
+
+
+ Introduction
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.2" data-path="notice.html">
+
+ <a href="notice.html">
+
+
+ Legal Notice
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.3" data-path="code.html">
+
+ <a href="code.html">
+
+
+ Working with the Code
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.4" data-path="ide.html">
+
+ <a href="ide.html">
+
+
+ IDE Integration
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.5" data-path="building.html">
+
+ <a href="building.html">
+
+
+ Building
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter active" data-level="1.6" data-path="tests.html">
+
+ <a href="tests.html">
+
+
+ Tests
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.7" data-path="formatting.html">
+
+ <a href="formatting.html">
+
+
+ Code Formatting
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.8" data-path="validating-releases.html">
+
+ <a href="validating-releases.html">
+
+
+ Validating releases
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.9" data-path="maintainers.html">
+
+ <a href="maintainers.html">
+
+
+ Notes for Maintainers
+
+ </a>
+
+
+
+ </li>
+
+ <li class="chapter " data-level="1.10" data-path="history.html">
+
+ <a href="history.html">
+
+
+ History
+
+ </a>
+
+
+
+ </li>
+
+
+
+
+ <li class="divider"></li>
+
+ <li>
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
+ Published with GitBook
+ </a>
+ </li>
+</ul>
+
+
+ </nav>
+
+
+ </div>
+
+ <div class="book-body">
+
+ <div class="body-inner">
+
+
+
+<div class="book-header" role="navigation">
+
+
+ <!-- Title -->
+ <h1>
+ <i class="fa fa-circle-o-notch fa-spin"></i>
+ <a href="." >Tests</a>
+ </h1>
+</div>
+
+
+
+
+ <div class="page-wrapper" tabindex="-1" role="main">
+ <div class="page-inner">
+
+<div id="book-search-results">
+ <div class="search-noresults">
+
+ <section class="normal markdown-section">
+
+ <h1 id="tests">Tests</h1>
+<h2 id="running-tests">Running Tests</h2>
+<p>To run the unit tests:</p>
+<pre><code>$ mvn -Ptests test
+</code></pre><p>Generating reports from unit tests:</p>
+<pre><code>$ mvn install site
+</code></pre><p>Running tests individually</p>
+<pre><code>$ mvn -Ptests -DfailIfNoTests=false -Dtest=<test-name> test
+</code></pre><p>where <test-name> is the name of the Test class without its package name</p>
+<h2 id="writing-tests">Writing Tests</h2>
+<p>The broker is comprised of POJOs so it's simple to configure and run a broker instance and test particular functionality.
+Even complex test-cases involving multiple clustered brokers are relatively easy to write. Almost every test in the
+test-suite follows this pattern - configure broker, start broker, test functionality, stop broker.</p>
+<p>The test-suite uses JUnit to manage test execution and life-cycle. Most tests extend <a href="../../../artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/ActiveMQTestBase.java"><code>org.apache.activemq.artemis.tests.util.ActiveMQTestBase</code></a>
+which contains JUnit setup and tear-down methods as well as a wealth of utility functions to configure, start, manage,
+and stop brokers as well as perform other common tasks.</p>
+<p>Check out <a href="../../../tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SimpleTest.java"><code>org.apache.activemq.artemis.tests.integration.SimpleTest</code></a>.
+It's a very simple test-case that extends <code>org.apache.activemq.artemis.tests.util.ActiveMQTestBase</code> and uses its methods
+to configure a server, run a test, and then <code>super.tearDown()</code> cleans it up once the test completes. The test-case
+includes comments to explain everything. As the name implies, this is a simple test-case that demonstrates the most basic
+functionality of the test-suite. A simple test like this takes less than a second to run on modern hardware.</p>
+<p>Although <code>org.apache.activemq.artemis.tests.integration.SimpleTest</code> is simple it could be simpler still by extending
+<a href="../../../artemis-server/src/test/java/org/apache/activemq/artemis/tests/util/SingleServerTestBase.java"><code>org.apache.activemq.artemis.tests.util.SingleServerTestBase</code></a>.
+This class does all the setup of a simple server automatically and provides the test-case with a <code>ServerLocator</code>,
+<code>ClientSessionFactory</code>, and <code>ClientSession</code> instance. <a href="../../../tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SingleServerSimpleTest.java"><code>org.apache.activemq.artemis.tests.integration.SingleServerSimpleTest</code></a>
+is an example based on <code>org.apache.activemq.artemis.tests.integration.SimpleTest</code> but extends <code>org.apache.activemq.artemis.tests.util.SingleServerTestBase</code>
+which eliminates all the setup and class variables which are provided by <code>SingleServerTestBase</code> itself.</p>
+<h2 id="keys-for-writing-good-tests">Keys for writing good tests</h2>
+<h3 id="avoid-leaks">Avoid leaks</h3>
+<p>An important task for any test-case is to clean up all the resources it creates when it runs. This includes the server
+instance itself and any resources created to connect to it (e.g. instances of <code>ServerLocator</code>, <code>ClientSessionFactory</code>,
+<code>ClientSession</code>, etc.). This task is typically completed in the test's <code>tearDown()</code> method. However, <code>ActiveMQTestBase</code>
+(and other classes which extend it) simplifies this process. As <a href="../../../tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/SimpleTest.java"><code>org.apache.activemq.artemis.tests.integration.SimpleTest</code></a>
+demonstrates, there are several methods you can use when creating your test which will ensure proper clean up <em>automatically</em>
+when the test is torn down. These include:</p>
+<ul>
+<li>All the overloaded <code>org.apache.activemq.artemis.tests.util.ActiveMQTestBase.createServer(..)</code> methods. If you choose
+<em>not</em> to use one of these methods to create your <code>ActiveMQServer</code> instance then use the <code>addServer(ActiveMQServer)</code>
+method to add the instance to the test-suite's internal resource ledger.</li>
+<li>Methods from <code>org.apache.activemq.artemis.tests.util.ActiveMQTestBase</code> to create a <code>ServerLocator</code> like
+<code>createInVMNonHALocator</code> and <code>createNettyNonHALocator</code>. If you choose <em>not</em> to use one of these methods then use
+<code>addServerLocator(ServerLocator)</code> to add the locator to the test-suite's internal resource ledger.</li>
+<li><code>org.apache.activemq.artemis.tests.util.ActiveMQTestBase.createSessionFactory(ServerLocator)</code> for creating your session
+factory. If you choose <em>not</em> to use this method then use <code>org.apache.activemq.artemis.tests.util.ActiveMQTestBase.addSessionFactory</code>
+to add the factory to the test-suite's internal resource ledger.</li>
+</ul>
+<h3 id="create-configurations">Create configurations</h3>
+<p>There are numerous methods in <code>org.apache.activemq.artemis.tests.util.ActiveMQTestBase</code> to create a configuration. These
+methods are named like create*Config(..). Each one creates a slightly different configuration but there is a lot of
+overlap between them.</p>
+<p>In any case, <code>org.apache.activemq.artemis.core.config.Configuration</code> is a <a href="http://en.wikipedia.org/wiki/Fluent_interface" target="_blank"><em>fluent</em></a>
+interface so it's easy to customize however you need.</p>
+<h3 id="look-at-other-test-cases">Look at other test-cases</h3>
+<p>If you need ideas on how to configure something or test something try looking through the test-suite at other test-cases
+which may be similar. This is one of the best ways to learn how the test-suite works and how you can leverage the
+testing infrastructure to test your particular case.</p>
+
+
+ </section>
+
+ </div>
+ <div class="search-results">
+ <div class="has-results">
+
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
+ <ul class="search-results-list"></ul>
+
+ </div>
+ <div class="no-results">
+
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+ </div>
+
+
+
+ <a href="building.html" class="navigation navigation-prev " aria-label="Previous page: Building">
+ <i class="fa fa-angle-left"></i>
+ </a>
+
+
+ <a href="formatting.html" class="navigation navigation-next " aria-label="Next page: Code Formatting">
+ <i class="fa fa-angle-right"></i>
+ </a>
+
+
+
+ </div>
+
+ <script>
+ var gitbook = gitbook || [];
+ gitbook.push(function() {
+ gitbook.page.hasChanged({"page":{"title":"Tests","level":"1.6","depth":1,"next":{"title":"Code Formatting","level":"1.7","depth":1,"path":"formatting.md","ref":"formatting.md","articles":[]},"previous":{"title":"Building","level":"1.5","depth":1,"path":"building.md","ref":"building.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css
"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"ActiveMQ Artemis Documentation","links":{"home":"http://activemq.apache.org/","issues":"http://activemq.apache.org/","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ Artemis Hacking Guide"},"file":{"path":"tests.md","mtime":"2016-10-22T12:23:36.000Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2016-11-12T01:00:25.209Z"},"basePath":".","book":{"language":""}});
+ });
+ </script>
+</div>
+
+
+ <script src="gitbook/gitbook.js"></script>
+ <script src="gitbook/theme.js"></script>
+
+
+ <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-search/search.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
+
+
+
+ <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
+
+
+
+ </body>
+</html>
+