
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2017-03-17
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Apache OpenMeetings Project - Surefire Report</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />
 
		<link href="../css/bootstrap.min.css" rel="stylesheet" />
		<link href="../css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="../css/docs.css" rel="stylesheet" />
		<link href="../css/reflow-skin.css" rel="stylesheet" />


		<link href="../css/lightbox.css" rel="stylesheet" />

		<link href="../css/site.css" rel="stylesheet" />
		<link href="../css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="../js/html5.js"></script>
		<![endif]-->


		
	</head>

	<body class="page-surefire-report project-openmeetings-install" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="brand"><span class="color-highlight">Apache</span> OpenMeetings</div>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="../demo.html" title="Demo">Demo</a></li>
							<li ><a href="../downloads.html" title="Download">Download</a></li>
							<li ><a href="https://cwiki.apache.org/confluence/display/OPENMEETINGS" title="Wiki" class="externalLink">Wiki</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Parent Project <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="../index.html" title="Openmeetings">Openmeetings</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Project <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="index.html" title="About">About</a></li>
									<li ><a href="project-info.html" title="Info">Info</a></li>
									<li ><a href="project-summary.html" title="Summary">Summary</a></li>
									<li ><a href="license.html" title="License">License</a></li>
									<li ><a href="dependencies.html" title="Dependencies">Dependencies</a></li>
									<li ><a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a></li>
									<li ><a href="rat-report.html" title="RAT Report">RAT Report</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="../index.html" id="bannerLeft"><img src="../images/logo.png" alt='"'Apache OpenMeetings'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://apache.org" id="bannerRight"><img src="http://apache.org/img/asf_logo.png" alt='"'Apache'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="publishDate version-date">Last Published: 2017-03-17</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span8">
			<div class="body-content">
<script type="text/javascript">
//<![CDATA[
function toggleDisplay(elementId) {
 var elm = document.getElementById(elementId + 'error');
 if (elm && typeof elm.style != "undefined") {
 if (elm.style.display == "none") {
 elm.style.display = "";
 document.getElementById(elementId + 'off').style.display = "none";
 document.getElementById(elementId + 'on').style.display = "inline";
 } else if (elm.style.display == "") { elm.style.display = "none";
 document.getElementById(elementId + 'off').style.display = "inline";
 document.getElementById(elementId + 'on').style.display = "none";
 } 
 } 
 }
//]]>
</script> 
<div class="section"> 
 <div class="page-header">
  <h2 id="Surefire_Report">Surefire Report</h2>
 </div> 
</div> 
<div class="section"> 
 <h2 id="Summary">Summary</h2> 
 <a name="Summary"></a> 
 <br /> 
 <table border="1" class="bodyTable table table-striped table-hover"> 
  <thead> 
   <tr class="a"> 
    <th>Tests</th> 
    <th>Errors </th> 
    <th>Failures</th> 
    <th>Skipped</th> 
    <th>Success Rate</th> 
    <th>Time</th> 
   </tr> 
  </thead> 
  <tbody> 
   <tr class="b"> 
    <td>0</td> 
    <td>0</td> 
    <td>0</td> 
    <td>0</td> 
    <td>0%</td> 
    <td>0</td> 
   </tr> 
  </tbody> 
 </table> 
 <br /> 
 <p>Note: failures are anticipated and checked for with assertions while errors are unanticipated.</p> 
 <br /> 
</div>
			</div>
		</div>
		<div class="span4">
			<div id="toc-sidebar">
				<div class="well">
					<ul class="nav nav-list">
						<li class="nav-header">Table of Contents</li>
		<li><a href="#Surefire_Report" title="Surefire Report">Surefire Report</a>
		<li><a href="#Summary" title="Summary">Summary</a>
					</ul>
				</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span4 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Parent Project</li>
						<li >
							<a href="../index.html" title="Openmeetings">Openmeetings</a>
						</li>
					</ul>
				</div>
				<div class="span8 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">Project</li>
						<li >
							<a href="index.html" title="About">About</a>
						</li>
						<li >
							<a href="project-info.html" title="Info">Info</a>
						</li>
						<li >
							<a href="project-summary.html" title="Summary">Summary</a>
						</li>
						<li >
							<a href="license.html" title="License">License</a>
						</li>
						<li >
							<a href="dependencies.html" title="Dependencies">Dependencies</a>
						</li>
						<li >
							<a href="dependency-convergence.html" title="Dependency Convergence">Dependency Convergence</a>
						</li>
						<li >
							<a href="rat-report.html" title="RAT Report">RAT Report</a>
						</li>
					</ul>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2012-2017 <a href="http://apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="../js/jquery.min.js"></script>

	<script src="../js/bootstrap.min.js"></script>
	<script src="../js/lightbox.min.js"></script>
	<script src="../js/reflow-scroll.js"></script>
	
<script src="../js/site.js"></script>
	<script src="../js/reflow-skin.js"></script>

	</body>
</html>
