bval-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mben...@apache.org
Subject svn commit: r1299018 [4/5] - in /bval/cms-site: ./ cgi-bin/ content/ content/board-reports/ content/coding/ content/images/ content/resources/ lib/ templates/
Date Fri, 09 Mar 2012 20:14:18 GMT
Added: bval/cms-site/content/release-process.mdtext
URL: http://svn.apache.org/viewvc/bval/cms-site/content/release-process.mdtext?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/release-process.mdtext (added)
+++ bval/cms-site/content/release-process.mdtext Fri Mar  9 20:14:15 2012
@@ -0,0 +1,343 @@
+Title: Release Process
+We'll be using the [Apache Nexus repository](http://repository.apache.org) for
+releasing SNAPSHOT and release artifacts.  More details on releasing
+artifacts and using Nexus can be found on the Maven website at
+[http://maven.apache.org/developers/release/apache-release.html](http://maven.apache.org/developers/release/apache-release.html).
+
+<a name="ReleaseProcess-ReleaseSteps"></a>
+### Release Steps
+
+1. Environment setup for releasing artifacts (same for `SNAPSHOT`s and
+releases)
+    1. Increase the default Java heap available to Maven (required for Java SE
+6):
+
+            :::sh
+            export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=256m"
+
+    1. Use the latest Sun 1.6.0 JDK
+    1. Use Maven 2.2.1 or later (required for release signing fixes)
+    1. Make sure the [Release Setup][] steps have been performed.
+
+1. Prepare the source for release: 
+    1. Clean up JIRA so the **Fix Version** in issues resolved since the last
+       release includes this release version correctly.  Also, transition any
+       **Resolved** issues to the **Closed** state.
+    1. Update the text files in a working copy of the project root:
+        1. Update the `CHANGES.txt` based on the Text release reports from JIRA.
+        1. Review and update `README.txt` if needed.
+        1. Commit any changes back to svn:
+
+                :::sh
+                svn commit -m "updating files for release"
+
+    1. Stage any Roadmap or Release landing pages on the wiki.
+    1. Use `mvn rat:check` to verify the source has the required headers before
+       trying to release.
+    1. Perform a full build and deploy the SNAPSHOT artifacts:
+
+            :::sh
+            mvn clean deploy -Papache-release
+
+    1. Run the [JSR303 TCK](/jsr303-tck.html) to verify the latest code passes.
+    1. Inspect the files in your local target directories to ensure:
+        1. All jars and zips include:	`LICENSE`, `NOTICE`, `DISCLAIMER` files
+        1. The NOTICE files cover all third-party included files (like XSD
+schemas)
+        1. The `LICENSE` files include any third-party licenses (none at this time)
+        1. All jars/zips/poms have `.asc` (PGP signature) and `.md5` files
+
+1. For new major releases (like 1.0.0 to 1.1.0)
+    1. Create a sub-branch from which to make the release. Releasing from a
+branch will allow any cosmetic changes that need to be made for the release
+to be approved to be done without preventing other more disruptive advances
+in the trunk from potentially causing problems with the release. It also
+provides a future maintenance branch (like 1.0.x.)  A branch can be made by
+running:
+
+            :::sh
+            mvn release:branch -DbranchName=1.0.x
+
+1. Checkout a clean copy of the trunk/branch to release using command line
+svn:
+  
+        :::sh
+        svn checkout https://svn.apache.org/repos/asf/bval/trunk/ 1.0-rc1/
+
+1. Do a dry run of the release:prepare step.
+ The dry run will not commit any changes back to SVN and gives you the
+opportunity to verify that the release process will complete as expected.
+You will be prompted for the following information :
+    1. Release version - take the default - (default 1.0) 
+    1. SCM release tag - *DO NOT TAKE THE DEFAULT - (default bval-1.0): : 1.0
+    1. New development version - take the default - (default 1.0.1-SNAPSHOT) 
+    1. *optional* if you have not specified a GPG passphrase in settings.xml
+you will be prompted for it:
+
+            :::sh
+            mvn -Papache-release release:prepare -DdryRun=true
+
+        Sample output:
+
+            :::text
+            [INFO] Working directory: /Users/drwoods/bval/1.0-rc1
+            [INFO] Checking dependencies and plugins for snapshots ...
+            What is the release version for "Apache BVal :: bval-parent (Parent POM)"? (org.apache.bval:bval-parent) 1.0: : 
+            What is SCM release tag or label for "Apache BVal :: bval-parent (Parent POM)"? (org.apache.bval:bval-parent) bval-parent-1.0: : 1.0
+            What is the new development version for "Apache BVal :: bval-parent (Parent POM)"? (org.apache.bval:bval-parent) 1.0.1-SNAPSHOT: : 
+            [INFO] Transforming 'Apache BVal :: bval-parent (Parent POM)'...
+
+         *If you cancel a release:prepare before it updates the pom.xml versions,
+         then use the `release:clean` goal to just remove the extra files that were
+         created.*
+
+1. Verify that the release process completed as expected:
+    1. The release plugin will create `pom.xml.tag` files which contain the
+     changes that would have been committed to SVN. The only differences between
+     `pom.xml.tag` and its corresponding `pom.xml` file should be the version
+     number.
+    1. If other formatting changes have been made you should review the changes
+and then commit them:
+
+            :::sh
+            svn commit -m "fixing formatting for release"
+
+    1. Assuming the `.tag` files look OK you may proceed and do any other
+validation you feel necessary. The following list may be helpful:
+        1. Check release.properties and make sure that the scm properties have the
+right version. Sometimes the scm location can be the previous version not
+the next version.
+        1. [Verify signatures](#ReleaseProcess-Verifyingreleasesignatures)
+        1. If you have access to the [JSR303 TCK](/jsr303-tck.html), run it.
+    1. Once any failures or required updates have been committed to svn,
+rollback the release prepare files:
+
+            :::sh
+            mvn -Papache-release release:rollback
+
+1. Prepare the release
+
+    Run the `release:prepare` step for real this time.  You'll be prompted
+for the same version information and optionally your GPG passphrase again.
+
+     **Different arguments and steps are required as there are problems with
+the maven-jar-plugin and maven-release-plugin when using the test-jar goal.
+See [http://jira.codehaus.org/browse/MJAR-68](http://jira.codehaus.org/browse/MJAR-68)
+and [http://jira.codehaus.org/browse/MRELEASE-285](http://jira.codehaus.org/browse/MRELEASE-285).**
+
+        :::sh
+        mvn release:prepare -Papache-release -DskipTests=true -DpreparationGoals="clean install"
+
+1. Backup (zip or tar) your local release candidate directory in case you
+need to rollback the release after the next step is performed.
+
+        :::sh
+        cd ..
+        tar -czf 1.0-rc1.tar.gz 1.0-rc1/
+        cd 1.0-rc1
+
+1. Perform the release:
+    1. This step will create a maven staging repository and site for use in
+     testing and voting. You will be prompted for your **repository.apache.org**
+     and **people.apache.org** password several times if you have not added
+     server profiles to your `settings.xml`.
+     See [Release Setup](/release-setup.html) for more information. 
+
+            :::sh
+            mvn release:perform -Papache-release -Duser.name=[your_apache_uid]
+
+     **If your local OS userid doesn't match your Apache userid, then
+you'll have to also override the value provided by the OS to Maven for the
+site-deploy step to work.  This is known to work for Linux, but not for Mac
+and unknown for Windows.**
+
+    1. The maven-release-plugin is configured with goals `deploy site
+site:deploy` and will deploy the site files to a `staging-site` directory on
+**people.apache.org**.
+1. Verify the release artifacts:
+    1. Verify the HTML links in staging-site/index.html are correct
+    1. Verify the staged artifacts in the nexus repo:
+        1. [https://repository.apache.org/index.html](https://repository.apache.org/index.html)
+        1. **Enterprise --> Staging**
+        1. **Staging tab --> Name column --> org.apache.bval**
+        1. Navigate through the artifact tree and make sure that all `javadoc`,
+         `sources`, `tests` jars, ... have `.asc` (GPG signature) and `.md5`
+         files (see [Repository FAQ][] and [Detached Signatures][]).
+    1. Close the nexus staging repo:
+        1. [https://repository.apache.org/index.html](https://repository.apache.org/index.html)
+        1. **Enterprise --> Staging**
+        1. **Staging tab --> Name column --> org.apache.bval**
+        1. Right click on the open `org.apache.bval-XXX` staging repo
+         and select **Close**.
+
+1. Put the release candidate up for a vote:
+    1. Create a `VOTE` email thread on [bval-dev](mailto:dev@bval.apache.org) to record votes as replies, e.g.:
+
+            :::text
+            To: dev@bval.apache.org
+            Subject: [VOTE] Apache BVal 1.0 Release Candidate
+
+            I've created a 1.0 release candidate, with the following artifacts up for a vote:
+
+            SVN source tag (r950702):
+            https://svn.apache.org/repos/asf/bval/tags/1.0/
+
+            Maven staging repo:
+            https://repository.apache.org/content/repositories/orgapachebval-020/
+
+            Source release:
+            https://repository.apache.org/content/repositories/orgapachebval-020/org/apache/bval/bval-parent/1.0/bval-parent-1.0-source-release.zip
+
+            Javadoc staging site:
+            http://people.apache.org/~mbenson/bval/1.0/staging-site/apidocs/
+
+            PGP release keys (signed using D018E6B1):
+            https://svn.apache.org/repos/asf/bval/KEYS
+
+            Vote will be open for 72 hours.
+
+            [ ] +1  approve
+            [ ] +0  no opinion
+            [ ] -1  disapprove (and reason why)
+
+    1. Create a DISCUSS email thread on bval-dev@ for any vote questions, e.g.:
+
+            :::text
+            To: dev@bval.apache.org
+            Subject: [DISCUSS] Apache BVal 1.0 Release Candidate
+
+            Discussion thread for vote on 1.0 release candidate, with SVN source tag (r999999).
+
+            For more information on the release process, check out http://www.apache.org/dev/release.html .
+
+            Some of the things to check before voting are:
+            - does "mvn apache-rat:check" pass on the source
+            - can you build the contents of source-release.zip and svn tag
+            - do all of the staged jars/zips contain the required LICENSE, NOTICE and DISCLAIMER files
+            - are all of the staged jars signed and the signature verifiable
+            - is the signing key in the project's KEYS file and on a public server
+            - does the release pass the TCK
+
+    1. Perform a review of the release and cast your vote. For more details
+     on Apache releases see
+     [http://www.apache.org/dev/release.html](http://www.apache.org/dev/release.html).
+    1. A -1 vote does not necessarily mean that the vote must be redone,
+however it is usually a good idea to rollback the release if a -1 vote is
+received (see [Recovering from a vetoed release](#ReleaseProcess-RecoveringFromAVetoedRelease).
+    1. After the vote has been open for at least 72 hours, has at least three
++1 PMC votes and no -1 votes, then post the results to the vote thread:
+        1. Reply to the initial email prepending `[RESULT]` to the original subject
+        1. Include a list of every binding +1, 0 or -1 vote.
+
+1. Finalizing a release
+    1. Promote the staged nexus artifacts:
+        1. [https://repository.apache.org/index.html](https://repository.apache.org/index.html)
+        1. **Enterprise --> Staging**
+        1. **Staging tab --> Name column --> org.apache.bval**
+        1. Right click on the closed `org.apache.bval-XXX` staging repo and select **Promote**.
+    1. *Pending removal or amendment: site not maven-managed* Copy the staged site over to our website area:
+
+            :::sh
+            ssh ${user.name}@people.apache.org 
+            mkdir /www/bval.apache.org/${project.version}
+            cp -R ~/public_html/bval/${project.version}/staging-site/* /www/bval.apache.org/${project.version}
+            \# Make sure all the copied files have g+rw set and only o+r set
+            cd /www/bval.apache.org
+            find . -user ${user.name} -type f | xargs chmod 664
+            find . -user ${user.name} -type d | xargs chmod 775
+
+    1. Update the *Documentation* wiki page to point to the new apidocs:
+
+            :::text
+            http://bval.apache.org/${project.version}/apidocs/
+
+    1. Copy the distribution artifacts over to the distribution area:
+
+            :::sh
+            ssh ${user.name}@people.apache.org
+            mkdir /www/www.apache.org/dist/bval/${project.version}
+            cd /www/www.apache.org/dist/bval/${project.version}
+            wget https://repository.apache.org/content/repositories/releases/org/apache/bval/bval-parent/${project.version}/bval-parent-${project.version}-source-release.zip
+            wget https://repository.apache.org/content/repositories/releases/org/apache/bval/bval-parent/${project.version}/bval-parent-${project.version}-source-release.zip.asc
+            wget https://repository.apache.org/content/repositories/releases/org/apache/bval/bval-parent/${project.version}/bval-parent-${project.version}-source-release.zip.md5
+            wget https://repository.apache.org/content/repositories/releases/org/apache/bval/bval-parent/${project.version}/bval-parent-${project.version}-source-release.zip.sha1
+            # Make sure all the copied files have g+rw set and only o+r set
+            find . -user ${user.name} -type f | xargs chmod 664
+            find . -user ${user.name} -type d | xargs chmod 775
+            # Note: All of the artifacts are in the maven repos, but we may create an assembly to publish in future releases
+
+    1. Update the *Downloads* wiki page to point to the new release artifacts:
+
+            :::text
+            http://www.apache.org/dyn/closer.cgi/bval/${project.version}/
+            http://repo1.maven.org/maven2/org/apache/bval/${artifactId}/${project.version}/
+
+    1. Update the [JIRA versions](https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12311080)
+     page to mark the version as **Released**, and set the date to the date that
+     the release was approved. You may also need to make a new release entry for
+     the next release.
+
+1. Announcing the release
+    1. After the mirrors have had time to update (24 hours to be on the safe
+     side) update the wiki with pointers to the new release.
+    1. Make a [news announcement](http://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=BVal) on the BVal wiki.
+    1. Make an announcement about the release on the
+     [bval-users](mailto:users@bval.apache.org),
+     [bval-dev](mailto:dev@bval.apache.org), and
+     [announce@apache.org](mailto:announce@apache.org) lists as per
+     [the Apache Announcement Mailing Lists page](http://www.apache.org/foundation/mailinglists.html#foundation-announce])
+
+<a name="ReleaseProcess-RecoveringFromAVetoedRelease"></a>
+### Recovering from a vetoed release
+1. Reply to the initial vote email prepending `[CANCELED]` to the original subject.
+
+1. Rollback the version upgrades in trunk by *either*:
+    1. Restore the 0.1-rc1.tar.gz and run
+
+            :::sh
+            mvn -Papache-release release:rollback
+
+        , *or*:
+
+    1. Manually revert the versions in trunk to the prior version and commit
+
+1. Delete the svn tag created by the `release:perform` step:
+
+        :::sh
+        svn rm https://svn.apache.org/repos/asf/bval/tags/1.0 -m "deleting tag from rolled back release"
+
+1. Drop the nexus staging repo:
+    1. [https://repository.apache.org/index.html](https://repository.apache.org/index.html)
+    1. **Enterprise --> Staging**
+    1. **Staging tab --> Name column --> org.apache.bval**
+    1. Right click on the closed `org.apache.bval-XXX` staging repo and select **Drop**.
+1. Remove the staged site:
+
+        :::sh
+        ssh ${user.name}@people.apache.org 
+        cd ~/public_html/bval
+        rm -fr ${project.version}
+
+1. Make the required updates that caused the vote to be canceled.
+1. Spin another release candidate!
+
+<a name="ReleaseProcess-Verifyingreleasesignatures"></a>
+### Verifying release signatures
+
+On unix platforms the following command can be executed:
+
+    :::sh
+    for file in `find . -type f -iname '*.asc'`
+    do
+        gpg --verify ${file} 
+    done
+    
+You'll need to look at the output to ensure it contains only good signatures:
+
+    :::text
+    gpg: Good signature from ...
+    gpg: Signature made ...
+
+[Release Setup]: /release-setup.html
+[repository FAQ]: http://people.apache.org/~henkp/repo/faq.html
+[detached signatures]: http://www.apache.org/dev/release-signing.html#openpgp-ascii-detach-sig

Added: bval/cms-site/content/release-setup.cwiki
URL: http://svn.apache.org/viewvc/bval/cms-site/content/release-setup.cwiki?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/release-setup.cwiki (added)
+++ bval/cms-site/content/release-setup.cwiki Fri Mar  9 20:14:15 2012
@@ -0,0 +1,120 @@
+
+These setup steps only need to be performed on a particular machine once.
+{info}Developers using Linux workstations can skip over the references to Cygwin.  If using Windows, install cygwin, including *Utils/gnupg* and *Net/openssh* packages.
+{info}
+
+h3. Create and install a SSH key
+
+# Open a shell window.  If using Windows, open a cygwin window.
+# Use ssh-keygen to create an SSH key.
+{note}Follow the latest steps and guides on the ASF website at [http://www.apache.org/dev/openpgp.html#generate-key] as you need to disable using SHA1 and new keys should be 4096 bits.{note}
+{code:none}
+$ ssh-keygen -t dsa -b 4096
+{code}
+* Program defaults should be fine.  No passphrase is required for the ssh key generation.  The keys will be saved in ~/.ssh/id_dsa (private) and ~/.ssh/id_dsa.pub (public).
+{info} See [Authenticating By Public Key (OpenSSH)|http://www.networknewz.com/networknewz-10-20030707AuthenticatingbyPublicKeyOpenSSH.html] for a good description on why and how to perform this task.
+{info}
+# {{scp}} your SSH public key ~/.ssh/id_dsa.pub created in last step to ~/id_dsa.pub on people.apache.org.
+{code:none} 
+$ cd ~/.ssh
+$ scp id_dsa.pub <your userid>@people.apache.org:id_dsa.pub 
+$ You will be prompted for your password.
+{code}
+# Use ssh to login to people.apache.org 
+{code:none}
+$ cd ~
+$ ssh <your userid>@people.apache.org
+{code}
+* At this point, you will still be prompted for your password.
+# Create a ~/.ssh folder in your home directory on people.apache.org and change its file mode to 700.
+{code:none}
+$ mkdir ~/.ssh
+$ chmod 700 ~/.ssh
+{code}
+# Move or append ~/id_dsa.pub to ~/.ssh/authorized_keys and change its file mode to 600.
+{code:none}
+$ mv ~/id_dsa.pub ~/.ssh/authorized_keys
+$ chmod 600 ~/.ssh/authorized_keys
+{code}
+{info}
+* Each public key in the {{authorized_keys}} spans only one line.
+** For example: "{{ssh-dss AAAAB3NzaC1kc3MAAA ..... agBmmfZ9uAbSqA== dsa-key-20071107}}"
+* '#' in the first column is a comment line.
+{info}
+# Exit out of this ssh session.
+# Start a new ssh session.  No login should be required this time due to the private ssh key on your local box matching up with the public ssh key in your home directory (~/.ssh).
+{code:none}
+$ ssh <your userid>@people.apache.org
+{code} 
+{info}
+If you are still prompted for a password, then you have not set up the ssh keys properly.  Review the steps above and ensure that all of the steps were followed properly.  Or, maybe the instructions are still not quite right and they still need some adjusting.  In that case, please update the instructions accordingly.  :-)
+{info}
+
+
+h3. Create a GPG key
+
+# Open a shell window.  If using Windows, open a cygwin window.
+# Generate a key-pair with gpg, using default key kind ("DSA and Elgamal") and ELG-E keys size (2048).
+{code:none}
+$ gpg --gen-key
+{code}
+* The program's default values should be fine.  For the "Real Name" enter your full name (ie. Stan Programmer).  For the "e-mail address" enter your apache address (ie. sprogrammer@apache.org).  You will also be required to enter a "passphrase" for the GPG key generation.  Keep track of this as you will need this for the Release processing.
+{info}
+* The generated keys are stored in $HOME/.gnupg or %HOME%\Application Data\gnupg subdirectory.
+* Save the content in this subdirectory to a safe media. This contains your private key used to sign all the BVAL release materials.
+{info}
+# Backup your cygwin home directory to another media ||
+# Add your public key to {{[https://svn.apache.org/repos/asf/incubator/bval/KEYS]}} and {{http://www.apache.org/dist/incubator/bval/KEYS}}. See the commands describe at the beginning of this KEYS file to perform this task. The gpg key-pair is used to sign the published artifacts for the BVAL releases. 
+{code:none}
+$ gpg --list-sigs <Real Name> && gpg --armor -- export <Real Name>
+{code}
+{info}The {{[https://svn.apache.org/repos/asf/incubator/bval/KEYS]}} file is updated via normal svn commit procedures.  The one under w.a.o/dist/ has to be manually updated from svn.
+{info}
+# Submit your public key to a key server. E.g. [http://pgp.surfnet.nl:11371/] or [http://pgp.mit.edu/]||
+# Following the instructions in [http://people.apache.org/~henkp/trust/] and ask multiple (at least 3) current Apache committers to sign your public key.
+
+h3. Update Maven settings for our servers
+
+# Create a settings.xml under .m2
+| | {code:xml|title=settings.xml|borderStyle=solid}
+<settings xmlns="http://maven.apache.org/POM/4.0.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+    <servers>
+       <!-- SCP settings for people.apache.org -->
+       <server>
+          <id>people.apache.org</id>
+          <username>$USERNAME</username>
+          <privateKey>$PATH_TO_PRIVATE_KEY</privateKey>
+          <passphrase>$SSH_PASSPHRASE</passphrase>
+          <directoryPermissions>775</directoryPermissions>
+          <filePermissions>644</filePermissions>
+          <!-- following is only for Windows only
+          <configuration>
+              <sshExecutable>plink</sshExecutable>
+              <scpExecutable>pscp</scpExecutable>
+              <scpArgs>-2Bp</scpArgs>
+              <sshArgs>-2</sshArgs>
+          </configuration>
+          -->
+       </server>
+       <!-- ASF Nexus settings -->
+       <server>
+           <id>apache.snapshots.https</id>
+           <username>$USERNAME</username>
+           <password>$APACHE_LDAP_PWD</password>
+       </server>
+       <server>
+           <id>apache.releases.https</id>
+           <username>$USERNAME</username>
+           <password>$APACHE_LDAP_PWD</password>
+       </server>
+    </servers>    
+</settings>
+{code}
+{info}
+* {{$USERNAME}} is the remote username on people.apache.org, not your local userid.
+* {{$PATH_TO_PRIVATE_KEY}} is the path to the private key generated for ssh. E.g. /home/yourLocalUserId/.ssh/id_dsa.  For Windows' cygwin users, you will need to enter the full cygwin path:  /cygdrive/c/cygwin/home/yourLocalUserId/.ssh/id_dsa.
+* {{$SSH_PASSPHRASE}} for the supplied {{$PATH_TO_PRIVATE_KEY}}.  If you don't use this in your settings.xml file, then you will be prompted for it during the Release processing.
+* {{$APACHE_LDAP_PWD}} is your Apache LDAP password, which is shared between SVN and password login for  people.apache.org.
+{info}

Added: bval/cms-site/content/release-setup.mdtext
URL: http://svn.apache.org/viewvc/bval/cms-site/content/release-setup.mdtext?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/release-setup.mdtext (added)
+++ bval/cms-site/content/release-setup.mdtext Fri Mar  9 20:14:15 2012
@@ -0,0 +1,175 @@
+Title: Release Setup
+
+These setup steps only need to be performed on a particular machine once.
+*Note*: Developers using Linux workstations can skip over the references to
+[Cygwin][]. If using Windows, install cygwin, including `Utils/gnupg` and
+`Net/openssh` packages.
+
+<a name="ReleaseSetup-CreateandinstallaSSHkey"></a>
+### Create and install a SSH key
+
+1. Open a shell window.	If using Windows, open a cygwin window.
+1. Use `ssh-keygen` to create an SSH key.
+    *Note*: Follow the latest steps and guides on the ASF website at
+    <http://www.apache.org/dev/openpgp.html#generate-key>
+    as you need to disable using SHA1 and new keys should be 4096 bits.
+
+        :::sh
+        ssh-keygen -t dsa -b 4096
+
+    Program defaults should be fine.  No passphrase is required for the `ssh`
+    key generation.  The keys will be saved in `~/.ssh/id_dsa` (private) and
+    `~/.ssh/id_dsa.pub` (public).
+
+    *See [Authenticating By Public Key (OpenSSH)](http://www.networknewz.com/networknewz-10-20030707AuthenticatingbyPublicKeyOpenSSH.html)
+    for a good description on why and how to perform this task.*
+
+1. `scpl` your SSH public key `~/.ssh/id_dsa.pub` created in last step to
+ `~/id_dsa.pub` on `people.apache.org`:
+
+        :::sh
+        cd ~/.ssh
+        scp id_dsa.pub <your userid>@people.apache.org:id_dsa.pub
+
+    You will be prompted for your password.
+
+1. Use `ssh` to log into `people.apache.org`:
+
+        :::sh
+        cd ~
+        ssh <your userid>@people.apache.org
+
+    At this point, you will still be prompted for your password.
+
+1. Create a `.ssh` folder in your home directory (`~`) on `people.apache.org` and
+    change its file mode to `700`
+    (owner read/write/execute, no permissions granted to anyone else):
+
+        :::sh
+        mkdir ~/.ssh
+        chmod 700 ~/.ssh
+
+1. Move or append `~/id_dsa.pub` to `~/.ssh/authorized_keys` and change its file
+mode to `600` (owner read/write, no permissions granted to anyone else):
+
+        :::sh
+        mv ~/id_dsa.pub ~/.ssh/authorized_keys
+        chmod 600 ~/.ssh/authorized_keys
+
+    Each public key in the `authorized_keys` file spans only one line, e.g.:
+
+        :::text
+        ssh-dss AAAAB3NzaC1kc3MAAA ..... agBmmfZ9uAbSqA==dsa-key-20071107
+
+    (any line with `'#'` in the first column is a comment line)
+
+1. Exit out of this `ssh` session.
+1. Start a new `ssh` session.  No login should be required this time due to
+    the private key on your local box matching up with the public key
+    in your home directory (`~/.ssh`):
+
+        :::sh
+        ssh ${USER}@people.apache.org
+
+    If you are still prompted for a password, then you have not set up the
+    keys properly. Review the steps above and ensure that all of the steps
+    were followed properly.  Or, maybe the instructions are still not quite
+    right and they still need some adjusting.  In that case, please update the
+    instructions accordingly. :-)
+
+<a name="ReleaseSetup-CreateaGPGkey"></a>
+### Create a GPG key
+
+1. Open a shell window.	If using Windows, open a cygwin window.
+1. Generate a key-pair with `gpg`, using default key kind ("DSA and Elgamal")
+and ELG-E keys size (2048).
+
+        :::sh
+        gpg --gen-key
+
+    The program's default values should be fine. For the "Real Name" enter
+    your full name (ie. Stan Programmer).  For the "e-mail address" enter your
+    apache address (ie. sprogrammer@apache.org).  You will also be required to
+    enter a "passphrase" for the GPG key generation.  Keep track of this as you
+    will need this for the Release processing.
+
+    *The generated keys are stored in `$HOME/.gnupg` or `%HOME%\Application
+Data\gnupg` directory.*
+    *Save the content in this directory to a safe medium. This contains your
+private key used to sign all the BVal release materials.*
+
+1. Back up your cygwin home directory to some other medium.
+1. Add your public key to <https://svn.apache.org/repos/asf/bval/KEYS>
+ and <http://www.apache.org/dist/bval/KEYS>. See the commands
+described at the beginning of this KEYS file to perform this task. The gpg
+key-pair is used to sign the published artifacts for the BVAL releases. 
+
+        :::sh
+        gpg --list-sigs <Real Name> && gpg --armor -- export <Real Name>
+
+    *The <https://svn.apache.org/repos/asf/bval/KEYS>
+    file is updated via normal svn commit procedures.  The one at
+    <http://www.apache.org/dist/bval/KEYS> must be manually updated from svn.*
+
+1. Submit your public key to a key server, e.g. <http://pgp.surfnet.nl:11371/>
+ or <http://pgp.mit.edu/>.
+
+1. Following the instructions in <http://people.apache.org/~henkp/trust/> and
+ ask multiple (at least 3) current Apache committers to sign your public key.
+
+<a name="ReleaseSetup-UpdateMavensettingsforourservers"></a>
+### Update Maven settings for our servers
+
+Create a `settings.xml` under `.m2`:
+
+    :::xml
+    <settings xmlns="http://maven.apache.org/POM/4.0.0"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
+      <servers>
+        <!-- SCP settings for people.apache.org -->
+        <server>
+          <id>people.apache.org</id>
+          <username>$USERNAME</username>
+          <privateKey>$PATH_TO_PRIVATE_KEY</privateKey>
+          <passphrase>$SSH_PASSPHRASE</passphrase>
+          <directoryPermissions>775</directoryPermissions>
+          <filePermissions>644</filePermissions>
+          <!-- following is only for Windows only
+          <configuration>
+            <sshExecutable>plink</sshExecutable>
+            <scpExecutable>pscp</scpExecutable>
+            <scpArgs>-2Bp</scpArgs>
+            <sshArgs>-2</sshArgs>
+          </configuration>
+          -->
+        </server>
+        <!-- ASF Nexus settings -->
+        <server>
+          <id>apache.snapshots.https</id>
+          <username>$USERNAME</username>
+          <password>$APACHE_LDAP_PWD</password>
+        </server>
+        <server>
+          <id>apache.releases.https</id>
+          <username>$USERNAME</username>
+          <password>$APACHE_LDAP_PWD</password>
+        </server>
+      </servers>	  
+    </settings>
+
+Notes:
+
+* *`$USERNAME` is the remote username on `people.apache.org`,
+  not necessarily your local userid.*
+* *`$PATH_TO_PRIVATE_KEY` is the path to the private `ssh` key generated, e.g.
+`/home/yourLocalUserId/.ssh/id_dsa`.  For cygwin users,
+you will need to enter the full cygwin path:
+`/cygdrive/c/cygwin/home/yourLocalUserId/.ssh/id_dsa`.*
+* *`$SSH_PASSPHRASE` for the supplied `$PATH_TO_PRIVATE_KEY`. If you
+don't use this in your `settings.xml` file, then you will be prompted for it
+during the Release processing.*
+* *`$APACHE_LDAP_PWD` is your Apache LDAP password, which is shared
+between SVN and password login for `people.apache.org`.*
+
+[cygwin]: http://www.cygwin.com/

Added: bval/cms-site/content/resources/blog.js
URL: http://svn.apache.org/viewvc/bval/cms-site/content/resources/blog.js?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/resources/blog.js (added)
+++ bval/cms-site/content/resources/blog.js Fri Mar  9 20:14:15 2012
@@ -0,0 +1,35 @@
+function getBlogEntries(root, space, limit, prototype, targetContainer) {
+  $.getJSON(
+    root + "/rest/prototype/1/search.json?type=blogpost&spaceKey=" + space,
+    function(data) {
+      var successCount;
+      for (var i = 0; i < data.result.length && successCount < limit; i++) {
+        entry = data.result[i];
+        var detailLink = result[i].link.filter(function(element, index, array) {
+          return element.rel == "self";
+        });
+        if (detailLink) {
+          successCount++;
+          item = $(prototype).clone();
+          var body;
+          $.getJSON(detailLink.href, function(data) {
+            body = data.body;
+          });
+
+          /*
+ TODO from item, find elements of specified classes and set text:
+
+  .date : entry.createdDate.friendly
+  .detail : body
+  .title : entry.title
+
+  I wanted to include the blog poster, but I can't find a Confluence API to let me do it
+
+finally, add item to targetElement
+           */
+          
+        }
+      }
+    }
+  );
+}

Propchange: bval/cms-site/content/resources/blog.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: bval/cms-site/content/resources/code.css
URL: http://svn.apache.org/viewvc/bval/cms-site/content/resources/code.css?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/resources/code.css (added)
+++ bval/cms-site/content/resources/code.css Fri Mar  9 20:14:15 2012
@@ -0,0 +1,64 @@
+.codehilite .hll { background-color: #ffffcc }
+.codehilite  { background: #f0f0f0; }
+.codehilite .c { color: #60a0b0; font-style: italic } /* Comment */
+.codehilite .err { border: 1px solid #FF0000 } /* Error */
+.codehilite .k { color: #007020; font-weight: bold } /* Keyword */
+.codehilite .o { color: #666666 } /* Operator */
+.codehilite .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */
+.codehilite .cp { color: #007020 } /* Comment.Preproc */
+.codehilite .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */
+.codehilite .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */
+.codehilite .gd { color: #A00000 } /* Generic.Deleted */
+.codehilite .ge { font-style: italic } /* Generic.Emph */
+.codehilite .gr { color: #FF0000 } /* Generic.Error */
+.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.codehilite .gi { color: #00A000 } /* Generic.Inserted */
+.codehilite .go { color: #808080 } /* Generic.Output */
+.codehilite .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
+.codehilite .gs { font-weight: bold } /* Generic.Strong */
+.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.codehilite .gt { color: #0040D0 } /* Generic.Traceback */
+.codehilite .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
+.codehilite .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
+.codehilite .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
+.codehilite .kp { color: #007020 } /* Keyword.Pseudo */
+.codehilite .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
+.codehilite .kt { color: #902000 } /* Keyword.Type */
+.codehilite .m { color: #40a070 } /* Literal.Number */
+.codehilite .s { color: #4070a0 } /* Literal.String */
+.codehilite .na { color: #4070a0 } /* Name.Attribute */
+.codehilite .nb { color: #007020 } /* Name.Builtin */
+.codehilite .nc { color: #0e84b5; font-weight: bold } /* Name.Class */
+.codehilite .no { color: #60add5 } /* Name.Constant */
+.codehilite .nd { color: #555555; font-weight: bold } /* Name.Decorator */
+.codehilite .ni { color: #d55537; font-weight: bold } /* Name.Entity */
+.codehilite .ne { color: #007020 } /* Name.Exception */
+.codehilite .nf { color: #06287e } /* Name.Function */
+.codehilite .nl { color: #002070; font-weight: bold } /* Name.Label */
+.codehilite .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
+.codehilite .nt { color: #062873; font-weight: bold } /* Name.Tag */
+.codehilite .nv { color: #bb60d5 } /* Name.Variable */
+.codehilite .ow { color: #007020; font-weight: bold } /* Operator.Word */
+.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
+.codehilite .mf { color: #40a070 } /* Literal.Number.Float */
+.codehilite .mh { color: #40a070 } /* Literal.Number.Hex */
+.codehilite .mi { color: #40a070 } /* Literal.Number.Integer */
+.codehilite .mo { color: #40a070 } /* Literal.Number.Oct */
+.codehilite .sb { color: #4070a0 } /* Literal.String.Backtick */
+.codehilite .sc { color: #4070a0 } /* Literal.String.Char */
+.codehilite .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
+.codehilite .s2 { color: #4070a0 } /* Literal.String.Double */
+.codehilite .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
+.codehilite .sh { color: #4070a0 } /* Literal.String.Heredoc */
+.codehilite .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
+.codehilite .sx { color: #c65d09 } /* Literal.String.Other */
+.codehilite .sr { color: #235388 } /* Literal.String.Regex */
+.codehilite .s1 { color: #4070a0 } /* Literal.String.Single */
+.codehilite .ss { color: #517918 } /* Literal.String.Symbol */
+.codehilite .bp { color: #007020 } /* Name.Builtin.Pseudo */
+.codehilite .vc { color: #bb60d5 } /* Name.Variable.Class */
+.codehilite .vg { color: #bb60d5 } /* Name.Variable.Global */
+.codehilite .vi { color: #bb60d5 } /* Name.Variable.Instance */
+.codehilite .il { color: #40a070 } /* Literal.Number.Integer.Long */
+div .codehilite { overflow: inherit }
+div .codehilite pre { white-space: pre-wrap; overflow: inherit }

Propchange: bval/cms-site/content/resources/code.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: bval/cms-site/content/resources/site.css
URL: http://svn.apache.org/viewvc/bval/cms-site/content/resources/site.css?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/resources/site.css (added)
+++ bval/cms-site/content/resources/site.css Fri Mar  9 20:14:15 2012
@@ -0,0 +1,1609 @@
+body {
+  margin: 0;
+  padding: 0;
+}
+
+#cell-0-0 { background: white url( '../images/bg02-white-left-nogr.png' ) repeat-y right top; }
+#cell-0-1 { height: 1em; width: 85%; }
+#cell-0-2 { background: transparent url( '../images/bg02-white-right-nogr.png' ) repeat-y left top; }
+#cell-1-0 { background: transparent url( '../images/bg.png' ) repeat-x top; }
+#cell-1-1 { background: transparent url( '../images/bg02-banner-left.png' ) no-repeat right top; width:13px; }
+#cell-1-2 { background: transparent url( '../images/bg.png' ) repeat-x top; width:85%; }
+#banner { height: 100px; } 
+#cell-1-3 { background: transparent url( '../images/bg02-banner-right.png' ) no-repeat left top; width:13px; }
+#cell-1-4 { background: transparent url( '../images/bg.png' ) repeat-x top; }
+#cell-2-0 { background: white url( '../images/bg02-white-left-nogr.png' ) repeat-y right top; }
+#cell-2-1 { height: 1em; width: 85%; }
+#cell-2-2 { background: white url( '../images/bg02-white-right-nogr.png' ) repeat-y left top; }
+#cell-3-0 { background: transparent url( '../images/bg.png' ) repeat-x top; }
+#cell-3-1 { background: transparent url( '../images/bg02-banner-left.png' ) no-repeat right top; width:13px; }
+#cell-3-2 { background: transparent url( '../images/bg.png' ) repeat-x top; width:85%; } 
+#cell-3-3 { background: transparent url( '../images/bg02-banner-right.png' ) no-repeat left top; width:13px; }
+#cell-3-4 { background: transparent url( '../images/bg.png' ) repeat-x top; }
+#cell-4-0 { background: white url( '../images/bg02-white-left-nogr.png' ) repeat-y right top; }
+#cell-4-1 { height: 1em; width: 85%; }
+#cell-4-2 { background: transparent url( '../images/bg02-white-right-nogr.png' ) repeat-y left top; }
+
+#banner {
+  font-size: 200%;
+  margin: 0 20px;
+  text-align: center;
+  background: transparent;
+}
+#top-menu {
+  margin: 0px 25px;
+  padding: 2px; 
+  line-height: 100%;
+  font-family: Verdana, arial, sans-serif;
+  font-weight: bold;	
+  font-size: 11px;
+  color: white;
+  line-height: 13px;
+  overflow: none;
+}
+#top-menu a:link, #top-menu a:visited {
+  color: white;
+  text-decoration: none;
+}
+#top-menu a:active, #top-menu a:hover {
+  color: white;
+  text-decoration: underline;
+}
+#top-menu sup img {
+  height: 0px;
+  width: 0px;
+}
+
+#footer {
+  padding: 0px 50px 0px 50px; 
+  min-height: 0em;
+  text-align: center;
+  color: white;
+  font-size: 65%;
+  font-family: Verdana, arial, sans-serif;
+}
+#footer a:link, #footer a:visited {
+  color: white;
+  text-decoration: none;
+}
+#footer a:hover {
+  color: black;
+  text-decoration: underline;
+}
+
+#footer-legal {
+  padding: 0px 50px 0px 50px; 
+  min-height: 0em;
+  text-align: center;
+  color: #1e78b4;
+  font-size: 65%;
+  font-family: Verdana, arial, sans-serif;
+}
+#footer-legal a:link, #footer-legal a:visited {
+  color: #1e78b4;
+  text-decoration: underline;
+}
+#footer-legal a:hover {
+  color: black;
+  text-decoration: underline;
+}
+
+#wrapper-menu-page-right {
+  background: transparent url( '../images/left-box-right.png' ) repeat-y right;
+}
+
+#wrapper-menu-page-bottom {
+  background: transparent url( '../images/left-box-bottom.png' ) no-repeat right bottom;
+}
+
+#wrapper-menu-page-top {
+  background: transparent url( '../images/left-box-top.png' ) no-repeat right top;
+}
+
+#menu-page {
+  width: 200px;
+  color: white;
+  font-family: Verdana, arial, sans-serif;
+  font-weight: bold;	
+  margin: 0px;
+  padding: 17px 11px 17px 0px;
+  text-align: left;
+  margin-left: 0px;
+  line-height: 1em;
+}
+
+#menu-page ul {
+  margin: 0;
+  padding: 0;
+  padding-left: 35px;
+  font-size: 75%;
+}
+
+#menu-page h3 {
+  font-size: 75%;
+  text-transform: uppercase;
+  margin: 1em 0 0.3em 0;
+  color: #1e78b4;
+  font-weight: normal;
+  letter-spacing: 0.15em;
+  background: url('../images/Fotolia_Check_16x16.png') no-repeat 0pt;
+  background-position:left center;
+  margin-left:15px;
+  padding-left: 20px;
+  font-family: Verdana, arial, sans-serif;
+  font-weight: bold;	
+}
+
+#menu-page a:link, #menu-page a:visited {
+  color: black;
+}
+
+#menu-page a:hover {
+  color: #1e78b4;
+}
+
+#content {
+  padding: 20px 0px 0px 0px;
+  display: block;
+  text-align: left;
+  height: 100%;
+  width: 100%;
+  color: black;
+}
+
+h2 {
+  font-size: 110%;
+}
+
+h3 {
+  font-size: 100%;
+}
+
+a:link, a:visited {
+  color: #1e78b4;
+  text-decoration: none;
+}
+
+a:hover {
+  color: #666;
+  text-decoration: none;
+}
+
+
+table.align {
+  padding: 0px;
+  border: none;
+}
+
+td.align {
+  padding: 0px;
+  border: none;
+}
+
+/*********************************************************************
+ CSS Elements that are part of the confluence rendered xhtml
+ *********************************************************************/
+.wiki-content {
+	font-family: Verdana, arial, sans-serif;
+	font-size: 11px;
+	line-height: 16px;
+	color: #000000;
+	font-weight: normal;
+	padding-top: 10px;
+	padding-bottom: 10px;
+}
+
+/*
+** when this stylesheet is used for the Tiny MCE Wysiwyg editor's edit area, we can't
+** use an id=PageContent or class=wiki-content, so we must
+** set the body style to that used for PageContent, and p to that used for wiki-content.
+*/
+
+.monospaceInput {
+    font:12px monospace
+}
+
+.wiki-content p, .commentblock p {
+    margin: 16px 0px 16px 0px;
+    padding: 0px;
+}
+
+.wiki-content-preview {
+    padding: 5px;
+    border-left: 1px solid #7b5d94;
+    border-right: 1px solid #7b5d94;
+}
+
+ul, ol {
+    margin-top: 2px;
+    margin-bottom: 2px;
+    padding-top: 0px;
+    padding-bottom: 0px;
+}
+
+pre {
+    padding: 0px;
+    margin-top: 5px;
+    margin-left: 15px;
+    margin-bottom: 5px;
+    margin-right: 5px;
+    text-align: left;
+}
+
+.helpheading {
+    font-weight: bold;
+    background-color: #D0D9BD;
+        border-bottom: 1px solid #7b5d94;
+        padding: 4px 4px 4px 4px;
+        margin: 0px;
+        margin-top: 10px;
+}
+.helpcontent {
+        padding: 4px 4px 20px 4px;
+    background-color: #f5f7f1;
+}
+
+.code {
+ 	border: 1px dashed #7b5d94;
+    font-size: 11px;
+	font-family: Courier;
+    margin: 10px;
+	line-height: 13px;
+}
+
+.focusedComment {
+    background: #ffffce;
+}
+
+.commentBox, .focusedComment {
+    padding: 10px;
+    margin: 5px 0 5px 0;
+    border: 1px #bbb solid;
+}
+
+.codeHeader {
+    background-color: #f0f0f0;
+ 	border-bottom: 1px dashed #7b5d94;
+    padding: 3px;
+	text-align: center;
+}
+
+.codeContent {
+    text-align: left;
+    background-color: #f0f0f0;
+    padding: 3px;
+}
+
+.preformatted {
+ 	border: 1px dashed #7b5d94;
+    font-size: 11px;
+	font-family: Courier;
+    margin: 10px;
+	line-height: 13px;
+}
+
+.preformattedHeader {
+    background-color: #f0f0f0;
+ 	border-bottom: 1px dashed #7b5d94;
+    padding: 3px;
+	text-align: center;
+}
+
+.preformattedContent {
+    background-color: #f0f0f0;
+    padding: 3px;
+}
+
+.panel {
+ 	border: 1px dashed #7b5d94;
+    margin: 10px;
+    margin-top: 0px;
+}
+
+.panelHeader {
+    background-color: #f0f0f0;
+ 	border-bottom: 1px dashed #7b5d94;
+    padding: 3px;
+	text-align: center;
+}
+
+.panelContent {
+    background-color: #f0f0f0;
+    padding: 5px;
+}
+
+.anonymousAlert {
+    background-color: #f0f0f0;
+ 	border: 1px dashed red;
+    font-size: 11px;
+    padding: 10px 5px 10px 5px;
+    margin: 4px;
+	line-height: 13px;
+}
+
+.lockAlert {
+    background-color: #f0f0f0;
+    width: 50%;
+ 	border: 1px dashed red;
+    font-size: 11px;
+    padding: 10px 5px 10px 5px;
+    margin: 4px;
+	line-height: 13px;
+}
+
+
+.code-keyword {
+  color: #000091;
+  background-color: inherit;
+}
+
+.code-object {
+  color: #910091;
+  background-color: inherit;
+}
+
+.code-quote {
+  color: #009100;
+  background-color: inherit;
+}
+
+.code-comment {
+  color: #808080;
+  background-color: inherit;
+}
+
+
+.code-xml .code-keyword {
+  color: inherit;
+  font-weight: bold;
+}
+
+.code-tag {
+  color: #000091;
+  background-color: inherit;
+}
+
+.breadcrumbs {
+    background-color: #f0f0f0;
+ 	border-color: #7b5d94;
+	border-width: 1px 0px 1px 0px;
+	border-style: solid;
+    font-size: 11px;
+    padding: 3px 0px 3px 0px;
+}
+
+.navmenu {
+    border: 1px solid #ccc;
+}
+
+.menuheading {
+    font-weight: bold;
+    background-color: #f0f0f0;
+ 	border-bottom: 1px solid #7b5d94;
+	padding: 4px 4px 2px 4px;
+}
+
+.menuitems {
+	padding: 4px 4px 20px 4px;
+}
+
+.rightpanel {
+    border-left: 1px solid #ccc;
+    border-bottom: 1px solid #ccc;
+}
+
+#helpheading {
+    text-align: left;
+    font-weight: bold;
+    background-color: #D0D9BD;
+ 	border-bottom: 1px solid #7b5d94;
+	padding: 4px 4px 4px 4px;
+	margin: 0px;
+}
+#helpcontent {
+	padding: 4px 4px 4px 4px;
+    background-color: #f5f7f1;
+}
+.helptab-unselected {
+    font-weight: bold;
+	padding: 5px;
+    background-color: #f5f7f1;
+}
+.helptab-selected {
+    font-weight: bold;
+    background-color: #D0D9BD;
+	padding: 5px;
+}
+.helptabs {
+    margin: 0px;
+    background-color: #f5f7f1;
+	padding: 5px;
+}
+.infopanel-heading {
+    font-weight: bold;
+	padding: 4px 0px 2px 0px;
+}
+
+.pagebody {
+}
+
+.pageheader {
+	padding: 5px 5px 5px 0px;
+ 	border-bottom: 1px solid #7b5d94;
+}
+
+.steptitle {
+	font-size: 18px;
+	font-weight: bold;
+	font-family: Arial, sans-serif;
+	color: #3c4672;
+	margin-bottom: 7px;
+}
+
+.substeptitle {
+    font-size: 12px;
+    font-weight: bold;
+    font-family: Arial, sans-serif;
+    color: #3c4672;
+    margin: 2px 4px 4px 4px;
+    padding: 2px 4px 1px 4px;
+}
+
+.stepdesc {
+    font-family: Verdana, arial, sans-serif;
+	font-size: 11px;
+	line-height: 16px;
+	font-weight: normal;
+    color: #666666;
+    margin-top: 7px;
+    margin-bottom: 7px;
+}
+
+.steplabel {
+    font-weight: bold;
+    margin-right: 4px;
+    color: black;
+    float: left;
+    width: 15%;
+    text-align: right;
+}
+
+.stepfield {
+    background: #f0f0f0;
+    padding: 5px;
+}
+
+.submitButtons{
+    margin-top:5px;
+    text-align:right;
+}
+
+.formtitle {
+	font-size: 12px;
+	font-weight: bold;
+	font-family: Arial, sans-serif;
+	color: #3c4672;
+}
+
+.sectionbottom {
+    border-bottom: 1px solid #7b5d94;
+}
+
+.topRow {
+    border-top: 2px solid #7b5d94;
+}
+
+.tabletitle {
+	font-size: 14px;
+	font-weight: bold;
+	font-family: Arial, sans-serif;
+    padding: 3px 0px 2px 0px;
+    margin: 8px 4px 2px 0px;
+	color: #3c4672;
+	border-bottom: 2px solid #7b5d94;
+}
+.pagesubheading {
+    color: #666666;
+    font-size: 10px;
+    padding: 0px 0px 5px 0px;
+}
+
+HR {
+	color: 7b5d94;
+	height: 1;
+}
+
+A:link, A:visited, A:active, A:hover {
+  color: #1e78b4;
+}
+
+A:hover {
+  text-decoration: underline;
+}
+
+h1 A:link, h1 A:visited, h1 A:active {
+	text-decoration: none;
+}
+
+h1 A:hover {
+    border-bottom: 1px dotted #3c4672;
+}
+
+.wiki-content > :first-child, .commentblock > :first-child {
+    margin-top: 3px;
+}
+
+.logocell {
+    padding: 10px;
+}
+
+input {
+	font-family: verdana, geneva, arial, sans-serif;
+	font-size: 11px;
+	color: #000000;
+}
+
+textarea, textarea.editor {
+	font-family: verdana, geneva, arial, sans-serif;
+	font-size: 11px;
+	color: #333333;
+}
+
+/* use logoSpaceLink instead.
+.spacenametitle {
+	font: 21px/31px Impact, Arial, Helvetica;
+    font-weight: 100;
+    color: #999999;
+	margin: 0px;
+}
+.spacenametitle img {
+  margin: 0 0 -4px 0;
+}
+.spacenametitle a {
+    text-decoration: none;
+    color: #999999;
+}
+.spacenametitle a:visited {
+    text-decoration: none;
+    color: #999999;
+}*/
+
+.spacenametitle-printable {
+	font: 20px/25px Impact, Arial, Helvetica;
+    font-weight: 100;
+    color: #999999;
+	margin: 0px;
+}
+.spacenametitle-printable a {
+    text-decoration: none;
+    color: #999999;
+}
+.spacenametitle-printable a:visited {
+    text-decoration: none;
+    color: #999999;
+}
+
+.blogDate {
+	font-weight: bold;
+	text-decoration: none;
+	color: black;
+}
+
+.blogSurtitle {
+    background: #f0f0f0;
+ 	border: 1px solid #ddd;
+	padding: 3px;
+	margin: 1px 1px 10px 1px;
+}
+
+.blogHeading {
+    font-size: 20px;
+    line-height: normal;
+    font-weight: bold;
+    padding: 0px;
+    margin: 0px;
+}
+
+.blogHeading a {
+   text-decoration: none;
+   color: black;
+}
+
+.endsection {
+	align: right;
+	color: #666666;
+	margin-top: 10px;
+}
+.endsectionleftnav {
+	align: right;
+	color: #666666;
+	margin-top: 10px;
+}
+
+h1 {
+	font-size: 24px;
+	line-height: normal;
+	font-weight: bold;
+	background-color: #f0f0f0;
+	color: #3c4672;
+ 	border-bottom: 1px solid #7b5d94;
+	padding: 2px;
+	margin: 36px 0px 4px 0px;
+}
+
+h2 {
+	font-size: 18px;
+	line-height: normal;
+	font-weight: bold;
+	background-color: #f0f0f0;
+ 	border-bottom: 1px solid #7b5d94;
+	padding: 2px;
+	margin: 27px 0px 4px 0px;
+}
+
+h3 {
+	font-size: 14px;
+	line-height: normal;
+	font-weight: bold;
+	background-color: #f0f0f0;
+	padding: 2px;
+	margin: 21px 0px 4px 0px;
+}
+
+h4 {
+	font-size: 12px;
+	line-height: normal;
+	font-weight: bold;
+	background-color: #f0f0f0;
+	padding: 2px;
+	margin: 18px 0px 4px 0px;
+}
+
+h4.search {
+	font-size: 12px;
+	line-height: normal;
+	font-weight: normal;
+	background-color: #f0f0f0;
+	padding: 4px;
+	margin: 18px 0px 4px 0px;
+}
+
+h5 {
+	font-size: 10px;
+	line-height: normal;
+	font-weight: bold;
+	background-color: #f0f0f0;
+	padding: 2px;
+	margin: 14px 0px 4px 0px;
+}
+
+h6 {
+	font-size: 8px;
+	line-height: normal;
+	font-weight: bold;
+	background-color: #f0f0f0;
+	padding: 2px;
+	margin: 14px 0px 4px 0px;
+}
+
+.smallfont {
+    font-size: 10px;
+}
+.descfont {
+    font-size: 10px;
+    color: #666666;
+}
+.smallerfont {
+    font-size: 9px;
+}
+.smalltext {
+    color: #666666;
+    font-size: 10px;
+}
+.smalltext a {
+    color: #666666;
+}
+.smalltext-blue {
+    color: #7b5d94;
+    font-size: 10px;
+}
+.surtitle {
+    margin-left: 1px;
+    margin-bottom: 5px;
+    font-size: 14px;
+    color: #666666;
+}
+
+/* css hack found here:  http://www.fo3nix.pwp.blueyonder.co.uk/tutorials/css/hacks/ */
+.navItemOver { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c4672; cursor: hand; voice-family: '\'}\''; voice-family:inherit; cursor: pointer;}
+.navItemOver a { color: #ffffff; background-color:#3c4672; text-decoration: none; }
+.navItemOver a:visited { color: #ffffff; background-color:#3c4672; text-decoration: none; }
+.navItemOver a:hover { color: #ffffff; background-color:#3c4672; text-decoration: none; }
+.navItem { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #7b5d94; }
+.navItem a { color: #ffffff; text-decoration: none; }
+.navItem a:hover { color: #ffffff; text-decoration: none; }
+.navItem a:visited { color: #ffffff; text-decoration: none; }
+
+div.padded { padding: 4px; }
+div.thickPadded { padding: 10px; }
+h3.macrolibrariestitle {
+    margin: 0px 0px 0px 0px;
+}
+
+div.centered { text-align: center; margin: 10px; }
+div.centered table {margin: 0px auto; text-align: left; }
+
+.tableview table {
+    margin: 0;
+}
+
+.tableview th {
+    text-align: left;
+    color: #3c4672;
+    font-size: 12px;
+    padding: 5px 0px 0px 5px;
+    border-bottom: 2px solid #7b5d94;
+}
+.tableview td {
+    text-align: left;
+    border-color: #ccc;
+    border-width: 0px 0px 1px 0px;
+    border-style: solid;
+    margin: 0;
+    padding: 4px 10px 4px 5px;
+}
+
+.grid {
+    margin: 2px 0px 5px 0px;
+    border-collapse: collapse;
+}
+.grid th  {
+    border: 1px solid #ccc;
+    padding: 2px 4px 2px 4px;
+    background: #f0f0f0;
+    text-align: center;
+}
+.grid td  {
+    border: 1px solid #ccc;
+    padding: 3px 4px 3px 4px;
+}
+.gridHover {
+	background-color: #f9f9f9;
+}
+
+td.infocell {
+    background-color: #f0f0f0;
+}
+.label {
+	font-weight: bold;
+	color: #3c4672;
+}
+.error {
+	background-color: #fcc;
+}
+
+.errorBox {
+	background-color: #fcc;
+    border: 1px solid #c00;
+    padding: 5px;
+    margin: 5px;
+}
+
+.errorMessage {
+	color: #c00;
+}
+
+.success {
+	background-color: #dfd;
+}
+
+.successBox {
+	background-color: #dfd;
+    border: 1px solid #090;
+    padding: 5px;
+    margin-top:5px;
+    margin-bottom:5px;
+}
+
+blockquote {
+	padding-left: 10px;
+	padding-right: 10px;
+	margin-left: 5px;
+	margin-right: 0px;
+	border-left: 1px solid #7b5d94;
+}
+
+table.confluenceTable
+{
+    margin: 5px;
+    border-collapse: collapse;
+}
+
+#BValContent_Downloads table, #BValContent_People table
+{
+    margin: 5px;
+    border-collapse: collapse;
+}
+
+/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
+table.confluenceTable td.confluenceTd
+{
+    border-width: 1px;
+    border-style: solid;
+    border-color: #ccc;
+    padding: 3px 4px 3px 4px;
+}
+
+#BValContent_Downloads td, #BValContent_People td
+{
+    border-width: 1px;
+    border-style: solid;
+    border-color: #ccc;
+    padding: 3px 4px 3px 4px;
+}
+
+/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */
+table.confluenceTable th.confluenceTh
+{
+    border-width: 1px;
+    border-style: solid;
+    border-color: #ccc;
+    padding: 3px 4px 3px 4px;
+    background-color: #f0f0f0;
+    text-align: center;
+}
+
+#BValContent_Downloads th, #BValContent_People th
+{
+    border-width: 1px;
+    border-style: solid;
+    border-color: #ccc;
+    padding: 3px 4px 3px 4px;
+    background-color: #f0f0f0;
+    text-align: center;
+}
+
+td.confluenceTd
+{
+    border-width: 1px;
+    border-style: solid;
+    border-color: #ccc;
+    padding: 3px 4px 3px 4px;
+}
+
+th.confluenceTh
+{
+    border-width: 1px;
+    border-style: solid;
+    border-color: #ccc;
+    padding: 3px 4px 3px 4px;
+    background-color: #f0f0f0;
+    text-align: center;
+}
+
+DIV.small {
+	font-size: 9px;
+}
+
+H1.pagename {
+	margin-top: 0px;
+}
+
+IMG.inline  {}
+
+.loginform {
+    margin: 5px;
+    border: 1px solid #ccc;
+}
+
+/* The text how the "This is a preview" comment should be shown. */
+.previewnote { text-align: center;
+                font-size: 11px;
+                    color: red; }
+
+/* How the preview content should be shown */
+.previewcontent { background: #E0E0E0; }
+
+/* How the system messages should be shown (DisplayMessage.jsp) */
+.messagecontent { background: #E0E0E0; }
+
+/* How the "This page has been modified..." -comment should be shown. */
+.conflictnote { }
+
+.createlink {
+    color: #000000;
+}
+a.createlink {
+    color: #000000;
+}
+.templateparameter {
+    font-size: 9px;
+    color: darkblue;
+}
+
+.diffadded {
+    background: #ddffdd;
+    padding: 1px 1px 1px 4px;
+	border-left: 4px solid darkgreen;
+}
+.diffdeleted {
+    color: #999;
+    background: #ffdddd;
+    padding: 1px 1px 1px 4px;
+	border-left: 4px solid darkred;
+}
+.diffnochange {
+    padding: 1px 1px 1px 4px;
+	border-left: 4px solid lightgrey;
+}
+.differror {
+    background: brown;
+}
+.diff {
+    font-family: lucida console, courier new, fixed-width;
+	font-size: 12px;
+	line-height: 14px;
+}
+.diffaddedchars {
+    background-color:#99ff99;
+    font-weight:bolder;
+}
+.diffremovedchars {
+    background-color:#ff9999;
+    text-decoration: line-through;
+    font-weight:bolder;
+}
+
+.greybackground {
+    background: #f0f0f0
+}
+
+.greybox {
+ 	border: 1px solid #ddd;
+	padding: 3px;
+	margin: 1px 1px 10px 1px;
+}
+
+.borderedGreyBox {
+    border: 1px solid #cccccc;
+    background-color: #f0f0f0;
+    padding: 10px;
+}
+
+.greyboxfilled {
+ 	border: 1px solid #ddd;
+	padding: 5px;
+	margin: 10px 1px 10px 1px;
+	background: #f0f0f0;
+}
+
+.navBackgroundBox {
+    padding: 5px 5px 5px 5px;
+    font-size: 22px;
+	font-weight: bold;
+	font-family: Arial, sans-serif;
+	color: white;
+    background: #7b5d94;
+    text-decoration: none;
+}
+
+.previewBoxTop {
+	background-color: #f0f0f0;
+    border-width: 1px 1px 0px 1px;
+    border-style: solid;
+    border-color: #7b5d94;
+    padding: 5px;
+    margin: 5px 0px 0px 0px;
+    text-align: center;
+}
+.previewContent {
+    background-color: #fff;
+ 	border-color: #7b5d94;
+	border-width: 0px 1px 0px 1px;
+	border-style: solid;
+	padding: 10px;
+	margin: 0px;
+}
+.previewBoxBottom {
+	background-color: #f0f0f0;
+    border-width: 0px 1px 1px 1px;
+    border-style: solid;
+    border-color: #7b5d94;
+    padding: 5px;
+    margin: 0px 0px 5px 0px;
+    text-align: center;
+}
+
+.functionbox {
+    background-color: #f0f0f0;
+ 	border: 1px solid #7b5d94;
+	padding: 3px;
+	margin: 1px 1px 10px 1px;
+}
+
+.functionbox-greyborder {
+    background-color: #f0f0f0;
+ 	border: 1px solid #ddd;
+	padding: 3px;
+	margin: 1px 1px 10px 1px;
+}
+
+.search-highlight {
+    background-color: #ffffcc;
+}
+
+/* normal (white) background */
+.rowNormal {
+    background-color: #ffffff;
+ }
+
+/* alternate (pale yellow) background */
+.rowAlternate {
+    background-color: #f7f7f7;
+}
+
+/* used in the list attachments table */
+.rowAlternateNoBottomColor {
+    background-color: #f7f7f7;
+}
+
+.rowAlternateNoBottomNoColor {
+}
+
+.rowAlternateNoBottomColor td {
+    border-bottom: 0px;
+}
+
+.rowAlternateNoBottomNoColor td {
+    border-bottom: 0px;
+}
+
+/* row highlight (grey) background */
+.rowHighlight {
+    background-color: #f0f0f0;
+
+}
+
+TD.greenbar {FONT-SIZE: 2px; BACKGROUND: #00df00; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
+TD.redbar {FONT-SIZE: 2px; BACKGROUND: #df0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
+TD.darkredbar {FONT-SIZE: 2px; BACKGROUND: #af0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; }
+
+TR.testpassed {FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING: 0px; }
+TR.testfailed {FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING: 0px; }
+
+.toolbar  {
+    margin: 0px;
+    border-collapse: collapse;
+}
+
+.toolbar td  {
+    border: 1px solid #ccc;
+    padding: 2px 2px 2px 2px;
+    color: #ccc;
+}
+
+td.noformatting {
+    border-width: 0px;
+    border-style: none;
+    text-align: center;
+	padding: 0px;
+}
+
+.commentblock {
+    margin: 12px 0 12px 0;
+}
+
+/*
+ * Divs displaying the license information, if necessary.
+ */
+.license-eval, .license-none, .license-nonprofit {
+    border-top: 1px solid #bbbbbb;
+    text-align: center;
+    font-size: 10px;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+.license-eval, .license-none {
+    background-color: #ffcccc;
+}
+
+.license-eval b, .license-none b {
+    color: #990000
+}
+
+.license-nonprofit {
+    background-color: #ffffff;
+}
+
+/*
+ * The shadow at the bottom of the page between the main content and the
+ * "powered by" section.
+ */
+.bottomshadow {
+    height: 12px;
+    background-image: url("$req.contextPath/images/border/border_bottom.gif");
+    background-repeat: repeat-x;
+}
+
+/*
+ * Styling of the operations box
+ */
+.navmenu .operations li, .navmenu .operations ul {
+    list-style: none;
+    margin-left: 0;
+    padding-left: 0;
+}
+
+.navmenu .operations ul {
+    margin-bottom: 9px;
+}
+
+.navmenu .label {
+    font-weight: inherit;
+}
+
+/*
+ * Styling of ops as a toolbar
+ */
+.toolbar div {
+    display: none;
+}
+
+.toolbar .label {
+    display: none;
+}
+
+.toolbar .operations {
+    display: block;
+}
+
+.toolbar .operations ul {
+    display: inline;
+    list-style: none;
+    margin-left: 10px;
+    padding-left: 0;
+}
+
+.toolbar .operations li {
+    list-style: none;
+    display: inline;
+}
+
+/* list page navigational tabs */
+#foldertab {
+padding: 3px 0px 3px 8px;
+margin-left: 0;
+border-bottom: 1px solid #7b5d94;
+font: bold 11px Verdana, sans-serif;
+}
+
+#foldertab li {
+list-style: none;
+margin: 0;
+display: inline;
+}
+
+#foldertab li a {
+padding: 3px 0.5em;
+margin-left: 3px;
+border: 1px solid #7b5d94;
+border-bottom: none;
+background: #7b5d94;
+text-decoration: none;
+}
+
+#foldertab li a:link { color: #ffffff; }
+#foldertab li a:visited { color: #ffffff; }
+
+#foldertab li a:hover {
+color: #ffffff;
+background: #3c4672;
+border-color: #3c4672;
+}
+
+#foldertab li a.current {
+background: white;
+border-bottom: 1px solid white;
+color: black;
+}
+
+#foldertab li a.current:link { color: black; }
+#foldertab li a.current:visited { color: black; }
+#foldertab li a.current:hover {
+background: white;
+border-bottom: 1px solid white;
+color: black;
+}
+
+/* alphabet list */
+ul#squaretab {
+margin-left: 0;
+padding-left: 0;
+white-space: nowrap;
+font: bold 8px Verdana, sans-serif;
+}
+
+#squaretab li {
+display: inline;
+list-style-type: none;
+}
+
+#squaretab a {
+padding: 2px 6px;
+border: 1px solid #7b5d94;
+}
+
+#squaretab a:link, #squaretab a:visited {
+color: #fff;
+background-color: #7b5d94;
+text-decoration: none;
+}
+
+#squaretab a:hover {
+color: #ffffff;
+background-color: #3c4672;
+border-color: #3c4672;
+text-decoration: none;
+}
+
+#squaretab li a#current {
+background: white;
+color: black;
+}
+
+.blogcalendar * {
+    font-family:verdana, arial, sans-serif;
+    font-size:x-small;
+    font-weight:normal;
+    line-height:140%;
+    padding:2px;
+}
+
+
+table.blogcalendar {
+    border: 1px solid #7b5d94;
+}
+
+.blogcalendar th.calendarhead, a.calendarhead {
+    font-size:x-small;
+    font-weight:bold;
+    padding:2px;
+    text-transform:uppercase;
+    background-color: #7b5d94;
+    color: #ffffff;
+    letter-spacing: .3em;
+    text-transform: uppercase;
+}
+
+.calendarhead:visited {color: white;}
+.calendarhead:active {color: white;}
+.calendarhead:hover {color: white;}
+
+.blogcalendar th {
+    font-size:x-small;
+    font-weight:bold;
+    padding:2px;
+    background-color:#f0f0f0;
+}
+
+.blogcalendar td {
+    font-size:x-small;
+    font-weight:normal;
+}
+
+.searchGroup { padding: 0 0 10px 0; background: #f0f0f0; }
+.searchGroupHeading { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #7b5d94; padding: 2px 4px 1px 4px; }
+.searchItem { padding: 1px 4px 1px 4px; }
+.searchItemSelected { padding: 1px 4px 1px 4px; font-weight: bold; background: #ddd; }
+
+/* permissions page styles */
+.permissionHeading {
+    border-bottom: #bbb; border-width: 0 0 1px 0; border-style: solid; font-size: 16px; text-align: left;
+}
+.permissionTab {
+    border-width: 0 0 0 1px; border-style: solid; background: #7b5d94; color: #ffffff; font-size: 10px;
+}
+.permissionSuperTab {
+    border-width: 0 0 0 1px; border-style: solid; background: #3c4672; color: #ffffff;
+}
+.permissionCell {
+    border-left: #bbb; border-width: 0 0 0 1px; border-style: solid;
+}
+
+/* warning panel */
+.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; }
+/* alert panel */
+.alertPanel { background: #FFCCCC; border:#C00 1px solid; padding: 8px; margin: 10px; }
+
+/* side menu highlighting (e.g. space content screen) */
+.optionPadded { padding: 2px; }
+.optionSelected { background-color: #ffffcc; padding: 2px; border: 1px solid #ddd; margin: -1px; }
+.optionSelected a { font-weight: bold; text-decoration: none; color: black; }
+
+/* information macros */
+.noteMacro { border-style: solid; border-width: 1px; border-color: #F0C000; background-color: #FFFFCE; text-align:left; margin-top: 5px; margin-bottom: 5px}
+.warningMacro { border-style: solid; border-width: 1px; border-color: #c00; background-color: #fcc; text-align:left; margin-top: 5px; margin-bottom: 5px}
+.infoMacro { border-style: solid; border-width: 1px; border-color: #7b5d94; background-color: #D8E4F1; text-align:left; margin-top: 5px; margin-bottom: 5px}
+.tipMacro { border-style: solid; border-width: 1px; border-color: #090; background-color: #dfd; text-align:left; margin-top: 5px; margin-bottom: 5px}
+.informationMacroPadding { padding: 5px 0 0 5px; }
+
+table.infoMacro td, table.warningMacro td, table.tipMacro td, table.noteMacro td, table.sectionMacro td {
+    border: none;
+}
+
+table.sectionMacroWithBorder td.columnMacro { border-style: dashed; border-width: 1px; border-color: #cccccc;}
+
+/* styles for links in the top bar */
+.topBarDiv a:link {color: #ffffff;}
+.topBarDiv a:visited {color: #ffffff;}
+.topBarDiv a:active {color: #ffffff;}
+.topBarDiv a:hover {color: #ffffff;}
+.topBarDiv {color: #ffffff;}
+
+.topBar {
+    background-color: #3c4672;
+}
+
+
+/* styles for extended operations */
+.greyLinks a:link {color: #666666; text-decoration:underline;}
+.greyLinks a:visited {color: #666666; text-decoration:underline;}
+.greyLinks a:active {color: #666666; text-decoration:underline;}
+.greyLinks a:hover {color: #666666; text-decoration:underline;}
+.greyLinks {color: #666666; display:block; padding: 10px}
+
+.logoSpaceLink {color: #999999; text-decoration: none}
+.logoSpaceLink a:link {color: #999999; text-decoration: none}
+.logoSpaceLink a:visited {color: #999999; text-decoration: none}
+.logoSpaceLink a:active {color: #999999; text-decoration: none}
+.logoSpaceLink a:hover {color: #3c4672; text-decoration: none}
+
+/* basic panel (basicpanel.vmd) style */
+.basicPanelContainer {border: 1px solid #7b5d94; margin-top: 2px; margin-bottom: 8px; width: 100%}
+.basicPanelTitle {padding: 5px; margin: 0px; background-color: #f0f0f0; color: black; font-weight: bold;}
+.basicPanelBody {padding: 5px; margin: 0px}
+
+.separatorLinks a:link {color: white}
+.separatorLinks a:visited {color: white}
+.separatorLinks a:active {color: white}
+
+.greynavbar {background-color: #f0f0f0; border-top: 1px solid #7b5d94; margin-top: 2px}
+
+div.headerField {
+    float: left;
+    width: auto;
+    height: 100%;
+}
+
+.headerFloat {
+    margin-left: auto;
+    width: 50%;
+}
+
+.headerFloatLeft {
+    float: left;
+    margin-right: 20px;
+    margin-bottom: 10px;
+}
+
+#headerRow {
+    padding: 10px;
+}
+
+div.license-personal {
+   background-color: #3c4672;
+   color: #ffffff;
+}
+
+div.license-personal a {
+   color: #ffffff;
+}
+
+.greyFormBox {
+    border: 1px solid #cccccc;
+    padding: 5px;
+}
+
+/* IE automatically adds a margin before and after form tags. Use this style to remove that */
+.marginlessForm {
+    margin: 0px;
+}
+
+.openPageHighlight {
+    background-color: #ffffcc;
+    padding: 2px;
+    border: 1px solid #ddd;
+}
+
+.editPageInsertLinks, .editPageInsertLinks a
+{
+    color: #666666;
+    font-weight: bold;
+    font-size: 10px;
+}
+
+/* Style for label heatmap. */
+.top10 a {
+    font-weight: bold;
+    font-size: 2em;
+    color: #3c4672;
+}
+.top25 a {
+    font-weight: bold;
+    font-size: 1.6em;
+    color: #3c4672;
+}
+.top50 a {
+    font-size: 1.4em;
+    color: #3c4672;
+}
+.top100 a {
+    font-size: 1.2em;
+    color: #3c4672;
+}
+
+.heatmap {
+    list-style:none;
+    width: 95%;
+    margin: 0px auto;
+}
+
+.heatmap a {
+    text-decoration:none;
+}
+
+.heatmap a:hover {
+    text-decoration:underline;
+}
+
+.heatmap li {
+    display: inline;
+}
+
+.minitab {
+padding: 3px 0px 3px 8px;
+margin-left: 0;
+margin-top: 1px;
+margin-bottom: 0px;
+border-bottom: 1px solid #7b5d94;
+font: bold 9px Verdana, sans-serif;
+text-decoration: none;
+float:none;
+}
+.selectedminitab {
+padding: 3px 0.5em;
+margin-left: 3px;
+margin-top: 1px;
+border: 1px solid #7b5d94;
+background: white;
+border-bottom: 1px solid white;
+color: #000000;
+text-decoration: none;
+}
+.unselectedminitab {
+padding: 3px 0.5em;
+margin-left: 3px;
+margin-top: 1px;
+border: 1px solid #7b5d94;
+border-bottom: none;
+background: #7b5d94;
+color: #ffffff;
+text-decoration: none;
+}
+
+a.unselectedminitab:hover {
+color: #ffffff;
+background: #3c4672;
+border-color: #3c4672;
+}
+
+a.unselectedminitab:link { color: white; }
+a.unselectedminitab:visited { color: white; }
+
+a.selectedminitab:link { color: black; }
+a.selectedminitab:visited { color: black; }
+
+.linkerror { background-color: #fcc;}
+
+a.labelOperationLink:link {text-decoration: underline}
+a.labelOperationLink:active {text-decoration: underline}
+a.labelOperationLink:visited {text-decoration: underline}
+a.labelOperationLink:hover {text-decoration: underline}
+
+a.newLabel:link {background-color: #ddffdd}
+a.newLabel:active {background-color: #ddffdd}
+a.newLabel:visited {background-color: #ddffdd}
+a.newLabel:hover {background-color: #ddffdd}
+
+ul.square {list-style-type: square}
+
+.inline-control-link {
+    background: #1e78b4;
+    font-size: 9px;
+    color: white;
+    padding: 2px;
+    text-transform: uppercase;
+    text-decoration: none;
+}
+
+
+.inline-control-link a:link {text-decoration: none}
+.inline-control-link a:active {text-decoration: none}
+.inline-control-link a:visited {text-decoration: none}
+.inline-control-link a:hover {text-decoration: none}
+
+.inline-control-link {
+    background: #1e78b4;
+    font-size: 9px;
+    color: white;
+    padding: 2px;
+    text-transform: uppercase;
+    text-decoration: none;
+    cursor: pointer;
+}
+
+div.auto_complete {
+    width: 350px;
+    background: #fff;
+}
+div.auto_complete ul {
+    border: 1px solid #888;
+    margin: 0;
+    padding: 0;
+    width: 100%;
+    list-style-type: none;
+}
+div.auto_complete ul li {
+    margin: 0;
+    padding: 3px;
+}
+div.auto_complete ul li.selected {
+    background-color: #ffb;
+}
+div.auto_complete ul strong.highlight {
+    color: #800;
+    margin: 0;
+    padding: 0;
+}
+
+/******* Edit Page Styles *******/
+.toogleFormDiv{
+    border:1px solid #A7A6AA;
+    background-color:white;
+    padding:5px;
+    margin-top: 5px;
+}
+
+.toogleInfoDiv{
+    border:1px solid #A7A6AA;
+    background-color:white;
+    display:none;
+    padding:5px;
+    margin-top: 10px;
+}
+
+.inputSection{
+    margin-bottom:20px;
+}
+
+#editBox{
+   border:1px solid lightgray;
+   background-color:#F0F0F0;
+}
+
+/******* Left Navigation Theme Styles ********/
+.leftnav li a {
+    text-decoration:none;
+    color:white;
+    margin:0px;
+    display:block;
+    padding:2px;
+    padding-left:5px;
+    background-color: #7b5d94;
+    border-top:1px solid #7b5d94;
+}
+
+.leftnav li a:active {color:white;}
+.leftnav li a:visited {color:white;}
+.leftnav li a:hover {background-color: #3c4672; color:white;}
+

Propchange: bval/cms-site/content/resources/site.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: bval/cms-site/content/resources/space.js
URL: http://svn.apache.org/viewvc/bval/cms-site/content/resources/space.js?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/resources/space.js (added)
+++ bval/cms-site/content/resources/space.js Fri Mar  9 20:14:15 2012
@@ -0,0 +1,37 @@
+
+var hide = null;
+var show = null;
+var children = null;
+
+function init() {
+  /* Search form initialization */
+  var form = document.forms['search'];
+  if (form != null) {
+    form.elements['domains'].value = location.hostname;
+    form.elements['sitesearch'].value = location.hostname;
+  }
+
+  /* Children initialization */
+  hide = document.getElementById('hide');
+  show = document.getElementById('show');
+  children = document.all != null ?
+             document.all['children'] :
+             document.getElementById('children');
+  if (children != null) {
+    children.style.display = 'none';
+    show.style.display = 'inline';
+    hide.style.display = 'none';
+  }
+}
+
+function showChildren() {
+  children.style.display = 'block';
+  show.style.display = 'none';
+  hide.style.display = 'inline';
+}
+
+function hideChildren() {
+  children.style.display = 'none';
+  show.style.display = 'inline';
+  hide.style.display = 'none';
+}

Propchange: bval/cms-site/content/resources/space.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: bval/cms-site/content/roadmap.cwiki
URL: http://svn.apache.org/viewvc/bval/cms-site/content/roadmap.cwiki?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/roadmap.cwiki (added)
+++ bval/cms-site/content/roadmap.cwiki Fri Mar  9 20:14:15 2012
@@ -0,0 +1,3 @@
+- Track and implement Bean Validation specification updates.
+- Discuss and implement sensible, and wherever possible, broadly compatible, Apache BVal and Bean Validation extensions.
+- TBD
\ No newline at end of file

Added: bval/cms-site/content/roadmap.mdtext
URL: http://svn.apache.org/viewvc/bval/cms-site/content/roadmap.mdtext?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/roadmap.mdtext (added)
+++ bval/cms-site/content/roadmap.mdtext Fri Mar  9 20:14:15 2012
@@ -0,0 +1,5 @@
+Title: Roadmap
+- Track and implement Bean Validation specification updates.
+- Discuss and implement sensible, and wherever possible, broadly
+compatible, Apache BVal and Bean Validation extensions.
+- TBD

Added: bval/cms-site/content/samples.cwiki
URL: http://svn.apache.org/viewvc/bval/cms-site/content/samples.cwiki?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/samples.cwiki (added)
+++ bval/cms-site/content/samples.cwiki Fri Mar  9 20:14:15 2012
@@ -0,0 +1,24 @@
+We'll use this page to publicize Bean Validation samples from our project, other projects at Apache, and other external projects that use a ASL 2.0 friendly license.....
+
+h3. bval-samples
+
+[BeanValidation:Obtaining a validator]
+
+h3. Apache OpenJPA
+
+The Apache OpenJPA community has created a [Bean Validation Primer|http://openjpa.apache.org/bean-validation-primer.html] section showing how JPA2 and Bean Validation can be used.  Currently, this includes an [image-gallery|http://svn.apache.org/repos/asf/openjpa/trunk/openjpa-examples/image-gallery/] sample which must be built from source.
+
+Additional JPA2 and Bean Validation integration tests can be found under the [openjpa-integration-validation|http://svn.apache.org/repos/asf/openjpa/trunk/openjpa-integration/validation/] component in the OpenJPA source tree.
+
+h3. Apache Geronimo
+
+The Apache Geronimo community is working on a 3.0 release to deliver a Java EE 6 application server, which will include Apache BVal.  For now, no samples have been created for Bean Validation, but keep checking the latest [Geronimo Samples|http://svn.apache.org/repos/asf/geronimo/samples/trunk/samples/] source tree....
+
+h3. Apache MyFaces
+
+The Apache MyFaces Core project implements the JSF 2.0 specification, which includes support for using Bean Validation.  Please check back later for updated samples....
+
+h3. Apache TomEE
+
+The [Apache OpenEJB|http://openejb.apache.org] community has created TomEE, an all-Apache Java EE 6 Web Profile certified stack which includes Apache BVal.
+\\
\ No newline at end of file

Added: bval/cms-site/content/samples.mdtext
URL: http://svn.apache.org/viewvc/bval/cms-site/content/samples.mdtext?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/samples.mdtext (added)
+++ bval/cms-site/content/samples.mdtext Fri Mar  9 20:14:15 2012
@@ -0,0 +1,36 @@
+Title: Samples
+Here we have collected some Bean Validation samples from our project,
+other projects at Apache, and other external projects that use a ASL 2.0
+friendly license. Enjoy!
+
+<a name="Samples-bval-samples"></a>
+### bval-samples
+
+[Obtaining a validator](/obtaining-a-validator.html)
+
+<a name="Samples-ApacheOpenJPA"></a>
+### Apache OpenJPA
+
+The Apache OpenJPA community has created a [Bean Validation Primer](http://openjpa.apache.org/bean-validation-primer.html)
+section showing how JPA2 and Bean Validation can be used.  Currently, this
+includes an [image-gallery](http://svn.apache.org/repos/asf/openjpa/trunk/openjpa-examples/image-gallery/)
+sample which must be built from source.
+
+Additional JPA2 and Bean Validation integration tests can be found under
+the [openjpa-integration-validation](http://svn.apache.org/repos/asf/openjpa/trunk/openjpa-integration/validation/)
+ component in the OpenJPA source tree.
+
+<a name="Samples-ApacheGeronimo"></a>
+### Apache Geronimo
+
+The Apache Geronimo community is working on a 3.0 release to deliver a Java
+EE 6 application server, which will include Apache BVal.  For now, no
+samples have been created for Bean Validation, but keep checking the latest [Geronimo Samples](http://svn.apache.org/repos/asf/geronimo/samples/trunk/samples/)
+ source tree....
+
+<a name="Samples-ApacheMyFaces"></a>
+### Apache MyFaces
+
+The Apache MyFaces Core project implements the JSF 2.0 specification, which
+includes support for using Bean Validation.  Please check back later for
+updated samples....

Added: bval/cms-site/content/site.cwiki
URL: http://svn.apache.org/viewvc/bval/cms-site/content/site.cwiki?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/site.cwiki (added)
+++ bval/cms-site/content/site.cwiki Fri Mar  9 20:14:15 2012
@@ -0,0 +1 @@
+{children}
\ No newline at end of file

Added: bval/cms-site/content/site.mdtext
URL: http://svn.apache.org/viewvc/bval/cms-site/content/site.mdtext?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/site.mdtext (added)
+++ bval/cms-site/content/site.mdtext Fri Mar  9 20:14:15 2012
@@ -0,0 +1,2 @@
+Title: Site
+{children}

Added: bval/cms-site/content/sitemap.cwiki
URL: http://svn.apache.org/viewvc/bval/cms-site/content/sitemap.cwiki?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/sitemap.cwiki (added)
+++ bval/cms-site/content/sitemap.cwiki Fri Mar  9 20:14:15 2012
@@ -0,0 +1 @@
+{children:all=true|page=Index}
\ No newline at end of file

Added: bval/cms-site/content/sitemap.html
URL: http://svn.apache.org/viewvc/bval/cms-site/content/sitemap.html?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/sitemap.html (added)
+++ bval/cms-site/content/sitemap.html Fri Mar  9 20:14:15 2012
@@ -0,0 +1,2 @@
+{% include "single_narrative.html" %}
+

Propchange: bval/cms-site/content/sitemap.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: bval/cms-site/content/sitemap.mdtext
URL: http://svn.apache.org/viewvc/bval/cms-site/content/sitemap.mdtext?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/sitemap.mdtext (added)
+++ bval/cms-site/content/sitemap.mdtext Fri Mar  9 20:14:15 2012
@@ -0,0 +1,2 @@
+Title: SiteMap
+{children:all=true|page=Index}

Added: bval/cms-site/content/version-info.cwiki
URL: http://svn.apache.org/viewvc/bval/cms-site/content/version-info.cwiki?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/version-info.cwiki (added)
+++ bval/cms-site/content/version-info.cwiki Fri Mar  9 20:14:15 2012
@@ -0,0 +1,39 @@
+h3. Command-line
+
+To determine the Apache BVal version and revision you are using, run the following command from a cmdline:
+{noformat}
+java -jar ./bval-core-0.1-incubating-SNAPSHOT.jar
+{noformat}
+Which should display the project version, svn revision and your local runtime environment, like:
+{code}
+Project: Apache BVal
+Version: 0.1-incubating-SNAPSHOT
+Revision: 943245
+
+os.name: Mac OS X
+os.version: 10.6.3
+os.arch: x86_64
+
+java.version: 1.6.0_17
+java.vendor: Apple Inc.
+
+java.class.path:
+	./bval-core-0.1-incubating-SNAPSHOT.jar
+
+user.dir: /Users/xxxxx/validation/apache-bval/trunk/bval-core/target
+{code}
+
+
+h3. Programmatic
+
+For programmatic access, take a look at the public getters in:
+{noformat}
+bval-core/src/main/java/org/apache/bval/util/BValVersion.java
+{noformat}
+including the following, which will returns the strings above:
+{code}
+getName() == "Apache BVal"
+getVersion() == "0.1-incubating-SNAPSHOT"
+getRevision() == "943245"
+{code}
+

Added: bval/cms-site/content/version-info.mdtext
URL: http://svn.apache.org/viewvc/bval/cms-site/content/version-info.mdtext?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/content/version-info.mdtext (added)
+++ bval/cms-site/content/version-info.mdtext Fri Mar  9 20:14:15 2012
@@ -0,0 +1,44 @@
+Title: Version Info
+<a name="VersionInfo-Command-line"></a>
+### Command-line
+
+To determine the Apache BVal version and revision you are using, run the
+following command from a cmdline:
+
+    java -jar ./bval-core-0.1-incubating-SNAPSHOT.jar
+
+Which should display the project version, svn revision and your local
+runtime environment, like:
+
+    Project: Apache BVal
+    Version: 0.1-incubating-SNAPSHOT
+    Revision: 943245
+    
+    os.name: Mac OS X
+    os.version: 10.6.3
+    os.arch: x86_64
+    
+    java.version: 1.6.0_17
+    java.vendor: Apple Inc.
+    
+    java.class.path:
+    	./bval-core-0.1-incubating-SNAPSHOT.jar
+    
+    user.dir: /Users/xxxxx/validation/apache-bval/trunk/bval-core/target
+
+
+
+<a name="VersionInfo-Programmatic"></a>
+### Programmatic
+
+For programmatic access, take a look at the public getters in:
+
+    bval-core/src/main/java/org/apache/bval/util/BValVersion.java
+
+including the following, which will returns the strings above:
+
+    getName() == "Apache BVal"
+    getVersion() == "0.1-incubating-SNAPSHOT"
+    getRevision() == "943245"
+
+

Added: bval/cms-site/lib/path.pm
URL: http://svn.apache.org/viewvc/bval/cms-site/lib/path.pm?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/lib/path.pm (added)
+++ bval/cms-site/lib/path.pm Fri Mar  9 20:14:15 2012
@@ -0,0 +1,39 @@
+package path;
+
+# taken from django's url.py
+
+our @patterns = (
+	[qr!\.mdtext$!, normal_page => { template => "standard_markdown.html" }],
+
+#	[qr!/sitemap\.html$!, sitemap => { headers => { title => "Sitemap" }} ],
+
+) ;
+
+# for specifying interdependencies between files
+
+our %dependencies = (
+#    "/sitemap.html" => [ grep s!^content!!, glob "content/*.mdtext" ],
+);
+
+1;
+
+=head1 LICENSE
+
+           Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+
+             http://www.apache.org/licenses/LICENSE-2.0
+
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.
+
+

Added: bval/cms-site/lib/view.pm
URL: http://svn.apache.org/viewvc/bval/cms-site/lib/view.pm?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/lib/view.pm (added)
+++ bval/cms-site/lib/view.pm Fri Mar  9 20:14:15 2012
@@ -0,0 +1,80 @@
+package view;
+
+#
+# BUILD CONSTRAINT:  all views must return $content, $extension.
+# additional return values (as seen below) are optional.  However,
+# careful use of symlinks and dependency management in path.pm can
+# resolve most issues with this constraint.
+#
+
+use strict;
+use warnings;
+use Dotiac::DTL qw/Template/;
+use Dotiac::DTL::Addon::markup;
+use ASF::Util qw/read_text_file shuffle/;
+use File::Temp qw/tempfile/;
+use LWP::Simple;
+
+push @Dotiac::DTL::TEMPLATE_DIRS, "templates";
+
+# This is most widely used view.  It takes a
+# 'template' argument and a 'path' argument.
+# Assuming the path ends in foo.mdtext, any files
+# like foo.page/bar.mdtext will be parsed and
+# passed to the template in the "bar" (hash)
+# variable.
+
+sub normal_page {
+    my %args = @_;
+    my $file = "content$args{path}";
+    my $template = $args{template};
+    $args{path} =~ s/\.mdtext$/\.html/;
+    $args{breadcrumbs} = breadcrumbs($args{path});
+
+    read_text_file $file, \%args;
+
+    my $page_path = $file;
+    $page_path =~ s/\.[^.]+$/.page/;
+    if (-d $page_path) {
+        for my $f (grep -f, glob "$page_path/*.mdtext") {
+            $f =~ m!/([^/]+)\.mdtext$! or die "Bad filename: $f\n";
+            $args{$1} = {};
+            read_text_file $f, $args{$1};
+        }
+    }
+
+    return Dotiac::DTL::Template($template)->render(\%args), html => \%args;
+}
+
+sub breadcrumbs {
+    my @path = split m!/!, shift;
+    pop @path;
+    my @rv;
+    my $relpath = "";
+    for (@path) {
+        $relpath .= "$_/";
+        $_ ||= "Home";
+        push @rv, qq(<a href="$relpath">\u$_</a>);
+    }
+    return join "&nbsp;&raquo&nbsp;", @rv;
+}
+
+
+=head1 LICENSE
+
+           Licensed to the Apache Software Foundation (ASF) under one
+           or more contributor license agreements.  See the NOTICE file
+           distributed with this work for additional information
+           regarding copyright ownership.  The ASF licenses this file
+           to you under the Apache License, Version 2.0 (the
+           "License"); you may not use this file except in compliance
+           with the License.  You may obtain a copy of the License at
+
+             http://www.apache.org/licenses/LICENSE-2.0
+
+           Unless required by applicable law or agreed to in writing,
+           software distributed under the License is distributed on an
+           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+           KIND, either express or implied.  See the License for the
+           specific language governing permissions and limitations
+           under the License.

Added: bval/cms-site/templates/banner.cwiki
URL: http://svn.apache.org/viewvc/bval/cms-site/templates/banner.cwiki?rev=1299018&view=auto
==============================================================================
--- bval/cms-site/templates/banner.cwiki (added)
+++ bval/cms-site/templates/banner.cwiki Fri Mar  9 20:14:15 2012
@@ -0,0 +1,21 @@
+{html:output=html|noPanel=true}
+      <table border="0" cellpadding="0" cellspacing="0" width="100%">
+        <tr>
+          <td align="left" nowrap="">
+<a href="http://incubator.apache.org/bval/" title="Apache BVal">
+            <img border="0" src="http://people.apache.org/~dwoods/bval/images/check3_71x75.png">
+</a>
+          </td>
+          <td align="left" class="topbardiv" nowrap="">
+<a href="http://incubator.apache.org/bval/" title="Apache BVal">
+            <img border="0" src="http://people.apache.org/~dwoods/bval/images/bval_logo.png">
+</a>
+          </td>
+          <td align="right" nowrap="">
+<a href="http://www.apache.org/" title="The Apache Software Foundation">
+            <img border="0" src="http://www.apache.org/images/feather-small.gif">
+</a>
+          </td>
+        </tr> 
+      </table>
+{html}
\ No newline at end of file



Mime
View raw message