1 25 package org.snipsnap.net; 26 27 import org.snipsnap.app.Application; 28 import org.snipsnap.config.Configuration; 29 import org.snipsnap.container.Components; 30 import org.snipsnap.snip.Snip; 31 import org.snipsnap.snip.SnipSpace; 32 import org.snipsnap.versioning.VersionManager; 33 34 import javax.servlet.RequestDispatcher ; 35 import javax.servlet.ServletException ; 36 import javax.servlet.http.HttpServlet ; 37 import javax.servlet.http.HttpServletRequest ; 38 import javax.servlet.http.HttpServletResponse ; 39 import java.io.IOException ; 40 import java.util.List ; 41 42 48 public class DiffServlet extends HttpServlet { 49 50 public void doGet(HttpServletRequest request, HttpServletResponse response) 51 throws IOException , ServletException { 52 53 String name = request.getParameter("name"); 54 if (null == name) { 55 Configuration config = Application.get().getConfiguration(); 56 response.sendRedirect(config.getUrl("/space/"+config.getStartSnip())); 57 return; 58 } 59 String oldString = request.getParameter("oldVersion"); 60 String newString = request.getParameter("newVersion"); 61 int oldVersion = Integer.parseInt(oldString); 62 int newVersion = Integer.parseInt(newString); 63 64 SnipSpace space = (SnipSpace)Components.getComponent(SnipSpace.class); 65 Snip snip = space.load(name); 66 67 VersionManager versionManager = (VersionManager) Components.getComponent(VersionManager.class); 68 List diff = versionManager.diff(snip, oldVersion, newVersion); 69 70 request.setAttribute("oldVersion", new Integer (oldVersion)); 71 request.setAttribute("newVersion", new Integer (newVersion)); 72 request.setAttribute("snip", snip); 73 request.setAttribute("diff", diff); 74 request.setAttribute("URI", request.getRequestURL().toString()); 75 76 RequestDispatcher dispatcher = request.getRequestDispatcher("/exec/diff.jsp"); 77 dispatcher.forward(request, response); 78 } 79 } | Popular Tags |