blob: c534d874ad5c38a85b03bd0b4cfae471e474f0ea [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%--
#=============================================================================#
# Copyright (c) 2009, 2022 Stephan Wahlbrink and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================#
--%>
<f:view>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<title>(RJ) Status: Overview Pool Nodes</title>
</head>
<body onload="<c:if test="${poolStatus.autoRefreshEnabled}">window.setTimeout('javascript:document.getElementById(\'pool_nodes:refresh\').click()', 5000)</c:if>">
<%@include file="body-header.jspf" %>
<h2>Status: Current Pool Nodes</h2>
<h:panelGrid columns="2" styleClass="grid" columnClasses=",," style="border-bottom: 2px solid black">
<h:outputLabel for="eff_pool_address" value="RMI pool address:" />
<h:inputText id="eff_pool_address" value="#{netConfig.effectivePoolAddress}" readonly="true" size="40" />
</h:panelGrid>
<h:form id="pool_nodes">
<h:messages errorClass="error" />
<h:inputHidden value="#{poolStatus.autoRefreshEnabled}" immediate="true" />
<h:commandButton id="refresh" value="Refresh" action="#{poolStatus.actionRefresh}" />
<c:if test="${!poolStatus.autoRefreshEnabled}">
<h:commandButton id="enableAutoRefresh" value="Enable Auto Refresh" action="#{poolStatus.actionEnableAutoRefresh}" />
</c:if>
<c:if test="${poolStatus.autoRefreshEnabled}">
<h:commandButton id="disableAutoRefresh" value="Disable Auto Refresh" action="#{poolStatus.actionDisableAutoRefresh}" immediate="true" />
</c:if>
<br/>
<h:panelGrid columns="3" styleClass="table1" columnClasses=",alignright,alignright">
<f:facet name="header"><h:outputText value="Summary" /></f:facet>
<h:outputText />
<h:outputText value="Current" />
<h:outputText value="Max" />
<h:outputText value="Idling:" />
<h:outputText value="#{poolStatus.numIdling}" />
<h:outputText value="#{poolStatus.maxIdling}" />
<h:outputText value="In use:" />
<h:outputText value="#{poolStatus.numInUse}" />
<h:outputText value="#{poolStatus.maxInUse}" />
<h:outputText value="Total:" />
<h:outputText value="#{poolStatus.numTotal}" />
<h:outputText value="#{poolStatus.maxTotal}" />
</h:panelGrid>
<br/>
<h:dataTable value="#{poolStatus.nodeStates}" var="dataItem" styleClass="table1" columnClasses=",,spanleft,,alignright">
<h:column>
<f:facet name="header">
<h:outputText value="Created" />
</f:facet>
<h:outputText value="#{dataItem.creationTime}" >
<f:convertDateTime pattern="yyyy-MM-dd HH:mm:ss"/>
</h:outputText>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="State" />
</f:facet>
<h:outputText value="#{dataItem.state}" />
</h:column>
<h:column headerClass="spanleft">
<f:facet name="header">
<h:outputText value="" />
</f:facet>
(<h:outputText value="#{dataItem.stateTime - poolStatus.stamp}" >
<f:converter converterId="convertDuration" />
</h:outputText>)
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Client" />
</f:facet>
<h:outputText value="#{dataItem.currentClientLabel}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Usage" />
</f:facet>
<h:outputText value="#{dataItem.usageCount}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Debug Console" />
</f:facet>
<h:selectBooleanCheckbox value="#{dataItem.consoleEnabled}" readonly="true" disabled="true" />
<h:inputText value="#{dataItem.RMIAddress}" readonly="true" size="40" />
<h:outputText value=" " />
<h:commandLink value="On" action="#{dataItem.actionEnableConsole}" rendered="#{!dataItem.consoleEnabled}" />
<h:commandLink value="Off" action="#{dataItem.actionDisableConsole}" rendered="#{dataItem.consoleEnabled}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Evict" />
</f:facet>
<h:commandLink value="Stop" action="#{dataItem.actionStop}" />
<h:outputText value=" " />
<h:commandLink value="Kill" action="#{dataItem.actionKill}" />
</h:column>
</h:dataTable>
<h:panelGrid columns="2" styleClass="grid" columnClasses=",info">
<f:facet name="header"><h:outputText value="Test Actions" /></f:facet>
<h:commandLink action="#{debug.actionNewNode}" immediate="true">Get node (<code>RServiPool#getRServi</code>)</h:commandLink>
<h:outputText value="acquire node from pool" />
<h:commandLink action="#{debug.actionCloseAllNodes}" immediate="true">Close all nodes (<code>RServi#close</code>)</h:commandLink>
<h:outputText value="return acquired nodes to pool" />
</h:panelGrid>
</h:form>
<%@include file="body-footer.jspf" %>
</body>
</html>
</f:view>