
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2017-01-11
 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-core" 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-01-11</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>
