Added: portals/site-live/pluto/v312/deploying.html URL: http://svn.apache.org/viewvc/portals/site-live/pluto/v312/deploying.html?rev=1914835&view=auto ============================================================================== --- portals/site-live/pluto/v312/deploying.html (added) +++ portals/site-live/pluto/v312/deploying.html Thu Dec 21 23:45:24 2023 @@ -0,0 +1,244 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/v312/deploying.xml at 2023-12-21 --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Pluto – Apache Pluto - Deploying a Portlet</title> + <style type="text/css" media="all"> + @import url("../css/maven-base.css"); + @import url("../css/maven-theme.css"); + @import url("../css/site.css"); + </style> + <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /> + <meta http-equiv="Content-Language" content="en" /> + + </head> + <body class="composite"> + <div id="banner"> +<a href="http://portals.apache.org/pluto/" id="bannerLeft"><img src="http://portals.apache.org/pluto/images/apache-portals.gif" alt="Pluto"/></a> +<div id="bannerRight"> +<img src="http://portals.apache.org/pluto/images/banner.png" alt=""/></div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="breadcrumbs"> + <div class="xleft"> + <span id="publishDate">Last Published: 2023-12-21</span> + | <a href="http://portals.apache.org/pluto" class="externalLink" title="Home">Home</a> > +Apache Pluto - Deploying a Portlet + </div> + <div class="xright"><a href="../portlet-3.0-apidocs/index.html" title="Portlet 3.0 API">Portlet 3.0 API</a> | +<a href="../portlet-2.0-apidocs/index.html" title="Portlet 2.0 API">Portlet 2.0 API</a> | +<a href="../portlet-1.0-apidocs/index.html" title="Portlet 1.0 API">Portlet 1.0 API</a> | +<a href="http://jcp.org/en/jsr/detail?id=362" class="externalLink" title="JSR 362 JCP Page">JSR 362 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=286" class="externalLink" title="JSR 286 JCP Page">JSR 286 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=168" class="externalLink" title="JSR 168 JCP Page">JSR 168 JCP Page</a> </div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="leftColumn"> + <div id="navcolumn"> + <h5>The Pluto Project</h5> + <ul> + <li class="none"><a href="../index.html" title="About Pluto">About Pluto</a></li> + <li class="none"><a href="../mission.html" title="Mission">Mission</a></li> + <li class="none"><a href="../download.html" title="Download">Download</a></li> + <li class="none"><a href="../news.html" title="News">News</a></li> + <li class="none"><a href="../security.html" title="Security">Security</a></li> + <li class="none"><a href="../status.html" title="Status">Status</a></li> + <li class="none"><a href="../architecture.html" title="Architecture">Architecture</a></li> + <li class="none"><a href="../resources.html" title="Resources">Resources</a></li> + <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li> + <li class="none"><a href="http://wiki.apache.org/portals/Pluto" class="externalLink" title="Wiki">Wiki</a></li> + <li class="none"><a href="https://issues.apache.org/jira/browse/PLUTO" class="externalLink" title="Issue Tracker (JIRA)">Issue Tracker (JIRA)</a></li> + <li class="none"><a href="../helping.html" title="Get Involved">Get Involved</a></li> + </ul> + <h5>Pluto 3.1</h5> + <ul> + <li class="none"><a href="../v312/mvcbean-portlets.html" title="MVCBean Portlets">MVCBean Portlets</a></li> + <li class="none"><a href="../v312/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v312/maven-archetypes.html" title="Maven Archetypes">Maven Archetypes</a></li> + <li class="none"><strong>Deploying Portlets</strong></li> + <li class="none"><a href="../v312/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v312/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v312/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v312/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 3.0</h5> + <ul> + <li class="none"><a href="../v301/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v301/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v301/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v301/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v301/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v301/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 2.0</h5> + <ul> + <li class="none"><a href="../v20/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v20/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v20/embedding.html" title="Embedding">Embedding</a></li> + <li class="none"><a href="../v20/release-notes.html" title="Release Notes">Release Notes</a></li> + <li class="none"><a href="../v20/app-servers.html" title="App Servers">App Servers</a></li> + <li class="none"><a href="../v20/powered.html" title="Powered By Pluto">Powered By Pluto</a></li> + </ul> + <h5>Pluto 1.1</h5> + <ul> + <li class="none"><a href="../v11/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v11/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v11/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Subprojects</h5> + <ul> + <li class="none"><a href="../subprojects/subprojects.html" title="Overview">Overview</a></li> + </ul> + <h5>Project Info</h5> + <ul> + <li class="none"><a href="../project-summary.html" title="Project Summary">Project Summary</a></li> + <li class="none"><a href="../team-list.html" title="Project Team">Project Team</a></li> + <li class="none"><a href="../license.html" title="Project License">Project License</a></li> + <li class="none"><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li> + <li class="none"><a href="../source-repository.html" title="Source Repository">Source Repository</a></li> + <li class="none"><a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li> + </ul> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> + </a> + </div> + </div> + <div id="bodyColumn"> + <div id="contentBox"> + + + + + <div class="section"> +<h2><a name="Deploying_a_Portlet_to_Pluto_Portal_Version_3.1.2"></a>Deploying a Portlet to Pluto Portal Version 3.1.2</h2> + + +<p> + The portlet war file is built just like any other web application war + file. No special processing steps are necessary. Note in particular that + the assembly processing step required by Pluto version 2.0 is no longer needed. + </p> + + +<div class="section"> +<h3><a name="Portlet_Deployment"></a>Portlet Deployment</h3> + +<p> + To deploy a portlet application, simply deploy the application war + using any standard mechanism for your application server. There are many + maven plugins and ant tasks that can assist with this, or you can use + an administrative web console. This console is the Tomcat manager webapp in the + Pluto bundled distribution and is accessed via the 'Upload and deploy portlet war' link + on the page administration portlet. See the Help link on that portlet for more details. + </p> + +<p> + In the bundled distribution that uses Tomcat, deployment of an assembled war can simply + be done by dropping the war into the webapps directory. You can automatically achive this + by adding the following code within the plugins section of your maven pom.xml: + </p> + +<div class="source"> +<pre> + <plugin> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <phase>integration-test</phase> + <configuration> + <tasks> + <property environment="env"/> + <!-- This assumes that you have set a CATALINA_HOME environmental variable --> + <property name="pluto.home" value="${env.CATALINA_HOME}"/> + <copy file="target/${pom.name}.war" todir="${pluto.home}/webapps"/> + </tasks> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + </pre></div> + +<p> + Once the pom.xml file has been updated with this plugin, you can run the full build + and deployment using the command: mvn integration-test. The code assumes that you have set + the environmental variable CATALINA_HOME to the Pluto home directory. If that has not been + done, just set pluto.home from the command line with the -D flag. The command line would + then be: mvn -Dpluto.home=C:/pluto integration-test. + </p> + + </div> + + +<div class="section"> +<h3><a name="Portlet_Publishing"></a>Portlet Publishing</h3> + +<p> + As soon as the portlet application (war) is deployed to the servlet container + the portlet application will be available to the portal and can be added to + pages using the page administration portlet. See the help mode in this portlet + for details on its use. + </p> + + +<p><b>Portal Page Configuration</b></p> + +<p> + If you'd like for your page configuration to be consistent throughout + restarts of the application server (currently placements made through + the page administration portlet is not persistent), you should then configure the page + layout in the portal-driver configuration file (pluto-portal-driver-config.xml). + </p> + +<p> + The page can then be configured by adding a <tt>page</tt> child element of the <tt>render-config</tt> + element, like this: + </p> +<div class="source"> +<pre> +<render-config default="Test Page"> + ... ... + <page name="Your Portal Page Name" uri="/WEB-INF/themes/pluto-default-theme.jsp"> + <portlet context="/your_portlet_app_context_path" name="your_portlet_1"/> + <portlet context="/your_portlet_app_context_path" name="your_portlet_2"/> + </page> +</render-config> + </pre></div> + + +<p> + The <tt>uri</tt> attribute defines the theme of your portal page. + If you use <tt>/WEB-INF/themes/pluto-default-theme.jsp</tt> (which is the + default theme of Pluto Testsuite portlet app), your portlets will be + displayed in two columns. You can clone this file to customize your layout. + If you do so, make sure the <tt>uri</tt> attribute points to the new file. + </p> + </div> + + </div> + + + + + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2004–2023 <a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved. </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html>
Added: portals/site-live/pluto/v312/getting-started.html URL: http://svn.apache.org/viewvc/portals/site-live/pluto/v312/getting-started.html?rev=1914835&view=auto ============================================================================== --- portals/site-live/pluto/v312/getting-started.html (added) +++ portals/site-live/pluto/v312/getting-started.html Thu Dec 21 23:45:24 2023 @@ -0,0 +1,386 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/v312/getting-started.xml at 2023-12-21 --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Pluto – Apache Pluto - Getting Started</title> + <style type="text/css" media="all"> + @import url("../css/maven-base.css"); + @import url("../css/maven-theme.css"); + @import url("../css/site.css"); + </style> + <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /> + <meta http-equiv="Content-Language" content="en" /> + + </head> + <body class="composite"> + <div id="banner"> +<a href="http://portals.apache.org/pluto/" id="bannerLeft"><img src="http://portals.apache.org/pluto/images/apache-portals.gif" alt="Pluto"/></a> +<div id="bannerRight"> +<img src="http://portals.apache.org/pluto/images/banner.png" alt=""/></div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="breadcrumbs"> + <div class="xleft"> + <span id="publishDate">Last Published: 2023-12-21</span> + | <a href="http://portals.apache.org/pluto" class="externalLink" title="Home">Home</a> > +Apache Pluto - Getting Started + </div> + <div class="xright"><a href="../portlet-3.0-apidocs/index.html" title="Portlet 3.0 API">Portlet 3.0 API</a> | +<a href="../portlet-2.0-apidocs/index.html" title="Portlet 2.0 API">Portlet 2.0 API</a> | +<a href="../portlet-1.0-apidocs/index.html" title="Portlet 1.0 API">Portlet 1.0 API</a> | +<a href="http://jcp.org/en/jsr/detail?id=362" class="externalLink" title="JSR 362 JCP Page">JSR 362 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=286" class="externalLink" title="JSR 286 JCP Page">JSR 286 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=168" class="externalLink" title="JSR 168 JCP Page">JSR 168 JCP Page</a> </div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="leftColumn"> + <div id="navcolumn"> + <h5>The Pluto Project</h5> + <ul> + <li class="none"><a href="../index.html" title="About Pluto">About Pluto</a></li> + <li class="none"><a href="../mission.html" title="Mission">Mission</a></li> + <li class="none"><a href="../download.html" title="Download">Download</a></li> + <li class="none"><a href="../news.html" title="News">News</a></li> + <li class="none"><a href="../security.html" title="Security">Security</a></li> + <li class="none"><a href="../status.html" title="Status">Status</a></li> + <li class="none"><a href="../architecture.html" title="Architecture">Architecture</a></li> + <li class="none"><a href="../resources.html" title="Resources">Resources</a></li> + <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li> + <li class="none"><a href="http://wiki.apache.org/portals/Pluto" class="externalLink" title="Wiki">Wiki</a></li> + <li class="none"><a href="https://issues.apache.org/jira/browse/PLUTO" class="externalLink" title="Issue Tracker (JIRA)">Issue Tracker (JIRA)</a></li> + <li class="none"><a href="../helping.html" title="Get Involved">Get Involved</a></li> + </ul> + <h5>Pluto 3.1</h5> + <ul> + <li class="none"><a href="../v312/mvcbean-portlets.html" title="MVCBean Portlets">MVCBean Portlets</a></li> + <li class="none"><strong>Getting Started</strong></li> + <li class="none"><a href="../v312/maven-archetypes.html" title="Maven Archetypes">Maven Archetypes</a></li> + <li class="none"><a href="../v312/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v312/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v312/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v312/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v312/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 3.0</h5> + <ul> + <li class="none"><a href="../v301/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v301/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v301/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v301/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v301/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v301/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 2.0</h5> + <ul> + <li class="none"><a href="../v20/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v20/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v20/embedding.html" title="Embedding">Embedding</a></li> + <li class="none"><a href="../v20/release-notes.html" title="Release Notes">Release Notes</a></li> + <li class="none"><a href="../v20/app-servers.html" title="App Servers">App Servers</a></li> + <li class="none"><a href="../v20/powered.html" title="Powered By Pluto">Powered By Pluto</a></li> + </ul> + <h5>Pluto 1.1</h5> + <ul> + <li class="none"><a href="../v11/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v11/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v11/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Subprojects</h5> + <ul> + <li class="none"><a href="../subprojects/subprojects.html" title="Overview">Overview</a></li> + </ul> + <h5>Project Info</h5> + <ul> + <li class="none"><a href="../project-summary.html" title="Project Summary">Project Summary</a></li> + <li class="none"><a href="../team-list.html" title="Project Team">Project Team</a></li> + <li class="none"><a href="../license.html" title="Project License">Project License</a></li> + <li class="none"><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li> + <li class="none"><a href="../source-repository.html" title="Source Repository">Source Repository</a></li> + <li class="none"><a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li> + </ul> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> + </a> + </div> + </div> + <div id="bodyColumn"> + <div id="contentBox"> + + + + + <div class="section"> +<h2><a name="Installing_the_Pluto_3.1.2_Binary_Build"></a>Installing the Pluto 3.1.2 Binary Build</h2> + + +<div class="highlightBox"> + +<div class="section"> +<div class="section"> +<h4><a name="About_Pluto_Distributions"></a>About Pluto Distributions</h4> + +<p> + You can download a pre-built Pluto bundle, or you can build Pluto from + the source code. + </p> +<ul> + +<li> + <b>pluto-bundle</b> - Provides Pluto and Tomcat bundled together. + </li> + +<li><b>pluto-source-release</b> - Provides the Pluto source code; requires + that you build and deploy Pluto on your own.</li> + </ul> + + </div> + + +<ol style="list-style-type: decimal"> + +<li> + + Download the Pluto 3.1.2 binary distribution named <b>pluto-bundle-3.1.2.zip</b> from + a <a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/portals/pluto/">distribution site</a>.</li> + +<li>Unzip the binary distribution into a directory.</li> + +<ol style="list-style-type: decimal"> + +<li>pluto-<version> (pluto-3.1.2) will be the top level directory.</li> + </ol> + +<li> + Execute startup.bat (Windows) or startup.sh (Unix) + in pluto-<version>/bin.</li> + +<li> + Use shutdown.bat/shutdown.sh to stop the portal + </li> + +<li> + Browse to <a class="externalLink" href="http://localhost:8080/pluto/portal">http://localhost:8080/pluto/portal</a> + </li> + +<li> + Login as user pluto (password=pluto) or tomcat (password=pluto). + </li> + </ol> + + </div></div></div> + + +<div class="section"> +<h2><a name="Building_Pluto_3.1.2_from_Source"></a>Building Pluto 3.1.2 from Source</h2> + + +<p> + Pluto uses Maven 3 as its project management and build system. + Pluto currently provides Maven plugins and ant scripts which can be used to + install the Pluto Portal. + </p> + + +<p> + The Pluto project uses the + <a class="externalLink" href="https://git-scm.com/">Git</a> version control + system. If you're new to Git, you can find many books and online + resources to help you. + </p> + + +<div class="section"> +<div class="section"> +<h4><a name="Software_Prerequisites"></a>Software Prerequisites</h4> + + +<p> + In order to build Pluto, you will need to have the following software + packages installed on your system. For help in obtaining and installing + the packages, please access the appropriate web resources. + </p> +<ul> + +<li> + A Java runtime environment, version 1.8.0 or later. See + <a class="externalLink" href="https://java.com/en/download/">the Java download site</a> + </li> + +<li> + Apache Ant, version 1.9.3 or later. See + <a class="externalLink" href="https://ant.apache.org/bindownload.cgi">the Apache Ant download site</a> + </li> + +<li> + Apache Maven, version 3.3.1 or later. See + <a class="externalLink" href="https://maven.apache.org/download.cgi">the Apache Maven download site</a> + </li> + +<li> + Git version control software, version 2.0.0 or later. See + <a class="externalLink" href="https://git-scm.com/downloads">the Git download site</a> + </li> + </ul> + Note that your computer will also require access to the Internet during + the build process in order to access maven repositories and other information. + + + </div> +<div class="section"> +<h4><a name="Obtaining_Pluto_3.1.2_Source_Code"></a>Obtaining Pluto 3.1.2 Source Code</h4> + + +<p> + To browse the Pluto source code online, access + <a class="externalLink" href="https://github.com/apache/portals-pluto">the Apache Pluto Github mirror.</a> + This is current at all times. + </p> + + </div> +<div class="section"> +<h4><a name="Cloning_the_Pluto_Repository"></a>Cloning the Pluto Repository</h4> + +<p> + Anyone can clone the Pluto repository from the Github mirror. However, + in order to update the repository, you will need to be an Apache pluto committer. + To clone the repository, switch to the directory in which you would like the + code to reside, and execute the following command: + </p> + +<p> + <tt>git clone https://github.com/apache/portals-pluto.git pluto</tt> + </p> + +<p> + You now have the complete Pluto source code in the <tt>./pluto</tt> subdirectory. + </p> + +<p> + The source code versions are tagged in the respository. If you want to build + version 3.1.2 rather than the current development version, checkout the 'pluto-3.1.2' tag: + </p> + +<p> + <tt>git checkout pluto-3.1.2</tt> + </p> + + </div> +<div class="section"> +<h4><a name="Building_Pluto_using_Apache_Ant"></a>Building Pluto using Apache Ant</h4> + +<p> + This is the easiest way to build Pluto. The Ant build script will use first + build the binaries from source, then download and unpack the appropriate + Apache Tomcat web container for the code version being built. It will then + install pluto on Tomcat, adjusting the Tomcat configuration as necessary. + </p> + +<p> + The <tt>dist-build.xml</tt> build script allows a number + of options for building and packaging the code. View the file for details. + The options used in the following command causes the demo portlets to be deployed + and retains the tomcat directory created during the build process rather + than deleting it. Execute the following command: + </p> + +<p> + <tt>ant -f dist-build.xml -DincludeDemos=true -DnoClean=true</tt> + </p> + +<p> + You now have Pluto built and deployed in the <tt>./pluto/target/dist</tt> subdirectory. + You can now switch to the <tt>./pluto/target/dist/<tomcat>/bin</tt> + subdirectory and start Tomcat and Pluto as described in the next section. + </p> + + </div></div> +<div class="section"> +<h3><a name="Starting_the_Portal"></a>Starting the Portal</h3> + +<p> + Now you are ready to use the Pluto Portal built from source. Start up tomcat by running + <tt>startup.bat</tt> (for windows) or <tt>startup.sh</tt> (for + *nix) in <tt><TOMCAT_HOME>/bin</tt>, and browse to + <tt>http://localhost:8080/pluto/portal</tt>. Login to Pluto using + the user ID 'pluto' and password 'pluto'. + </p> + </div> + </div> + + +<div class="section"> +<h2><a name="Using_the_Demo_Portlets"></a>Using the Demo Portlets</h2> + +<p> + The Pluto distribution contains four version 3.1.2 portlet applications that + illustrate the use of all aspects of JSR 362 portlet programming. + </p> + +<ul> + +<li> + <b>applicant-mvcbean-cdi-jsp-portlet</b> - "Job Applicant" MVCBean portlet featuring JSPX views. + </li> + +<li> + <b>applicant-mvcbean-cdi-thymeleaf-portlet</b> - "Job Applicant" MVCBean portlet featuring Thymeleaf views. + </li> + +<li> + <b>hub-demo-portlet</b> - Contains portlets that show how you can use the + Portlet Hub JavaScript API to create portal-based single-page applications. + </li> + +<li> + <b>v3-annotated-demo-portlet</b> - Contains portlets that illustrate the use of + the version 3.1.2 Extended Method Annotations feature. + </li> + +<li> + <b>v3-demo-portlet</b> - Contains portlets that illustrate miscellaneous aspects + of the API. + </li> + +<li> + <b>chat-room-demo-portlet</b> - Contains portlets that implement a simple chat room demo + based on the Portlet Hub JavaScript API and the portlet asynchronous + processing feature. + </li> + </ul> + +<p> + The best way to view the source code would be to import the modules + mentioned above into your favorite IDE. + </p> + </div> + + +<div class="section"> +<h2><a name="Maven_Archetypes"></a>Maven Archetypes</h2> + +<p>Refer to the <a href="maven-archetypes.html">Maven Archetypes</a> page in order to learn how to quickly generate a new portlet project from a starter template.</p> + </div> + + + + + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2004–2023 <a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved. </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html> Added: portals/site-live/pluto/v312/maven-archetypes.html URL: http://svn.apache.org/viewvc/portals/site-live/pluto/v312/maven-archetypes.html?rev=1914835&view=auto ============================================================================== --- portals/site-live/pluto/v312/maven-archetypes.html (added) +++ portals/site-live/pluto/v312/maven-archetypes.html Thu Dec 21 23:45:24 2023 @@ -0,0 +1,208 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/v312/maven-archetypes.xml at 2023-12-21 --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Pluto – Apache Pluto - Maven Archetypes</title> + <style type="text/css" media="all"> + @import url("../css/maven-base.css"); + @import url("../css/maven-theme.css"); + @import url("../css/site.css"); + </style> + <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /> + <meta http-equiv="Content-Language" content="en" /> + + </head> + <body class="composite"> + <div id="banner"> +<a href="http://portals.apache.org/pluto/" id="bannerLeft"><img src="http://portals.apache.org/pluto/images/apache-portals.gif" alt="Pluto"/></a> +<div id="bannerRight"> +<img src="http://portals.apache.org/pluto/images/banner.png" alt=""/></div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="breadcrumbs"> + <div class="xleft"> + <span id="publishDate">Last Published: 2023-12-21</span> + | <a href="http://portals.apache.org/pluto" class="externalLink" title="Home">Home</a> > +Apache Pluto - Maven Archetypes + </div> + <div class="xright"><a href="../portlet-3.0-apidocs/index.html" title="Portlet 3.0 API">Portlet 3.0 API</a> | +<a href="../portlet-2.0-apidocs/index.html" title="Portlet 2.0 API">Portlet 2.0 API</a> | +<a href="../portlet-1.0-apidocs/index.html" title="Portlet 1.0 API">Portlet 1.0 API</a> | +<a href="http://jcp.org/en/jsr/detail?id=362" class="externalLink" title="JSR 362 JCP Page">JSR 362 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=286" class="externalLink" title="JSR 286 JCP Page">JSR 286 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=168" class="externalLink" title="JSR 168 JCP Page">JSR 168 JCP Page</a> </div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="leftColumn"> + <div id="navcolumn"> + <h5>The Pluto Project</h5> + <ul> + <li class="none"><a href="../index.html" title="About Pluto">About Pluto</a></li> + <li class="none"><a href="../mission.html" title="Mission">Mission</a></li> + <li class="none"><a href="../download.html" title="Download">Download</a></li> + <li class="none"><a href="../news.html" title="News">News</a></li> + <li class="none"><a href="../security.html" title="Security">Security</a></li> + <li class="none"><a href="../status.html" title="Status">Status</a></li> + <li class="none"><a href="../architecture.html" title="Architecture">Architecture</a></li> + <li class="none"><a href="../resources.html" title="Resources">Resources</a></li> + <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li> + <li class="none"><a href="http://wiki.apache.org/portals/Pluto" class="externalLink" title="Wiki">Wiki</a></li> + <li class="none"><a href="https://issues.apache.org/jira/browse/PLUTO" class="externalLink" title="Issue Tracker (JIRA)">Issue Tracker (JIRA)</a></li> + <li class="none"><a href="../helping.html" title="Get Involved">Get Involved</a></li> + </ul> + <h5>Pluto 3.1</h5> + <ul> + <li class="none"><a href="../v312/mvcbean-portlets.html" title="MVCBean Portlets">MVCBean Portlets</a></li> + <li class="none"><a href="../v312/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><strong>Maven Archetypes</strong></li> + <li class="none"><a href="../v312/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v312/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v312/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v312/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v312/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 3.0</h5> + <ul> + <li class="none"><a href="../v301/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v301/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v301/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v301/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v301/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v301/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 2.0</h5> + <ul> + <li class="none"><a href="../v20/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v20/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v20/embedding.html" title="Embedding">Embedding</a></li> + <li class="none"><a href="../v20/release-notes.html" title="Release Notes">Release Notes</a></li> + <li class="none"><a href="../v20/app-servers.html" title="App Servers">App Servers</a></li> + <li class="none"><a href="../v20/powered.html" title="Powered By Pluto">Powered By Pluto</a></li> + </ul> + <h5>Pluto 1.1</h5> + <ul> + <li class="none"><a href="../v11/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v11/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v11/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Subprojects</h5> + <ul> + <li class="none"><a href="../subprojects/subprojects.html" title="Overview">Overview</a></li> + </ul> + <h5>Project Info</h5> + <ul> + <li class="none"><a href="../project-summary.html" title="Project Summary">Project Summary</a></li> + <li class="none"><a href="../team-list.html" title="Project Team">Project Team</a></li> + <li class="none"><a href="../license.html" title="Project License">Project License</a></li> + <li class="none"><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li> + <li class="none"><a href="../source-repository.html" title="Source Repository">Source Repository</a></li> + <li class="none"><a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li> + </ul> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> + </a> + </div> + </div> + <div id="bodyColumn"> + <div id="contentBox"> + + + + +<div class="section"> +<h2><a name="Using_the_Pluto_Maven_Archetypes"></a>Using the Pluto Maven Archetypes</h2> + +<p> + There are four Maven archetypes available to quickly get you started developing a portlet application. + </p> +<ul> + +<li>mvcbean-jsp-portlet-archetype</li> + +<li>mvcbean-thymeleaf-portlet-archetype</li> + +<li>bean-portlet-archetype</li> + +<li>generic-portlet-archetype</li> + </ul> + + +<p>The <b>mvcbean-jsp-portlet-archetype</b> can be used to create an MVCBean portlet project that utilizes features from MVC 1.0, Bean Validation 2.0, Portlet 3.0, and <tt>@Inject</tt> via CDI. HTML views are processed by Pluto's JavaServer™ Pages (JSP) view engine. + </p> +<div class="source"> +<pre> +mvn archetype:generate \ + -DarchetypeGroupId=org.apache.portals.pluto.archetype \ + -DarchetypeArtifactId=mvcbean-jsp-portlet-archetype \ + -DarchetypeVersion=3.1.1 \ + -DgroupId=com.mycompany \ + -DartifactId=com.mycompany.my.mvcbean.jsp.portlet + </pre></div> + + +<p>The <b>mvcbean-thymeleaf-portlet-archetype</b> can be used to create an MVCBean portlet project that utilizes features from MVC 1.0, Bean Validation 2.0, Portlet 3.0, and <tt>@Inject</tt> CDI. HTML views are processed by Pluto's <a class="externalLink" href="https://www.thymeleaf.org">Thymeleaf</a> view engine. + </p> +<div class="source"> +<pre> +mvn archetype:generate \ + -DarchetypeGroupId=org.apache.portals.pluto.archetype \ + -DarchetypeArtifactId=mvcbean-thymeleaf-portlet-archetype \ + -DarchetypeVersion=3.1.1 \ + -DgroupId=com.mycompany \ + -DartifactId=com.mycompany.my.mvcbean.thymeleaf.portlet + </pre></div> + + +<p>The <b>bean-portlet-archetype</b> can be used to create a "bean portlet" that utilizes Portlet 3.0 features such as dependency injection with @Inject via CDI. + </p> +<div class="source"> +<pre> +mvn archetype:generate \ + -DarchetypeGroupId=org.apache.portals.pluto.archetype \ + -DarchetypeArtifactId=bean-portlet-archetype \ + -DarchetypeVersion=3.1.1 \ + -DgroupId=com.mycompany \ + -DartifactId=com.mycompany.my.bean.portlet + </pre></div> + + +<p>The <b>generic-portlet-archetype</b> can be used to create a traditional portlet project which has a class that extends GenericPortlet. + </p> +<div class="source"> +<pre> +mvn archetype:generate \ + -DarchetypeGroupId=org.apache.portals.pluto.archetype \ + -DarchetypeArtifactId=generic-portlet-archetype \ + -DarchetypeVersion=3.1.1 \ + -DgroupId=com.mycompany \ + -DartifactId=com.mycompany.my.generic.portlet + </pre></div> + + +<p> + Archetypes are available in Maven Central <a class="externalLink" href="http://search.maven.org/#search%7Cga%7C1%7Cpluto%20archetype">here.</a> + </p> + </div> + + + + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2004–2023 <a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved. </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html> Added: portals/site-live/pluto/v312/mvcbean-portlets.html URL: http://svn.apache.org/viewvc/portals/site-live/pluto/v312/mvcbean-portlets.html?rev=1914835&view=auto ============================================================================== --- portals/site-live/pluto/v312/mvcbean-portlets.html (added) +++ portals/site-live/pluto/v312/mvcbean-portlets.html Thu Dec 21 23:45:24 2023 @@ -0,0 +1,258 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/v312/mvcbean-portlets.xml at 2023-12-21 --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Pluto – Apache Pluto - MVCBean Portlets</title> + <style type="text/css" media="all"> + @import url("../css/maven-base.css"); + @import url("../css/maven-theme.css"); + @import url("../css/site.css"); + </style> + <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /> + <meta http-equiv="Content-Language" content="en" /> + + </head> + <body class="composite"> + <div id="banner"> +<a href="http://portals.apache.org/pluto/" id="bannerLeft"><img src="http://portals.apache.org/pluto/images/apache-portals.gif" alt="Pluto"/></a> +<div id="bannerRight"> +<img src="http://portals.apache.org/pluto/images/banner.png" alt=""/></div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="breadcrumbs"> + <div class="xleft"> + <span id="publishDate">Last Published: 2023-12-21</span> + | <a href="http://portals.apache.org/pluto" class="externalLink" title="Home">Home</a> > +Apache Pluto - MVCBean Portlets + </div> + <div class="xright"><a href="../portlet-3.0-apidocs/index.html" title="Portlet 3.0 API">Portlet 3.0 API</a> | +<a href="../portlet-2.0-apidocs/index.html" title="Portlet 2.0 API">Portlet 2.0 API</a> | +<a href="../portlet-1.0-apidocs/index.html" title="Portlet 1.0 API">Portlet 1.0 API</a> | +<a href="http://jcp.org/en/jsr/detail?id=362" class="externalLink" title="JSR 362 JCP Page">JSR 362 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=286" class="externalLink" title="JSR 286 JCP Page">JSR 286 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=168" class="externalLink" title="JSR 168 JCP Page">JSR 168 JCP Page</a> </div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="leftColumn"> + <div id="navcolumn"> + <h5>The Pluto Project</h5> + <ul> + <li class="none"><a href="../index.html" title="About Pluto">About Pluto</a></li> + <li class="none"><a href="../mission.html" title="Mission">Mission</a></li> + <li class="none"><a href="../download.html" title="Download">Download</a></li> + <li class="none"><a href="../news.html" title="News">News</a></li> + <li class="none"><a href="../security.html" title="Security">Security</a></li> + <li class="none"><a href="../status.html" title="Status">Status</a></li> + <li class="none"><a href="../architecture.html" title="Architecture">Architecture</a></li> + <li class="none"><a href="../resources.html" title="Resources">Resources</a></li> + <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li> + <li class="none"><a href="http://wiki.apache.org/portals/Pluto" class="externalLink" title="Wiki">Wiki</a></li> + <li class="none"><a href="https://issues.apache.org/jira/browse/PLUTO" class="externalLink" title="Issue Tracker (JIRA)">Issue Tracker (JIRA)</a></li> + <li class="none"><a href="../helping.html" title="Get Involved">Get Involved</a></li> + </ul> + <h5>Pluto 3.1</h5> + <ul> + <li class="none"><strong>MVCBean Portlets</strong></li> + <li class="none"><a href="../v312/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v312/maven-archetypes.html" title="Maven Archetypes">Maven Archetypes</a></li> + <li class="none"><a href="../v312/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v312/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v312/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v312/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v312/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 3.0</h5> + <ul> + <li class="none"><a href="../v301/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v301/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v301/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v301/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v301/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v301/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 2.0</h5> + <ul> + <li class="none"><a href="../v20/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v20/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v20/embedding.html" title="Embedding">Embedding</a></li> + <li class="none"><a href="../v20/release-notes.html" title="Release Notes">Release Notes</a></li> + <li class="none"><a href="../v20/app-servers.html" title="App Servers">App Servers</a></li> + <li class="none"><a href="../v20/powered.html" title="Powered By Pluto">Powered By Pluto</a></li> + </ul> + <h5>Pluto 1.1</h5> + <ul> + <li class="none"><a href="../v11/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v11/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v11/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Subprojects</h5> + <ul> + <li class="none"><a href="../subprojects/subprojects.html" title="Overview">Overview</a></li> + </ul> + <h5>Project Info</h5> + <ul> + <li class="none"><a href="../project-summary.html" title="Project Summary">Project Summary</a></li> + <li class="none"><a href="../team-list.html" title="Project Team">Project Team</a></li> + <li class="none"><a href="../license.html" title="Project License">Project License</a></li> + <li class="none"><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li> + <li class="none"><a href="../source-repository.html" title="Source Repository">Source Repository</a></li> + <li class="none"><a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li> + </ul> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> + </a> + </div> + </div> + <div id="bodyColumn"> + <div id="contentBox"> + + + + + <div class="section"> +<h2><a name="MVCBean_Portlets"></a>MVCBean Portlets</h2> + +<p><b>***NEW*** in Apache Pluto 3.1.0</b>: A large subset of the <a class="externalLink" href="https://jcp.org/en/jsr/detail?id=371">JSR 371</a> (MVC 1.0) Specification has been implemented which enables "MVCBean" portlet development. This feature is an open source proof-of-concept that could possibly serve as the basis for the next version of the Portlet Specification (3.1).</p> + </div> + + +<div class="section"> +<h2><a name="MVC_1.0"></a>MVC 1.0</h2> + +<p>Portlet 3.0 introduced the concept of a CDI "bean portlet" featuring annotation-driven method dispatching with annotations such as <tt>@ActionMethod</tt>, <tt>@RenderMethod</tt>, and <tt>@ServeResourceMethod</tt>. This is effectively the "C" (Controller) concern of the Model/View/Controller (MVC) design pattern.</p> + +<p>However, Portlet 3.0 did not provide the "M" (Model) or "V" (View) concerns, nor did it provide a CDI scope that allows for model data to survive from the <tt>ACTION_PHASE</tt> to the <tt>RENDER_PHASE</tt> of the portlet lifecycle.</p> + +<p>In order to remedy this, Pluto implements MVC 1.0 in a way that makes sense for portlet development. Most of the requirements of MVC 1.0 are implemented; the main exception being those requirements that depend on JAX-RS for controller method dispatching. In other words, rather than using <tt>@GET</tt> and <tt>@POST</tt> from JAX-RS, MVCBean portlets rely on the aforementioned Portlet 3.0 annotations for controller method dispatching. Finally, Pluto implements MVC 1.0 <tt>@RedirectScoped</tt> so that model data can survive from the <tt>ACTION_PHASE</tt> to the <tt>RENDER_PHASE</tt> of the portlet lifecycle. + </p> + +<p>Consider the following MVC servlet/webapp based example which uses the JAX-RS <tt>@Path</tt> and <tt>@GET</tt> annotations for method dispatching. <b><i>These JAX-RS annotations simply don't map well to the opaque nature of PortletURLs or the portlet lifecycle</i></b>:</p> + +<div class="source"> +<pre> +@Path("hello") +public class HelloController { + + @Inject + private Models models; + + @GET + @Controller + public String hello() { + models.put("user", new User()); + return "hello.jspx"; + } +}</pre></div> + +<p>Instead, with Pluto's implementation of MVC 1.0, Portlet 3.0 annotations are used for controller method dispatching:</p> + +<div class="source"> +<pre> +@PortletRequestScoped +public class HelloController { + + @Inject + private Models models; + + @RenderMethod(portletNames = {"portlet1"}) + @Controller + public String hello(RenderRequest renderRequest, RenderResponse renderResponse) { + models.put("user", new User()); + return "hello.jspx"; + } +}</pre></div> + </div> + + +<div class="section"> +<h2><a name="Java.E2.84.A2_EE_.2F_Jakarta_EE_Programming_Model"></a>Java™ EE / Jakarta EE Programming Model</h2> + +<p>Since the MVCBean feature is built on <a class="externalLink" href="https://www.jcp.org">JCP</a> standards like <a class="externalLink" href="https://www.mvc-spec.org">MVC</a>, <a class="externalLink" href="http://www.cdi-spec.org">CDI</a>, and <a class="externalLink" href="https://beanvalidation.org">Bean Validation</a>, MVCBean portlet development relies on the familiar Java™ EE / Jakarta EE programming model.</p> + </div> + + +<div class="section"> +<h2><a name="Supported_MVC_View_Engines"></a>Supported MVC View Engines</h2> + +<p>Pluto supports the following file extensions for views:</p> + +<ul> + +<li><b>.jsp/.jspx</b> via Pluto's JSP view engine</li> + +<li><b>.html</b> via Pluto's <a class="externalLink" href="https://www.thymeleaf.org">Thymeleaf</a> view engine (requires the Thymeleaf templating engine as a dependency)</li> + </ul> + </div> + + +<div class="section"> +<h2><a name="Demo_Portlets"></a>Demo Portlets</h2> + +<p>The Pluto project contains real-world MVCBean demo portlets that demonstrate features that are typically found in web applications:</p> + +<ul> + +<li>HTML form-based submission</li> + +<li>XSS protection via MVC's <tt>Encoders</tt> API</li> + +<li>CSRF protection via MVC's <tt>@CsrfProtected</tt> annotation</li> + +<li>Injection of <tt>@RedirectScoped</tt> model data via MVC's <tt>Models</tt> API</li> + +<li>Navigation between views via methods annotated with MVC's <tt>@Controller</tt> annotation</li> + +<li>Input validation via Bean Validation and <a class="externalLink" href="https://hibernate.org/validator/">Hibernate Validator</a></li> + +<li>Uploading attachments via Portlet 3.0 multipart file upload</li> + </ul> + +<p><b>Demo #1</b>: "Job Applicant" portlet featuring <b>JSPX</b> views</p> + +<ul> + +<li><a class="externalLink" href="https://github.com/apache/portals-pluto/tree/master/demo/applicant-mvcbean-cdi-jsp-portlet">Source Code</a></li> + +<li><a class="externalLink" href="https://search.maven.org/search?q=a:applicant-mvcbean-cdi-jsp-portlet">Binary WAR</a></li> + </ul> + +<p><b>Demo #2</b>: "Job Applicant" portlet featuring <b>Thymeleaf</b> views</p> + +<ul> + +<li><a class="externalLink" href="https://github.com/apache/portals-pluto/tree/master/demo/applicant-mvcbean-cdi-thymeleaf-portlet">Source Code</a></li> + +<li><a class="externalLink" href="https://search.maven.org/search?q=a:applicant-mvcbean-cdi-thymeleaf-portlet">Binary WAR</a></li> + </ul> + </div> + + +<div class="section"> +<h2><a name="Maven_Archetypes"></a>Maven Archetypes</h2> + +<p>Refer to the <a href="maven-archetypes.html">Maven Archetypes</a> page in order to learn how to quickly generate a new MVCBean portlet project from a starter template.</p> + </div> + + + + + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2004–2023 <a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved. </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html> Added: portals/site-live/pluto/v312/portlet-api.html URL: http://svn.apache.org/viewvc/portals/site-live/pluto/v312/portlet-api.html?rev=1914835&view=auto ============================================================================== --- portals/site-live/pluto/v312/portlet-api.html (added) +++ portals/site-live/pluto/v312/portlet-api.html Thu Dec 21 23:45:24 2023 @@ -0,0 +1,278 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/v312/portlet-api.xml at 2023-12-21 --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Pluto – Apache Pluto - Portlet Concepts</title> + <style type="text/css" media="all"> + @import url("../css/maven-base.css"); + @import url("../css/maven-theme.css"); + @import url("../css/site.css"); + </style> + <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /> + <meta http-equiv="Content-Language" content="en" /> + + </head> + <body class="composite"> + <div id="banner"> +<a href="http://portals.apache.org/pluto/" id="bannerLeft"><img src="http://portals.apache.org/pluto/images/apache-portals.gif" alt="Pluto"/></a> +<div id="bannerRight"> +<img src="http://portals.apache.org/pluto/images/banner.png" alt=""/></div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="breadcrumbs"> + <div class="xleft"> + <span id="publishDate">Last Published: 2023-12-21</span> + | <a href="http://portals.apache.org/pluto" class="externalLink" title="Home">Home</a> > +Apache Pluto - Portlet Concepts + </div> + <div class="xright"><a href="../portlet-3.0-apidocs/index.html" title="Portlet 3.0 API">Portlet 3.0 API</a> | +<a href="../portlet-2.0-apidocs/index.html" title="Portlet 2.0 API">Portlet 2.0 API</a> | +<a href="../portlet-1.0-apidocs/index.html" title="Portlet 1.0 API">Portlet 1.0 API</a> | +<a href="http://jcp.org/en/jsr/detail?id=362" class="externalLink" title="JSR 362 JCP Page">JSR 362 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=286" class="externalLink" title="JSR 286 JCP Page">JSR 286 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=168" class="externalLink" title="JSR 168 JCP Page">JSR 168 JCP Page</a> </div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="leftColumn"> + <div id="navcolumn"> + <h5>The Pluto Project</h5> + <ul> + <li class="none"><a href="../index.html" title="About Pluto">About Pluto</a></li> + <li class="none"><a href="../mission.html" title="Mission">Mission</a></li> + <li class="none"><a href="../download.html" title="Download">Download</a></li> + <li class="none"><a href="../news.html" title="News">News</a></li> + <li class="none"><a href="../security.html" title="Security">Security</a></li> + <li class="none"><a href="../status.html" title="Status">Status</a></li> + <li class="none"><a href="../architecture.html" title="Architecture">Architecture</a></li> + <li class="none"><a href="../resources.html" title="Resources">Resources</a></li> + <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li> + <li class="none"><a href="http://wiki.apache.org/portals/Pluto" class="externalLink" title="Wiki">Wiki</a></li> + <li class="none"><a href="https://issues.apache.org/jira/browse/PLUTO" class="externalLink" title="Issue Tracker (JIRA)">Issue Tracker (JIRA)</a></li> + <li class="none"><a href="../helping.html" title="Get Involved">Get Involved</a></li> + </ul> + <h5>Pluto 3.1</h5> + <ul> + <li class="none"><a href="../v312/mvcbean-portlets.html" title="MVCBean Portlets">MVCBean Portlets</a></li> + <li class="none"><a href="../v312/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v312/maven-archetypes.html" title="Maven Archetypes">Maven Archetypes</a></li> + <li class="none"><a href="../v312/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><strong>Portlet Concepts</strong></li> + <li class="none"><a href="../v312/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v312/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v312/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 3.0</h5> + <ul> + <li class="none"><a href="../v301/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v301/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v301/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v301/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v301/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v301/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 2.0</h5> + <ul> + <li class="none"><a href="../v20/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v20/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v20/embedding.html" title="Embedding">Embedding</a></li> + <li class="none"><a href="../v20/release-notes.html" title="Release Notes">Release Notes</a></li> + <li class="none"><a href="../v20/app-servers.html" title="App Servers">App Servers</a></li> + <li class="none"><a href="../v20/powered.html" title="Powered By Pluto">Powered By Pluto</a></li> + </ul> + <h5>Pluto 1.1</h5> + <ul> + <li class="none"><a href="../v11/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v11/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v11/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Subprojects</h5> + <ul> + <li class="none"><a href="../subprojects/subprojects.html" title="Overview">Overview</a></li> + </ul> + <h5>Project Info</h5> + <ul> + <li class="none"><a href="../project-summary.html" title="Project Summary">Project Summary</a></li> + <li class="none"><a href="../team-list.html" title="Project Team">Project Team</a></li> + <li class="none"><a href="../license.html" title="Project License">Project License</a></li> + <li class="none"><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li> + <li class="none"><a href="../source-repository.html" title="Source Repository">Source Repository</a></li> + <li class="none"><a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li> + </ul> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> + </a> + </div> + </div> + <div id="bodyColumn"> + <div id="contentBox"> + + + + + <div class="section"> +<h2><a name="Portlet_Concepts"></a>Portlet Concepts</h2> + +<div class="section"> +<h3><a name="The_Portlet_Phase_Model"></a>The Portlet Phase Model</h3> + +<p> + When a request arrives at a portal targeted to a portlet, the portlet container + executes portlet code according to a phase model. + </p> + <img src="../images/phaseModel.png" alt="" /> + +<p> + There are three processing stages containing five processing phases, defined as follows: + </p> + +<p> + The portlet API allows creation of URLs that can be included into portlet + markup in order to activate the portlet processing stages. + </p> + +<ul> + +<li> + The Action URL, or Partial Action URL triggers preparation stage processing. + </li> + +<li> + The Render URL triggers aggregation stage processing. + </li> + +<li> + The Resource URL triggers resourec stage processing. + </li> + </ul> + +<p> + When a stage is triggered, the processing phases within that stage are executed. + </p> + +<dl> + +<dt> + Action Phase + </dt> +<dd> + The portlet can perform updates and set up render state for the Aggregation Stage. + The action phase is initiated thru form post targeting the portlet. + During action phase processing, the portlet can fire events, resulting in event phase processing. + </dd> +<dt> + Event Phase + </dt> +<dd> + During event phase processing, the portlet container routes any fired events to + the portlets subscribed to the events. + Portlets define the events they can fire and receive through configuration. + </dd> +<dt> + Header Phase (new with V3): + </dt> +<dd> + Called for all portlets before the overall portal response is committed. + Portlets can contribute header values, cookies, and markup for the HEAD section + and can declare page resource dependencies. + </dd> +<dt> + Render Phase: + </dt> +<dd> + Called after the header phase for all portlets has been executed. + The portlet generates its markup for aggregation into the portal page. + During the render phase, the portlet may only generate markup that the portal + is able to integrate into the portal page. + </dd> +<dt> + Resource Stage + </dt> +<dd> + Initiated by an Ajax request from portlet JavaScript code using a resource URL. + During the resource phase, the portlet has nearly complete control over + the response returned to the client. + It may produce markup, JSON data, or binary data, for example. + </dd> + </dl> + +<p> + The portlet container drives portlet phase execution + by setting up the execution environment for each portlet and phase and + calling the corresponding portlet lifecycle methods. + </p> + +<p> + The portlet participates in the phase model + by implementing the corresponding lifecycle methods + and by using the portlet API to carry out the appropriate tasks. + </p> + </div> + + +<div class="section"> +<h3><a name="The_Portlet_Lifecyce_Methods"></a>The Portlet Lifecyce Methods</h3> + <img src="../images/lifecycleMethods.png" alt="" /> + +<p> + Each portlet phase has a corresponding lifecycle method. + The portlet container executes the prrocessing phase by calling the portlet lifecycle method. + Each phase is provided with specific request and response objects. + Methods can implemented using the interfaces + <tt>Portlet, ResourceServingPortlet, EventPortlet</tt> and <tt>HeaderPortlet</tt>. + Portlets can be configured through annotation or using the portlet deployment descriptor. + </p> +<p> + Portlets can implement the lifecycle methods by extending the GenericPortlet class + or by using the extended method annotations. + </p> +<p> + When the extended method annotations are used, portlet lifecycle methods can be arbitrary methods in java classes. + The methods are identified by the portlet lifecycle method annotations and have + relaxed method signature requirements as compared to interface methods. + When the method annotations are used, portlets are implicitly configured if no + data beyond that provided in the annotation is required. + Additional configuration is possible through annotation or portlet deployment descriptor. + </p> + +<ul> + +<li> + Set up / tear down: @InitMethod, @DestroyMethod + </li> +<li> + Preparation stage: @ActionMethod, @EventMethod, + </li> +<li> + Aggregation stage: @HeaderMethod, @RenderMethod, + </li> +<li> + Resource stage: @ServeResourceMethod + </li> + </ul> + </div> + + </div> + + + + + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2004–2023 <a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved. </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html> Added: portals/site-live/pluto/v312/release-notes.html URL: http://svn.apache.org/viewvc/portals/site-live/pluto/v312/release-notes.html?rev=1914835&view=auto ============================================================================== --- portals/site-live/pluto/v312/release-notes.html (added) +++ portals/site-live/pluto/v312/release-notes.html Thu Dec 21 23:45:24 2023 @@ -0,0 +1,184 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!-- Generated by Apache Maven Doxia Site Renderer 1.8.1 from src/site/xdoc/v312/release-notes.xml at 2023-12-21 --> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <title>Pluto – Apache Pluto - Release Notes</title> + <style type="text/css" media="all"> + @import url("../css/maven-base.css"); + @import url("../css/maven-theme.css"); + @import url("../css/site.css"); + </style> + <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" /> + <meta http-equiv="Content-Language" content="en" /> + + </head> + <body class="composite"> + <div id="banner"> +<a href="http://portals.apache.org/pluto/" id="bannerLeft"><img src="http://portals.apache.org/pluto/images/apache-portals.gif" alt="Pluto"/></a> +<div id="bannerRight"> +<img src="http://portals.apache.org/pluto/images/banner.png" alt=""/></div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="breadcrumbs"> + <div class="xleft"> + <span id="publishDate">Last Published: 2023-12-21</span> + | <a href="http://portals.apache.org/pluto" class="externalLink" title="Home">Home</a> > +Apache Pluto - Release Notes + </div> + <div class="xright"><a href="../portlet-3.0-apidocs/index.html" title="Portlet 3.0 API">Portlet 3.0 API</a> | +<a href="../portlet-2.0-apidocs/index.html" title="Portlet 2.0 API">Portlet 2.0 API</a> | +<a href="../portlet-1.0-apidocs/index.html" title="Portlet 1.0 API">Portlet 1.0 API</a> | +<a href="http://jcp.org/en/jsr/detail?id=362" class="externalLink" title="JSR 362 JCP Page">JSR 362 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=286" class="externalLink" title="JSR 286 JCP Page">JSR 286 JCP Page</a> | +<a href="http://jcp.org/en/jsr/detail?id=168" class="externalLink" title="JSR 168 JCP Page">JSR 168 JCP Page</a> </div> + <div class="clear"> + <hr/> + </div> + </div> + <div id="leftColumn"> + <div id="navcolumn"> + <h5>The Pluto Project</h5> + <ul> + <li class="none"><a href="../index.html" title="About Pluto">About Pluto</a></li> + <li class="none"><a href="../mission.html" title="Mission">Mission</a></li> + <li class="none"><a href="../download.html" title="Download">Download</a></li> + <li class="none"><a href="../news.html" title="News">News</a></li> + <li class="none"><a href="../security.html" title="Security">Security</a></li> + <li class="none"><a href="../status.html" title="Status">Status</a></li> + <li class="none"><a href="../architecture.html" title="Architecture">Architecture</a></li> + <li class="none"><a href="../resources.html" title="Resources">Resources</a></li> + <li class="none"><a href="../faq.html" title="FAQ">FAQ</a></li> + <li class="none"><a href="http://wiki.apache.org/portals/Pluto" class="externalLink" title="Wiki">Wiki</a></li> + <li class="none"><a href="https://issues.apache.org/jira/browse/PLUTO" class="externalLink" title="Issue Tracker (JIRA)">Issue Tracker (JIRA)</a></li> + <li class="none"><a href="../helping.html" title="Get Involved">Get Involved</a></li> + </ul> + <h5>Pluto 3.1</h5> + <ul> + <li class="none"><a href="../v312/mvcbean-portlets.html" title="MVCBean Portlets">MVCBean Portlets</a></li> + <li class="none"><a href="../v312/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v312/maven-archetypes.html" title="Maven Archetypes">Maven Archetypes</a></li> + <li class="none"><a href="../v312/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v312/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v312/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v312/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><strong>Release Notes</strong></li> + </ul> + <h5>Pluto 3.0</h5> + <ul> + <li class="none"><a href="../v301/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v301/deploying.html" title="Deploying Portlets">Deploying Portlets</a></li> + <li class="none"><a href="../v301/portlet-api.html" title="Portlet Concepts">Portlet Concepts</a></li> + <li class="none"><a href="../v301/v3Features.html" title="Version 3 Features">Version 3 Features</a></li> + <li class="none"><a href="../v301/tck.html" title="Using the TCK">Using the TCK</a></li> + <li class="none"><a href="../v301/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Pluto 2.0</h5> + <ul> + <li class="none"><a href="../v20/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v20/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v20/embedding.html" title="Embedding">Embedding</a></li> + <li class="none"><a href="../v20/release-notes.html" title="Release Notes">Release Notes</a></li> + <li class="none"><a href="../v20/app-servers.html" title="App Servers">App Servers</a></li> + <li class="none"><a href="../v20/powered.html" title="Powered By Pluto">Powered By Pluto</a></li> + </ul> + <h5>Pluto 1.1</h5> + <ul> + <li class="none"><a href="../v11/getting-started.html" title="Getting Started">Getting Started</a></li> + <li class="none"><a href="../v11/deploying.html" title="Deploying">Deploying</a></li> + <li class="none"><a href="../v11/release-notes.html" title="Release Notes">Release Notes</a></li> + </ul> + <h5>Subprojects</h5> + <ul> + <li class="none"><a href="../subprojects/subprojects.html" title="Overview">Overview</a></li> + </ul> + <h5>Project Info</h5> + <ul> + <li class="none"><a href="../project-summary.html" title="Project Summary">Project Summary</a></li> + <li class="none"><a href="../team-list.html" title="Project Team">Project Team</a></li> + <li class="none"><a href="../license.html" title="Project License">Project License</a></li> + <li class="none"><a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a></li> + <li class="none"><a href="../source-repository.html" title="Source Repository">Source Repository</a></li> + <li class="none"><a href="../issue-tracking.html" title="Issue Tracking">Issue Tracking</a></li> + </ul> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"> + <img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" /> + </a> + </div> + </div> + <div id="bodyColumn"> + <div id="contentBox"> + + + <div class="section"> +<h2><a name="Release_Notes_-_Pluto_3.1.2"></a>Release Notes - Pluto 3.1.2</h2> + +<p> + Pluto version 3.1.2 is a release that mainly focuses on security related issues such as updating vulnerable third-party dependencies and fixing project CVEs. + </p> + +<p> + </p> + +<div class="section"> +<h3><a name="Bug"></a>Bug</h3> + +<ul> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-801">PLUTO-801</a>] - Build failure caused by the yuicompressor-maven-plugin +</li> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-807">PLUTO-807</a>] - Release Preparation 3.1.2 +</li> +</ul> + </div> + + +<div class="section"> +<h3><a name="Task"></a>Task</h3> + +<ul> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-796">PLUTO-796</a>] - Upgrade to Log4j 2.17.1 due to CVE-2021-45105 +</li> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-797">PLUTO-797</a>] - Upgrade to Spring Framework 5.3.14 due to CVE-2021-22060 +</li> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-799">PLUTO-799</a>] - Upgrade to Spring Framework 5.3.18 and Thymeleaf 3.0.13.RELEASE due to CVE-2022-22965 +</li> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-800">PLUTO-800</a>] - Upgrade to Spring Framework 5.3.19 due to CVE-2022-22968 +</li> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-802">PLUTO-802</a>] - Dependabot identifies false positive CVE-2021-26291 +</li> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-803">PLUTO-803</a>] - Upgrade from Tomcat 8.5.69 to 9.0.83 +</li> + +<li>[<a class="externalLink" href="https://issues.apache.org/jira/browse/PLUTO-804">PLUTO-804</a>] - Upgrade to Spring Security 5.8.8 and Spring Framework 5.3.30 +</li> +</ul> + </div> + + </div> + + + </div> + </div> + <div class="clear"> + <hr/> + </div> + <div id="footer"> + <div class="xright"> + Copyright © 2004–2023 <a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved. </div> + <div class="clear"> + <hr/> + </div> + </div> + </body> +</html>
