1<%@ page import="org.apache.log4j.*" %> 2<%@ page import="com.ecyrd.jspwiki.*" %> 3<%@ page import="com.ecyrd.jspwiki.util.*" %> 4<%@ page import="com.ecyrd.jspwiki.tags.InsertDiffTag" %> 5<%@ page errorPage="/Error.jsp" %> 6<%@ taglib uri="/WEB-INF/jspwiki.tld" prefix="wiki" %> 7 8<%! 9 Logger log = Logger.getLogger("JSPWiki"); 10%> 11 12<% 13 WikiEngine wiki = WikiEngine.getInstance( getServletConfig() ); 14 // Create wiki context and check for authorization 15 WikiContext wikiContext = wiki.createContext( request, WikiContext.DIFF ); 16 if(!wikiContext.hasAccess( response )) return; 17 String pagereq = wikiContext.getName(); 18 19 WatchDog w = wiki.getCurrentWatchDog(); 20 try 21 { 22 w.enterState("Generating INFO response",60); 23 24 // Notused ? 25 // String pageurl = wiki.encodeName( pagereq ); 26 27 // If "r1" is null, then assume current version (= -1) 28 // If "r2" is null, then assume the previous version (=current version-1) 29 30 // FIXME: There is a set of unnecessary conversions here: InsertDiffTag 31 // does the String->int conversion anyway. 32 33 WikiPage wikipage = wikiContext.getPage(); 34 35 String srev1 = request.getParameter("r1"); 36 String srev2 = request.getParameter("r2"); 37 38 int ver1 = -1, ver2 = -1; 39 40 if( srev1 != null ) 41 { 42 ver1 = Integer.parseInt( srev1 ); 43 } 44 45 if( srev2 != null ) 46 { 47 ver2 = Integer.parseInt( srev2 ); 48 } 49 else 50 { 51 int lastver = wikipage.getVersion(); 52 53 if( lastver > 1 ) 54 { 55 ver2 = lastver-1; 56 } 57 } 58 59 pageContext.setAttribute( InsertDiffTag.ATTR_OLDVERSION, 60 new Integer(ver1), 61 PageContext.REQUEST_SCOPE ); 62 pageContext.setAttribute( InsertDiffTag.ATTR_NEWVERSION, 63 new Integer(ver2), 64 PageContext.REQUEST_SCOPE ); 65 66 // log.debug("Request for page diff for '"+pagereq+"' from "+request.getRemoteAddr()+" by "+request.getRemoteUser()+". R1="+ver1+", R2="+ver2 ); 67 68 // Set the content type and include the response content 69 response.setContentType("text/html; charset="+wiki.getContentEncoding() ); 70 String contentPage = wiki.getTemplateManager().findJSP( pageContext, 71 wikiContext.getTemplate(), 72 "ViewTemplate.jsp" ); 73%><wiki:Include page="<%=contentPage%>" /> 74<% } finally { w.exitState(); } %>