You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by aj...@apache.org on 2008/02/23 20:29:18 UTC
svn commit: r630513 [2/2] -
/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/ParentPageNameTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/ParentPageNameTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/ParentPageNameTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/ParentPageNameTag.java Sat Feb 23 11:29:13 2008
@@ -22,7 +22,6 @@
import java.io.IOException;
import com.ecyrd.jspwiki.WikiEngine;
-import com.ecyrd.jspwiki.WikiPage;
import com.ecyrd.jspwiki.attachment.Attachment;
/**
@@ -40,18 +39,17 @@
public final int doWikiStartTag()
throws IOException
{
- WikiEngine engine = m_wikiContext.getEngine();
- WikiPage page = m_wikiContext.getPage();
-
- if( page != null )
+ WikiEngine engine = m_actionBean.getEngine();
+
+ if( m_page != null )
{
- if( page instanceof Attachment )
+ if( m_page instanceof Attachment )
{
- pageContext.getOut().print( engine.beautifyTitle( ((Attachment)page).getParentName()) );
+ pageContext.getOut().print( engine.beautifyTitle( ((Attachment)m_page).getParentName()) );
}
else
{
- String name = page.getName();
+ String name = m_page.getName();
int entrystart = name.indexOf("_blogentry_");
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PermissionTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PermissionTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PermissionTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PermissionTag.java Sat Feb 23 11:29:13 2008
@@ -24,17 +24,14 @@
import org.apache.commons.lang.StringUtils;
-import com.ecyrd.jspwiki.WikiPage;
-import com.ecyrd.jspwiki.WikiProvider;
-import com.ecyrd.jspwiki.WikiSession;
+import com.ecyrd.jspwiki.*;
+import com.ecyrd.jspwiki.action.GroupContext;
import com.ecyrd.jspwiki.auth.AuthorizationManager;
-import com.ecyrd.jspwiki.auth.GroupPrincipal;
+import com.ecyrd.jspwiki.auth.authorize.Group;
import com.ecyrd.jspwiki.auth.permissions.AllPermission;
import com.ecyrd.jspwiki.auth.permissions.GroupPermission;
import com.ecyrd.jspwiki.auth.permissions.PermissionFactory;
import com.ecyrd.jspwiki.auth.permissions.WikiPermission;
-import com.ecyrd.jspwiki.ui.Command;
-import com.ecyrd.jspwiki.ui.GroupCommand;
/**
* Tells whether the user in the current wiki context possesses a particular
@@ -109,44 +106,40 @@
*/
private boolean checkPermission( String permission )
{
- WikiSession session = m_wikiContext.getWikiSession();
- WikiPage page = m_wikiContext.getPage();
- AuthorizationManager mgr = m_wikiContext.getEngine().getAuthorizationManager();
+ WikiEngine engine = m_actionBean.getEngine();
+ WikiSession session = m_actionBean.getWikiSession();
+ AuthorizationManager mgr = engine.getAuthorizationManager();
boolean gotPermission = false;
if ( CREATE_GROUPS.equals( permission ) || CREATE_PAGES.equals( permission )
|| EDIT_PREFERENCES.equals( permission ) || EDIT_PROFILE.equals( permission )
|| LOGIN.equals( permission ) )
{
- gotPermission = mgr.checkPermission( session, new WikiPermission( page.getWiki(), permission ) );
+ gotPermission = mgr.checkPermission( session, new WikiPermission( engine.getApplicationName(), permission ) );
}
- else if ( VIEW_GROUP.equals( permission )
- || EDIT_GROUP.equals( permission )
- || DELETE_GROUP.equals( permission ) )
- {
- Command command = m_wikiContext.getCommand();
- gotPermission = false;
- if ( command instanceof GroupCommand && command.getTarget() != null )
- {
- GroupPrincipal group = (GroupPrincipal)command.getTarget();
- String groupName = group.getName();
- String action = "view";
- if( EDIT_GROUP.equals( permission ) )
- {
- action = "edit";
- }
- else if ( DELETE_GROUP.equals( permission ) )
- {
- action = "delete";
- }
- gotPermission = mgr.checkPermission( session, new GroupPermission( groupName, action ) );
- }
+ else if ( VIEW_GROUP.equals( permission ) )
+ {
+ Group group = ((GroupContext)m_actionBean).getGroup();
+ Permission perm = new GroupPermission( group.getName(), GroupPermission.VIEW_ACTION );
+ gotPermission = mgr.checkPermission( session, perm );
+ }
+ else if ( EDIT_GROUP.equals( permission ) )
+ {
+ Group group = ((GroupContext)m_actionBean).getGroup();
+ Permission perm = new GroupPermission( group.getName(), GroupPermission.VIEW_ACTION );
+ gotPermission = mgr.checkPermission( session, perm );
+ }
+ else if ( DELETE_GROUP.equals( permission ) )
+ {
+ Group group = ((GroupContext)m_actionBean).getGroup();
+ Permission perm = new GroupPermission( group.getName(), GroupPermission.VIEW_ACTION );
+ gotPermission = mgr.checkPermission( session, perm );
}
else if ( ALL_PERMISSION.equals( permission ) )
{
- gotPermission = mgr.checkPermission( session, new AllPermission( m_wikiContext.getEngine().getApplicationName() ) );
+ gotPermission = mgr.checkPermission( session, new AllPermission( engine.getApplicationName() ) );
}
- else if ( page != null )
+ else if ( m_actionBean instanceof WikiContext && m_page != null )
{
//
// Edit tag also checks that we're not trying to edit an
@@ -154,15 +147,15 @@
//
if( EDIT.equals(permission) )
{
- WikiPage latest = m_wikiContext.getEngine().getPage( page.getName() );
- if( page.getVersion() != WikiProvider.LATEST_VERSION &&
- latest.getVersion() != page.getVersion() )
+ WikiPage latest = engine.getPage( m_page.getName() );
+ if( m_page.getVersion() != WikiProvider.LATEST_VERSION &&
+ latest.getVersion() != m_page.getVersion() )
{
return false;
}
}
- Permission p = PermissionFactory.getPagePermission( page, permission );
+ Permission p = PermissionFactory.getPagePermission( m_page, permission );
gotPermission = mgr.checkPermission( session,
p );
}
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PluginTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PluginTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PluginTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PluginTag.java Sat Feb 23 11:29:13 2008
@@ -81,7 +81,7 @@
m_evaluated = true;
- Map argmap = pm.parseArgs( args );
+ Map<String,Object> argmap = pm.parseArgs( args );
if( body != null )
{
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PreviousVersionTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PreviousVersionTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PreviousVersionTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/PreviousVersionTag.java Sat Feb 23 11:29:13 2008
@@ -21,8 +21,6 @@
import java.io.IOException;
-import com.ecyrd.jspwiki.WikiPage;
-
/**
* Outputs the version number of the previous version of this page.
*
@@ -37,14 +35,15 @@
public final int doWikiStartTag()
throws IOException
{
- WikiPage page = m_wikiContext.getPage();
-
- int version = page.getVersion();
+ if ( m_page != null )
+ {
+ int version = m_page.getVersion();
- version--;
+ version--;
- if( version > 0 )
- pageContext.getOut().print( version );
+ if( version > 0 )
+ pageContext.getOut().print( version );
+ }
return SKIP_BODY;
}
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSCoffeeCupLinkTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSCoffeeCupLinkTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSCoffeeCupLinkTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSCoffeeCupLinkTag.java Sat Feb 23 11:29:13 2008
@@ -60,7 +60,7 @@
public final int doWikiStartTag()
throws IOException
{
- WikiEngine engine = m_wikiContext.getEngine();
+ WikiEngine engine = m_actionBean.getEngine();
String rssURL = engine.getGlobalRSSURL();
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSImageLinkTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSImageLinkTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSImageLinkTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSImageLinkTag.java Sat Feb 23 11:29:13 2008
@@ -23,8 +23,8 @@
import javax.servlet.jsp.JspWriter;
-import com.ecyrd.jspwiki.WikiContext;
import com.ecyrd.jspwiki.WikiEngine;
+import com.ecyrd.jspwiki.action.NoneActionBean;
/**
* Writes an image link to the RSS file.
@@ -58,7 +58,7 @@
public final int doWikiStartTag()
throws IOException
{
- WikiEngine engine = m_wikiContext.getEngine();
+ WikiEngine engine = m_actionBean.getEngine();
String rssURL = engine.getGlobalRSSURL();
@@ -66,7 +66,7 @@
{
JspWriter out = pageContext.getOut();
out.print("<a href=\""+rssURL+"\">");
- out.print("<img src=\""+m_wikiContext.getURL( WikiContext.NONE,"images/xml.png")+"\"");
+ out.print("<img src=\""+m_actionBean.getContext().getURL( NoneActionBean.class,"images/xml.png")+"\"");
out.print(" alt=\"[RSS]\" title=\""+getTitle()+"\"/>");
out.print("</a>");
}
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSLinkTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSLinkTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSLinkTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RSSLinkTag.java Sat Feb 23 11:29:13 2008
@@ -41,7 +41,7 @@
public final int doWikiStartTag()
throws IOException
{
- WikiEngine engine = m_wikiContext.getEngine();
+ WikiEngine engine = m_actionBean.getEngine();
String rssURL = engine.getGlobalRSSURL();
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RequestResourceTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RequestResourceTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RequestResourceTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/RequestResourceTag.java Sat Feb 23 11:29:13 2008
@@ -45,7 +45,7 @@
{
if( m_type != null && m_resource != null )
{
- TemplateManager.addResourceRequest( m_wikiContext, m_type, m_resource );
+ TemplateManager.addResourceRequest( m_actionBean, m_type, m_resource );
}
return SKIP_BODY;
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/SearchResultIteratorTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/SearchResultIteratorTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/SearchResultIteratorTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/SearchResultIteratorTag.java Sat Feb 23 11:29:13 2008
@@ -22,7 +22,6 @@
import java.io.IOException;
import java.util.Collection;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
@@ -31,8 +30,7 @@
import com.ecyrd.jspwiki.SearchResult;
import com.ecyrd.jspwiki.WikiContext;
import com.ecyrd.jspwiki.WikiEngine;
-import com.ecyrd.jspwiki.ui.Command;
-import com.ecyrd.jspwiki.ui.PageCommand;
+import com.ecyrd.jspwiki.action.WikiActionBeanFactory;
/**
* Iterates through Search result results.
@@ -93,8 +91,7 @@
}
m_count = 0;
- m_wikiContext = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT,
- PageContext.REQUEST_SCOPE );
+ m_wikiContext = (WikiContext) WikiActionBeanFactory.findActionBean( pageContext );
return nextResult();
}
@@ -107,14 +104,10 @@
// Create a wiki context for the result
WikiEngine engine = m_wikiContext.getEngine();
- HttpServletRequest request = m_wikiContext.getHttpRequest();
- Command command = PageCommand.VIEW.targetedCommand( r.getPage() );
- WikiContext context = new WikiContext( engine, request, command );
+ WikiContext context = engine.getWikiActionBeanFactory().newViewActionBean( r.getPage() );
// Stash it in the page context
- pageContext.setAttribute( WikiTagBase.ATTR_CONTEXT,
- context,
- PageContext.REQUEST_SCOPE );
+ WikiActionBeanFactory.saveActionBean( pageContext, context );
pageContext.setAttribute( getId(), r );
return EVAL_BODY_BUFFERED;
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TabTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TabTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TabTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TabTag.java Sat Feb 23 11:29:13 2008
@@ -110,7 +110,7 @@
*/
public int doWikiStartTag() throws JspTagException
{
- TabbedSectionTag parent=(TabbedSectionTag)findAncestorWithClass( this, TabbedSectionTag.class );
+ TabbedSectionTag parent=getParentTag(TabbedSectionTag.class );
//
// Sanity checks
@@ -157,7 +157,7 @@
*/
public int doEndTag() throws javax.servlet.jsp.JspTagException
{
- TabbedSectionTag parent=(TabbedSectionTag)findAncestorWithClass( this, TabbedSectionTag.class );
+ TabbedSectionTag parent=getParentTag( TabbedSectionTag.class );
StringBuffer sb = new StringBuffer();
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TemplateDirTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TemplateDirTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TemplateDirTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TemplateDirTag.java Sat Feb 23 11:29:13 2008
@@ -36,7 +36,7 @@
public final int doWikiStartTag()
throws IOException
{
- String template = m_wikiContext.getTemplate();
+ String template = m_actionBean.getTemplate();
pageContext.getOut().print( template );
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TranslateTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TranslateTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TranslateTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/TranslateTag.java Sat Feb 23 11:29:13 2008
@@ -20,11 +20,11 @@
package com.ecyrd.jspwiki.tags;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
import com.ecyrd.jspwiki.WikiContext;
+import com.ecyrd.jspwiki.action.WikiActionBeanFactory;
import org.apache.log4j.Logger;
@@ -46,8 +46,7 @@
{
try
{
- WikiContext context = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT,
- PageContext.REQUEST_SCOPE );
+ WikiContext context = (WikiContext) WikiActionBeanFactory.findActionBean( pageContext );
BodyContent bc = getBodyContent();
String wikiText = bc.getString();
bc.clearBody();
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UploadLinkTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UploadLinkTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UploadLinkTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UploadLinkTag.java Sat Feb 23 11:29:13 2008
@@ -22,7 +22,7 @@
import java.io.IOException;
import javax.servlet.jsp.JspWriter;
-import com.ecyrd.jspwiki.WikiContext;
+import com.ecyrd.jspwiki.action.UploadActionBean;
/**
* Writes a link to the upload page. Body of the link becomes the actual text.
@@ -49,9 +49,9 @@
if( m_pageName == null )
{
- if( m_wikiContext.getPage() != null )
+ if( m_page != null )
{
- pageName = m_wikiContext.getPage().getName();
+ pageName = m_page.getName();
}
else
{
@@ -61,8 +61,7 @@
JspWriter out = pageContext.getOut();
- String url = m_wikiContext.getURL( WikiContext.UPLOAD,
- pageName );
+ String url = m_actionBean.getContext().getURL( UploadActionBean.class, pageName );
switch( m_format )
{
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserCheckTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserCheckTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserCheckTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserCheckTag.java Sat Feb 23 11:29:13 2008
@@ -124,9 +124,9 @@
public final int doWikiStartTag()
throws IOException
{
- WikiSession session = m_wikiContext.getWikiSession();
+ WikiSession session = m_actionBean.getWikiSession();
String status = session.getStatus();
- AuthenticationManager mgr = m_wikiContext.getEngine().getAuthenticationManager();
+ AuthenticationManager mgr = m_actionBean.getEngine().getAuthenticationManager();
boolean containerAuth = mgr.isContainerAuthenticated();
boolean cookieAssertions = AuthenticationManager.allowsCookieAssertions();
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserNameTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserNameTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserNameTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserNameTag.java Sat Feb 23 11:29:13 2008
@@ -42,7 +42,7 @@
public final int doWikiStartTag()
throws IOException
{
- WikiEngine engine = this.m_wikiContext.getEngine();
+ WikiEngine engine = this.m_actionBean.getEngine();
WikiSession wikiSession = WikiSession.getWikiSession( engine, (HttpServletRequest)pageContext.getRequest() );
Principal user = wikiSession.getUserPrincipal();
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserProfileTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserProfileTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserProfileTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/UserProfileTag.java Sat Feb 23 11:29:13 2008
@@ -31,6 +31,7 @@
import com.ecyrd.jspwiki.WikiContext;
import com.ecyrd.jspwiki.WikiEngine;
import com.ecyrd.jspwiki.WikiSession;
+import com.ecyrd.jspwiki.action.WikiActionBean;
import com.ecyrd.jspwiki.auth.AuthenticationManager;
import com.ecyrd.jspwiki.auth.GroupPrincipal;
import com.ecyrd.jspwiki.auth.UserManager;
@@ -121,8 +122,8 @@
public final int doWikiStartTag() throws IOException, WikiSecurityException
{
- UserManager manager = m_wikiContext.getEngine().getUserManager();
- UserProfile profile = manager.getUserProfile( m_wikiContext.getWikiSession() );
+ UserManager manager = m_actionBean.getEngine().getUserManager();
+ UserProfile profile = manager.getUserProfile( m_actionBean.getWikiSession() );
String result = null;
if ( EXISTS.equals( m_prop ) || NOT_NEW.equals( m_prop ) )
@@ -148,7 +149,7 @@
}
else if ( GROUPS.equals( m_prop ) )
{
- result = printGroups( m_wikiContext );
+ result = printGroups( m_actionBean );
}
else if ( LOGINNAME.equals( m_prop ) )
{
@@ -160,7 +161,7 @@
}
else if ( ROLES.equals( m_prop ) )
{
- result = printRoles( m_wikiContext );
+ result = printRoles( m_actionBean );
}
else if ( WIKINAME.equals( m_prop ) )
{
@@ -171,7 +172,7 @@
//
// Default back to the declared user name
//
- WikiEngine engine = this.m_wikiContext.getEngine();
+ WikiEngine engine = this.m_actionBean.getEngine();
WikiSession wikiSession = WikiSession.getWikiSession( engine, (HttpServletRequest)pageContext.getRequest() );
Principal user = wikiSession.getUserPrincipal();
@@ -183,7 +184,7 @@
}
else if ( CHANGE_PASSWORD.equals( m_prop ) || CHANGE_LOGIN_NAME.equals( m_prop ) )
{
- AuthenticationManager authMgr = m_wikiContext.getEngine().getAuthenticationManager();
+ AuthenticationManager authMgr = m_actionBean.getEngine().getAuthenticationManager();
if ( !authMgr.isContainerAuthenticated() ||
manager.getUserDatabase().isSharedWithContainer() )
{
@@ -192,7 +193,7 @@
}
else if ( NOT_CHANGE_PASSWORD.equals( m_prop ) || NOT_CHANGE_LOGIN_NAME.equals( m_prop ) )
{
- AuthenticationManager authMgr = m_wikiContext.getEngine().getAuthenticationManager();
+ AuthenticationManager authMgr = m_actionBean.getEngine().getAuthenticationManager();
if ( authMgr.isContainerAuthenticated() &&
!manager.getUserDatabase().isSharedWithContainer() )
{
@@ -219,11 +220,11 @@
* and extracting those that are of type Group.
* @return the list of groups, sorted by name
*/
- public static String printGroups( WikiContext context )
+ public static String printGroups( WikiActionBean actionBean )
{
- Principal[] roles = context.getWikiSession().getRoles();
- List tempRoles = new ArrayList();
- ResourceBundle rb = context.getBundle(InternationalizationManager.CORE_BUNDLE);
+ Principal[] roles = actionBean.getWikiSession().getRoles();
+ List<String> tempRoles = new ArrayList<String>();
+ ResourceBundle rb = actionBean.getBundle(InternationalizationManager.CORE_BUNDLE);
for ( int i = 0; i < roles.length; i++ )
{
@@ -240,7 +241,7 @@
StringBuffer sb = new StringBuffer();
for ( int i = 0; i < tempRoles.size(); i++ )
{
- String name = (String)tempRoles.get( i );
+ String name = tempRoles.get( i );
sb.append( name );
if ( i < ( tempRoles.size() - 1 ) )
@@ -260,11 +261,11 @@
* and extracting those that are of type Role.
* @return the list of roles, sorted by name
*/
- public static String printRoles( WikiContext context )
+ public static String printRoles( WikiActionBean actionBean )
{
- Principal[] roles = context.getWikiSession().getRoles();
- List tempRoles = new ArrayList();
- ResourceBundle rb = context.getBundle(InternationalizationManager.CORE_BUNDLE);
+ Principal[] roles = actionBean.getWikiSession().getRoles();
+ List<String> tempRoles = new ArrayList<String>();
+ ResourceBundle rb = actionBean.getBundle(InternationalizationManager.CORE_BUNDLE);
for ( int i = 0; i < roles.length; i++ )
{
@@ -281,13 +282,14 @@
StringBuffer sb = new StringBuffer();
for ( int i = 0; i < tempRoles.size(); i++ )
{
- String name = (String)tempRoles.get( i );
-
- sb.append( name );
- if ( i < ( tempRoles.size() - 1 ) )
+ String name = tempRoles.get( i );
{
- sb.append(',');
- sb.append(' ');
+ sb.append( name );
+ if ( i < ( tempRoles.size() - 1 ) )
+ {
+ sb.append(',');
+ sb.append(' ');
+ }
}
}
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/VariableTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/VariableTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/VariableTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/VariableTag.java Sat Feb 23 11:29:13 2008
@@ -77,14 +77,14 @@
throws JspException,
IOException
{
- WikiEngine engine = m_wikiContext.getEngine();
+ WikiEngine engine = m_actionBean.getEngine();
JspWriter out = pageContext.getOut();
String msg = null;
String value = null;
try
{
- value = engine.getVariableManager().getValue( m_wikiContext,
+ value = engine.getVariableManager().getValue( m_actionBean,
getVar() );
}
catch( NoSuchVariableException e )
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiBodyTag.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiBodyTag.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiBodyTag.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiBodyTag.java Sat Feb 23 11:29:13 2008
@@ -22,13 +22,13 @@
import java.io.IOException;
import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.TryCatchFinally;
import org.apache.log4j.Logger;
import com.ecyrd.jspwiki.WikiContext;
+import com.ecyrd.jspwiki.action.WikiActionBeanFactory;
/**
* This is a class that provides the same services as the WikiTagBase, but this time it
@@ -47,8 +47,7 @@
{
try
{
- m_wikiContext = (WikiContext) pageContext.getAttribute( WikiTagBase.ATTR_CONTEXT,
- PageContext.REQUEST_SCOPE );
+ m_wikiContext = (WikiContext) WikiActionBeanFactory.findActionBean( pageContext );
if( m_wikiContext == null )
{
Modified: incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiTagBase.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiTagBase.java?rev=630513&r1=630512&r2=630513&view=diff
==============================================================================
--- incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiTagBase.java (original)
+++ incubator/jspwiki/branches/JSPWIKI_2_9_STRIPES_BRANCH/src/com/ecyrd/jspwiki/tags/WikiTagBase.java Sat Feb 23 11:29:13 2008
@@ -21,33 +21,56 @@
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.tagext.TryCatchFinally;
+import net.sourceforge.stripes.tag.StripesTagSupport;
+
import org.apache.log4j.Logger;
-import com.ecyrd.jspwiki.TextUtil;
-import com.ecyrd.jspwiki.WikiContext;
+import com.ecyrd.jspwiki.*;
+import com.ecyrd.jspwiki.action.WikiActionBean;
+import com.ecyrd.jspwiki.action.WikiActionBeanFactory;
+import com.ecyrd.jspwiki.ui.WikiInterceptor;
/**
+ * <p>
* Base class for JSPWiki tags. You do not necessarily have
* to derive from this class, since this does some initialization.
- * <P>
+ * </p>
+ * <p>
* This tag is only useful if you're having an "empty" tag, with
* no body content.
+ * </p>
+ * <p>The order of init method processing for subclasses of WikiTagBase is as follows:</p>
+ * <ul>
+ * <li>{@link #initTag()}</li>
+ * <li>{@link #doStartTag()}</li>
+ * <li>{@link #doWikiStartTag()} - implemented by subclasses</li>
+ * </ul>
*
* @author Janne Jalkanen
* @since 2.0
*/
public abstract class WikiTagBase
- extends TagSupport
+ extends StripesTagSupport
implements TryCatchFinally
{
- public static final String ATTR_CONTEXT = "jspwiki.context";
+ /**
+ * The name of the request attribute used to store ActionBeans (WikiContexts).
+ * @deprecated Use {@link WikiInterceptor#ATTR_ACTIONBEAN} instead
+ */
+ public static final String ATTR_CONTEXT = WikiInterceptor.ATTR_ACTIONBEAN;
static Logger log = Logger.getLogger( WikiTagBase.class );
- protected WikiContext m_wikiContext;
+ protected WikiActionBean m_actionBean;
+
+ private String m_id;
+
+ /**
+ * If the ActionBean is a WikiContext and the page is non-null, this value will be set automatically by {@link #doStartTag()}.
+ */
+ protected WikiPage m_page;
/**
* This method calls the parent setPageContext() but it also
@@ -69,21 +92,46 @@
*/
public void initTag()
{
- m_wikiContext = null;
+ m_actionBean = null;
+ m_page = null;
return;
}
+ /**
+ * Initializes the tag, and sets an internal reference to the current WikiActionBean
+ * by delegating to
+ * {@link com.ecyrd.jspwiki.action.WikiInterceptor#findActionBean( PageContext )}.
+ * (That method retrieves the WikiActionBean from page scope.).
+ * If the WikiActionBean is a WikiContext, a reference to the current wiki page will be
+ * set also. Both of these available as protected fields {@link #m_actionBean} and
+ * {@link #m_page}, respectively. It is considered an error condition if the
+ * WikiActionBean cannot be retrieved from the PageContext.
+ * It's also an error condition if the WikiActionBean is actually a WikiContext, and it
+ * returns a <code>null</code> WikiPage.
+ */
public int doStartTag()
throws JspException
{
try
{
- m_wikiContext = (WikiContext) pageContext.getAttribute( ATTR_CONTEXT,
- PageContext.REQUEST_SCOPE );
+ // Retrieve the ActionBean injected by WikiInterceptor
+ m_actionBean = WikiActionBeanFactory.findActionBean( pageContext );
+
+ // It's really bad news if the WikiActionBean wasn't injected (or saved as a variable!)
+ if ( m_actionBean == null )
+ {
+ throw new JspException( "Can't find WikiActionBean in page or request context. Make sure JSP saves it as a variable." );
+ }
- if( m_wikiContext == null )
+ // If this is a WikiContext-style ActionBean, get the page (WikiInterceptor should have set it)
+ m_page = null;
+ if ( m_actionBean instanceof WikiContext )
{
- throw new JspException("WikiContext may not be NULL - serious internal problem!");
+ m_page = ((WikiContext)m_actionBean).getPage();
+ if ( m_page == null )
+ {
+ throw new JspException( "WikiContext has a null WikiPage. This should not happen, and probably indicates a bug in JSPWiki's core classes!" );
+ }
}
return doWikiStartTag();
@@ -106,6 +154,15 @@
{
return EVAL_PAGE;
}
+
+ public int doAfterBody() throws JspException {
+ return SKIP_BODY;
+ }
+
+ public String getId()
+ {
+ return m_id;
+ }
public void doCatch(Throwable arg0) throws Throwable
{
@@ -113,12 +170,18 @@
public void doFinally()
{
- m_wikiContext = null;
+ m_actionBean = null;
+ m_id = null;
+ m_page = null;
}
- public void setId(String id)
+ /**
+ * Sets the ID for this tag. Note that the ID is sanitized using {@link com.ecyrd.jspwiki.TextUtil#replaceEntities(String)}.
+ * @param id the id for this tag
+ */
+ public void setId( String id )
{
- super.setId( TextUtil.replaceEntities( id ) );
- }
-
+ m_id = ( TextUtil.replaceEntities( id ) );
+ }
+
}