Author: [log in to unmask] Date: Tue Sep 29 13:14:36 2015 New Revision: 3739 Log: Update run webapp from changes to hps-java. Modified: webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/AbstractRunServlet.java webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/DatabaseUtilities.java webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/EpicsDataServlet.java webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunMainServlet.java webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunsServlet.java webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/ScalerDataServlet.java webapps/trunk/run-webapp/src/main/webapp/WEB-INF/web.xml webapps/trunk/run-webapp/src/main/webapp/runMain.jsp webapps/trunk/run-webapp/src/main/webapp/runSummary.jsp Modified: webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/AbstractRunServlet.java ============================================================================= --- webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/AbstractRunServlet.java (original) +++ webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/AbstractRunServlet.java Tue Sep 29 13:14:36 2015 @@ -62,11 +62,10 @@ * @param run the run number * @return the run summary */ - RunSummary getRunSummary(final Integer run) { - final RunManager runManager = new RunManager(); + RunSummary getRunSummary(final Integer run) { RunSummary runSummary = null; try (Connection connection = this.dataSource.getConnection()) { - runManager.setConnection(connection); + final RunManager runManager = new RunManager(connection); runManager.setRun(run); runSummary = runManager.getRunSummary(); } catch (final Exception e) { Modified: webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/DatabaseUtilities.java ============================================================================= --- webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/DatabaseUtilities.java (original) +++ webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/DatabaseUtilities.java Tue Sep 29 13:14:36 2015 @@ -6,9 +6,9 @@ public final class DatabaseUtilities { - private static String DATASOURCE_CONTEXT = "java:comp/env/jdbc/hps_run_db"; + private static String DATASOURCE_CONTEXT = "java:comp/env/jdbc/hps_run_db_dev"; - public static DataSource getDataSource() { + static DataSource getDataSource() { DataSource dataSource = null; try { dataSource = (DataSource) new InitialContext().lookup(DATASOURCE_CONTEXT); Modified: webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/EpicsDataServlet.java ============================================================================= --- webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/EpicsDataServlet.java (original) +++ webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/EpicsDataServlet.java Tue Sep 29 13:14:36 2015 @@ -13,11 +13,8 @@ import javax.sql.DataSource; import org.hps.record.epics.EpicsData; -import org.hps.run.database.EpicsDataDao; import org.hps.run.database.EpicsType; import org.hps.run.database.EpicsVariable; -import org.hps.run.database.EpicsVariableDao; -import org.hps.run.database.RunDatabaseDaoFactory; import org.hps.run.database.RunManager; /** @@ -41,7 +38,6 @@ throw new RuntimeException("Missing required run parameter."); } final Integer run = Integer.parseInt(request.getParameterValues("run")[0]); - EpicsDataDao epicsDataDao = null; Connection connection = null; List<EpicsData> epicsDataList = null; @@ -55,13 +51,10 @@ try { connection = dataSource.getConnection(); - final RunDatabaseDaoFactory dbFactory = new RunManager(connection).createDaoFactory(); - - epicsDataDao = dbFactory.createEpicsDataDao(); - epicsDataList = epicsDataDao.getEpicsData(epicsType, run); - - final EpicsVariableDao epicsVariableDao = dbFactory.createEpicsVariableDao(); - epicsVariables = epicsVariableDao.getEpicsVariables(epicsType); + RunManager runManager = new RunManager(connection); + runManager.setRun(run); + epicsDataList = runManager.getEpicsData(epicsType); + epicsVariables = runManager.getEpicsVariables(epicsType); } catch (final SQLException e) { throw new IllegalStateException("Failed to setup data source connection.", e); Modified: webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunMainServlet.java ============================================================================= --- webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunMainServlet.java (original) +++ webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunMainServlet.java Tue Sep 29 13:14:36 2015 @@ -3,6 +3,7 @@ import java.io.IOException; import javax.servlet.RequestDispatcher; +import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -13,17 +14,38 @@ * @author Jeremy McCormick, SLAC */ public class RunMainServlet extends AbstractRunServlet { + + /** + * The URL to the data catalog. + */ + private String datacat = ""; + + /** + * The URL to the data quality plots server. + */ + private String dataquality = ""; + + /** + * Initialize the servlet. + * + * @param config the servlet config + */ + public void init(ServletConfig config) throws ServletException { + super.init(config); + datacat = getServletContext().getInitParameter("datacat"); + dataquality = getServletContext().getInitParameter("dataquality"); + } /** * Setup servlet state by loading the run summaries and then forward to the JSP page for display. */ @Override public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, - IOException { - + IOException { this.setRunAttribute(request); - final RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/runMain.jsp"); + request.getSession().setAttribute("datacat", datacat); + request.getSession().setAttribute("dataquality", dataquality); dispatcher.forward(request, response); } } Modified: webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunsServlet.java ============================================================================= --- webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunsServlet.java (original) +++ webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/RunsServlet.java Tue Sep 29 13:14:36 2015 @@ -15,7 +15,6 @@ import org.hps.run.database.RunManager; import org.hps.run.database.RunSummary; -import org.hps.run.database.RunSummaryDao; /** * Loads the list of {@link org.hps.run.database.RunSummary} objects to setup state for the <code>runTable.jsp</code> page. @@ -72,10 +71,7 @@ Connection connection = null; try { connection = this.dataSource.getConnection(); - final RunSummaryDao runSummaryDao = new RunManager(connection).createDaoFactory().createRunSummaryDao(); - - // This does a shallow read of all run summaries but does not load their complex state. - runSummaries = runSummaryDao.getRunSummaries(); + runSummaries = new RunManager(connection).getRunSummaries(); } catch (final SQLException e) { throw new RuntimeException(e); } finally { Modified: webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/ScalerDataServlet.java ============================================================================= --- webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/ScalerDataServlet.java (original) +++ webapps/trunk/run-webapp/src/main/java/org/hps/webapps/run/ScalerDataServlet.java Tue Sep 29 13:14:36 2015 @@ -13,7 +13,6 @@ import org.hps.record.scalers.ScalerData; import org.hps.run.database.RunManager; -import org.hps.run.database.ScalerDataDao; /** * Setup session state for JSP that shows a run's scaler data. @@ -59,8 +58,9 @@ final Integer run = Integer.parseInt(request.getParameterValues("run")[0]); List<ScalerData> scalerDataList = null; try (Connection connection = this.dataSource.getConnection()) { - final ScalerDataDao scalarDataDao = new RunManager(connection).createDaoFactory().createScalerDataDao(); - scalerDataList = scalarDataDao.getScalerData(run); + RunManager runManager = new RunManager(connection); + runManager.setRun(run); + scalerDataList = runManager.getScalerData(); } catch (final Exception e) { throw new RuntimeException(e); } Modified: webapps/trunk/run-webapp/src/main/webapp/WEB-INF/web.xml ============================================================================= --- webapps/trunk/run-webapp/src/main/webapp/WEB-INF/web.xml (original) +++ webapps/trunk/run-webapp/src/main/webapp/WEB-INF/web.xml Tue Sep 29 13:14:36 2015 @@ -18,6 +18,16 @@ <res-auth>Container</res-auth> </resource-ref> + <context-param> + <param-name>datacat</param-name> + <param-value>http://ppa-jeremym-l.slac.stanford.edu:8080/datacat-v0.4-SNAPSHOT</param-value> + </context-param> + + <context-param> + <param-name>dataquality</param-name> + <param-value>http://ppa-jeremym-l.slac.stanford.edu:8080/data-quality</param-value> + </context-param> + <!-- Display full run table. --> <servlet> @@ -30,8 +40,8 @@ <url-pattern>/runs</url-pattern> </servlet-mapping> - <!-- Display the run page. --> - + <!-- Display the main run page. --> + <servlet> <servlet-name>RunMainServlet</servlet-name> <servlet-class>org.hps.webapps.run.RunMainServlet</servlet-class> Modified: webapps/trunk/run-webapp/src/main/webapp/runMain.jsp ============================================================================= --- webapps/trunk/run-webapp/src/main/webapp/runMain.jsp (original) +++ webapps/trunk/run-webapp/src/main/webapp/runMain.jsp Tue Sep 29 13:14:36 2015 @@ -1,6 +1,4 @@ -<%@page contentType="text/html" import="org.freehep.graphicsio.raw.RawImageWriteParam"%> -<%@page pageEncoding="UTF-8"%> - +<%@page contentType="text/html" pageEncoding="UTF-8" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% @@ -9,10 +7,10 @@ <html> <head> -<title>HPS Run Web - Run <%=run%></title> +<title>HPS Run Web - Run <%= run %></title> </head> <body> - <h1>Run <%=run%></h1> + <h1>Run <%= run %></h1> <iframe src="runSummary?run=<%= request.getAttribute("run") %>" name="runSummaryFrame" height="100%" width="30%"></iframe> <iframe src="" name="dataFrame" height="100%" width="68%"></iframe> </body> Modified: webapps/trunk/run-webapp/src/main/webapp/runSummary.jsp ============================================================================= --- webapps/trunk/run-webapp/src/main/webapp/runSummary.jsp (original) +++ webapps/trunk/run-webapp/src/main/webapp/runSummary.jsp Tue Sep 29 13:14:36 2015 @@ -1,4 +1,5 @@ -<%@ page contentType="text/html" import="java.util.*,org.hps.run.database.*,java.text.SimpleDateFormat,org.hps.datacat.client.*" %> +<%@ page contentType="text/html" import="java.util.*,org.hps.run.database.*,java.text.SimpleDateFormat,org.hps.datacat.client.*,java.io.File" %> +<%@page language="java" session="true" %> <!DOCTYPE html> <html> <link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" /> @@ -12,7 +13,7 @@ throw new RuntimeException("Run summary was not set in request."); } %> - <h3>Run Summary</h3> + <h3>Summary</h3> <div> <table class="run-summary"> <tr> @@ -65,29 +66,30 @@ <a target="dataFrame" href="scalers?run=<%= runSummary.getRun() %>">Scaler Data</a> </p> </div> - - - <!-- - example search URL - http://localhost:8080/datacat-v0.4-SNAPSHOT/display/datasets/HPS/data/raw?offset=0&max=999999&sort=dataType&filter=dataType%20eq%20%27RAW%27%20and%20runMin%20eq%205772 - --> - + <h3>Files</h3> <div> - <% String datacatRootUrl = "http://localhost:8080/datacat-v0.4-SNAPSHOT/display/datasets/"; %> + <% String datacat = (String) request.getSession().getAttribute("datacat"); %> <p> - <a target="dataFrame" href="<%= datacatRootUrl + "HPS/data/raw?offset=0&max=999999&sort=name&filter=dataType eq 'RAW' and runMin eq " + run %>">EVIO / RAW</a> + <a target="dataFrame" href="<%= datacat + "/display/datasets/HPS/data/raw?offset=0&max=999999&sort=name&filter=dataType eq 'RAW' and runMin eq " + run %>">EVIO / RAW</a> </p> </div> - - <h3>Data Quality Plots</h3> + <h3>Data Quality Management</h3> <div> - <% - String plotsUrl = "http://localhost:8080/data-quality/"; - DatacatClient datacatClient = new DatacatClientFactory().createClient(); - List<Dataset> dqmDatasets = datacatClient.findDatasets("dqm", "dataType == 'DQM' and runMin == " + run, new HashSet<String>()); + <% + String dataquality = (String) request.getSession().getAttribute("dataquality"); + DatacatClient datacatClient = new DatacatClientFactory().createClient(); + List<Dataset> datasets = datacatClient.findDatasets("dqm", "dataType == 'DQM' and runMin == " + run, new HashSet<String>()); %> - <p>found <%= dqmDatasets.size() %> DQM datasets</p> - </div> + <p>Found <%= datasets.size() %> DQM file(s) in data catalog</p> + <table> + <% for (Dataset dataset : datasets) { %> + <% String resource = dataset.getLocations().get(0).getResource(); %> + <tr> + <td><a href="<%= dataquality %>/show_plots?rootDataURI=<%= resource %>" target="_blank"><%= new File(resource).getName() %></a></td> + </tr> + <% } %> + </table> + </div> </body> </html>