diff options
Diffstat (limited to 'content/xdocs/SourceHandling.xml')
| -rwxr-xr-x | content/xdocs/SourceHandling.xml | 852 |
1 files changed, 852 insertions, 0 deletions
diff --git a/content/xdocs/SourceHandling.xml b/content/xdocs/SourceHandling.xml new file mode 100755 index 0000000000..75a445bd1a --- /dev/null +++ b/content/xdocs/SourceHandling.xml @@ -0,0 +1,852 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE article PUBLIC "-//OASIS//DTD Simplified DocBook XML V1.0//EN" + "http://www.oasis-open.org/docbook/xml/simple/1.0/sdocbook.dtd"> +<article> + <title>Source Handling Process</title> + <section> + <title>Source handling</title> + <para> + The JPMC Qpid project involves a lot of code spread across a number of repositories. To safely manage the + code that we build internally we must take several steps to guarrantee its quality. This document details + the processes and procedures we have put in place to guarrantee the code is accurately stored and the binary + builds are repeatable. + </para> + + <para>Currently our source tree is built using three source repositories:</para> + <itemizedlist> + <listitem>JPMC : http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/</listitem> + <listitem>Apache : https://svn.apache.org/repos/asf/incubator/qpid/</listitem> + <listitem>JBoss : https://svn.jboss.org/repos/rhmessaging/store/</listitem> + </itemizedlist> + <para> + To alleviate the headache of checking out the source from the correct branch of each repository we have + created a number of svn-external structures on the JPMC reposititory that pull together all the code in a + single svn checkout command. This simplicity doesn't come without pit falls. It is important to remember + that the code is still from each of the individual repositories and that svn commands will only affect the + repository of the current directory. For example if you are in the bdbstore directory an _svn commit_ will + only commit the bdbdstore code. This is what you would expect as _svn commit_ does not progress up the + directory tree. However, if you are qpid root and perform any svn command the bdbdstore and the + JPMC-distribution directories will not be included as they are not part of the Apache repository. The only + command that will affect all code is performing an _update_ in the top directory as checked out from the + svn-external location. It would update all three repositories. + </para> + + <para> + What now follows is a number of sections that cover source control process through the various development + phases. This docuement assumes that you are familar and have installed both a subversion client and maven. + Further details for these products can be found here: + Cygwin(LINK), Subversion(LINK), TortoiseSVN(LINK) and Maven(LINK) + </para> + + <para> + All Developers should have a local copy of all release performed by the team for support duties. This copy + should be located on the root of your windows machine due to the extremely long path values that will cause + svn to fail on a windows file system. + </para> + + <note> + <title>Checkout the release sources</title> + <programlisting> + <![CDATA[ +$cd /cygdrive/c/ +$svn co http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/src +]]> + </programlisting> + This will pull down the sources for all the releases we have performed. (Since 2.1.0.4) Prior to this point + we + did not store the full source code internaly. + </note> + + </section> + + <section> + <title>Getting the initial source checkout.</title> + + <para> + The svn-external directories located in the JPMC NY subversion repsoitory: + <emphasis>http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/svn-external/</emphasis> + </para> + <note> + <title>Available svn-external checkouts</title> + <itemizedlist> + <listitem>v2.1.x - Corresponds to the Apache M2 branch</listitem> + <listitem>v2.2.x - Corresponds to the Apache M2.1 branch</listitem> + <listitem>v3.x - Corresponds to the Apache trunk</listitem> + </itemizedlist> + </note> + + <note> + <title>Perform the checkout</title> + <programlisting> + <![CDATA[ +$cd <your chosen development area> +$svn co http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/svn-external/v2.2.x +]]> + </programlisting> + This will checkout the code from all three repositories with the cavet that you must login for the JBoss + repository + to get the BDBStore module. + <emphasis>You will need to have a JBoss account that has the correct permissions for the bdbstore component. + The rest of the code will still succeed if you don't. + </emphasis> + </note> + </section> + + <section> + <title>Building and developing the product.</title> + + <note> + Further details on developing and build process can be found here (LINK). But to validate your checkout you + should + can follow these steps: + <programlisting> + <![CDATA[ +$cd <your chosen development area> +$cd v2.2.x +$cd qpid/java +$mvn +]]> + </programlisting> + This will build the Apache java code base. When complete a final mvn will build the bdbstore: + <programlisting> + <![CDATA[ +$cd bdbstore +$mvn +]]> + </programlisting> + </note> + </section> + + + <section> + <title>Create UAT/Release repository</title> + + <para> + The code + <emphasis>must</emphasis> + come from a clean source so the previous step for getting the source must be + carried out as a pre-requisite to this step. + </para> + + <para> + This section explains the steps to bring the new release code into JPMC for UAT before release. If you are + peforming + a patch or additions to a previously released release then skip to the next section. + </para> + + <para> + AS: We shouldn't use tortoise for any of this, needs to be followable on Linux. + + I did: + <programlisting> + svn co http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/svn-external/v2.2.x + rm -rf `find -name .svn -type d` + cd v2.2.x + svn co -N http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/src + mv ApacheM2.1 src/2.2.1.0-rc1 + cd src + svn add 2.2.1.0-rc1 + svn commit -m 'Import 2.2.1.0-rc1 Source' + cd 2.2.1.0-rc1 + svn copy http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/src/2.1.0.7/java/JPMC-distribution/repos/2.1.0.7/ http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/src/2.2.1.0-rc1/qpid/java/JPMC-distribution/repos/2.2.1.0-rc1 + svn up + cd qpid/java/JPMC-distribution/DAM + ./build.sh 2.2.1.0-rc1 + cd ../DAM-client-slf4j/ + ./build.sh 2.2.1.0-rc1 + cd ../../../../ + svn commit -m # the POMS + cd qpid/java/JPMC-distribution/DAM + ./build.sh 2.2.1.0-rc1 + cd ../DAM-client-slf4j/ + ./build.sh 2.2.1.0-rc1 + </programlisting> + + </para> + + + <orderedlist> + <listitem> + Check out current dev tree svn-external. : + $svn co http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/svn-external/v2.2.x + </listitem> + <listitem>Locate newly created checkout : $cd v2.2.x then $explorer .</listitem> + <listitem> + TortoiseSVN allows you to export this new repository so it can be added as a new source tree. + </listitem> + <listitem> + Right click and drag folder (ApacheM2.1) to your release src checkout the folder choosing 'SVN Export + All to + here' + This removes all .svn folders so it can be re-added to the NY SVN repository. + </listitem> + <listitem>Rename ApacheM2.1 to the next release number (2.2.1.0)</listitem> + <listitem>Right click on the new 2.2.1.0 source tree and select TortoiseSVN -> Add. This will add all the + new + files to svn. + </listitem> + <listitem> + Right click on the new 2.2.1.0 source tree and select Commit. Complete the commit log with the required + JIRA + ID. + This will commit the new files to the repository. + </listitem> + <listitem> + Open the repo directory src/2.2.1.0/qpid/java/JPMC-distribution/repos and the previous release + repo directory src/2.1.0.7/qpid/java/JPMC-distribution/repos. + </listitem> + <listitem> + Right click and drag the previous svn repository to the new release tree. + Select 'SVN Copy and rename versioned file here'. Enter the new release name '2.2.1.0' + </listitem> + <listitem> + Right click on the new 2.2.1.0 repo and select Commit. Complete the commit log with the required JIRA + ID. + This will commit the previous libraries to the repository. This ensures we can detect + <empahsis>ANY</empahsis> + library change between releases + </listitem> + <listitem> + The final step is to record the revision number of both the Apache and JBoss repositories. + </listitem> + </orderedlist> + + <para> + These steps ensure that we have an accurate snapshot of the external code base. Incuding monitoring to + ensure + our + libraries have not changed. If you intend to create a build for testing you may skip the next section. + </para> + </section> + + <section> + <title>Extending a release into a DEV stage.</title> + <para> + This section explains how to setup the source to perform a patch or addition on a previously released + release. + If you need to bring new code into JPMC for UAT before release then skip to the previous section. + </para> + + <para> + When performing this you must ensure that you have a clean local copy the simplist way to do this is to + ensure the + output from a status is clean:$svn status + </para> + + <orderedlist> + <listitem> + Using the TortoiseSVN repo-browser navigate to: + http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/src + </listitem> + <listitem>Locate the source tree that will be used as the basis for this new release (2.1.0.7)</listitem> + <listitem>Right click on the source that forms the basis and select 'Copy to...'.</listitem> + <listitem>Enter the new revision number (2.1.0.8)</listitem> + <listitem>Provide the correctly formatted commit log including JIRA ID.</listitem> + <listitem> + Using the repo-browser again navigate to the repo directory + src/2.1.0.8/qpid/java/JPMC-distribution/repos + </listitem> + <listitem> + Right click on the old repo 2.1.0.7 and select Rename. Enter the new release name '2.1.0.8' + </listitem> + <listitem>Provide the correctly formatted commit log including JIRA ID.</listitem> + <listitem> + You can now check out this dev tree using : + $svn co http://subversion.ny.jpmorgan.com/svn/repos/IBTAMQ/trunk/src/2.1.0.8 + </listitem> + </orderedlist> + + <para> + These steps ensure that we have an accurate copy of a previously released code base. Incuding monitoring to + ensure + our + libraries have not changed. This DEV stage code solely located on the internal repository so there are no + concerns + about external code reviews or commiting code to a variety of repositories. + </para> + </section> + + <section> + <title>Create a build candidate</title> + <para> + <emphasis>Requires tidying up based on discussion with Chris Hardy from DEI.</emphasis> + </para> + <para>Each 'code line' contains the 'JPMC Distribution' which we use to create the required targets. As maven is + used to perform these builds we must store all the jars that it uses to perform the build. This will ensure + that we can accurately repeat the build process. + </para> + + <orderedlist> + <listitem>Use svn copy to copy take a copy of the previous svn-repository, ensure that the copy is has the + correct name<emphasis><version>-RC<number></emphasis>, if this is a new RC simply rename the + previous RC. + </listitem> + <listitem>Update the file + <emphasis>VERSION</emphasis> + in the 'JPMC Distribution' directory + </listitem> + <listitem>Run the build script ('build.sh') located in the required package.</listitem> + <listitem>When the build successfuly completes check in the new RC build repository to ensure it can be + recreated. + </listitem> + <listitem>Ensure your repository is up to date.</listitem> + <listitem>Run the rebuild script ('rebuild.sh') to generate the final release artifacts.</listitem> + </orderedlist> + + <para>Build outputs for use in JPMC</para> + <variablelist> + <varlistentry> + <term>qpid-<version>.tgz</term> + <listitem>Server DAM package</listitem> + </varlistentry> + <varlistentry> + <term>qpid-<version>-client-slf4j.tgz</term> + <listitem>Client DAM package</listitem> + </varlistentry> + </variablelist> + </section> + + + <section> + <title>Validate the build candidate</title> + <para>This is a vital step to ensure that valuable testing time is not lost. The newly built candiate should + have the following tests performed to validate the artifact created by the build process. The validate steps + vary depending on the artifact created. + </para> + + <section> + <title>Validating a Server DAM Artifact</title> + <note> + <title>Copy package to unix server</title> + <programlisting> + <![CDATA[ +$scp qpid-<version>.tgz <username>@noc-qpiddev01.jpmorganchase.com:. +]]> + </programlisting> + </note> + <note> + <title>Move to unix server</title> + <programlisting> + <![CDATA[ +$ssh -l username noc-qpiddev01.jpmorganchase.com +]]> + </programlisting> + </note> + <note> + <title>Unpack artifact</title> + <programlisting> + <![CDATA[ +$ tar xzf qpid-<version>.tgz +]]> + </programlisting> + </note> + <note> + <title>Validate contents of bin directory</title> + + <para> + <emphasis>Validate all files bin files in bin directory are executable.</emphasis> + </para> + + <para>Ensure bin directory contains qpid_env.sh and qpid_env.csh</para> + <programlisting> + <![CDATA[ +$ ls qpid-<version>/bin +msTool.sh qpid_env.sh qpid-run qpid-server.bat qpid.start qpid.stopall run.bat +qpid_env.csh qpid-passwd qpid-server qpid-server-bdb.bat qpid.stop runAll run.sh +]]> + </programlisting> + + <para> + <emphasis>Validate all files bin directory have unix line endings.</emphasis> + </para> + + <para>A suitable grep will do the trick. Only .bat files should be listed. + </para> + + <programlisting> + <![CDATA[ +$ grep -Pl '\r\n' bin/* +]]> + </programlisting> + + </note> + + <note> + <title>Validate the build location was clean.</title> + <example> + <title>Check contents of SVNREV.txt</title> + <programlisting> + <![CDATA[ +$ cat SVNREV.txt +#Fri Nov 16 14:56:15 GMT 2007 +qpid.version=qpid-2.1.0.4 +qpid.svnversion=717 +qpid.builtby=E151839 +qpid.name=Qpid DAM +]]> + </programlisting> + <para>Note that the svnversion number is a single number.</para> + </example> + <example> + <title>Check contents of Qpid jars</title> + <programlisting> + <![CDATA[ +$ cd lib +$ jar xf qpid-common-2.1.0.4.jar qpidversion.properties +$ cat qpidversion.properties +#Fri Nov 16 14:54:38 GMT 2007 +qpid.version=2.1.0.4 +qpid.svnversion=717 +qpid.name=Qpid Common Utilities +]]> + </programlisting> + <para>Note again that the svnversion number is a single number. This should be repeated for all qpid + jars. + </para> + </example> + </note> + <note> + <title>Ensure the number of libs has not increased due to a dependency change.</title> + <programlisting> + <![CDATA[ +$ ls qpid-2.1.0.4/libs +backport-util-concurrent-2.2.jar commons-logging-api-1.0.4.jar qpid-broker-2.1.0.4.jar +berkeleydb-je-3.2.42.jar dom4j-1.4.jar qpid-common-2.1.0.4.jar +commons-beanutils-1.6.jar isorelax-20020414.jar qpid-incubating.jar +commons-beanutils-core-1.7.0.jar jaxen-1.0-FCS.jar relaxngDatatype-20020414.jar +commons-cli-1.0.jar jmxremote_optional-1.0.1_04.jar saxpath-1.0-FCS.jar +commons-codec-1.3.jar log4j-1.2.12.jar servlet-api-2.3.jar +commons-collections-3.1.jar mina-core-1.0.0.jar slf4j-api-1.4.0.jar +commons-configuration-1.2.jar mina-filter-ssl-1.0.0.jar slf4j-log4j12-1.4.0.jar +commons-digester-1.6.jar mina-java5-1.0.0.jar xalan-2.7.0.jar +commons-lang-2.1.jar msv-20020414.jar xercesImpl-2.2.1.jar +commons-logging-1.0.jar qpid-bdbstore-2.1.0.4.jar xml-apis-1.0.b2.jar + +$ ls qpid-2.1.0.7/lib/ +backport-util-concurrent-2.2.jar commons-logging-api-1.0.4.jar qpid-mina-core-2.1.0.7.jar +berkeleydb-je-3.2.42.jar jmxremote_optional-1.0.1_04.jar qpid-mina-filter-ssl-2.1.0.7.jar +commons-cli-1.0.jar log4j-1.2.12.jar qpid-mina-java5-2.1.0.7.jar +commons-codec-1.3.jar qpid-bdbstore-2.1.0.7.jar slf4j-api-1.4.0.jar +commons-collections-3.1.jar qpid-broker-2.1.0.7.jar slf4j-log4j12-1.4.0.jar +commons-configuration-1.2.jar qpid-common-2.1.0.7.jar xalan-2.7.0.jar +commons-lang-2.1.jar qpid-incubating.jar +]]> + </programlisting> + <para>If the number has changed then explain the change and update this document.</para> + <para>Count 33. (Version:2.1.0.4).</para> + <para>Count 20. (Version:2.1.0.7). Removed un-used transitive dependancies pulled in via maven.</para> + </note> + + <note> + <title>Add new artifact location to softdefs</title> + <programlisting> + <![CDATA[ +$ cat >> .softdefs +qpid:~:qpid-<version> +<ctrl-d> +$ cat .softdefs +jdk:/home/release/pyrsyrel/TechRefresh/opt/jdk:1.5.0.08 +qpid:/home/pyramid/e151839/releases/:qpid-2.1.0.4 +]]> + </programlisting> + <para>Ensure that you only have one line starting<emphasis>qpid</emphasis>. You may have more entries + such as + <emphasis>jdk</emphasis> + here, these are not required. + </para> + </note> + + <note> + <title>Attempt to load qpid</title> + <programlisting> + <![CDATA[ +$ load qpid +$ echo $QPID_HOME +<Path-To-Release-Dir>/qpid-<version> +]]> + </programlisting> + <para>The echo should show the full path to the directory of the DAM artifact to test.</para> + </note> + <note> + <title>Test qpid.start</title> + <programlisting> + <![CDATA[ +$ qpid.start +Setting QPID_WORK to /cygdrive/c/ritchiem/home as default +System Properties set to -Damqj.logging.level=info -DQPID_HOME=c:\dev\svn-co\JPMC-NY-IBTAMQ\trunk\src\2.1.0.4\ +qpid\java\JPMC-distribution\DAM\target\qpid-2.1.0.4 -DQPID_WORK=c:\ritchiem\home +Using QPID_CLASSPATH /cygdrive/c/ritchiem/home/dev/svn-co/JPMC-NY-IBTAMQ/trunk/src/2.1.0.4/qpid/java/JPMC-dist +ribution/DAM/target/qpid-2.1.0.4/lib/qpid-incubating.jar:/cygdrive/c/ritchiem/home/dev/svn-co/JPMC-NY-IBTAMQ/t +runk/src/2.1.0.4/qpid/java/JPMC-distribution/DAM/target/qpid-2.1.0.4/lib/bdbstore-launch.jar +Info: QPID_JAVA_GC not set. Defaulting to JAVA_GC -XX:-UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError +Info: QPID_JAVA_MEM not set. Defaulting to JAVA_MEM -Xmx1024m +Using configuration file c:\dev\svn-co\JPMC-NY-IBTAMQ\trunk\src\2.1.0.4\qpid\java\JPMC-distribution\DAM\target\qpid-2.1.0.4\etc\config.xml +Configuring logger using configuration file + c:\dev\svn-co\JPMC-NY-IBTAMQ\trunk\src\2.1.0.4\qpid\java\JPMC-distribution\DAM\target\qpid-2.1.0.4\etc\log4j.xml +2007-11-19 11:22:07,890 WARN [main] access.AMQUserManagementMBean (AMQUserManagementMBean.java:386) - + Access rights contains user 'admin' but there is no authentication data for that user +2007-11-19 11:22:07,890 WARN [main] access.AMQUserManagementMBean (AMQUserManagementMBean.java:386) - + Access rights contains user 'user' but there is no authentication data for that user +2007-11-19 11:22:08,078 WARN [main] management.JMXManagedObjectRegistry (JMXManagedObjectRegistry.java:153) - + JMX: Started JMXConnector server on port '8999' with security disabled +2007-11-19 11:22:08,250 WARN [main] manager.PrincipalDatabaseAuthenticationManager (PrincipalDatabaseAuthenticationManager.java:114) - + Unable to set order of providers. +2007-11-19 11:22:08,281 WARN [main] manager.PrincipalDatabaseAuthenticationManager (PrincipalDatabaseAuthenticationManager.java:87) - + No authentication specified for 'virtualhosts.virtualhost.development'. Using Default authentication manager +2007-11-19 11:22:08,281 WARN [main] access.AccessManagerImpl (AccessManagerImpl.java:51) - No access control specified. + Using default access controls for VirtualHost:'development' +2007-11-19 11:22:08,296 WARN [main] manager.PrincipalDatabaseAuthenticationManager (PrincipalDatabaseAuthenticationManager.java:87) - + No authentication specified for 'virtualhosts.virtualhost.test'. Using Default authentication manager +2007-11-19 11:22:08,296 WARN [main] access.AccessManagerImpl (AccessManagerImpl.java:51) - No access control specified. + Using default access controls for VirtualHost:'test' +2007-11-19 11:22:08,296 INFO [main] server.Main (Main.java:266) - Starting Qpid Broker 2.1.0.4 build: 717 +2007-11-19 11:22:08,593 INFO [main] server.Main (Main.java:419) - Qpid.AMQP listening on non-SSL address 0.0.0.0/0.0.0.0:5672 +2007-11-19 11:22:08,593 INFO [main] server.Main (Main.java:440) - Qpid Broker Ready :2.1.0.4 build: 717 +]]> + </programlisting> + <para>Background this process (ctrl-z, $ bg) and test the stop methods.</para> + </note> + <note> + <title>Test qpid.stop</title> + <programlisting> + <![CDATA[ +$ qpid.stop +Killing All Qpid Brokers for user: 'e151839' +Attempting to kill: java -server -Xmx1024m -Damqj.logging.level=info -DQPID_HOME=/home/pyramid/pyrsyrel/qpid/qpid-2.0.4.1 + -DQPID_WORK=/home/pyramid/e151839 org.apache.qpid.server.Main +Waiting 1 second for 30211 to exit +Waiting 1 second for 30211 to exit +Done +All Qpid brokers successfully quit +]]> + </programlisting> + <para>Restart the broker for the stopall test</para> + </note> + <note> + <title>Test qpid.stopall</title> + <programlisting> + <![CDATA[ +$ qpid.stopall +Attempting to kill: java -server -Xmx1024m -Damqj.logging.level=info -DQPID_HOME=/home/pyramid/pyrsyrel/qpid/qpid-2.0.4.1 + -DQPID_WORK=/home/pyramid/e151839 org.apache.qpid.server.Main +Waiting 1 second for 30651 to exit +2007-11-19 16:38:28,017 INFO [Thread-0] registry.ApplicationRegistry$ShutdownService (ApplicationRegistry.java:61) - + Shutting down application registries... +2007-11-19 16:38:28,017 INFO [Thread-0] registry.ApplicationRegistry$ShutdownService (ApplicationRegistry.java:61) - + Shutting down application registries... +Process quit +All Qpid brokers successfully quit +]]> + </programlisting> + </note> + + + <note> + <title>Test start broker directly works</title> + + <programlisting> + <![CDATA[ +$ cd $QPID_HOME/bin +$ ./qpid-server +Setting QPID_WORK to /cygdrive/c/ritchiem/home as default +System Properties set to -Damqj.logging.level=info -DQPID_HOME=c:\dev\svn-co\JPMC-NY-IBTAMQ\trunk\src\2.1.0.4\ +qpid\java\JPMC-distribution\DAM\target\qpid-2.1.0.4 -DQPID_WORK=c:\ritchiem\home +Using QPID_CLASSPATH /cygdrive/c/ritchiem/home/dev/svn-co/JPMC-NY-IBTAMQ/trunk/src/2.1.0.4/qpid/java/JPMC-dist +ribution/DAM/target/qpid-2.1.0.4/lib/qpid-incubating.jar:/cygdrive/c/ritchiem/home/dev/svn-co/JPMC-NY-IBTAMQ/t +runk/src/2.1.0.4/qpid/java/JPMC-distribution/DAM/target/qpid-2.1.0.4/lib/bdbstore-launch.jar +Info: QPID_JAVA_GC not set. Defaulting to JAVA_GC -XX:-UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError +Info: QPID_JAVA_MEM not set. Defaulting to JAVA_MEM -Xmx1024m +Using configuration file c:\dev\svn-co\JPMC-NY-IBTAMQ\trunk\src\2.1.0.4\qpid\java\JPMC-distribution\DAM\target\qpid-2.1.0.4\etc\config.xml +Configuring logger using configuration file + c:\dev\svn-co\JPMC-NY-IBTAMQ\trunk\src\2.1.0.4\qpid\java\JPMC-distribution\DAM\target\qpid-2.1.0.4\etc\log4j.xml +2007-11-19 11:22:07,890 WARN [main] access.AMQUserManagementMBean (AMQUserManagementMBean.java:386) - + Access rights contains user 'admin' but there is no authentication data for that user +2007-11-19 11:22:07,890 WARN [main] access.AMQUserManagementMBean (AMQUserManagementMBean.java:386) - + Access rights contains user 'user' but there is no authentication data for that user +2007-11-19 11:22:08,078 WARN [main] management.JMXManagedObjectRegistry (JMXManagedObjectRegistry.java:153) - + JMX: Started JMXConnector server on port '8999' with security disabled +2007-11-19 11:22:08,250 WARN [main] manager.PrincipalDatabaseAuthenticationManager (PrincipalDatabaseAuthenticationManager.java:114) - + Unable to set order of providers. +2007-11-19 11:22:08,281 WARN [main] manager.PrincipalDatabaseAuthenticationManager (PrincipalDatabaseAuthenticationManager.java:87) - + No authentication specified for 'virtualhosts.virtualhost.development'. Using Default authentication manager +2007-11-19 11:22:08,281 WARN [main] access.AccessManagerImpl (AccessManagerImpl.java:51) - No access control specified. + Using default access controls for VirtualHost:'development' +2007-11-19 11:22:08,296 WARN [main] manager.PrincipalDatabaseAuthenticationManager (PrincipalDatabaseAuthenticationManager.java:87) - + No authentication specified for 'virtualhosts.virtualhost.test'. Using Default authentication manager +2007-11-19 11:22:08,296 WARN [main] access.AccessManagerImpl (AccessManagerImpl.java:51) - No access control specified. + Using default access controls for VirtualHost:'test' +2007-11-19 11:22:08,296 INFO [main] server.Main (Main.java:266) - Starting Qpid Broker 2.1.0.4 build: 717 +2007-11-19 11:22:08,593 INFO [main] server.Main (Main.java:419) - Qpid.AMQP listening on non-SSL address 0.0.0.0/0.0.0.0:5672 +2007-11-19 11:22:08,593 INFO [main] server.Main (Main.java:440) - Qpid Broker Ready :2.1.0.4 build: 717 +]]> + </programlisting> + <para>The broker should start up with no errors and report that it is ready.</para> + </note> + + <note> + <title>Ensure broker will start with delivered config files.</title> + <itemizedlist> + <listitem>$ ./qpid-server -c ../etc/transient_config.xml</listitem> + <listitem>$ ./qpid-server -c ../etc/persistent_config.xml</listitem> + </itemizedlist> + <para>The output should not report any errors and as with the default config should report the broker is + Ready. + </para> + </note> + + </section> + + <section> + <title>Validate Management</title> + + <note> + <title>Unpack JMX Management console</title> + <para>On a local windows machine unpack qpid-management-<version>.zip</para> + </note> + + <note> + <title>Validate JMX management console connects</title> + <itemizedlist> + <listitem>Start remote broker with the default configuration (./qpid-server)</listitem> + <listitem>Launch application qpidmc/bin/qpidmc.bat</listitem> + <listitem> + <para>Create a new connection. Click:</para> + <mediaobject> + <imageobject> + <imagedata fileref="add.gif" format="GIF"/> + </imageobject> + <textobject> + <phrase>Green plus(+) symbol</phrase> + </textobject> + </mediaobject> + </listitem> + <listitem>Enter server details for remote linux broker from above tests, log in as guest(guest) + </listitem> + <listitem> + <para>Ensure that the following items are available and browseable.</para> + <orderedlist> + <listitem>org.apache.qpid : UserManagement</listitem> + <listitem>org.apache.qpid : Virtualhosts</listitem> + </orderedlist> + </listitem> + </itemizedlist> + + </note> + + <note> + <title>Validate Secure JMX management console connects</title> + <itemizedlist> + <listitem>Start remote broker with the persistent configuration (./qpid-server - + ../etc/persistent-config.xml) + </listitem> + <listitem>Unpack qpid-management-<version>.zip</listitem> + <listitem>Launch application qpidmc/bin/qpidmc-secure.bat</listitem> + <listitem> + <para>Create a new connection. Click:</para> + <mediaobject> + <imageobject> + <imagedata fileref="add.gif" format="GIF"/> + </imageobject> + <textobject> + <phrase>Green plus(+) symbol</phrase> + </textobject> + </mediaobject> + <para>or use reconnect :</para> + <mediaobject> + <imageobject> + <imagedata fileref="reconnect.gif" format="GIF"/> + </imageobject> + <textobject> + <phrase>Yellow arrow(->) symbol</phrase> + </textobject> + </mediaobject> + </listitem> + <listitem>Enter server details for remote linux broker from above tests, log in as admin(admin) + </listitem> + <listitem> + <para>Ensure that the following items are available and browseable.</para> + <orderedlist> + <listitem>org.apache.qpid : UserManagement</listitem> + <listitem>org.apache.qpid : Virtualhosts</listitem> + </orderedlist> + </listitem> + <listitem>Reconnect to the server with the linux broker from above tests, with log in as + guest(guest) + </listitem> + <listitem>Ensure that 'org.apache.qpid : Virtualhosts' is available and browseable.</listitem> + <listitem>Ensure that 'org.apache.qpid : UserManagement' is not accessable.</listitem> + </itemizedlist> + </note> + + <note> + <title>Validate jconsole connects</title> + <itemizedlist> + <listitem>Start remote broker with the default configuration (./qpid-server)</listitem> + <listitem>Launch Jconsole from your local JDK installation</listitem> + <listitem>Use the remote host option and fill in details server as before and user guest(guest) + </listitem> + <listitem> + <para>Ensure that the following MBeans are available and browseable.</para> + <orderedlist> + <listitem>org.apache.qpid : UserManagement</listitem> + <listitem>org.apache.qpid : Virtualhost.Exchange</listitem> + <listitem>org.apache.qpid : Virtualhost.Queue</listitem> + <listitem>org.apache.qpid : Virtualhost.VirtualHostManger</listitem> + </orderedlist> + </listitem> + </itemizedlist> + + </note> + + </section> + + <section> + <title>Validate the client DAM candidate</title> + <note> + <title>Copy package to unix server</title> + <programlisting> + <![CDATA[ +$scp qpid-<version>-client-bin.tgz <username>@noc-qpiddev01.jpmorganchase.com:. +]]> + </programlisting> + </note> + <note> + <title>Move to unix server</title> + <programlisting> + <![CDATA[ +$ssh -l username noc-qpiddev01.jpmorganchase.com +]]> + </programlisting> + </note> + <note> + <title>Unpack artifact</title> + <programlisting> + <![CDATA[ +$ tar xzf qpid-<version>-client-bin.tgz +]]> + </programlisting> + </note> + <note> + <title>Validate contents of bin directory</title> + + <para> + <emphasis>Validate all files bin files in bin directory are executable.</emphasis> + </para> + + <para>Ensure bin directory contains qpid_env.sh and qpid_env.csh</para> + <programlisting> + <![CDATA[ +$ ls qpid-<version>-client/bin +qpid_env.csh qpid_env.sh +]]> + </programlisting> + + <para> + <emphasis>Validate all files bin directory have unix line endings.</emphasis> + </para> + + <para>A suitable grep will do the trick. Only .bat files should be listed. + </para> + + <programlisting> + <![CDATA[ +$ grep -Pl '\r\n' bin/* +]]> + </programlisting> + + </note> + + <note> + <title>Validate the build location was clean.</title> + <example> + <title>Check contents of SVNREV.txt</title> + <programlisting> + <![CDATA[ +$ cat SVNREV.txt +#Fri Jan 25 17:22:49 GMT 2008 +qpid.version=qpid-2.1.0.7-client-slf4j +qpid.svnversion=762 +qpid.builtby=F065199 +qpid.name=Qpid DAM Client +]]> + </programlisting> + <para>Note that the svnversion number is a single number.</para> + </example> + <example> + <title>Check contents of Qpid jars</title> + <programlisting> + <![CDATA[ +$ cd lib +$ jar xf qpid-common-2.1.0.7.jar qpidversion.properties +$ cat qpidversion.properties +#Fri Jan 25 17:21:18 GMT 2008 +qpid.version=2.1.0.7 +qpid.svnversion=762 +qpid.name=Qpid Common Utilities +]]> + </programlisting> + <para>Note again that the svnversion number is a single number. This should be repeated for all qpid + jars. + </para> + </example> + </note> + <note> + <title>Ensure the number of libs has not increased due to a dependency change.</title> + <programlisting> + <![CDATA[ +$ ls qpid-2.1.0.7-client-slf4j/lib +backport-util-concurrent-2.2.jar qpid-client-2.1.0.7.jar qpid-mina-filter-ssl-2.1.0.7.jar +commons-collections-3.2.jar qpid-common-2.1.0.7.jar qpid-mina-java5-2.1.0.7.jar +commons-lang-2.1.jar qpid-incubating.jar slf4j-api-1.4.0.jar +geronimo-jms_1.1_spec-1.0.jar qpid-mina-core-2.1.0.7.jar +]]> + </programlisting> + <para>If the number has changed then explain the change and update this document.</para> + <para>Count 11. (Version:2.1.0.7).</para> + </note> + <note> + <title>Run Pub / Sub example</title> + <para> + <emphasis>This should be updated with the 2.2.1.0 to use the simple examples. The example package + should also ship with slf4j-simple.jar + </emphasis> + </para> + <itemizedlist> + + <listitem>Start remote broker with the default configuration (./qpid-server)</listitem> + <listitem>Run the Subscriber</listitem> + <listitem>Run the Publisher</listitem> + <listitem>The publisher should then send message numbers 0-99 and the subscriber should receive + 0-99. Both clients quit when their task is complete. + </listitem> + </itemizedlist> + <programlisting> + <![CDATA[ +$ java -cp ../lib/qpid-incubating.jar:slf4j-simple-1.4.3.jar:examples.jar org.apache.qpid.example.pubsub.Subscriber +$ java -cp ../lib/qpid-incubating.jar:slf4j-simple-1.4.3.jar:examples.jar org.apache.qpid.example.pubsub.Publisher +]]> + </programlisting> + </note> + <note> + <title>Run Point to Point example</title> + <itemizedlist> + + <listitem>Start remote broker with the default configuration (./qpid-server)</listitem> + <listitem>Run the Simple Test</listitem> + <listitem>The will send and receive a message.</listitem> + </itemizedlist> + + <programlisting> + <![CDATA[ +$ java -cp ../lib/qpid-incubating.jar:slf4j-simple-1.4.3.jar:examples.jar org.apache.qpid.example.simple.point2point.Simple +Recieved message:Sample Message. +]]> + + </programlisting> + </note> + </section> + + </section> +</article> + + |
