http://git-wip-us.apache.org/repos/asf/sling-site/blob/3a935d04/documentation/development/release-management.html ---------------------------------------------------------------------- diff --git a/documentation/development/release-management.html b/documentation/development/release-management.html index 973003f..972b40c 100644 --- a/documentation/development/release-management.html +++ b/documentation/development/release-management.html @@ -2,22 +2,22 @@ <head> <meta charset="utf-8"/> <title>Apache Sling on JBake</title> - <link rel="stylesheet" href="/res/css/site.css"/> - <link rel="stylesheet" href="/res/css/codehilite.css"/> + <link rel="stylesheet" href="/ng/res/css/site.css"/> + <link rel="icon" href="/ng/res/favicon.ico"/> <div class="title"> <div class="logo"> <a href="http://sling.apache.org"> - <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/> + <img border="0" alt="Apache Sling" src="/ng/res/logos/sling.svg"/> </a> </div><div class="header"> <a href="http://www.apache.org"> - <img border="0" alt="Apache" src="/res/logos/apache.png"/> + <img border="0" alt="Apache" src="/ng/res/logos/apache.png"/> </a> </div> </div> </head><body> <div class="menu"> - <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials & How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong> + <strong><a href="/ng/documentation.html">Documentation</a></strong><br/><a href="/ng/documentation/getting-started.html">Getting Started</a><br/><a href="/ng/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/ng/documentation/development.html">Development</a><br/><a href="/ng/documentation/bundles.html">Bundles</a><br/><a href="/ng/documentation/tutorials-how-tos.html">Tutorials & How-Tos</a><br/><a href="/ng/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/ng/apidocs/sling9/index.html">Sling 9</a><br/><a href="/ng/apidocs/sling8/index.html">Sling 8</a><br/><a href="/ng/apidocs/sling7/index.html">Sling 7</a><br/><a href="/ng/apidocs/sling6/index.html">Sling 6</a><br/><a href="/ng/apidocs/sling5/index.html">Sling 5</a><br/><a href="/ng/javadoc-io.html">Archive at javadoc.io</a><br/><p></p ><strong>Project info</strong><br/><a >href="/ng/downloads.cgi">Downloads</a><br/><a >href="http://www.apache.org/licenses/">License</a><br/><a >href="/ng/contributing.html">Contributing</a><br/><a >href="/ng/news.html">News</a><br/><a href="/ng/links.html">Links</a><br/><a >href="/ng/project-information.html">Project Information</a><br/><a >href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a >href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a >href="/ng/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a > href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a >href="git://git.apache.org/sling.git">Git</a><br/><a >href="https://github.com/apache/sling">Github >Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a >href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a >href="http://www.apache.org/foundation/sponsorship.html">Become a >Sponsor</a><br/><a href="https://donate.apache. org/">Donate!</a><br/><a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/ng/sitemap.html">Site Map</a></strong> </div> <div class="main"> <div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Release Management</h1></header><p>Sling releases (and SNAPSHOTS) are deployed to the <a href="http://repository.apache.org">Nexus repository</a> instead of the traditional deployment via the Maven 2 mirrors source on <code>people.apache.org</code>. This makes the release process much leaner and simpler. In addtion we can benefit from the Apache Parent POM 6, which has most of the release profile setup built-in.</p> <p>Most of the hard work of preparing and deploying the release is done by Maven.</p> @@ -30,69 +30,113 @@ <li>See Appendix B for Maven and SCM credentials</li> </ul> <p><em>Note</em>: Listing the Apache servers in the <code>settings.xml</code> file also requires adding the password to that file. Starting with Maven 2.1 this password may be encrypted and needs not be give in plaintext. Please refer to <a href="http://maven.apache.org/guides/mini/guide-encryption.html">Password Encryption</a> for more information.</p> -<p>In the past we staged release candidates on our local machines using a semi-manual process. Now that we inherit from the Apache parent POM version 6, a repository manager will automatically handle staging for you. This means you now only need to specify your GPG passphrase in the release profile of your <code>${user.home}/.m2/settings.xml</code>:</p> -<p><settings> ... <profiles> <profile> <id>apache-release</id> <properties> <gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase> </properties> </profile> </profiles> ... </settings></p> +<p>In the past we staged release candidates on our local machines using a semi-manual process. Now that we inherit from the Apache parent POM version 6, a repository manager will automatically handle staging for you. This means you now only need to specify your GPG passphrase in the release profile of your <code>$\{user.home\}/.m2/settings.xml</code>:</p> +<pre><code><settings> + ... + <profiles> + <profile> + <id>apache-release</id> + <properties> + <gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase> + </properties> + </profile> + </profiles> + ... +</settings> +</code></pre> <p>Everything else has been configured in the latest Sling Parent POM:</p> -<p><parent> <groupId>org.apache.sling</groupId> <artifactId>sling</artifactId> <version>6</version> </parent></p> +<pre><code><parent> + <groupId>org.apache.sling</groupId> + <artifactId>sling</artifactId> + <version>6</version> +</parent> +</code></pre> <h2>Staging the Release Candidates</h2> <p>First prepare your POMs for release:</p> <ol> <li>Make sure there are no snapshots in the POMs to be released. In case you rely on a release version which is not yet promoted, you have to temporarily switch that dependency version to the release version. This might break the Jenkins CI build though, as the staged version is not yet visible to Jenkins, so revert this change after you have staged the release candidate.</li> - <li>Check that your POMs will not lose content when they are rewritten during the release process</li> -</ol> -<p>$ mvn release:prepare -DdryRun=true</p> -<p>Compare the original <code>pom.xml</code> with the one called <code>pom.xml.tag</code> to see if the license or any other info has been removed. This has been known to happen if the starting <code><project></code> tag is not on a single line. The only things that should be different between these files are the <code><version></code> and <code><scm></code> elements. If there are any other changes, you must fix the original <code>pom.xml</code> file and commit before proceeding with the release.</p> -<ol> - <li>Publish a snapshot</li> -</ol> -<p>$ mvn deploy ... [INFO] [deploy:deploy] [INFO] Retrieving previous build number from apache.snapshots.https ...</p> -<ul> - <li>If you experience an error during deployment like a HTTP 401 check your settings for the required server entries as outlined in the <em>Prerequisites</em></li> - <li>Make sure the generated artifacts respect the Apache release <a href="http://www.apache.org/dev/release.html">rules</a>: NOTICE and LICENSE files should be present in the META-INF directory within the jar. For -sources artifacts, be sure that your POM does not use the maven-source-plugin:2.0.3 which is broken. The recommended version at this time is 2.0.4</li> - <li>You should verify the deployment under the <a href="https://repository.apache.org/content/groups/snapshots/org/apache/sling">snapshot</a> repository on Apache</li> -</ul> -<ol> - <li>Prepare the release</li> -</ol> -<p>$ mvn release:clean $ mvn release:prepare</p> -<ul> - <li>Preparing the release will create the new tag in SVN, automatically checking in on your behalf</li> - <li>If you get a build failure because of an SVN commit problem (namely <em>The specified baseline is not the latest baseline, so it may not be checked out.</em>), just repeat the <code>mvn release:prepare</code> command until SVN is happy. This is based on a known timing issue when using the European SVN mirror.</li> -</ul> -<ol> - <li>Stage the release for a vote</li> -</ol> -<p>$ mvn release:perform</p> -<ul> - <li>The release will automatically be inserted into a temporary staging repository for you, see the Nexus <a href="http://www.sonatype.com/books/nexus-book/reference/staging.html">staging documentation</a> for full details</li> - <li>You can continue to use <code>mvn release:prepare</code> and <code>mvn release:perform</code> on other sub-projects as necessary on the same machine and they will be combined in the same staging repository - this is useful when making a release of multiple Sling modules.</li> -</ul> -<ol> - <li>Close the staging repository:</li> -</ol> -<ul> - <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> using your Apache SVN credentials. Click on <em>Staging</em> on the left. Then click on <em>org.apache.sling</em> in the list of repositories. In the panel below you should see an open repository that is linked to your username and IP. Right click on this repository and select <em>Close</em>. This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything</li> -</ul> -<ol> - <li>Verify the staged artifacts</li> + <li>Check that your POMs will not lose content when they are rewritten during the release process + <pre><code>$ mvn release:prepare -DdryRun=true +</code></pre> + <p>Compare the original <code>pom.xml</code> with the one called <code>pom.xml.tag</code> to see if the license or any other info has been removed. This has been known to happen if the starting <code><project></code> tag is not on a single line. The only things that should be different between these files are the <code><version></code> and <code><scm></code> elements. If there are any other changes, you must fix the original <code>pom.xml</code> file and commit before proceeding with the release.</p> + </li> + <li> + <p>Publish a snapshot</p> + <pre><code>$ mvn deploy +... +[INFO] [deploy:deploy] +[INFO] Retrieving previous build number from apache.snapshots.https +... +</code></pre> + <ul> + <li>If you experience an error during deployment like a HTTP 401 check your settings for the required server entries as outlined in the <em>Prerequisites</em></li> + <li>Make sure the generated artifacts respect the Apache release <a href="http://www.apache.org/dev/release.html">rules</a>: NOTICE and LICENSE files should be present in the META-INF directory within the jar. For -sources artifacts, be sure that your POM does not use the maven-source-plugin:2.0.3 which is broken. The recommended version at this time is 2.0.4</li> + <li>You should verify the deployment under the <a href="https://repository.apache.org/content/groups/snapshots/org/apache/sling">snapshot</a> repository on Apache</li> + </ul> + </li> + <li> + <p>Prepare the release</p> + <pre><code>$ mvn release:clean +$ mvn release:prepare +</code></pre> + <ul> + <li>Preparing the release will create the new tag in SVN, automatically checking in on your behalf</li> + <li>If you get a build failure because of an SVN commit problem (namely <em>The specified baseline is not the latest baseline, so it may not be checked out.</em>), just repeat the <code>mvn release:prepare</code> command until SVN is happy. This is based on a known timing issue when using the European SVN mirror.</li> + </ul> + </li> + <li> + <p>Stage the release for a vote</p> + <pre><code>$ mvn release:perform +</code></pre> + <ul> + <li>The release will automatically be inserted into a temporary staging repository for you, see the Nexus <a href="http://www.sonatype.com/books/nexus-book/reference/staging.html">staging documentation</a> for full details</li> + <li>You can continue to use <code>mvn release:prepare</code> and <code>mvn release:perform</code> on other sub-projects as necessary on the same machine and they will be combined in the same staging repository - this is useful when making a release of multiple Sling modules.</li> + </ul> + </li> + <li> + <p>Close the staging repository:</p> + <ul> + <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> using your Apache SVN credentials. Click on <em>Staging</em> on the left. Then click on <em>org.apache.sling</em> in the list of repositories. In the panel below you should see an open repository that is linked to your username and IP. Right click on this repository and select <em>Close</em>. This will close the repository from future deployments and make it available for others to view. If you are staging multiple releases together, skip this step until you have staged everything</li> + </ul> + </li> + <li> + <p>Verify the staged artifacts</p> + <ul> + <li>If you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If you don't like the content of the repository, right click your repository and choose <em>Drop</em>. You can then rollback your release (see <em>Canceling the Release</em>) and repeat the process</li> + <li>Note the staging repository URL, especially the number at the end of the URL. You will need this in your vote email</li> + </ul> + </li> </ol> -<ul> - <li>If you click on your repository, a tree view will appear below. You can then browse the contents to ensure the artifacts are as you expect them. Pay particular attention to the existence of *.asc (signature) files. If you don't like the content of the repository, right click your repository and choose <em>Drop</em>. You can then rollback your release (see <em>Canceling the Release</em>) and repeat the process -</li> - <li>Note the staging repository URL, especially the number at the end of the URL. You will need this in your vote email</li> -</ul> <h2>Starting the Vote</h2> <p>Propose a vote on the dev list with the closed issues, the issues left, and the staging repository - for example:</p> -<p>To: "Sling Developers List" <a href="mailto:dev@sling.apache.org">dev@sling.apache.org</a> Subject: [VOTE] Release Apache Sling ABC version X.Y.Z</p> -<p>Hi,</p> -<p>We solved N issues in this release: https://issues.apache.org/jira/browse/SLING/fixforversion/...</p> -<p>There are still some outstanding issues: https://issues.apache.org/jira/browse/SLING/component/...</p> -<p>Staging repository: https://repository.apache.org/content/repositories/orgapachesling-[YOUR REPOSITORY ID]/</p> -<p>You can use this UNIX script to download the release and verify the signatures: http://svn.apache.org/repos/asf/sling/trunk/check_staged_release.sh</p> -<p>Usage: sh check_staged_release.sh [YOUR REPOSITORY ID] /tmp/sling-staging</p> -<p>Please vote to approve this release:</p> -<p>[ ] +1 Approve the release [ ] 0 Don't care [ ] -1 Don't release, because ...</p> -<p>This majority vote is open for at least 72 hours.</p> +<pre><code>To: "Sling Developers List" <d...@sling.apache.org> +Subject: [VOTE] Release Apache Sling ABC version X.Y.Z + +Hi, + +We solved N issues in this release: +https://issues.apache.org/jira/browse/SLING/fixforversion/... + +There are still some outstanding issues: +https://issues.apache.org/jira/browse/SLING/component/... + +Staging repository: +https://repository.apache.org/content/repositories/orgapachesling-[YOUR REPOSITORY ID]/ + +You can use this UNIX script to download the release and verify the signatures: +http://svn.apache.org/repos/asf/sling/trunk/check_staged_release.sh + +Usage: +sh check_staged_release.sh [YOUR REPOSITORY ID] /tmp/sling-staging + +Please vote to approve this release: + + [ ] +1 Approve the release + [ ] 0 Don't care + [ ] -1 Don't release, because ... + +This majority vote is open for at least 72 hours. +</code></pre> <h2>Wait for the Results</h2> <p>From <a href="http://www.apache.org/foundation/voting.html">Votes on Package Releases</a>:</p> <blockquote> @@ -100,11 +144,19 @@ </blockquote> <p>The list of binding voters is available on the <a href="/project-information/project-team.html">Project Team</a> page.</p> <p>If the vote is successful, post the result to the dev list - for example:</p> -<p>To: "Sling Developers List" <a href="mailto:dev@sling.apache.org">dev@sling.apache.org</a> Subject: [RESULT] [VOTE] Release Apache Sling ABC version X.Y.Z</p> -<p>Hi,</p> -<p>The vote has passed with the following result :</p> -<p>+1 (binding): <<list of names>> +1 (non binding): <<list of names>></p> -<p>I will copy this release to the Sling dist directory and promote the artifacts to the central Maven repository.</p> +<pre><code>To: "Sling Developers List" <d...@sling.apache.org> +Subject: [RESULT] [VOTE] Release Apache Sling ABC version X.Y.Z + +Hi, + +The vote has passed with the following result : + ++1 (binding): <<list of names>> ++1 (non binding): <<list of names>> + +I will copy this release to the Sling dist directory and +promote the artifacts to the central Maven repository. +</code></pre> <p>Be sure to include all votes in the list and indicate which votes were binding. Consider -1 votes very carefully. While there is technically no veto on release votes, there may be reasons for people to vote -1. So sometimes it may be better to cancel a release when someone, especially a member of the PMC, votes -1.</p> <p>If the vote is unsuccessful, you need to fix the issues and restart the process - see <em>Canceling the Release</em>. Note that any changes to the artifacts under vote require a restart of the process, no matter how trivial. When restarting a vote version numbers must not be reused, since binaries might have already been copied around.</p> <p>If the vote is successful, you need to promote and distribute the release - see <em>Promoting the Release</em>.</p> @@ -113,26 +165,34 @@ <ol> <li>Remove the release tag from Subversion (<code>svn del ...</code>)</li> <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> using your Apache SVN credentials. Click on <em>Staging</em> on the left. Then click on <em>org.apache.sling</em> in the list of repositories. In the panel below you should see a closed repository that is linked to your username and IP (if it's not yet closed you need to right click and select <em>Close</em>). Right click on this repository and select <em>Drop</em>.</li> - <li>Remove the old version from Jira</li> - <li>Create a new version in Jira with a version number following the one of the cancelled release</li> - <li>Move all issues with the fix version set to the cancelled release to the next version</li> - <li>Delete the old version from Jira</li> + <li>Remove the old version from Jira + <ol> + <li>Create a new version in Jira with a version number following the one of the cancelled release</li> + <li>Move all issues with the fix version set to the cancelled release to the next version</li> + <li>Delete the old version from Jira</li> + </ol> + </li> <li>Commit any fixes you need to make and start a vote for a new release.</li> </ol> <h2>Promoting the Release</h2> <p>If the vote passes:</p> <ol> - <li>Push the release to <a href="https://dist.apache.org/repos/dist/release/sling/">https://dist.apache.org/repos/dist/release/sling/</a>. This is only possible for PMC members (for a reasoning look at <a href="http://www.apache.org/dev/release.html#upload-ci">http://www.apache.org/dev/release.html#upload-ci</a>). If you are not a PMC member, please ask one to do the upload for you.</li> - <li>Commit the released artifacts to <a href="https://dist.apache.org/repos/dist/release/sling/">https://dist.apache.org/repos/dist/release/sling/</a> which is replicated to <a href="http://www.apache.org/dist/sling/">http://www.apache.org/dist/sling/</a> quickly via svnpubsub. Hint: use svn import to avoid having to checkout the whole folder first. The easiest to do this is to get the released artifact using the check script (check_staged_release.sh) and then simply copy the artifacts from the downloaded folder to your local checkout folder. Make sure to not add the checksum files for the signature file <em>.asc.</em>).</li> -</ol> -<ul> - <li>Make sure to <em>not</em> change the end-of-line encoding of the .pom when uploaded via svn import! Eg when a windows style eol encoded file is uploaded with the setting '*.pom = svn:eol-style=native' this would later fail the signature checks!</li> -</ul> -<ol> - <li>Delete the old release artifacts from that same dist.apache.org svn folder (the dist directory is archived)</li> - <li>Push the release to Maven Central</li> - <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> with your Apache SVN credentials. Click on <em>Staging</em>. Find your closed staging repository and select it by checking the select box. Select the <em>Releases</em> repository from the drop-down list and click <em>Release</em> from the menu above.</li> - <li>Once the release is promoted click on <em>Repositories</em>, select the <em>Releases</em> repository and validate that your artifacts are all there.</li> + <li>Push the release to <a href="https://dist.apache.org/repos/dist/release/sling/">https://dist.apache.org/repos/dist/release/sling/</a>. This is only possible for PMC members (for a reasoning look at <a href="http://www.apache.org/dev/release.html#upload-ci">http://www.apache.org/dev/release.html#upload-ci</a>). If you are not a PMC member, please ask one to do the upload for you. + <ol> + <li>Commit the released artifacts to <a href="https://dist.apache.org/repos/dist/release/sling/">https://dist.apache.org/repos/dist/release/sling/</a> which is replicated to <a href="http://www.apache.org/dist/sling/">http://www.apache.org/dist/sling/</a> quickly via svnpubsub. Hint: use svn import to avoid having to checkout the whole folder first. The easiest to do this is to get the released artifact using the check script (check_staged_release.sh) and then simply copy the artifacts from the downloaded folder to your local checkout folder. Make sure to not add the checksum files for the signature file *.asc.*). + <ul> + <li>Make sure to <em>not</em> change the end-of-line encoding of the .pom when uploaded via svn import! Eg when a windows style eol encoded file is uploaded with the setting '*.pom = svn:eol-style=native' this would later fail the signature checks!</li> + </ul> + </li> + <li>Delete the old release artifacts from that same dist.apache.org svn folder (the dist directory is archived)</li> + </ol> + </li> + <li>Push the release to Maven Central + <ol> + <li>Login to <a href="https://repository.apache.org">https://repository.apache.org</a> with your Apache SVN credentials. Click on <em>Staging</em>. Find your closed staging repository and select it by checking the select box. Select the <em>Releases</em> repository from the drop-down list and click <em>Release</em> from the menu above.</li> + <li>Once the release is promoted click on <em>Repositories</em>, select the <em>Releases</em> repository and validate that your artifacts are all there.</li> + </ol> + </li> <li>Update the news section on the website at <a href="/news.html">news</a>.</li> <li>Update the download page on the website at <a href="/downloads.cgi">downloads</a> to point to the new release.</li> </ol> @@ -144,18 +204,36 @@ <p>Close all issues associated with the released version.</p> <h2>Create an Announcement</h2> <p>We usually do such announcements only for "important" releases, as opposed to small individual module releases which are just announced on our <a href="/news.html">news</a> page.</p> -<p>To: "Sling Developers List" <a href="mailto:dev@sling.apache.org">dev@sling.apache.org</a>, "Apache Announcements" <a href="mailto:announce@apache.org">announce@apache.org</a> Subject: [ANN] Apache Sling ABC version X.Y.Z Released</p> -<p>The Apache Sling team is pleased to announce the release of Apache Sling ABC version X.Y.Z</p> -<p>Apache Sling is a web framework that uses a Java Content Repository, such as Apache Jackrabbit, to store and manage content. Sling applications use either scripts or Java servlets, selected based on simple name conventions, to process HTTP requests in a RESTful way.</p> -<p><<insert short description of the sub-project>></p> -<p>http://sling.apache.org/site/apache-sling-ABC.html</p> -<p>This release is available from http://sling.apache.org/site/downloads.cgi</p> -<p>Building from verified sources is recommended, but convenience binaries are also available via Maven:</p> -<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.ABC</artifactId> <version>X.Y.Z</version> </dependency></p> -<p>Release Notes:</p> -<p><<insert release notes in text format from JIRA>></p> -<p>Enjoy!</p> -<p>-The Sling team</p> +<pre><code>To: "Sling Developers List" <d...@sling.apache.org>, "Apache Announcements" <annou...@apache.org> +Subject: [ANN] Apache Sling ABC version X.Y.Z Released + +The Apache Sling team is pleased to announce the release of Apache Sling ABC version X.Y.Z + +Apache Sling is a web framework that uses a Java Content Repository, such as Apache Jackrabbit, to store and manage content. Sling applications use either scripts or Java servlets, selected based on simple name conventions, to process HTTP requests in a RESTful way. + +<<insert short description of the sub-project>> + +http://sling.apache.org/site/apache-sling-ABC.html + +This release is available from http://sling.apache.org/site/downloads.cgi + +Building from verified sources is recommended, but convenience binaries are +also available via Maven: + +<dependency> + <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.ABC</artifactId> + <version>X.Y.Z</version> +</dependency> + +Release Notes: + +<<insert release notes in text format from JIRA>> + +Enjoy! + +-The Sling team +</code></pre> <p><em>Important</em>: Add the release to the Software section of the next board report below <a href="https://cwiki.apache.org/confluence/display/SLING/Reports">Reports</a>.</p> <h2>Related Links</h2> <ol> @@ -174,33 +252,63 @@ <li>Checkout the version from the tag and proceed with the build from there <code>https://svn.apache.org/repos/asf/sling/tags/sling-ide-tooling-1.0.2</code></li> <li>build the project with p2/gpg signing enabled: <code>mvn clean package -Psign</code></li> <li>build the source bundle from the source-bundle directory: <code>mvn clean package</code></li> - <li>copy the following artifacts to https://dist.apache.org/repos/dist/dev/sling/ide-tooling-1.0.2</li> - <li>source bundle ( org.apache.sling.ide.source-bundle-1.0.2.zip )</li> - <li>zipped p2 repository ( org.apache.sling.ide.p2update-1.0.2.zip )</li> + <li>copy the following artifacts to https://dist.apache.org/repos/dist/dev/sling/ide-tooling-1.0.2 + <ol> + <li>source bundle ( org.apache.sling.ide.source-bundle-1.0.2.zip )</li> + <li>zipped p2 repository ( org.apache.sling.ide.p2update-1.0.2.zip )</li> + </ol> + </li> <li>ensure the artifacts are checksummed and gpg-signed by using the <code>tooling/ide/sign.sh</code> script</li> <li>call the vote</li> </ol> <p>The format of the release vote should be</p> -<p>To: "Sling Developers List" <a href="mailto:dev@sling.apache.org">dev@sling.apache.org</a> Subject: [VOTE] Release Apache Sling IDE Tooling version X.Y.Z</p> -<p>Hi,</p> -<p>We solved N issues in this release: https://issues.apache.org/jira/browse/SLING/fixforversion/</p> -<p>There are still some outstanding issues: https://issues.apache.org/jira/browse/SLING/component/12320908</p> -<p>The release candidate has been uploaded at https://dist.apache.org/repos/dist/dev/sling, The release artifact is the source bundle - org.apache.sling.ide.source-bundle-X.Y.Z.zip - which can be used to build the project using</p> -<p>mvn clean package</p> -<p>The resulting binaries can be installed into an Eclipse instance from the update site which is found at p2update/target/repository after building the project.</p> -<p>You can use this UNIX script to download the release and verify the signatures: http://svn.apache.org/repos/asf/sling/trunk/tooling/ide/check_staged_release.sh</p> -<p>Usage: sh check_staged_release.sh X.Y.Z /tmp/sling-staging</p> -<p>Please vote to approve this release:</p> -<p>[ ] +1 Approve the release [ ] 0 Don't care [ ] -1 Don't release, because ...</p> -<p>This majority vote is open for at least 72 hours</p> +<pre><code>To: "Sling Developers List" <d...@sling.apache.org> +Subject: [VOTE] Release Apache Sling IDE Tooling version X.Y.Z + +Hi, + +We solved N issues in this release: +https://issues.apache.org/jira/browse/SLING/fixforversion/ + +There are still some outstanding issues: +https://issues.apache.org/jira/browse/SLING/component/12320908 + +The release candidate has been uploaded at +https://dist.apache.org/repos/dist/dev/sling, The release artifact is +the source bundle - org.apache.sling.ide.source-bundle-X.Y.Z.zip - +which can be used to build the project using + + mvn clean package + +The resulting binaries can be installed into an Eclipse instance from +the update site which is found at p2update/target/repository after +building the project. + +You can use this UNIX script to download the release and verify the signatures: +http://svn.apache.org/repos/asf/sling/trunk/tooling/ide/check_staged_release.sh + +Usage: +sh check_staged_release.sh X.Y.Z /tmp/sling-staging + +Please vote to approve this release: + + [ ] +1 Approve the release + [ ] 0 Don't care + [ ] -1 Don't release, because ... + +This majority vote is open for at least 72 hours +</code></pre> <p>Once the release has passed, the following must be done:</p> <ol> <li>announce the result of the vote, see <a href="#wait-for-the-results">Wait for the results</a></li> <li>update versions in jira, see <a href="#update-jira">Update JIRA</a></li> <li>upload p2update.zip* to https://dist.apache.org/repos/dist/release/sling/</li> <li>upload unzipped update site to https://dist.apache.org/repos/dist/release/sling/eclipse/1.0.2</li> - <li>upload the source bundle to https://dist.apache.org/repos/dist/release/sling/eclipse/1.0.2</li> - <li>create GPG signatures and checksums for all uploaded jars using the <code>tooling/ide/sign.sh</code> script</li> + <li>upload the source bundle to https://dist.apache.org/repos/dist/release/sling/eclipse/1.0.2 + <ol> + <li>create GPG signatures and checksums for all uploaded jars using the <code>tooling/ide/sign.sh</code> script</li> + </ol> + </li> <li>update https://dist.apache.org/repos/dist/release/sling/eclipse/composite{Content,Artifacts}.xml to point version 1.0.2</li> <li>archive the old artifact versions but leave pointers to archive.apache.org, using compositeArtifacts.xml/compositeContent.xml , with a single child entry pointing to https://archive.apache.org/dist/sling/eclipse/1.0.0/</li> <li>remove the staged artifacts from https://dist.apache.org/repos/dist/dev/sling/ide-tooling-1.0.2</li> @@ -210,69 +318,110 @@ <h2>Appendix A: Create and Add your key to <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a></h2> <p>Considering that you are using a *nix system with a working OpenSSH, GnuPG, and bash you can create and add your own key with the following commands:</p> <ol> - <li>Create a public/private pair key:</li> -</ol> -<p>$ gpg --gen-key</p> -<p>When gpg asks for e-mail linked the key you <em>MUST USE</em> the <committer>@apache.org one. When gpg asks for comment linked the key you <em>SHOULD USE</em> "CODE SIGNING KEY"</p> -<ol> - <li> - <p>Add the key to <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a></p></li> - <li> - <p>Type the following command replacing the word <code><e-mail></code> with your Apache's one (<committer>@apache.org) to get the key signature</p></li> -</ol> -<p>$ gpg --fingerprint <e-mail></p> -<p>The key signature is in the output following the <code>Key fingerprint =</code> part.</p> -<ol> <li> - <p>Add the key signature into the field 'OpenPGP Public Key Primary Fingerprint' in your profile at <a href="https://id.apache.org">https://id.apache.org</a>.</p></li> + <p>Create a public/private pair key:</p> + <pre><code>$ gpg --gen-key +</code></pre> + <p>When gpg asks for e-mail linked the key you <em>MUST USE</em> the <committer>@apache.org one. When gpg asks for comment linked the key you <em>SHOULD USE</em> "CODE SIGNING KEY"</p> + </li> <li> - <p>You are <em>DONE</em>, but to see the changes on <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a> you may need to wait a few hours;</p></li> + <p>Add the key to <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a></p> + <ol> + <li> + <p>Type the following command replacing the word <code><e-mail></code> with your Apache's one (<committer>@apache.org) to get the key signature</p> + <pre><code>$ gpg --fingerprint <e-mail> +</code></pre> + <p>The key signature is in the output following the <code>Key fingerprint =</code> part.</p> + </li> + <li> + <p>Add the key signature into the field 'OpenPGP Public Key Primary Fingerprint' in your profile at <a href="https://id.apache.org">https://id.apache.org</a>.</p></li> + <li> + <p>You are <em>DONE</em>, but to see the changes on <a href="https://people.apache.org/keys/group/sling.asc">https://people.apache.org/keys/group/sling.asc</a> you may need to wait a few hours;</p></li> + </ol> + </li> <li> - <p>You also have to add your public key either on <code>pool.sks-keyservers.net</code> or <code>pgp.mit.edu</code> (for the staging repository). To do so you can follow these steps:</p></li> - <li>Extract the key id from all the secret keys stored in the system:</li> + <p>You also have to add your public key either on <code>pool.sks-keyservers.net</code> or <code>pgp.mit.edu</code> (for the staging repository). To do so you can follow these steps:</p> + <ol> + <li> + <p>Extract the key id from all the secret keys stored in the system:</p> + <pre><code>$ gpg --list-secret-keys. +</code></pre> + <p>The output is something like this</p> + <pre><code>gpg --list-secret-keys +/Users/konradwindszus/.gnupg/secring.gpg +---------------------------------------- + +sec 2048R/455ECC7C 2016-01-21 +uid Konrad Windszus <k...@apache.org> +ssb 2048R/226BCE00 2016-01-21 +</code></pre> + <p>The key id in this case is <code>455ECC7C</code>.</p> + </li> + <li> + <p>Send the key towards e.g. <code>pool.sks-keyservers.net</code> via</p> + <pre><code>$ gpg --keyserver pool.sks-keyservers.net --send-key <key-id> +</code></pre> + </li> + </ol> + </li> </ol> -<p>$ gpg --list-secret-keys.</p> -<p>The output is something like this</p> -<p>gpg --list-secret-keys</p> -<h2>/Users/konradwindszus/.gnupg/secring.gpg</h2> -<p>sec 2048R/455ECC7C 2016-01-21 uid Konrad Windszus <a href="mailto:kwin@apache.org">kwin@apache.org</a> ssb 2048R/226BCE00 2016-01-21</p> -<p>The key id in this case is <code>455ECC7C</code>.</p> -<ol> - <li>Send the key towards e.g. <code>pool.sks-keyservers.net</code> via</li> -</ol> -<p>$ gpg --keyserver pool.sks-keyservers.net --send-key <key-id></p> <h2>Appendix B: Maven and SCM credentials</h2> <p>For running the <code>mvn release:prepare</code> command without giving credentials on command line add <code>svn.apache.org</code> to your <code>settings.xml</code>:</p> -<p><server> <id>svn.apache.org</id> <username>USERNAME</username> <password>ENCRYPTED_PASSWORD</password> </server></p> +<pre><code><server> + <id>svn.apache.org</id> + <username>USERNAME</username> + <password>ENCRYPTED_PASSWORD</password> +</server> +</code></pre> <h2>Appendix C: Deploy bundles on the Sling OBR (obsolete)</h2> <p><em>Update November 2016: We do now longer maintain the Sling OBR for new releases.</em></p> <p>We are mainting an OSGi Bundle Repository providing all release of the Sling Bundles. This repository is maintained as part of the Apache Sling site and is available at <a href="http://sling.apache.org/obr/sling.xml">http://sling.apache.org/obr/sling.xml</a>. The source for this page is maintained in the SVN repository below the <em>site</em>, that is at <a href="http://svn.apache.org/repos/asf/sling/site/">http://svn.apache.org/repos/asf/sling/site/</a>. To update the Sling OBR repository you must be an Apache Sling Committer since this requires SVN write access.</p> <p>To update the OBR you may use the Apache Felix Maven Bundle Plugin which prepares the bundle descriptor to be added to the OBR file. Follow these steps to update the OBR:</p> <ol> - <li>Checkout or update the Site Source</li> -</ol> -<p>$ svn checkout https://svn.apache.org/repos/asf/sling/site</p> -<p>Note, that you have to checkout the site using the <code>https</code> URL, otherwise you will not be able to commit the changes later.</p> -<ol> - <li>Deploy the Descriptor</li> -</ol> -<p>To deploy the project descriptor, checkout the tag of the bundle to deploy and run maven</p> -<p>$ svn checkout http://svn.apache.org/repos/asf/sling/tags/the_module_tag $ cd the_module_tag $ mvn clean install org.apache.felix:maven-bundle-plugin:deploy -DprefixUrl=http://repo1.maven.org/maven2 -DremoteOBR=sling.xml -DaltDeploymentRepository=apache.releases::default::file:///path_to_site_checkout/trunk/content/obr</p> -<p>This generates the bundle descriptor and adds it to the sling.xml file of your site checkout. As it also installs a fresh compiled version of the artifacts, it's better to remove that version from your local repository again (A new binary has new checksums etc.).</p> -<ol> - <li>Variant: Refer to Maven Repository</li> -</ol> -<p>Instead of checking out and building the project locally, you may also use the <code>deploy-file</code> goal of the Maven Bundle Plugin:</p> -<p>$ wget http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar $ wget http://repo1.maven.org/maven2/org/apache/sling/the_moduleversion/the_module-version.pom $ mvn org.apache.felix:maven-bundle-plugin:deploy-file -Dfile=the_module-version.jar -DpomFile=the_module-version.pom -DbundleUrl=http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar -Durl=file:///path_to_site_checkout/obr -DprefixUrl=http://repo1.maven.org/maven2 -DremoteOBR=sling.xml $ rm the_module-version.jar the_module-version.pom</p> -<ol> - <li>Commit the Site Changes</li> -</ol> -<p>In the Site checkout folder commit the changes to the <code>trunk/content/obr/sling.xml</code> files (you may also review the changes using the <code>svn diff</code> command).</p> -<p>$ svn commit -m"Add Bundle ABC Version X.Y.Z" trunk/content/obr/sling.xml</p> -<ol> - <li>Update the Site</li> + <li> + <p>Checkout or update the Site Source</p> + <pre><code>$ svn checkout https://svn.apache.org/repos/asf/sling/site +</code></pre> + <p>Note, that you have to checkout the site using the <code>https</code> URL, otherwise you will not be able to commit the changes later.</p> + </li> + <li> + <p>Deploy the Descriptor</p> + <p>To deploy the project descriptor, checkout the tag of the bundle to deploy and run maven</p> + <pre><code>$ svn checkout http://svn.apache.org/repos/asf/sling/tags/the_module_tag +$ cd the_module_tag +$ mvn clean install \ + org.apache.felix:maven-bundle-plugin:deploy \ + -DprefixUrl=http://repo1.maven.org/maven2 \ + -DremoteOBR=sling.xml \ + -DaltDeploymentRepository=apache.releases::default::file:///path_to_site_checkout/trunk/content/obr +</code></pre> + <p>This generates the bundle descriptor and adds it to the sling.xml file of your site checkout. As it also installs a fresh compiled version of the artifacts, it's better to remove that version from your local repository again (A new binary has new checksums etc.).</p> + </li> + <li> + <p>Variant: Refer to Maven Repository</p> + <p>Instead of checking out and building the project locally, you may also use the <code>deploy-file</code> goal of the Maven Bundle Plugin:</p> + <pre><code>$ wget http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar +$ wget http://repo1.maven.org/maven2/org/apache/sling/the_moduleversion/the_module-version.pom +$ mvn org.apache.felix:maven-bundle-plugin:deploy-file \ + -Dfile=the_module-version.jar -DpomFile=the_module-version.pom \ + -DbundleUrl=http://repo1.maven.org/maven2/org/apache/sling/the_module/version/the_module-version.jar \ + -Durl=file:///path_to_site_checkout/obr \ + -DprefixUrl=http://repo1.maven.org/maven2 \ + -DremoteOBR=sling.xml +$ rm the_module-version.jar the_module-version.pom +</code></pre> + </li> + <li> + <p>Commit the Site Changes</p> + <p>In the Site checkout folder commit the changes to the <code>trunk/content/obr/sling.xml</code> files (you may also review the changes using the <code>svn diff</code> command).</p> + <pre><code>$ svn commit -m"Add Bundle ABC Version X.Y.Z" trunk/content/obr/sling.xml +</code></pre> + </li> + <li> + <p>Update the Site</p> + <p>Wait for the buildbot to update the staging area with your site update (see dev list for an email). Then go to the CMS at <a href="https://cms.apache.org/redirect?uri=http://sling.apache.org/obr">https://cms.apache.org/redirect?uri=http://sling.apache.org/obr</a> , update your checkout and then publish the site.</p> + </li> </ol> -<p>Wait for the buildbot to update the staging area with your site update (see dev list for an email). Then go to the CMS at <a href="https://cms.apache.org/redirect?uri=http://sling.apache.org/obr">https://cms.apache.org/redirect?uri=http://sling.apache.org/obr</a> , update your checkout and then publish the site.</p> <h2>Appendix D: Deploy Maven plugin documentation (if applicable)</h2> <p>When releasing a Maven plugin, the Maven-generated documentation published under <a href="http://sling.apache.org/components/">http://sling.apache.org/components/</a> needs to be updated.</p> <p>This is currently supported for:</p> @@ -287,14 +436,15 @@ <li> <p>Checkout the release tag of the released plugin (or reset your workspace)</p></li> <li> - <p>Build and stage the maven site of the plugin. Note that this <em>commits</em> the generated content to the components folder mentioned below.</p></li> -</ol> -<p>$ mvn clean site:site site:stage scm-publish:publish-scm</p> -<ol> - <li>Checkout the 'components' subtree of the Sling website</li> -</ol> -<p>$ svn checkout https://svn.apache.org/repos/asf/sling/site/trunk/content/components</p> -<ol> + <p>Build and stage the maven site of the plugin. Note that this <em>commits</em> the generated content to the components folder mentioned below.</p> + <pre><code>$ mvn clean site:site site:stage scm-publish:publish-scm +</code></pre> + </li> + <li> + <p>Checkout the 'components' subtree of the Sling website</p> + <pre><code>$ svn checkout https://svn.apache.org/repos/asf/sling/site/trunk/content/components +</code></pre> + </li> <li> <p>SVN-rename the generated documenation that the site plugin commited to <code><plugin-name>-archives/<plugin-name>-LATEST</code> to <code><plugin-name>-archives/<plugin-name>-<version></code></p></li> <li>
http://git-wip-us.apache.org/repos/asf/sling-site/blob/3a935d04/documentation/development/repository-based-development.html ---------------------------------------------------------------------- diff --git a/documentation/development/repository-based-development.html b/documentation/development/repository-based-development.html index b581cda..7fc9f41 100644 --- a/documentation/development/repository-based-development.html +++ b/documentation/development/repository-based-development.html @@ -2,26 +2,26 @@ <head> <meta charset="utf-8"/> <title>Apache Sling on JBake</title> - <link rel="stylesheet" href="/res/css/site.css"/> - <link rel="stylesheet" href="/res/css/codehilite.css"/> + <link rel="stylesheet" href="/ng/res/css/site.css"/> + <link rel="icon" href="/ng/res/favicon.ico"/> <div class="title"> <div class="logo"> <a href="http://sling.apache.org"> - <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/> + <img border="0" alt="Apache Sling" src="/ng/res/logos/sling.svg"/> </a> </div><div class="header"> <a href="http://www.apache.org"> - <img border="0" alt="Apache" src="/res/logos/apache.png"/> + <img border="0" alt="Apache" src="/ng/res/logos/apache.png"/> </a> </div> </div> </head><body> <div class="menu"> - <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials & How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong> + <strong><a href="/ng/documentation.html">Documentation</a></strong><br/><a href="/ng/documentation/getting-started.html">Getting Started</a><br/><a href="/ng/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/ng/documentation/development.html">Development</a><br/><a href="/ng/documentation/bundles.html">Bundles</a><br/><a href="/ng/documentation/tutorials-how-tos.html">Tutorials & How-Tos</a><br/><a href="/ng/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/ng/apidocs/sling9/index.html">Sling 9</a><br/><a href="/ng/apidocs/sling8/index.html">Sling 8</a><br/><a href="/ng/apidocs/sling7/index.html">Sling 7</a><br/><a href="/ng/apidocs/sling6/index.html">Sling 6</a><br/><a href="/ng/apidocs/sling5/index.html">Sling 5</a><br/><a href="/ng/javadoc-io.html">Archive at javadoc.io</a><br/><p></p ><strong>Project info</strong><br/><a >href="/ng/downloads.cgi">Downloads</a><br/><a >href="http://www.apache.org/licenses/">License</a><br/><a >href="/ng/contributing.html">Contributing</a><br/><a >href="/ng/news.html">News</a><br/><a href="/ng/links.html">Links</a><br/><a >href="/ng/project-information.html">Project Information</a><br/><a >href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a >href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a >href="/ng/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a > href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a >href="git://git.apache.org/sling.git">Git</a><br/><a >href="https://github.com/apache/sling">Github >Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a >href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a >href="http://www.apache.org/foundation/sponsorship.html">Become a >Sponsor</a><br/><a href="https://donate.apache. org/">Donate!</a><br/><a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/ng/sitemap.html">Site Map</a></strong> </div> <div class="main"> <div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Repository Based Development</h1></header><p>[TOC]</p> <h1>WebDAV Support</h1> -<p>WebDAV support in Sling is based on the <a href="http://jackrabbit.apache.org/jcr/components/jackrabbit-jcr-server.html#Simple_Webdav_Server">Simple WebDAV</a> implementation of Apache Jackrabbit which is integrated in the <code>jcr/webdav</code> project. This bundle provides WebDAV access to Sling's repository in two flavours:</p> +<p>WebDAV support in Sling is based on the <a href="http://jackrabbit.apache.org/jcr/components/jackrabbit-jcr-server.html#Simple_Webdav_Server">Simple WebDAV</a> implementation of Apache Jackrabbit which is integrated in the <code>jcr/webdav</code> project. This bundle provides WebDAV access to Sling's repository in two flavours: </p> <ol> <li>Access to all workspaces of the repository on a separate URI space -- by default rooted at <code>/dav</code> in the Sling context -- and</li> <li>access to the workspace used by Sling itself at the root of the Sling context.</li> @@ -31,7 +31,8 @@ <p>Please note that accessing the repository in the separate URI space is actually faster, since requests do not pass the Sling resource and script resolution framework but instead hit the Jackrabbit Simple WebDAV Servlet directly.</p> <h2>Separate URI Space WebDAV</h2> <p>When accessing the repository through WebDAV in its separate URI Space, the URLs have the following generic structure:</p> -<p><slingroot>/<prefix>/<workspace>/<item></p> +<pre><code><slingroot>/<prefix>/<workspace>/<item> +</code></pre> <ul> <li><code>slingroot</code> is the URL of the Sling web application context. In the above example, this would <code>http://some.host.net:8080/sling</code>.</li> <li><code>prefix</code> is the URL prefix to address the WebDAV servlet. By default this is set to <code>/dav</code> but may be configured to any valid path.</li> http://git-wip-us.apache.org/repos/asf/sling-site/blob/3a935d04/documentation/development/resourceresolver-mock.html ---------------------------------------------------------------------- diff --git a/documentation/development/resourceresolver-mock.html b/documentation/development/resourceresolver-mock.html index 9db8e3a..3eb0d3e 100644 --- a/documentation/development/resourceresolver-mock.html +++ b/documentation/development/resourceresolver-mock.html @@ -2,28 +2,32 @@ <head> <meta charset="utf-8"/> <title>Apache Sling on JBake</title> - <link rel="stylesheet" href="/res/css/site.css"/> - <link rel="stylesheet" href="/res/css/codehilite.css"/> + <link rel="stylesheet" href="/ng/res/css/site.css"/> + <link rel="icon" href="/ng/res/favicon.ico"/> <div class="title"> <div class="logo"> <a href="http://sling.apache.org"> - <img border="0" alt="Apache Sling" src="/res/logos/sling.svg"/> + <img border="0" alt="Apache Sling" src="/ng/res/logos/sling.svg"/> </a> </div><div class="header"> <a href="http://www.apache.org"> - <img border="0" alt="Apache" src="/res/logos/apache.png"/> + <img border="0" alt="Apache" src="/ng/res/logos/apache.png"/> </a> </div> </div> </head><body> <div class="menu"> - <strong><a href="/documentation.html">Documentation</a></strong><br/><a href="/documentation/getting-started.html">Getting Started</a><br/><a href="/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/documentation/development.html">Development</a><br/><a href="/documentation/bundles.html">Bundles</a><br/><a href="/documentation/tutorials-how-tos.html">Tutorials & How-Tos</a><br/><a href="/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/apidocs/sling9/index.html">Sling 9</a><br/><a href="/apidocs/sling8/index.html">Sling 8</a><br/><a href="/apidocs/sling7/index.html">Sling 7</a><br/><a href="/apidocs/sling6/index.html">Sling 6</a><br/><a href="/apidocs/sling5/index.html">Sling 5</a><br/><a href="/javadoc-io.html">Archive at javadoc.io</a><br/><p></p><strong>Project info</strong><br/><a h ref="/downloads.cgi">Downloads</a><br/><a href="http://www.apache.org/licenses/">License</a><br/><a href="/contributing.html">Contributing</a><br/><a href="/news.html">News</a><br/><a href="/links.html">Links</a><br/><a href="/project-information.html">Project Information</a><br/><a href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a href="/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a href="git://git.apache.org/sling.git">Git</a><br/><a href="https://github.com/apache/sling">Github Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a><br/><a href="https://donate.apache.org/">Donate!</a><br/><a href="http://www.apache.org/foun dation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/sitemap.html">Site Map</a></strong> + <strong><a href="/ng/documentation.html">Documentation</a></strong><br/><a href="/ng/documentation/getting-started.html">Getting Started</a><br/><a href="/ng/documentation/the-sling-engine.html">The Sling Engine</a><br/><a href="/ng/documentation/development.html">Development</a><br/><a href="/ng/documentation/bundles.html">Bundles</a><br/><a href="/ng/documentation/tutorials-how-tos.html">Tutorials & How-Tos</a><br/><a href="/ng/documentation/configuration.html">Configuration</a><p></p><a href="http://s.apache.org/sling.wiki">Wiki</a><br/><a href="http://s.apache.org/sling.faq">FAQ</a><br/><p></p><strong>API Docs</strong><br/><a href="/ng/apidocs/sling9/index.html">Sling 9</a><br/><a href="/ng/apidocs/sling8/index.html">Sling 8</a><br/><a href="/ng/apidocs/sling7/index.html">Sling 7</a><br/><a href="/ng/apidocs/sling6/index.html">Sling 6</a><br/><a href="/ng/apidocs/sling5/index.html">Sling 5</a><br/><a href="/ng/javadoc-io.html">Archive at javadoc.io</a><br/><p></p ><strong>Project info</strong><br/><a >href="/ng/downloads.cgi">Downloads</a><br/><a >href="http://www.apache.org/licenses/">License</a><br/><a >href="/ng/contributing.html">Contributing</a><br/><a >href="/ng/news.html">News</a><br/><a href="/ng/links.html">Links</a><br/><a >href="/ng/project-information.html">Project Information</a><br/><a >href="https://issues.apache.org/jira/browse/SLING">Issue Tracker</a><br/><a >href="http://ci.apache.org/builders/sling-trunk">Build Server</a><br/><a >href="/ng/project-information/security.html">Security</a><br/><p></p><strong>Source</strong><br/><a > href="http://svn.apache.org/viewvc/sling/trunk">Subversion</a><br/><a >href="git://git.apache.org/sling.git">Git</a><br/><a >href="https://github.com/apache/sling">Github >Mirror</a><br/><p></p><strong>Sponsorship</strong><br/><a >href="http://www.apache.org/foundation/thanks.html">Thanks</a><br/><a >href="http://www.apache.org/foundation/sponsorship.html">Become a >Sponsor</a><br/><a href="https://donate.apache. org/">Donate!</a><br/><a href="http://www.apache.org/foundation/buy_stuff.html">Buy Stuff</a><br/><p></p><strong><a href="/ng/sitemap.html">Site Map</a></strong> </div> <div class="main"> <div class="row"><div class="small-12 columns"><section class="wrap"><header><h1>Resource Resolver Mock</h1></header><p>Mock for the resource resolver / factory for easier testing. It uses an in-memory map for storing the resource data, and supports reading, writing and a certain level of transaction and eventing support.</p> <p>[TOC]</p> <h2>Maven Dependency</h2> -<h1>!xml</h1> -<p><dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.testing.resourceresolver-mock</artifactId> </dependency></p> +<pre><code>#!xml +<dependency> + <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.testing.resourceresolver-mock</artifactId> +</dependency> +</code></pre> <p>See latest version on the <a href="/downloads.cgi">downloads page</a>.</p> <h2>Implemented mock features</h2> <p>The mock implementation supports:</p> @@ -42,8 +46,10 @@ </ul> <h2>Usage</h2> <p>To create a mocked resource resolver:</p> -<h1>!java</h1> -<p>MockResourceResolverFactory factory = new MockResourceResolverFactory(); ResourceResolver resolver = factory.getResourceResolver(null);</p> +<pre><code>#!java +MockResourceResolverFactory factory = new MockResourceResolverFactory(); +ResourceResolver resolver = factory.getResourceResolver(null); +</code></pre> <p>With the resolver you can use all Sling Resource features including reading and writing data using the Sling API.</p> <p>You cannot do any operations that require the JCR API because no JCR is underlying and adapting to JCR objects will just return null.</p></section></div></div> <div class="footer">