| # 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. |
| |
| ========================================== |
| Environment setup for releasing artifacts |
| ========================================== |
| Since 3.0.0 |
| |
| 1. Environmental Setup |
| * Increase the default Java heap available to Maven |
| * export MAVEN_OPTS="-Xmx256m -XX:MaxPermSize=128m" |
| * Use the JDK 1.8. |
| * Use Maven 3.3.1 or higher |
| * edit $HOME/.m2/settings.xml, make sure your Apache account credentials are setup in the servers section: |
| <servers> |
| <server> |
| <id>apache.snapshots.https</id> |
| <username>your-apache-username</username> |
| <password>your-apache-password</password> |
| </server> |
| |
| <server> |
| <id>apache.releases.https</id> |
| <username>your-apache-username</username> |
| <password>your-apache-password</password> |
| </server> |
| * submit your public key to an authorized Public Key server such as http://pgp.mit.edu/ |
| see instructions here: |
| http://blog.sonatype.com/2010/01/how-to-generate-pgp-signatures-with-maven/ |
| |
| 2. Prepare the source for release |
| * Cleanup JIRA so the Fix Version in issues resolved since the last release includes this release version correctly. |
| * Create a JIRA issue for release maintenance for example see |
| https://issues.apache.org/jira/browse/PLUTO-777 |
| * Checkout a clean copy of the trunk (on the specific branch if needed) to release using command line git. |
| cd ~/apache/releases |
| git clone https://github.com/apache/portals-pluto |
| |
| * Do not use Eclipse to do the checkout. The extra dot (.) files created by Eclipse throws off the rat:check processing. |
| |
| 3. Verify the source has the required license headers before trying to release. |
| |
| mvn -P rat apache-rat:check |
| |
| 4. DRY RUN |
| Do a dry run of the release:prepare step: |
| |
| $ mvn -P apache-release,pluto -DrunOnlyAtExecutionRoot=true release:prepare -DdryRun=true |
| |
| The dry run will not commit any changes back to Git and gives you the opportunity to verify that the release process will complete as expected. |
| You will be prompted for the following information : |
| |
| Release version - take the default or use semvar like 3.1.0 |
| SCM release tag - review the default naming and compare it with the existing git tag structure; change it if needed. |
| New development version - take the default |
| Have your GPG Passphrase ready |
| |
| 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. |
| The Maven release plugin checks for SNAPSHOT dependencies in pom's. It will not complete the prepare goal until all SNAPSHOT dependencies are resolved. |
| |
| 5. VERIFY RELEASE |
| Verify that the release process completed as expected |
| |
| The release plugin will create pom.xml.tag files which contain the changes that would have been committed to Git. |
| The only differences between pom.xml.tag and it's corresponding pom.xml file should be the version number(s) and git location(s) (e.g., /trunk vs /tags). |
| |
| 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. |
| |
| Verify signatures (Verifying release signatures) |
| gpg --verify target/pluto-3.1.0-SNAPSHOT-source-release.zip.asc target/pluto-3.1.0-SNAPSHOT-source-release.zip |
| |
| 6. CLEANUP AND START OVER |
| Cleanup the release prepare files again: |
| |
| $ mvn -P apache-release,pluto release:clean |
| |
| 7. PREPARE THE RELEASE |
| Run the "release:prepare" step for real this time. You'll be prompted for the same version information. |
| |
| $ mvn -P apache-release,pluto release:prepare -DrunOnlyAtExecutionRoot=true |
| |
| Backup (zip or tar) your local release candidate directory in case you need to rollback the release after the next step is performed. |
| |
| 8. PERFORM THE RELEASE |
| |
| a. OPTIONAL: Release the Portlet API (It has its own version scheme and release schedule) |
| |
| $ cd portals-pluto/portlet-api |
| $ mvn -P apache-release release:prepare -DrunOnlyAtExecutionRoot=true |
| $ mvn -P apache-release release:perform -Duser.name=[your_apache_uid] |
| $ cd .. |
| $ vi pom.xml # Update the version in the <portals.portlet-api.version/> property |
| $ git commit -m "Upgraded to portlet-api-x.y.z" |
| $ git push upstream master |
| |
| b. REQUIRED: Release the main Apache Pluto software modules |
| |
| $ cd portals-pluto |
| $ mvn -P apache-release,pluto release:perform -Duser.name=[your_apache_uid] |
| $ vi portlet-tck_3.0/pom.xml # Update the parent <version/> and also the version in the <pluto.test.version/> property |
| $ git commit -m "Upgraded the TCK to Pluto test version x.y.z" |
| |
| 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. |
| |
| c. OPTIONAL: Release the Portlet TCK (It has its own version scheme and release schedule) |
| |
| NOTE: The portlet-tck_3.0/pom.xml descriptor has <skip>true</skip> for the maven-deploy-plugin and the maven-gpg-plugin |
| so there are no binary artifacts that get published to the Nexus staging repository. The main purpose of running |
| the maven-release-plugin for the TCK is to have it apply a Git tag to auto-increment the <version/> element in |
| the portlet-tck_3.0/pom.xml and TCK sub-module POM descriptors. |
| |
| $ cd portals-pluto/portlet-tck_3.0 |
| $ mvn -P apache-release,pluto release:prepare -DrunOnlyAtExecutionRoot=true |
| $ mvn -P apache-release,pluto release:perform -Duser.name=[your_apache_uid] |
| |
| d. OPTIONAL: Release the Archetypes (Each has its own version scheme and release schedule) |
| |
| $ cd portals-pluto/maven-archetypes/bean-portlet-archetype |
| $ mvn -P apache-release release:prepare -Duser.name=[your_apache_uid] |
| $ mvn -P apache-release release:perform -Duser.name=[your_apache_uid] |
| |
| $ cd portals-pluto/maven-archetypes/generic-portlet-archetype |
| $ mvn -P apache-release release:prepare -Duser.name=[your_apache_uid] |
| $ mvn -P apache-release release:perform -Duser.name=[your_apache_uid] |
| |
| $ cd portals-pluto/maven-archetypes/mvcbean-jsp-portlet-archetype |
| $ mvn -P apache-release release:prepare -Duser.name=[your_apache_uid] |
| $ mvn -P apache-release release:perform -Duser.name=[your_apache_uid] |
| |
| $ cd portals-pluto/maven-archetypes/mvcbean-thymeleaf-portlet-archetype |
| $ mvn -P apache-release release:prepare -Duser.name=[your_apache_uid] |
| $ mvn -P apache-release release:perform -Duser.name=[your_apache_uid] |
| |
| 9. VERIFY THE RELEASE |
| a. Verify signatures (Verifying release signatures) |
| |
| $ gpg --verify target/pluto-3.1.0-source-release.zip.asc target/pluto-3.1.0-source-release.zip |
| |
| b. Verify the Nexus release artifacts |
| |
| Verify the staged artifacts in the nexus repo |
| https://repository.apache.org/index.html |
| Staging repositories (under Build Promotion) --> Name column --> org.apache.portals-XXX |
| Navigate through the artifact tree and make sure that all javadoc, sources, tests, jars, ... have |
| .asc (GPG signature) |
| .md5 files |
| See http://people.apache.org/~henkp/repo/faq.html and http://www.apache.org/dev/release-signing.html#openpgp-ascii-detach-sig |
| |
| 10. Checkout the new tag, since the repository will be set to a later commit |
| |
| git checkout pluto-3.1.0 |
| |
| 11. Create a Distribution Bundle |
| |
| NOTE: If the Portlet API was released, then execute: |
| |
| ant -f dist-build.xml -DpackagePortletAPI=true -DincludeDemos=true -DpackageOnly=true -DnoClean=true |
| |
| OTHERWISE, execute: |
| |
| ant -f dist-build.xml -DincludeDemos=true -DpackageOnly=true -DnoClean=true |
| |
| 12. Release the bundle Zip file |
| |
| a. Use Maven command-line to release pluto-3.1.0-bundle.zip |
| |
| # |
| # NOTE: This will release a file with the following identification: |
| # <groupId>org.apache.portals.pluto</groupId> |
| # <artifactId>pluto-bundle</artifactId> |
| # <version>3.1.0</version> |
| # |
| # And the download filename will be pluto-bundle-3.1.0.zip |
| # |
| mvn \ |
| gpg:sign-and-deploy-file \ |
| -Dfile=target/dist/pluto-3.1.0-bundle.zip \ |
| -DgroupId=org.apache.portals.pluto \ |
| -DartifactId=pluto-bundle \ |
| -Dversion=3.1.0 \ |
| -Durl=https://repository.apache.org/service/local/staging/deploy/maven2 \ |
| -DrepositoryId=apache.releases.https |
| |
| b. Close the nexus staging repo |
| |
| https://repository.apache.org/index.html |
| Staging repositories (under Build Promotion) --> Name column --> org.apache.portals-XXX |
| Click checkbox for the open staging repo (org.apache.portals-XXX) and press Close in the menu bar. |
| |
| c. Create a temporary directory for working with Apache's Subversion repository (svnpubsub) for release artifacts: |
| |
| $ mkdir ~/asf-svn |
| $ cd ~/asf-svn |
| |
| d. Checkout the "dev" folder for Apache Pluto: |
| |
| $ mkdir dev |
| $ cd dev |
| $ svn co https://dist.apache.org/repos/dist/dev/portals/pluto |
| $ cd pluto |
| |
| e. Edit and then execute the following script in order to download the release artifacts from Nexus and |
| commit them to Subversion: |
| |
| #!/bin/sh |
| # |
| # NOTE: Set user name to your Apache ID |
| # |
| USER_NAME=asfgriff |
| # |
| # NOTE: Set base URL to the Nexus staging repository |
| # |
| BASE_URL="https://repository.apache.org/service/local/repositories/orgapacheportals-1022/content" |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto/3.1.0/pluto-3.1.0-source-release.zip |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto/3.1.0/pluto-3.1.0-source-release.zip.asc |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto/3.1.0/pluto-3.1.0-source-release.zip.md5 |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto/3.1.0/pluto-3.1.0-source-release.zip.sha1 |
| svn add pluto-3.1.0-source-release* |
| # |
| # NOTE: If the Portlet API was released, then un-comment the following: |
| # |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-sources.jar |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-sources.jar.asc |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-sources.jar.md5 |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-sources.jar.sha1 |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-javadoc.jar |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-javadoc.jar.asc |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-javadoc.jar.md5 |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2-javadoc.jar.sha1 |
| # svn add portlet-api-3.0.2* |
| # svn commit -m "PLUTO-716 Committing Source Release for portlet-api-3.0.2" --username $USER_NAME |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2.jar |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2.jar.asc |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2.jar.md5 |
| # wget --no-check-certificate $BASE_URL/javax/portlet/portlet-api/3.0.2/portlet-api-3.0.2.jar.sha1 |
| # svn add portlet-api-3.0.2.jar* |
| # svn commit -m "PLUTO-716 Committing Binary Release for portlet-api-3.0.2" --username $USER_NAME |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto-bundle/3.1.0/pluto-bundle-3.1.0.zip |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto-bundle/3.1.0/pluto-bundle-3.1.0.zip.asc |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto-bundle/3.1.0/pluto-bundle-3.1.0.zip.md5 |
| wget --no-check-certificate $BASE_URL/org/apache/portals/pluto/pluto-bundle/3.1.0/pluto-bundle-3.1.0.zip.sha1 |
| svn add pluto-bundle-3.1.0.zip* |
| svn commit -m "PLUTO-716 Committing Binary Release for Pluto 3.1.0" --username $USER_NAME |
| |
| 13. PUT THE RELEASE CANDIDATE UP FOR A VOTE |
| |
| a. Create a VOTE email thread on dev@ to record votes as replies. (See Example VOTE e-mail message) |
| b. Perform a review of the release and cast your vote. See the following for more details on Apache releases |
| |
| http://www.apache.org/dev/release.html |
| |
| c. 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. |
| If you want to recover it from a vetoed release, refer to the OpenJPA documentation, Recovering from a vetoed release. |
| |
| d. 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 by |
| reply to the initial email and prepend to the original subject "[RESULT]" (See Example RESULT e-mail message) |
| Include a list of everyone who voted +1, 0 or -1. |
| |
| References: |
| Apache Voting Process http://www.apache.org/foundation/voting.html |
| Who We Are (Apache Portals Project) http://portals.apache.org/whoweare.html |
| |
| 14. FINALIZE THE RELEASE |
| |
| a. Promote the staged nexus artifacts |
| https://repository.apache.org/index.html |
| Staging repositories (under Build Promotion) --> Name column --> org.apache.portals |
| Click checkbox of the closed staging repo (org.apache.portals-XXX) and select Release. |
| |
| b. Move the source/binary artifacts over to the distribution area |
| Command line examples to distribute artifacts (pluto-3.1.0-source-release.zip as an example below.): |
| |
| $ cd ~/asf/svn |
| $ mkdir release |
| $ cd release |
| $ svn co https://dist.apache.org/repos/dist/release/portals/pluto |
| $ cd pluto |
| $ mv ../../dev/portals/pluto/pluto-3.1.0-source-release* . |
| $ svn add pluto-3.1.0-source-release* |
| $ svn commit -m "PLUTO-716 Committing Source Release for pluto-3.1.0" --username $USER_NAME |
| |
| c. If the Portlet API was released, then move the source/binary artifacts over to the distribution area |
| $ mv ../../dev/portals/pluto/portlet-api-3.0.2* . |
| $ svn add portlet-api-3.0.2* |
| $ svn commit -m "PLUTO-716 Committing Binary Release for portlet-api-3.0.2" --username $USER_NAME |
| |
| d. Move the bundle artifacts over to the distribution area |
| $ mv ../../dev/portals/pluto/pluto-bundle-3.1.0.zip* . |
| $ svn add pluto-bundle-3.1.0.zip* |
| $ svn commit -m "PLUTO-716 Committing Binary Release for Pluto 3.1.0" --username $USER_NAME |
| $ cd ../dev/pluto |
| $ FILES=`svn status | grep pluto | awk '{print $2}'` |
| $ svn rm $FILES |
| $ svn commit -m "PLUTO-716 Promoted artifacts from dev to release for Pluto 3.1.0" --username $USER_NAME |
| |
| WAIT 24hrs after committing releases for mirrors to replicate before announcing release |
| |
| 15. UPDATE JIRA |
| Update the JIRA versions page to close all issues, 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. |
| |
| Generate the Release Notes from the Version page |
| |
| 16. UPDATE SITE DOCS |
| |
| a. Copy the previous xdoc version folder to a new one which matches the release version, for example: |
| $ cd ~/asf/svn |
| $ svn checkout https://svn.apache.org/repos/asf/portals/site/ |
| $ cd site |
| $ cp -r pluto/src/site/xdoc/v301 pluto/src/site/xdoc/v310 |
| |
| b. Edit the following files, replacing "v301" with "v310" and "3.0.1" with "3.1.0": |
| pluto/src/site/xdoc/v310/* |
| |
| NOTE: For pluto/src/site/xdoc/v310/getting-started.html you should only replace the version numbers if |
| the archetypes were released! Also, are there new archetypes to add? |
| |
| NOTE: For pluto/src/site/xdoc/v310/tck.html you should take care with substitution of version numbers |
| since the TCK has its won version scheme and release schedule. |
| |
| c. Edit the following files, replacing "v301" with "v310" and "3.0.1" with "3.1.0": |
| pluto/src/site/fml/faq.fml |
| pluto/src/site/site.xml <-- If applicable, instead of replacing version numbers, add a new <menu name="Pluto 3.1"> section |
| pluto/src/site/xdoc/download.xml |
| pluto/src/site/xdoc/index.xml |
| pluto/src/site/xdoc/news.xml <-- Also add a news item detailing the release. |
| pluto/src/site/xdoc/security.xml <-- Also add descriptions of any CVE issues that were fixed. |
| pluto/src/site/xdoc/status.xml <-- If applicable, add a description of the new major or minor version. |
| |
| d. Edit site/pluto/src/site/xdoc/v30/release-notes.xml |
| include generated release notes from step 15 |
| |
| e. Generate the site: |
| $ cd ~/asf/svn/site |
| $ mvn site |
| $ cd pluto |
| $ mvn site |
| |
| f. Publish the docs to LIVE SITE |
| |
| Commit changes into the SVN location of Apache Portals Maven Site documentation: |
| https://svn.apache.org/repos/asf/portals/site/ |
| |
| Copy the generated html and resources into the workspace folder of the following svnpubsub SVN location: |
| https://svn.apache.org/repos/asf/portals/site-live/ |
| Commit your changes to site-live, they will publish automatically |
| |
| 17. ANNOUNCE THE RELEASE |
| |
| Make an announcement about the release on the |
| |
| general@portals.apache.org |
| pluto-user@portals.apache.org |
| |
| announce@apache.org list |
| |
| as per the Apache Announcement Mailing Lists page) (See Example ANNOUNCE e-mail message) |
| NOTE: Because announce@apache.org list allows message posting only to senders having '@apache.org' e-mail address. |
| Therefore, be sure that you send the announce message by your apache e-mail address. |
| See Committer e-mail configuration for detail. |
| NOTE: When sending announce message to multiple lists together from your @apache.org e-mail address, |
| be careful because your message can be rejected if your @apache.org e-mail address didn't susbscribe user mailinglist |
| (portalapps-user@portals.apache.org, in this case.) You can either subscribe it first from your @apache.org |
| e-mail address or send the announce message twice separately. |
| |
| NOTE: It is not required but it is better to digitally sign the announce e-mail message by using your PGP key. |
| |
| - go to G-mail settings page |
| - Select 'Accounts and Import' tab |
| - In 'Send mail as' field, |
| - click on 'Add another email address you own' |
| - type your name and apache e-mail address in the popup |
| - enter 'mail-relay.apache.org' in SMTP Server field and choose 465 as port number |
| - enter your apache account username and password |
| - select 'Secured connection using SSL (recommended)' (default) |
| - click on 'Add Account' |
| - ... |
| - You can change the default send email address if want there. |
| - When sending e-mail, check the sender address is @apache.org. |
| |
| ------------------------------------ Release Candidate Email Template ------------------------------------------------------------ |
| To: pluto-dev list |
| cc: pluto-user list, portals-pmc list |
| Subject: [VOTE] Release Apache Portals Pluto 3.1.0 |
| |
| Dear Apache Portals Pluto Team and community, |
| |
| I've staged a release candidate for the new Apache Portals Pluto 3.1.0 release. |
| |
| This release candidate includes: |
| |
| * Fully compliant Reference Implementation of the new Portlet 3.0 Specification per JCR-362 |
| https://www.jcp.org/en/jsr/detail?id=362 |
| * Fully completed TCK (Test Compatibility Kit) for Portlet Spec 3.0 |
| |
| Please review the release candidate for this project which is found in the following maven staging repository: |
| https://repository.apache.org/content/repositories/orgapacheportals-****/ |
| |
| The source and other artifacts have been made available at the /dist/dev directory: |
| https://dist.apache.org/repos/dist/dev/portals/pluto/ |
| |
| (These files will be promoted to /dist/release if the vote passes) |
| |
| The Release Notes are available here: |
| https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=****&version=****** |
| |
| The KEYS file to verify the release artifacts signature can be found here: |
| https://dist.apache.org/repos/dist/release/portals/pluto/KEYS |
| |
| Please review the release candidates and vote on releasing Apache Portals Pluto 3.1.0 |
| |
| REMINDER: According to the following policy: |
| http://www.apache.org/legal/release-policy.html#release-approval |
| "Before casting +1 binding votes, individuals are REQUIRED to download all |
| signed source code packages onto their own hardware, verify that they meet |
| all requirements of ASF policy on releases as described below, validate all |
| cryptographic signatures, compile as provided, and test the result on their |
| own platform." |
| |
| Please review the release candidates and vote on releasing Apache Portals Pluto 3.1.0 |
| |
| This vote is open for the next 72 hours. |
| |
| Please cast your vote: |
| |
| [ ] +1 for Release |
| [ ] 0 for Don't care |
| [ ] -1 Don't release (do provide a reason then) |
| |
| Regards, |
| |
| (your name) |
| |
| ------------------------------------ Result/Vote Email Template ------------------------------------------------------------ |
| |
| Respond to last email |
| Subject: [RESULT][VOTE] Release Apache Portals Pluto 3.1.0 |
| |
| Apache Portals Team and community, |
| |
| This release is accepted with the following votes: |
| |
| +1 Randy Watler |
| +1 Woonsan Ko |
| +1 David S Taylor |
| |
| Thank you all for voting! |
| |
| We will promote the release candidates to the Maven Central Repository and upload the source and binary distributions to the official download area. |
| |
| An announcement about the new release will be send out as soon as the Pluto website is updated and the source and binary distributions have been mirrored. |
| |
| Regards, |
| |
| (your name) |
| |
| ------------------------------------ Release Email ------------------------------------------------- |
| To announce@apache.org |
| general@portals.apache.org |
| pluto-user@portals.apache.org |
| jetspeed-user@portals.apache.org |
| |
| Subject: [ANNOUNCE] Apache Portals Pluto 3.1.0 release |
| |
| The Apache Portals team is pleased to announce the General Availability of |
| Apache Pluto version 3.1.0. |
| |
| This is a maintenance release that builds on the success of version 3.0.0, |
| which was the first release to implement all JSR 362 features and pass the new |
| Portlet 3.0 TCK. |
| |
| Additional Resources: |
| |
| The Java Community Process JSR 362 page will allow you to access the complete |
| specification for full details. |
| |
| http://jcp.org/en/jsr/detail?id=362 |
| |
| The Portlet API Version 3.0 page documents the portlet programming interface. |
| |
| http://portals.apache.org/pluto/portlet-3.0-apidocs/index.html |
| |
| For a full overview of all the Pluto features, see the online documentation. |
| To get up and running quickly, download the bundle which comes with a bundled |
| latest Tomcat 8 ready to run. |
| |
| Features: |
| http://portals.apache.org/pluto/v310/v3Features.html |
| |
| Release notes: |
| http://portals.apache.org/pluto/v310/release-notes.html |
| |
| Website Documentation: |
| http://portals.apache.org/pluto |
| |
| Download and Deploying: |
| http://portals.apache.org/pluto/v30/deploying.html |
| |
| KEYS file: |
| https://www.apache.org/dist/portals/pluto/KEYS |
| |
| Tomcat 8 Bundle: |
| https://www.apache.org/dist/portals/pluto/pluto-bundle-3.1.0.zip |
| https://www.apache.org/dist/portals/pluto/pluto-bundle-3.1.0.zip.asc |
| https://www.apache.org/dist/portals/pluto/pluto-bundle-3.1.0.zip.sha1 |
| |
| Using the Portlet 3.0 API with Maven: |
| <dependency> |
| <groupId>javax.portlet</groupId> |
| <artifactId>portlet-api</artifactId> |
| <version>3.0.0</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| -- |
| David S Taylor |
| On behalf of the Apache Portals PMC |