Project

General

Profile

Download (7.37 KB) Statistics
| Branch: | Tag: | Revision:
1
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
3
<%@page import="eu.etaxonomy.cdm.server.Bootloader"%>
4
<%@page import="java.util.Set" %>
5
<%@page import="java.net.URL" %>
6
<%@page import="eu.etaxonomy.cdm.server.CdmInstanceProperties"%>
7
<%@page import="eu.etaxonomy.cdm.server.JvmManager" %>
8
<%@page import="java.io.IOException"%>
9
<%!
10
public void printMemoryUsage(java.lang.management.MemoryUsage memoryUsage, String label, String barWidth, String cssColorUsed, String cssColorMax, JspWriter writer) throws IOException{
11
	float mb = 1024 * 1024;
12
	float gb = mb * 1024;
13
    float max = memoryUsage.getMax() / mb;
14
    float used = memoryUsage.getUsed() / mb;
15
    float percent = used * 100 / max;
16
	writer.append("<span class=\"memory-usage\">").append(label + "(" + used + " of "  + max+ " MB)&nbsp;")
17
	.append("<div style=\"height: 100%; width:")
18
	.append(barWidth).append(";background-color:").append(cssColorMax).append("\">")
19
	.append("<div style=\"background-color:" + cssColorUsed + "; width:" + percent + "%\">&nbsp;</div></div></span>");
20
}
21

    
22
// the servelt context must use the class loader of the Bootloader class otherwise 
23
// getting the status will not work in mulithreading environments !!!
24
Bootloader bootloader = Bootloader.getBootloader();
25

    
26
%>
27

    
28
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
29

    
30
<head>
31
	<title>CDM Server</title>
32
	<meta http-equiv="refresh" content="3; URL=index.jsp" />
33
	<link type="text/css" rel="stylesheet" media="all" href="/css/style.css" />
34
	<link type="text/css" rel="stylesheet" media="all" href="/css/server.css" />
35
	<script type="text/javascript" src="/js/jquery.js"></script>
36
	<script type="text/javascript" src="/js/oai-pmh-status.js"></script>
37
</head>
38
<body class="layout-main">
39
    <div id="page" class="clearfix">
40
      <div id="header-wrapper">
41
        <div id="header" class="clearfix">
42
          <div id="header-first">
43
            <div id="logo">
44
              </div>
45
				<h1>CDM Server</h1>
46
          </div><!-- /header-first -->
47
        </div><!-- /header -->
48
      </div><!-- /header-wrapper -->
49
      
50
      <div id="primary-menu-wrapper" class="clearfix">
51
        <div id="primary-menu">
52
            <div id="version"><%= bootloader.readCdmRemoteVersion() %></div>
53
        </div><!-- /primary_menu -->
54
      </div><!-- /primary-menu-wrapper -->
55

    
56
      <div id="main-wrapper">
57
        <div id="main" class="clearfix">
58
        
59
          <div id="sidebar-first">
60
          </div><!-- /sidebar-first -->
61

    
62
          <div id="content-wrapper">
63
            <div id="content">
64
								<!-- ============================= -->
65
								<div class="block-wrapper">
66
								  <h2 class="title block-title pngfix">Server Status</h2>
67
									<div class="block" id="status">
68
									   <% 
69
									   printMemoryUsage(JvmManager.getHeapMemoryUsage(), "HeapUsage", "100%", "#F48B65", "#65B1F4", out);
70
									   printMemoryUsage(JvmManager.getPermGenSpaceUsage(), "PermGenSpaceUsage", "100%","#F48B65", "#65B1F4", out);
71
									   %> 
72
									</div>
73
								</div>
74

    
75
								
76
								<div class="block-wrapper">
77
									<div class="block" id="datasources">
78
										<h2 class="title block-title pngfix">CDM Server Instances</h2>
79
										<table>
80
											<tr><th>Path</th><th> </th><th>Database Url</th><th>Status</th><th>OAI-PMH Provider</th></tr>
81
                                            <%
82
                                           java.util.Set<CdmInstanceProperties> configAndStatus = bootloader.getConfigAndStatus();
83
                                           if(configAndStatus != null){
84
                                        	   int i = 0;
85
                                        	   for(CdmInstanceProperties props : configAndStatus){
86
                                        		   i++;
87
                                        		   String basePath = "/" + props.getDataSourceName();
88
                                                   URL fullURL = new URL(request.getScheme(),
89
                                                           request.getServerName(),
90
                                                           request.getServerPort(),
91
                                                           basePath);
92
                                                   
93
                                                   String oddOrEven = i % 2 == 0 ? "odd" : "even";
94
                                                   String noBottomBorder = props.getStatus().equals(CdmInstanceProperties.Status.error) ? " style=\"border-bottom:none;\"" : "";
95
                                                   
96
	                                        	   out.append("<tr class=\"entry " + oddOrEven + "\" " +noBottomBorder+ ">");
97
	                                        	   out.append("<td class=\"base-url\"><a href=\"" + fullURL + "\">" + basePath + "</a></td>");
98
	                                        	   out.append("<td class=\"test-url\"><a href=\"" + fullURL + "/portal/classification\">Test</a></td>");
99
                                                   out.append("<td class=\"db-url\">" + props.getUrl() + "</td>");
100
                                                   out.append("<td class=\"status " + props.getStatus() + "\">" + props.getStatus() + "</td>");
101
                                                   
102
                                                   // OAI-PMH Status will be requested using javascript
103
                                                   out.append("<td class=\"oai-pmh\">requesting status ...</td>");
104
                                                   out.append("</tr>");
105
                                                   if(props.getStatus().equals(CdmInstanceProperties.Status.error) || !props.isEnabled()){
106
                                                	   out.append("<tr class=\"error-log " + oddOrEven + "\">");
107
                                                	   out.append("<td></td><td  class=\"error\" colspan=\"4\">");
108
                                                			   for( String problem : props.getProblems()){
109
                                                				   out.append("<div>" + problem + "</div>");
110
                                                			   }
111
                                                	   out.append("</td>");
112
                                                	   out.append("</tr>");
113
                                                   }
114
	                                           }
115
                                           }
116
                                           %>
117
										</table>
118
									</div>
119
								</div>
120
<%/*
121
								<div class="block-wrapper">
122
									<div class="block" id="test">
123
										<h2 class="title block-title pngfix">Test your CDM Server (using the default data base)</h2>
124
										<form name="input" action="/default/portal/taxon/find" method="get">
125
										<input type="text" name="query"></br>
126
										<input type="submit" value="submit">
127
										</form>
128
									</div>
129
								</div><!-- test -->
130
*/
131
%>								
132
								<!-- ============================= -->
133
            </div><!-- /content -->
134
          </div><!-- /content-wrapper -->
135
          
136
          <div id="footer" class="clearfix">
137
					The CDM Server is a component of the <a href="http://wp5.e-taxonomy.eu/">EDIT Platform for Cybertaxonomy</a>.
138
          </div><!-- /footer -->
139
        
140
        </div><!-- /main -->
141
      </div><!-- /main-wrapper -->
142
    </div><!-- /page -->
143
</body>
144
</html>
(2-2/2)