Author: ssmiweve Date: 2007-06-15 20:52:06 +0200 (Fri, 15 Jun 2007) New Revision: 5338
Added: trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/BoomerangServlet.java Removed: trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/RetrieverLogServlet.java Modified: trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java trunk/war/src/webapp/WEB-INF/web.xml Log: SEARCH-2268 - General javascript-utility for logging use of client-side functionality (Boomerang Servlet) Modified: trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java =================================================================== --- trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java 2007-06-15 13:30:39 UTC (rev 5337) +++ trunk/result-spi/src/main/java/no/schibstedsok/searchportal/result/Navigator.java 2007-06-15 18:52:06 UTC (rev 5338) @@ -3,8 +3,8 @@ import java.io.Serializable; -/** - * @deprecated Geir's navigation model is the replacement. +/** Configuration within a CommandConfig used for manipulating the command's navigation results. + * * @author <a href="mailto:[EMAIL PROTECTED]">Magnus Eklund</a> * @version <tt>$Revision: 3361 $</tt> */ Copied: trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/BoomerangServlet.java (from rev 5334, trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/RetrieverLogServlet.java) =================================================================== --- trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/BoomerangServlet.java (rev 0) +++ trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/BoomerangServlet.java 2007-06-15 18:52:06 UTC (rev 5338) @@ -0,0 +1,96 @@ +// Copyright (2006-2007) Schibsted Søk AS +package no.schibstedsok.searchportal.http.servlet; + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.ServletException; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import no.schibstedsok.searchportal.datamodel.DataModel; +import no.schibstedsok.searchportal.datamodel.generic.StringDataObject; +import no.schibstedsok.searchportal.datamodel.request.ParametersDataObject; +import org.apache.commons.lang.StringEscapeUtils; +import org.apache.log4j.Logger; + +/** + * Logs different statistics with ajax + * + * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Kjaerstad</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Mck</a> + * @version <tt>$Id: 3361 $</tt> + * + */ +public final class BoomerangServlet extends HttpServlet { + + private static final Logger LOG = Logger.getLogger(BoomerangServlet.class); + //private static final Logger STATS = Logger.getLogger("no.schibstedsok.Statistics"); + private static final Logger ACCESS = Logger.getLogger("no.schibstedsok.Access"); + + private static final String CEREMONIAL = "/boomerang"; + + @Override + public void destroy() { } + + @Override + public void init() { } + + @Override + protected void doGet(final HttpServletRequest req, final HttpServletResponse res) + throws ServletException, IOException { + + //final String paper = parametersDO.getValue("paper").getXmlEscaped(); + // + //// news statistics is treated as before until Bernt is ready to adapt to new format + //if (paper != null) { + // STATS.info("<retriever-info name=\"papiraviser - " + paper + "\"/><!-- use boomerang instead -->"); + //} else { + // STATS.info( + // "<view-info>" + // + "<collection>" + req.getParameter("c") + "</collection>" + // + "<type>" + StringEscapeUtils.escapeXml(req.getParameter("type")) + "</type>" + // + "<query>" + StringEscapeUtils.escapeXml(req.getParameter("q")) + "</query>" + // + "<name>" + URLEncoder.encode(req.getParameter("name"), "utf-8") + "</name>" + // + (null != req.getParameter("pos") ? "<position>" + req.getParameter("pos") + "</position>" : "") + // + "</view-info><!-- use boomerang instead -->"); + //} + + // clients must not cache these requests + res.setHeader("Cache-Control", "no-cache, must-revalidate, post-check=0, pre-check=0"); + res.setHeader("Pragma", "no-cache"); // for old browsers + res.setDateHeader("Expires", 0); // to be double-safe + + if(req.getServletPath().startsWith(CEREMONIAL)){ + + // ceremonial boomerang + final StringBuffer url = req.getRequestURL(); + if(null != req.getQueryString()){ + url.append('?' + req.getQueryString()); + } + final String destination = url.substring(url.indexOf(CEREMONIAL) + CEREMONIAL.length() + 1); + LOG.debug("Ceremonial boomerang to " + destination.toString()); + res.sendRedirect(destination.toString()); + + }else{ + + // hunting boomerang + final DataModel datamodel = (DataModel) req.getSession().getAttribute(DataModel.KEY); + final ParametersDataObject parametersDO = datamodel.getParameters(); + final List<String> paramKeys = new ArrayList<String>(parametersDO.getValues().keySet()); + + Collections.sort(paramKeys); + + final StringBuilder bob = new StringBuilder("<boomerang>"); + for(String key : paramKeys){ + bob.append('<' + key + '>' + parametersDO.getValue(key).getXmlEscaped() + "</" + key + '>'); + } + bob.append("</boomerang>"); + ACCESS.info(bob.toString()); + } + + } +} Deleted: trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/RetrieverLogServlet.java =================================================================== --- trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/RetrieverLogServlet.java 2007-06-15 13:30:39 UTC (rev 5337) +++ trunk/war/src/main/java/no/schibstedsok/searchportal/http/servlet/RetrieverLogServlet.java 2007-06-15 18:52:06 UTC (rev 5338) @@ -1,80 +0,0 @@ -// Copyright (2006-2007) Schibsted Søk AS -package no.schibstedsok.searchportal.http.servlet; - -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.ServletException; -import java.io.IOException; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import no.schibstedsok.searchportal.datamodel.DataModel; -import no.schibstedsok.searchportal.datamodel.generic.StringDataObject; -import no.schibstedsok.searchportal.datamodel.request.ParametersDataObject; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.log4j.Logger; - -/** - * Logs different statistics with ajax - * XXX Rename to BoomerangServlet - * - * @author <a href="mailto:[EMAIL PROTECTED]">Thomas Kjaerstad</a>. - * @version <tt>$Id: 3361 $</tt> - * - */ -public final class RetrieverLogServlet extends HttpServlet { - - private static final Logger LOG = Logger.getLogger("no.schibstedsok.Statistics"); - private static final Logger ACCESS = Logger.getLogger("no.schibstedsok.Access"); - - - @Override - public void destroy() { } - - @Override - public void init() { } - - @Override - protected void doGet(final HttpServletRequest req, final HttpServletResponse res) - throws ServletException, IOException { - - final DataModel datamodel = (DataModel) req.getSession().getAttribute(DataModel.KEY); - final ParametersDataObject parametersDO = datamodel.getParameters(); - - final String paper = parametersDO.getValue("paper").getXmlEscaped(); - - // news statistics is treated as before until Bernt is ready to adapt to new format - if (paper != null) { - LOG.info("<retriever-info name=\"papiraviser - " + paper + "\"/><!-- use boomerang instead -->"); - } else { - LOG.info( - "<view-info>" - + "<collection>" + req.getParameter("c") + "</collection>" - + "<type>" + StringEscapeUtils.escapeXml(req.getParameter("type")) + "</type>" - + "<query>" + StringEscapeUtils.escapeXml(req.getParameter("q")) + "</query>" - + "<name>" + URLEncoder.encode(req.getParameter("name"), "utf-8") + "</name>" - + (null != req.getParameter("pos") ? "<position>" + req.getParameter("pos") + "</position>" : "") - + "</view-info><!-- use boomerang instead -->"); - } - - // the new format - final List<String> paramKeys = new ArrayList<String>(parametersDO.getValues().keySet()); - Collections.sort(paramKeys); - - final StringBuilder bob = new StringBuilder("<boomerang>"); - for(String key : paramKeys){ - bob.append('<' + key + '>' + parametersDO.getValue(key).getXmlEscaped() + "</" + key + '>'); - } - bob.append("</boomerang>"); - ACCESS.info(bob.toString()); - - // clients must not cache these requests - res.setHeader("Cache-Control", "no-cache, must-revalidate, post-check=0, pre-check=0"); - res.setHeader("Pragma", "no-cache"); // for old browsers - res.setDateHeader("Expires", 0); // to be double-safe - - } -} Modified: trunk/war/src/webapp/WEB-INF/web.xml =================================================================== --- trunk/war/src/webapp/WEB-INF/web.xml 2007-06-15 13:30:39 UTC (rev 5337) +++ trunk/war/src/webapp/WEB-INF/web.xml 2007-06-15 18:52:06 UTC (rev 5338) @@ -149,8 +149,8 @@ </servlet> <servlet> - <servlet-name>RetrieverLog</servlet-name> - <servlet-class>no.schibstedsok.searchportal.http.servlet.RetrieverLogServlet</servlet-class> + <servlet-name>Boomerang</servlet-name> + <servlet-class>no.schibstedsok.searchportal.http.servlet.BoomerangServlet</servlet-class> </servlet> <servlet> @@ -180,7 +180,12 @@ </servlet-mapping> <servlet-mapping> - <servlet-name>RetrieverLog</servlet-name> + <servlet-name>Boomerang</servlet-name> + <url-pattern>/boomerang/*</url-pattern> + </servlet-mapping> + + <servlet-mapping> + <servlet-name>Boomerang</servlet-name> <url-pattern>/search/writeLog.do</url-pattern> </servlet-mapping> _______________________________________________ Kernel-commits mailing list [email protected] http://sesat.no/mailman/listinfo/kernel-commits
