
<!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-db" 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>
									<li ><a href="apidocs/index.html" title="JavaDoc" target="_blank">JavaDoc</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>
						<li >
							<a href="apidocs/index.html" title="JavaDoc" target="_blank">JavaDoc</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>
