Project

General

Profile

Download (7.42 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

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

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

    
50
      <div id="main-wrapper">
51
        <div id="main" class="clearfix">
52
        
53
          <div id="sidebar-first">
54
          </div><!-- /sidebar-first -->
55

    
56
          <div id="content-wrapper">
57
            <div id="content">
58
								<!-- ============================= -->
59
								<div class="block-wrapper">
60
								  <h2 class="title block-title pngfix">Server Status</h2>
61
									<div class="block" id="status">
62
									   <% 
63
									   printMemoryUsage(JvmManager.getHeapMemoryUsage(), "HeapUsage", "100%", "#F48B65", "#65B1F4", out);
64
									   printMemoryUsage(JvmManager.getPermGenSpaceUsage(), "PermGenSpaceUsage", "100%","#F48B65", "#65B1F4", out);
65
									   %> 
66
									</div>
67
								</div>
68

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