You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bu...@apache.org on 2014/01/28 02:49:22 UTC

svn commit: r895593 [6/7] - in /websites/staging/myfaces/trunk/content: ./ wiki/ wiki/asf-board-reports/ wiki/commons/ wiki/commons/user-guide/ wiki/core/ wiki/core/committer-and-pmc-guide/ wiki/core/committer-and-pmc-guide/myfaces-project-management/ ...

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/viewexpiredexception-and-session-expiry.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/viewexpiredexception-and-session-expiry.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/viewexpiredexception-and-session-expiry.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>ViewExpiredException and session expiry</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>ViewExpiredException and session expiry</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/managing-errors---infos---warnings/">Managing-errors---infos---warnings</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p>MyFaces might throw a ViewExpiredException following a session timeout,
+under certain conditions.<br />
+The issue arises in some servlet containers (e.g. WebSphere), with Server
+state-saving, and form-based login.</p>
+
+<p>Here is the scenario:</p>
+
+<ol>
+    <li>User logs in and starts using the MyFaces web application.</li>
+    <li>The session expires due to inactivity.</li>
+    <li>User clicks e.g. the 'Next' button on the page, triggering a
+POST.</li>
+    <li>The servlet container detects that the session has expired, and
+redirects the user to the login page (as configured in web.xml).</li>
+    <li>User logs in - and is automatically redirected to the page they
+were previously working on in 3.</li>
+    <li>ViewExpiredException is thrown ('No saved view state could be
+found for view identifier: ...').</li>
+</ol>
+
+<p>Why the ViewExpiredException in 6. ?  The request is not a postback -
+isn't the user just trying to view the page ?<br />
+When the servlet container detects the session expiry in 4., it stores the
+URL the user was trying to access, and the form's POST data for later use
+(e.g. in a cookie).<br />
+On login, the servlet container uses that data to redirect the user to the
+page they were trying to access, and to re-POST the form data.<br />
+This form data includes a javax.faces.ViewState (indicating that this is a
+postback) - however the view state referenced is no longer valid.</p>
+
+<p>The solution ?  If the servlet container you're using lets you configure
+session expiry behaviour, then you can turn off redirecting and re-POSTing
+form data after login.<br />
+Otherwise you will have to dive under the covers and clear the cookies
+storing the URL and form data.<br />
+On WebSphere, these cookies are WASReqURL and WASPostParam
+respectively.</p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Working with tables</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>Working with tables</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="children"><ac:parameter
+ac:name="all">true</ac:parameter></ac:macro></p>
+<p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/executing-methods-from-link-or-button-inside-a-table.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/executing-methods-from-link-or-button-inside-a-table.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/executing-methods-from-link-or-button-inside-a-table.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,214 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Executing methods from link or button inside a table</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>Executing methods from link or button inside a table</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/">Working-with-tables</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro>
+<h3>Handling Command components within table columns</h3></p>
+<p>In a typical master/detail scenario, a table displays a Collection of
+objects. There is a command component (a link or button) in each table row
+that performs some operation on the object for that row (for example,
+navigating to a separate page that shows more details about that object, or
+allows it to be edited).</p>
+
+<p>The problem is that the command's &quot;action&quot; attribute points to
+the same backing bean method to run for each row. When the method is
+executed, it somehow needs to know which of the rows was actually
+selected.</p>
+
+<h3>Using f:setActionPropertyListener or t:updateActionListener </h3>
+
+<p>Note: The f:setActionPropertyListener tag was added in JSF1.2. For
+people using JSF1.1, the Tomahawk library provides t:updateActionListener
+which does the same thing.</p>
+
+<p>This approach causes two things to happen when a command component is
+clicked:<br />
+ 1. store the command component in a property on the backing bean, then<br
+/>
+ 2. run the &quot;action method&quot;, which can look at that property to
+see exactly which item was selected</p>
+
+<p>This solution looks something like the following:</p>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+<h:dataTable var="emp" .... ></p>
+<p><h:commandLink action="#{employeeAction.prepareForEdit}">
+    <h:outputText value="#{msgs.edit}" />
+    <t:updateActionListener property="#{employeeAction.currentEmployee}"
+value="#{emp}" />
+</h:commandLink>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p>When the above link is clicked, JSF will first call the
+setCurrentEmployee(Employee) method on the backing bean (which should store
+its parameter as a member on the backing bean). The prepareForEdit method
+can then just use that member to know which specific employee was
+chosen.</p>
+
+<h3>Using the table's DataModel</h3>
+
+<p>Each table component (h:dataTable) has a DataModel object, and this
+DataModel knows which is the &quot;currently selected&quot; row.</p>
+
+<ol>
+    <li>An h:dataTable can be configured to use a !DataModel explicitly
+provided by your code, ie the &quot;value&quot; attribute of the
+h:dataTable can point to a backing-bean method that returns a !DataModel.
+If you are doing this, and the !DataModel object is cached in a member of
+your backing bean, then the &quot;action method&quot; that is triggered can
+simply access that member and call its getRowData() method to get the
+object for the &quot;selected row&quot;.</li>
+    <li>If the &quot;value&quot; attribute of the h:dataTable instead
+points to a backing-bean method that returns a List or similar collection,
+then the dataTable will internally create a !DataModel to wrap that list.
+You can access this DataModel instance by using the
+&quot;actionListener&quot; attribute on the command component, rather than
+the &quot;action&quot; one. The backing-bean method is then passed an
+ActionEvent object which contain a reference to the command-component that
+was clicked on; by walking up the component tree the enclosing UIData
+component can be found, and its DataModel then retrieved. Actually, it's
+even simpler, as the &quot;getRowData&quot; method on the UIData component
+can be used directly (it just delegates to the DataModel method).<br />
+The JSF page looks like this:
+<ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body><![CDATA[
+<h:commandLink actionListener="#{employeeAction.prepareForEdit}">
+    <h:outputText value="#{msgs.edit}" />
+</h:commandLink>
+]
+]></ac:plain-text-body></ac:macro>
+And the backing bean looks like this:
+<ac:macro
+ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body><![CDATA[
+  public void prepareForEdit(ActionEvent anEvent) {
+
+    YourBeanClass tmpBean = null;
+
+    UIComponent tmpComponent = anEvent.getComponent();
+
+    while (null != tmpComponent && !(tmpComponent instanceof UIData)) {
+      tmpComponent = tmpComponent.getParent();
+    }
+
+    if (tmpComponent != null && (tmpComponent instanceof UIData)) {
+      Object tmpRowData = ((UIData) tmpComponent).getRowData();
+      if (tmpRowData instanceof YourBeanClass) {
+    tmpBean = (YourBeanClass) tmpRowData;
+
+    //TODO Implementation of your method 
+
+      }
+    }
+
+    //TODO Exception Handling if UIData not found or tmpRowBean of wrong
+type
+
+  }
+]
+]></ac:plain-text-body></ac:macro></li>
+    <li>You could also use the &quot;binding&quot; attribute on the
+h:dataTable to make it accessable from the backing bean. However component
+bindings have their own problems and should be avoided where possible.</li>
+</ol>
+
+<h3>Passing params with f:param</h3>
+
+<p>If you are coming from Struts or some other servlet MVC framework you
+may have previously solved this problem by passing some kind of primary key
+as request parameters as part of a link, perhaps via something like
+this:</p>
+
+<p><ac:macro ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA<a href="cdata[&lt;a-href=&quot;/appcontext/someaction.do?id=1234&amp;useraction=prepareedit&quot;&gt;edit&lt;/a&gt;.html"><a href="/appContext/someAction.do?id=1234&userAction=prepareEdit">Edit</a></a>
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p>Using JSTL to create the above:</p>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+<c:url value="someAction.do" var="url">
+   <c:param name="id" value="1234" />
+   <c:param name="userAction" value="prepareEdit" />
+</c:url>
+<a href="${url}">Edit</a>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p>It is possible to use this approach with JSF, but it is not in the
+spirit of JSF; the solutions documented above are generally considered
+better. Nevertheless, this can be implemented as follows:</p>
+
+<p>Use an f:param tag inside of the commandButton or commandLink:</p>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+<t:dataTable var="emp" .... ></p>
+<p><h:commandLink id="editLink" action="#{employeeAction.prepareEdit}">
+  <h:outputText value="#{msg.edit}"/>
+  <f:param name="id" value="#{emp.id}"/>
+</h:commandLink>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p>To then get a handle to this request parameter in your
+&quot;prepareEdit&quot; method, you could do:</p>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+FacesContext context = FacesContext.getCurrentInstance();
+Map map = context.getExternalContext().getRequestParameterMap();
+String employeeID = (String) map.get("id");
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p>Note that in this case the parameter is a String, which you'll have to
+map to the appropriate object id yourself. Plus, you have extra lines of
+code just to get a handle to the map holding the parameters. Sure you can
+push that off to a utility class, but the above solutions are cleaner ways
+to handle this.</p>
+
+<p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/get-row-data-from-an-actionlistener.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/get-row-data-from-an-actionlistener.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/get-row-data-from-an-actionlistener.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Get row data from an ActionListener</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>Get row data from an ActionListener</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/">Jsf-and-myfaces-howtos</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/jsf-and-myfaces-howtos/working-with-tables/">Working-with-tables</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro>
+<h2>Handling buttons or links in table rows</h2></p>
+<p>If you you have a command link or button in a row of a dataTable, there
+is an easy way to get to row bean from an <a
+href="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/event/ActionListener.html">javax.faces.event.ActionListener</a>.</p>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+<h:dataTable value="#{ResultsBean.hitSet.hits}" var="hit">
+  <h:column>
+    <h:commandLink>
+      <f:actionListener type="net.java.OrderActionListener" />
+      <h:outputText value="Order" />
+    </h:commandLink>
+    ...
+  </h:column>
+</h:dataTable>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p>By this simple Java code in your subclass of <a
+href="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/event/ActionListener.html">javax.faces.event.ActionListener</a>
+you get the row bean.</p>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>java</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+public class OrderActionListener implements ActionListener {</p>
+<p>public void processAction(ActionEvent anEvent) throws
+AbortProcessingException {</p>
+<div class="codehilite"><pre><span class="n">YourBeanClass</span> <span class="n">tmpBean</span> <span class="p">=</span> <span class="n">null</span><span class="p">;</span>
+
+<span class="n">UIComponent</span> <span class="n">tmpComponent</span> <span class="p">=</span> <span class="n">anEvent</span><span class="p">.</span><span class="n">getComponent</span><span class="p">();</span>
+
+<span class="k">while</span> <span class="p">(</span><span class="n">null</span> !<span class="p">=</span> <span class="n">tmpComponent</span> <span class="o">&amp;&amp;</span> !<span class="p">(</span><span class="n">tmpComponent</span> <span class="n">instanceof</span> <span class="n">UIData</span><span class="p">))</span> <span class="p">{</span>
+  <span class="n">tmpComponent</span> <span class="p">=</span> <span class="n">tmpComponent</span><span class="p">.</span><span class="n">getParent</span><span class="p">();</span>
+<span class="p">}</span>
+
+<span class="k">if</span> <span class="p">(</span><span class="n">tmpComponent</span> !<span class="p">=</span> <span class="n">null</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">tmpComponent</span> <span class="n">instanceof</span> <span class="n">UIData</span><span class="p">))</span> <span class="p">{</span>
+  <span class="n">Object</span> <span class="n">tmpRowData</span> <span class="p">=</span> <span class="p">((</span><span class="n">UIData</span><span class="p">)</span> <span class="n">tmpComponent</span><span class="p">).</span><span class="n">getRowData</span><span class="p">();</span>
+  <span class="k">if</span> <span class="p">(</span><span class="n">tmpRowData</span> <span class="n">instanceof</span> <span class="n">YourBeanClass</span><span class="p">)</span> <span class="p">{</span>
+<span class="n">tmpBean</span> <span class="p">=</span> <span class="p">(</span><span class="n">YourBeanClass</span><span class="p">)</span> <span class="n">tmpRowData</span><span class="p">;</span>
+
+<span class="o">//</span><span class="n">TODO</span> <span class="n">Implementation</span> <span class="n">of</span> <span class="n">your</span> <span class="n">method</span>
+
+  <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="o">//</span><span class="n">TODO</span> <span class="n">Exception</span> <span class="n">Handling</span> <span class="k">if</span> <span class="n">UIData</span> <span class="n">not</span> <span class="n">found</span> <span class="n">or</span> <span class="n">tmpRowBean</span> <span class="n">of</span> <span class="n">wrong</span>
+</pre></div>
+
+
+<p>type</p>
+<p>}
+}
+]
+]&gt;</ac:plain-text-body></ac:macro>
+<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Migration Guide</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>Migration Guide</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="children" /></p>
+<p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide/from-1.2-to-2.0---2.1.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide/from-1.2-to-2.0---2.1.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide/from-1.2-to-2.0---2.1.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,115 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>From 1.2 to 2.0 - 2.1</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>From 1.2 to 2.0 - 2.1</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/migration-guide/">Migration-guide</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p>First of all, JSF 2.0 support both JSP and facelets files. In theory you
+can change your JSF implementation version and keep using your old JSF 1.2
+libraries. But it is usual that the same &quot;JSF 2.0 library
+alternates&quot; does not work as expected, because they could target only
+facelets as View Declaration Language (VDL). One known example is MyFaces
+Tomahawk that was written in that way to keep it closer to the spec.</p>
+
+<p>If your are already working with facelets, the necessary changes are
+minimal, but if you are working with JSP it is a good moment to change to
+facelets for JSF 2.0. In that way you'll enjoy all cool features like:</p>
+
+<ul>
+    <li>Partial State Saving</li>
+    <li>Composite Components</li>
+    <li>JSF 2.0 Resource Handling</li>
+    <li>JSF 2.0 Ajax</li>
+</ul>
+
+<p>When migrating JSF 1.2 (or even 1.1) applications, keep in mind that JSF
+2.1 has some improvements that makes easier convert JSP applications into
+facelets applications. It is strongly suggested to move directly to JSF
+2.1.</p>
+
+<h3>Moving from .jsp to facelets .xhtml</h3>
+
+<p>Just follow the checklist:</p>
+
+<ul>
+    <li>Rename your files to .xhtml.</li>
+    <li>update all your headers.</li>
+    <li>replace your jsp:include with ui:import.</li>
+    <li>remove your f:verbatim tags.</li>
+    <li>update your faces-config.xml navigation rules.</li>
+</ul>
+
+<h3>Upgrading .jspx files</h3>
+
+<p>You can configure facelets engine to process .jspx files instead JSP,
+minimizing the necessary changes required for your application. To do that,
+follow this list:</p>
+
+<ul>
+    <li>Configure facelets engine to handle files in different ways
+using &lt;facelets-processing&gt; tag inside
+&lt;faces-config-extensions&gt; entry on faces-config.xml (For more
+information see JSF 2.1 spec Appendix A 1.2.1.1 The facelets-processing
+element).</li>
+</ul>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+          http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
+          version="2.1">
+  <faces-config-extension>
+    <facelets-processing>
+      <file-extension>.jspx</file-extension>
+      <process-as>jspx</process-as>
+    </facelets-processing>
+  </faces-config-extension>
+</faces-config>
+]
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide/from-2.0-to-2.1.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide/from-2.0-to-2.1.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/migration-guide/from-2.0-to-2.1.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>From 2.0 to 2.1</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>From 2.0 to 2.1</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/migration-guide/">Migration-guide</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p>From spec point of view, JSF 2.1 is a maintenance release 2 from JSF
+2.0, so any application written for JSF 2.0 will work with 2.1 jars. </p>
+
+<p>There are no major changes between those versions than can cause you
+incompatibilities. By that reason, in practice both lines (2.0 and 2.1) are
+maintained by MyFaces Community at the same time.</p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/quick-start.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/quick-start.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/quick-start.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,216 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Quick Start</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>Quick Start</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p>
+<h2>Step 1: Take a look at the examples</h2>
+
+<p>Your first step with Apache MyFaces should be to have a look at our
+examples application. In the following links (kindly hosted by Irian
+Solutions GmbH) you will find demo applications running with MyFaces.</p>
+
+<ul>
+    <li><a href="http://www.irian.at/myfaces">Tomahawk and Sandbox
+Examples</a> (and look to the bottom for Tomahawk Examples and Sandbox
+Examples links)</li>
+    <li><a href="http://www.irian.at/adfFaces/">Trinidad
+Examples</a></li>
+    <li><a href="http://www.irian.at/tobago/">Tobago Examples</a></li>
+</ul>
+
+<p>You can deploy the examples application for yourself. All you need to do
+to get up and running is to follow the steps below!:</p>
+
+<h2>Step 2: Deploy MyFaces Tomahawk example application.</h2>
+
+<p>The most simple example you can try is the ones bundled with tomahawk,
+which at the begining of MyFaces project was the example application
+bundled with MyFaces Core.</p>
+
+<h3>What you need for the Examples Application</h3>
+
+<ul>
+    <li>A web server like Apache Tomcat. The example shown runs on 5.x,
+6.x or 7.x, but note JSF 1.2 and later versions requires tomcat 6.x or
+upper. Download it from <a href="http://tomcat.apache.org">here</a>.</li>
+    <li>Go to <a
+href="http://myfaces.apache.org/tomahawk/download.html">Tomahawk download
+page</a> and download the webapps assembly (tomahawk-examples-X.X.X.zip or
+tomahawk-examples-X.X.X.tgz)</li>
+</ul>
+
+<h3>Installing and Running the Examples</h3>
+
+<ul>
+    <li>Unpack the MyFaces examples archive tomahawk-examples.X.X.X.zip
+(or tomahawk-examples-X.X.X.tgz) to a directory of your choice.</li>
+    <li>Remove any previous MyFaces webapps from your Tomcat
+installation and clean up your Tomcat work dir. Also make sure that there
+is no jsf-api.jar or jsf-impl.jar (i.e. Suns API and implementation) in the
+classpath or in one of Tomcat's lib directories (for Tomcat 5.x look on
+common/lib or shared/lib, in tomcat 6.x or 7.x look on /lib folder).</li>
+    <li>Copy the file myfaces-example-simple.war (or any of the other
+example war-files, myfaces-example-simple20.war for JSF 2.0 variant) to the
+webapps dir of your Tomcat installation directory - and check once more
+that there is no old myfaces-examples directory there <ac:emoticon
+ac:name="wink" /></li>
+    <li>Start Tomcat, if its not already running.</li>
+    <li>Start your browser and enjoy it at <a
+href="http://localhost:8080/myfaces-example-simple20">http://localhost:8080/myfaces-example-simple20</a>.</li>
+</ul>
+
+<h3>Using MyFaces in your own web application</h3>
+
+<p>Suggested step:</p>
+
+<ul>
+    <li>Check the myfaces wiki for information about compatibility with
+your servlet container.</li>
+</ul>
+
+<p>There are three possible ways to start off with MyFaces, one
+(recomended) is to start using myfaces archetypes:</p>
+
+<ul>
+    <li>Download and Install Maven</li>
+    <li>Execute mvn archetype:create goal using one available
+archetype. For more info you can look here</li>
+</ul>
+
+<p>The second possibility is to start from the example-app:</p>
+
+<ul>
+    <li>If you want to have it simple, take the
+tomahawk-examples-X.X.X.zip you downloaded before for looking at the
+examples, and extract the myfaces-examples-blank-X.X.X.war file (MyFaces
+binary)</li>
+    <li>Rename the myfaces-examples-blank-X.X.X.war file to
+myfaces-examples-blank-X.X.X.zip, and extract this file - you have a
+working directory structure for a MyFaces application at hand after this
+step.</li>
+</ul>
+
+<p>The third possibility is to download the core implementation and/or
+tomahawk (dependent on if you want to use the RI and the tomahawk
+components, or only MyFaces), and start from there:</p>
+
+<ul>
+    <li>Alternatively, download the latest MyFaces binary release. You
+can download only the implementation (aka core) or the implementation and
+tomahawk.</li>
+    <li>Copy all *.jar files into your WEB-INF/lib directory. Some of
+the jar-files are optional, you can find more info on: <a
+class="external-link"
+href="http://myfaces.apache.org/impl/dependencies.html"
+rel="nofollow">http://myfaces.apache.org/impl/dependencies.html</a> and <a
+class="external-link"
+href="http://myfaces.apache.org/tomahawk/dependencies.html"
+rel="nofollow">http://myfaces.apache.org/tomahawk/dependencies.html</a></li>
+</ul>
+
+<p>After you have downloaded the necessary packages and setup your project
+hierarchy, do this:</p>
+
+<p> *Make sure that there is no jsf-api.jar (i.e. Suns API implementation)
+in the classpath or in one of your container's shared lib directories (e.g.
+common/lib or shared/lib for Tomcat).</p>
+
+<ul>
+    <li>Configure your webapp's web.xml file (see conf/web.xml for
+example and documentation)</li>
+    <li>Add the following lines to your JSPs:</li>
+</ul>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+    &lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%&gt;</p>
+<div class="codehilite"><pre><span class="cp">&lt;%</span><span class="err">@</span> <span class="n">taglib</span> <span class="n">uri</span><span class="o">=</span><span class="s2">&quot;http://java.sun.com/jsf/core&quot;</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;f&quot;</span><span class="cp">%&gt;</span><span class="x"></span>
+</pre></div>
+
+
+<p>]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<h3>Using the MyFaces Tomahawk in your own web application</h3>
+
+<ul>
+    <li>If you don't use the MyFaces implementation, you will need to
+add the file tomahawk.jar and its dependencies (see above) to your web-app
+directory.</li>
+    <li>To be able to use the MyFaces Tomahawk add the following line
+to your JSPs:</li>
+</ul>
+
+<p><ac:macro
+ac:name="code"><ac:default-parameter>xml</ac:default-parameter><ac:plain-text-body>&lt;![CDATA[
+    &lt;%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%&gt;</p>
+<div class="codehilite"><pre><span class="cp">&lt;%</span><span class="err">@</span> <span class="n">taglib</span> <span class="n">uri</span><span class="o">=</span><span class="s2">&quot;http://myfaces.apache.org/wap&quot;</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;wap&quot;</span> <span class="cp">%&gt;</span><span class="x"></span>
+</pre></div>
+
+
+<p>]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<ul>
+    <li>For using the Tomahawk components, it's also very important to
+setup the MyFaces Extensions-Filter. You find the explanations for doing
+this under: <a class="external-link"
+href="http://myfaces.apache.org/tomahawk/extensionsFilter.html"
+rel="nofollow">http://myfaces.apache.org/tomahawk/extensionsFilter.html</a></li>
+</ul>
+
+<h3>Tutorials for getting started with JSF</h3>
+
+<ul>
+    <li><a
+href="http://www.coreservlets.com/JSF-Tutorial/">Core-Servlets JSF Tutorial
+by Marty Hall</a></li>
+</ul>
+
+<p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/core/user-guide/working-with-myfaces-core-integration-tests.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/core/user-guide/working-with-myfaces-core-integration-tests.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/core/user-guide/working-with-myfaces-core-integration-tests.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>Working with MyFaces Core integration tests</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>Working with MyFaces Core integration tests</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/">Core</a>&nbsp;&raquo&nbsp;<a href="/wiki/core/user-guide/">User-guide</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro>
+<p>MyFaces core provides a submodule for running integration tests in
+various environments and configurations. The module can be found at
+core/integration-tests. The different submodules of the integration-test
+module include different configurations and environments (e.g. servlet 2.5
+and el 1.0 or servlet 3.0 and el 2.2).</p></p>
+<p>The MyFaces core integration tests use the cargo maven plugin to start
+and stop different containers and use HtmlUnit to write the test cases
+against the running container.</p>
+
+<h3>Running a core build with integration-tests</h3>
+
+<p>Adding the profile &quot;integration-tests&quot; to the maven build will
+automatically add the integration-tests submodule and thus execute all
+integration-tests.</p>
+
+<p><ac:macro ac:name="code"><ac:plain-text-body>&lt;![CDATA[
+mvn clean install -Pintegration-tests
+]
+]&gt;</ac:plain-text-body></ac:macro> </p>
+<h3>Running a specific integration-test module</h3>
+
+<p>Just go to the desired integration-test module and execute a standard
+maven build lifecycle, e.g.</p>
+
+<p><ac:macro ac:name="code"><ac:plain-text-body>&lt;![CDATA[
+cd integration-tests/servlet25-el10-basic-tests/
+mvn clean install
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<h3>Starting an integration-test environment for manual tests</h3>
+
+<p>The cargo maven plugin provides a mojo for running a container with the
+given configuration until Ctrl+C is entered in the console (just like the
+jetty-maven-plugin).</p>
+
+<p><ac:macro ac:name="code"><ac:plain-text-body>&lt;![CDATA[
+mvn clean package cargo:run
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<h3>Creating a new integration-test submodule with a specific
+configuration</h3>
+
+<p>TODO</p>
+
+<p><ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body>&lt;![CDATA<a href="cdata[{scrollbar}.html">{scrollbar}</a>
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,58 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>GSOC and MyFaces</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>GSOC and MyFaces</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p>Over the past years, many people participated in GSOC program.</p>
+
+<p>Take a look at <a
+href="http://community.apache.org/gsoc.html">Instructions for apply to GSOC
+at ASF</a> for more information about how to apply.</p>
+
+<p>Under this section you can see documentation of previous GSOC projects
+done in MyFaces land.</p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>

Added: websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-dnd-prototypes.html
==============================================================================
--- websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-dnd-prototypes.html (added)
+++ websites/staging/myfaces/trunk/content/wiki/gsoc-and-myfaces/gsoc-html5-dnd-prototypes.html Tue Jan 28 01:49:20 2014
@@ -0,0 +1,573 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html lang="en">
+  <head>
+    <title>GSoC HTML5 DnD Prototypes</title>
+
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
+    <meta property="og:image" content="http://www.apache.org/images/asf_logo.gif" />
+
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/style.css">
+    <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+
+    
+
+    
+    
+  </head>
+
+  <body>
+    <div id="page" class="container_16">
+      <div id="header" class="grid_8">
+        <img src="http://www.apache.org/images/feather-small.gif" alt="The Apache Software Foundation">
+        <h1>The Apache Software Foundation</h1>
+        <h2>GSoC HTML5 DnD Prototypes</h2>
+      </div>
+      <div id="nav" class="grid_8">
+        <ul>
+          <!-- <li><a href="/" title="Welcome!">Home</a></li> -->
+          <li><a href="http://www.apache.org/foundation/" title="The Foundation">Foundation</a></li>
+          <li><a href="http://projects.apache.org" title="The Projects">Projects</a></li>
+          <li><a href="http://people.apache.org" title="The People">People</a></li>
+          <li><a href="http://www.apache.org/foundation/getinvolved.html" title="Get Involved">Get Involved</a></li>
+          <li><a href="http://www.apache.org/dyn/closer.cgi" title="Download">Download</a></li>
+          <li><a href="http://www.apache.org/foundation/sponsorship.html" title="Support Apache">Support Apache</a></li>
+        </ul>
+        <p><a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/wiki/">Wiki</a>&nbsp;&raquo&nbsp;<a href="/wiki/gsoc-and-myfaces/">Gsoc-and-myfaces</a></p>
+        <form name="search" id="search" action="http://www.google.com/search" method="get">
+          <input value="*.apache.org" name="sitesearch" type="hidden"/>
+          <input type="text" name="q" id="query">
+          <input type="submit" id="submit" value="Search">
+        </form>
+      </div>
+      <div class="clear"></div>
+      <div id="content" class="grid_16"><div class="section-content"><p><span style="color: rgb(255,0,0);"><strong>The prototypes here were used
+for getting the feedback of other developers, during the first part (design
+part) of GSOC project. They are all obsolete now, and only kept as a
+reference example for future students .</strong></span></p>
+
+<p>See how some component libraries handle drag and drop (not HTML5
+though):<br />
+<a
+href="http://www.primefaces.org:8080/prime-showcase/ui/draggableBasic.jsf">PrimeFacesDraggable</a><br
+/>
+<a
+href="http://www.primefaces.org:8080/prime-showcase/ui/droppableBarca.jsf">PrimeFacesDroppable</a><br
+/>
+<a
+href="http://livedemo.exadel.com/richfaces-demo/richfaces/dragSupport.jsf">RichFacesDnD</a><br
+/>
+<a
+href="http://download.oracle.com/docs/cd/E15523_01/apirefs.1111/e12419/toc.htm#DragDrop">ADFDnD</a><br
+/>
+<a
+href="http://component-showcase.icefaces.org/component-showcase/showcase.iface">IceFacesDnD</a></p>
+
+<h4>&lt;fx:dragSource&gt;</h4>
+
+<h6>Extends:&nbsp;<span style="color:
+rgb(0,0,0);">ClientBehavior</span></h6>
+
+<h6>Attributes:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> action </p></td>
+<td><p> required </p></td>
+<td><p> Comma separated set or String[](.html)
+ or Collection&lt;String&gt; of copy, copyLink, copyMove, link, linkMove,
+move, all. </p></td>
+<td><p> Allowed DnD drag action from this source </p></td>
+</tr>
+<tr>
+<td><p> dropTargetTypes </p></td>
+<td><p> optional </p></td>
+<td><p> Can be comma separated set or String[](.html)
+ or Collection&lt;String&gt; </p></td>
+<td><p> With this property, we can specify which types of drop zones we can
+make DnD from this source </p></td>
+</tr>
+<tr>
+<td><p> param </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> Parameter to send to server when drop operation is done. </p></td>
+</tr>
+</tbody></table>
+
+<h6>Notes:&nbsp;</h6>
+
+<ul>
+    <li>May use <a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd">&quot;custom
+non-visible data&quot;</a>, &quot;data-*&quot; when at least one browser
+starts supporting it.</li>
+</ul>
+
+<h6>References:</h6>
+
+<ul>
+    <li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd">http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd</a></li>
+    <li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data">http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop">https://developer.mozilla.org/En/DragDrop/Drag_and_Drop</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/DataTransfer">https://developer.mozilla.org/En/DragDrop/DataTransfer</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types">https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_Operations">https://developer.mozilla.org/En/DragDrop/Drag_Operations</a></li>
+</ul>
+
+<h4>&lt;fx:dropTarget&gt;</h4>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">AjaxBehavior</span></h6>
+
+<h6>Attributes:</h6>
+
+<table><tbody>
+<tr>
+<th><p> Name </p></th>
+<th><p> Required? </p></th>
+<th><p> Values </p></th>
+<th><p> Description </p></th>
+</tr>
+<tr>
+<td><p> actions </p></td>
+<td><p> required </p></td>
+<td><p> Comma separated set or String[](.html)
+ or Collection&lt;String&gt; of copy, copyLink, copyMove, link, linkMove,
+move, all. </p></td>
+<td><p> Allowed DnD actions. <br class="atl-forced-newline" />
+If action of dragEvent are not one of these, DnD will stop. </p></td>
+</tr>
+<tr>
+<td><p> dropListener </p></td>
+<td><p> optional </p></td>
+<td><p> EL </p></td>
+<td><p> Listener method to handle DnD operation on server side. </p></td>
+</tr>
+<tr>
+<td><p> rerender </p></td>
+<td><p> optional </p></td>
+<td><p> EL and literal </p></td>
+<td><p> same with &lt;f:ajax&gt; rerender attribute. </p></td>
+</tr>
+<tr>
+<td><p> types </p></td>
+<td><p> optional </p></td>
+<td><p> Can be comma separated set or String[](.html)
+ or Collection&lt;String&gt;. </p></td>
+<td><p> Used in conjunction with &lt;fx:dragSource&gt;'s dropTargetTypes
+attribute. Types of this dropTarget. </p></td>
+</tr>
+<tr>
+<td><p> acceptMimeTypes </p></td>
+<td><p> optional </p></td>
+<td><p> Can be comma separated set or String[](.html)
+ or Collection&lt;String&gt;. </p></td>
+<td><p> If this is set, only content dropped into this zone with defined
+mime type will be accepted and sent to server-side drop listener. <br
+class="atl-forced-newline" />
+HTML5 DnD allows us to drop anything into drop zone<a href="http://html5demos.com/drag-anything">[2](2.html)
+</a> : files from desktop, images on some other document<a
+href="http://apirocks.com/html5/html5.html#slide13">[3]</a> , etc. So this
+property is a filter. <br class="atl-forced-newline" />
+If value is &quot;*&quot;, any content dropped into this zone will be
+accepted. All type info and data of dropped stuff will be sent to
+dropListener. <br class="atl-forced-newline" />
+For example, if this is true and we dragNdrop some image on any Html
+page(even not generated by JSF), dropListener will be triggered with the
+following data: <br class="atl-forced-newline" />
+content-type |  value <br class="atl-forced-newline" />
+text/uri-list | <a
+href="http://example.org/someImage.png">http://example.org/someImage.png</a>Text
+| <a
+href="http://example.org/someImage.png">http://example.org/someImage.png</a>text/plain
+| <a
+href="http://example.org/someImage.png">http://example.org/someImage.png</a>URL
+| <a
+href="http://example.org/someImage.png">http://example.org/someImage.png</a><br
+class="atl-forced-newline" />
+Another example may be dropping files from your desktop, but what to do
+with them? We'll have &lt;hx:inputFileUpload&gt; for DnD file uploading. So
+better not to accept files, or even they're accepted, we'd better not to
+send their information to server. <br class="atl-forced-newline" />
+Mime type can be something like &quot;text/x-myfaces-html5-dnd-source&quot;
+for MyFaces generated components. <br class="atl-forced-newline" />
+Default to &quot;text/x-myfaces-html5-dnd-source&quot;, thus only MyFaces
+generated components can be dropped into this zone. <br
+class="atl-forced-newline" /> </p></td>
+</tr>
+</tbody></table>
+
+<h6>Notes:&nbsp;</h6>
+
+<h6>References:</h6>
+
+<p><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd">http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd</a></p>
+
+<p><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data">http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data</a></p>
+
+<p><a
+href="http://html5demos.com/drag-anything">http://html5demos.com/drag-anything</a></p>
+
+<p><a
+href="http://apirocks.com/html5/html5.html#slide13">http://apirocks.com/html5/html5.html#slide13</a></p>
+
+<p><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop">https://developer.mozilla.org/En/DragDrop/Drag_and_Drop</a></p>
+
+<p><a
+href="https://developer.mozilla.org/En/DragDrop/DataTransfer">https://developer.mozilla.org/En/DragDrop/DataTransfer</a></p>
+
+<p><a
+href="https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types">https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types</a></p>
+
+<p><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_Operations">https://developer.mozilla.org/En/DragDrop/Drag_Operations</a></p>
+
+<h4>&lt;hx:panel&gt;</h4>
+
+<h6>Extends:&nbsp;<span style="color: rgb(0,0,0);">&lt;t:div&gt; or
+something (I don't think a dependency to Tomahawk is good. So, need to
+rewrite that stuff or copy them, preferably with
+maven-dependency-plugin)</span></h6>
+
+<h6>Attributes:</h6>
+
+<p>ondragstart, ondragend, ondragenter, ondragover, ondrop, other DnD
+behavioral attributes<br />
+dragStartStyle, dragStartStyleClass: CSS stuff to set when this component
+is being dragged<br />
+dragOverStyle, dragOverStyleClass: CSS stuff to set when something is
+dragged onto this component
+<br class="atl-forced-newline" />
+other stuff that wrapped components don't support (not clear yet!)</p>
+
+<h6>Notes:&nbsp;</h6>
+
+<ul>
+    <li>This is just like &lt;t:div&gt; or &lt;rich:panel&gt;. For
+example DnD does not work with components that dont support
+&quot;dragstart&quot; clientbehavior event. That is why &lt;hx:panel&gt; is
+necessary. We can wrap those components (ie. h:inputText, h:panelGrid) with
+&lt;hx:panel&gt;.</li>
+</ul>
+
+<h6>References:</h6>
+
+<ul>
+    <li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd">http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#dnd</a></li>
+    <li><a
+href="http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data">http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#embedding-custom-non-visible-data</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop">https://developer.mozilla.org/En/DragDrop/Drag_and_Drop</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/DataTransfer">https://developer.mozilla.org/En/DragDrop/DataTransfer</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types">https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types</a></li>
+    <li><a
+href="https://developer.mozilla.org/En/DragDrop/Drag_Operations">https://developer.mozilla.org/En/DragDrop/Drag_Operations</a>U</li>
+</ul>
+
+<h1>Usage of prototypes:</h1>
+
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;fx:dragSource&gt; with
+dropTargetType</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<hx:panel id="draggable1" >
+    <!-- SOME CONTENT -->
+    <fx:dragSource action="copy"
+dropTargetTypes="#{someBean.optionaldropTargetTypes}" 
+        param="#{someBean.dndParamToSendToServer}"/>
+</hx:panel>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<div id="draggable1" draggable="true"
+        ondragstart="return dragStart(event, 'copy',
+{'firstdropTargetType','seconddropTargetType'},
+'literalDndParamToSendToServer')"
+        >
+    <!-- RENDERED CONTENT -->
+</div>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;fx:dragSource&gt; with event handler
+chains</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<hx:panel id="draggable2" 
+        ondragstart="log('dragging');" 
+        ondragend="alert('Drag ended. May not have been dropped
+succesfully though!')">
+    <!-- SOME CONTENT -->
+    <fx:dragSource action="move" param="anotherDndParamToSendToServer"
+/>
+</hx:panel>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<div id="draggable2" draggable="true"
+        ondragstart="log('dragging'); return dragStart(event,
+'move', null, 'secondDndValueToSendServer')"
+        ondragend="alert('Drag ended. May not have been dropped
+succesfully though!')"
+        >
+    <!-- RENDERED CONTENT -->
+</div>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;fx:dragSource&gt; within &lt;hx:inputText&gt; (allowed with HTML5,
+doesn't make sense though)</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<hx:inputText id="draggableInputText">
+    <fx:dragSource action="move"/>
+</hx:panel>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<input type="text" id="draggableInputText" draggable="true"
+        ondragstart="return dragStart(event, 'move')" />
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;fx:dropTarget&gt; with type and
+rerender</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<hx:panel id="dropTarget1">
+    <!-- SOME CONTENT -->
+    <fx:dropTarget actions="move"
+dropListener="#{someBean.dropListener}" 
+        rerender="draggable1" types="firstdropTargetType"/>
+</hx:panel>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<div id="dropTarget1" 
+    ondragenter="dragEnter(event,{'move'},{'firstdropTargetType'}),
+{'text/x-myfaces-html5-dnd-source'}"
+    ondragover="dragOver(event)"
+    ondrop="drop(event, 'stuff necessary to trigger
+someBean.dropListener and rerender draggable1 using jsf.ajax.request')">
+    <!-- RENDERED CONTENT -->
+</div>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;fx:dropTarget&gt; with handler
+chaining</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<hx:panel id="dropTarget2"
+    ondragover="makeRedBorder();"
+    ondragleave="clearRedBorder();"
+    ondrop="makeGreenBorder();"
+    >
+    <!-- SOME CONTENT -->
+    <fx:dropTarget actions="copy,move"
+dropListener="#{someBean.dropListener}" />
+</hx:panel>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<div id="dropTarget2" 
+    ondragenter="dragEnter(event,{'copy','move'}), null,
+{'text/x-myfaces-html5-dnd-source'}"
+    ondragover="makeRedBorder(); dragOver(event)"
+    ondragleave="clearRedBorder();"
+    ondrop="makeGreenBorder();drop(event)">
+    <!-- RENDERED CONTENT -->
+</div>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">usage:
+&lt;fx:dropTarget&gt; that accepts some specified mime typed
+content</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<hx:panel id="dropTarget3">
+    <!-- SOME CONTENT -->
+    <fx:dropTarget actions="copy"
+dropListener="#{someBean.dropListener}" acceptMimeTypes="text/plain, URL"
+/>
+</hx:panel></p>
+<p>]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">xml</ac:parameter><ac:parameter ac:name="title">expected
+HTML5 code</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+<div id="dropTarget3" 
+    ondragenter="dragEnter(event,{'copy','move'}, null, {'text/plain',
+'URL'})"
+    ondragover="dragOver(event)"
+    ondrop="drop(event)">
+    <!-- RENDERED CONTENT -->
+</div>
+]
+]&gt;</ac:plain-text-body></ac:macro></p>
+<p><br class="atl-forced-newline" />
+<br class="atl-forced-newline" />
+And here is the script:
+<br class="atl-forced-newline" />
+<br class="atl-forced-newline" /></p>
+
+<p><ac:macro ac:name="code"><ac:parameter
+ac:name="lang">js</ac:parameter><ac:parameter ac:name="title">Javascript
+Stuff</ac:parameter><ac:plain-text-body>&lt;![CDATA[
+var paramMimeType = 'text/x-myfaces-html5-dnd-param';
+var myFacesComponentSourceMimeType = 'text/x-myfaces-html5-dnd-source';
+var dropTargetMimeType = 'text/x-myfaces-html5-drop-zone-type';
+var myFacesComponentSourceConstant = 'org.apache.myfaces';</p>
+<p>/<em>
+ * This function is only used by MyFaces generated draggable elements, the
+ones that have <fx:dragSource> behavior.
+ </em>/
+function dragStart(event, effectAllowed, paramToSendToServer,
+dropTargetTypes) {</p>
+<div class="codehilite"><pre><span class="c1">//set allowed effect</span>
+<span class="k">event</span><span class="p">.</span><span class="n">dataTransfer</span><span class="p">.</span><span class="n">effectAllowed</span> <span class="o">=</span> <span class="n">effectAllowed</span><span class="p">;</span>   <span class="c1">//only</span>
+</pre></div>
+
+
+<p>allow some specific event</p>
+<div class="codehilite"><pre><span class="c1">//with this, drop zone will understand that source of this dnd</span>
+</pre></div>
+
+
+<p>operation is some MyFaces component
+    event.dataTransfer.setData(myFacesComponentSourceMimeType,
+myFacesComponentSourceConstant);</p>
+<div class="codehilite"><pre><span class="c1">//this will be set if we want to send an optional parameter to the</span>
+</pre></div>
+
+
+<p>server-side drop listener
+    if(paramToSendToServer)
+        event.dataTransfer.setData(paramMimeType,
+valueToSendToServer);         </p>
+<div class="codehilite"><pre><span class="c1">//this will be set if we want to make the drop only into specific</span>
+</pre></div>
+
+
+<p>dropTargets with specific types
+    if(dropTargetType)
+        event.dataTransfer.setData(dropTargetMimeType,
+dropTargetTypes);    //in fact, dropTargetTypes is an array. need to
+iterate     </p>
+<div class="codehilite"><pre><span class="k">return</span> <span class="n">true</span><span class="p">;</span>
+</pre></div>
+
+
+<p>}</p>
+<p>function dragEnter(event, allowedEffects, dropTargetTypes,
+acceptedMimeTypes) {
+    //check allowed mime types first
+    var found = false;
+    var foundTypes = acceptedMimeTypes.filter(function (mimeType)
+event.dataTransfer.types.contains(mimeType));</p>
+<div class="codehilite"><pre><span class="c1">//if even one of the event mime types are not allowed, stop DnD  </span>
+<span class="k">if</span><span class="p">(</span><span class="n">foundTypes</span><span class="p">.</span><span class="n">length</span> <span class="o">==</span> <span class="mh">0</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">true</span><span class="p">;</span> <span class="c1">//don&#39;t cancel the event, thus stop DnD</span>
+
+<span class="c1">//check allowed effect</span>
+<span class="c1">//changeIt: allowedEffects is an array in fact, so need to iterate</span>
+<span class="k">if</span> <span class="p">(</span><span class="k">event</span><span class="p">.</span><span class="n">dataTransfer</span><span class="p">.</span><span class="n">effectAllowed</span> <span class="o">!=</span> <span class="n">allowedEffect</span><span class="p">)</span>      
+    <span class="k">return</span> <span class="n">true</span><span class="p">;</span> <span class="c1">//don&#39;t cancel the event, thus stop DnD</span>
+
+<span class="c1">//check drop zone type</span>
+<span class="c1">//changeIt: in fact these are arrays too. need to iterate or use</span>
+</pre></div>
+
+
+<p>contains() function
+    if (event.dataTransfer.getData(dropTargetMimeType) !=
+dropTargetTypes)
+        return true; //don't cancel the event, thus stop DnD</p>
+<div class="codehilite"><pre><span class="c1">//cancel the event. this is necessary for DnD execution </span>
+<span class="k">if</span> <span class="p">(</span><span class="k">event</span><span class="p">.</span><span class="n">preventDefault</span><span class="p">)</span>   
+    <span class="k">event</span><span class="p">.</span><span class="n">preventDefault</span><span class="p">();</span>
+
+<span class="k">return</span> <span class="n">false</span><span class="p">;</span>
+</pre></div>
+
+
+<p>}</p>
+<p>function dragOver(event){
+    //don't check source, allowedEffect and dropTargetType, since they
+are checked at dragEnter function</p>
+<div class="codehilite"><pre><span class="c1">//show same user hint effect specified by drag source </span>
+<span class="k">event</span><span class="p">.</span><span class="n">dataTransfer</span><span class="p">.</span><span class="n">dropEffect</span> <span class="o">=</span> <span class="k">event</span><span class="p">.</span><span class="n">dataTransfer</span><span class="p">.</span><span class="n">effectAllowed</span><span class="p">;</span>
+
+<span class="c1">//cancel the event, so effect on screen is updated</span>
+<span class="k">if</span> <span class="p">(</span><span class="k">event</span><span class="p">.</span><span class="n">preventDefault</span><span class="p">)</span> 
+    <span class="k">event</span><span class="p">.</span><span class="n">preventDefault</span><span class="p">();</span>
+
+<span class="k">return</span> <span class="n">false</span><span class="p">;</span>
+</pre></div>
+
+
+<p>}</p>
+<p>function drop(event, jsf_ajax_request_necessary_stuff){
+    //cancel the event. this is necessary for DnD execution 
+    if (event.preventDefault) 
+        event.preventDefault();</p>
+<div class="codehilite"><pre><span class="c1">//CALL jsf.ajax.request with constructing parameters from</span>
+</pre></div>
+
+
+<p>jsf_ajax_request_necessary_stuff
+    //this call should trigger the dropListener and make the rerender
+operation
+    //need to send event mime types and values too!</p>
+<div class="codehilite"><pre><span class="k">return</span> <span class="n">false</span><span class="p">;</span>
+</pre></div>
+
+
+<p>}
+]
+]&gt;</ac:plain-text-body></ac:macro></p></div></div>
+      <div class="clear"></div>
+    </div>
+
+    <div id="copyright" class="container_16">
+      <p>Copyright &#169; 2011 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+    </div>
+  </body>
+</html>