
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xml:lang="en" lang="en">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
		<title>OpenCMIS Test Utilities 0.7.0 Reference Package org.apache.chemistry.opencmis.util.repository</title>
		<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="style" />
	</head>
	<body>
		      	<div class="overview">
        	<ul>
          		<li>
            		<a href="../../../../../../overview-summary.html">Overview</a>
          		</li>
          		<li class="selected">Package</li>
        	</ul>
      	</div>
      	<div class="framenoframe">
        	<ul>
          		<li>
            		<a href="../../../../../../index.html" target="_top">FRAMES</a>
          		</li>
          		<li>
            		<a href="package-summary.html" target="_top">NO FRAMES</a>
          		</li>
        	</ul>
      	</div>
		
		      	<h2>Package org.apache.chemistry.opencmis.util.repository</h2>

		<table class="summary">
        	<thead>
          		<tr>
            		<th>Class Summary</th>
          		</tr>
        	</thead>
        	<tbody>
        		            	<tr>
              		<td>
                		<a href="MultiThreadedObjectGenerator.html" target="classFrame">Action</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="ObjectGenerator.html" target="classFrame">CONTENT_KIND</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="MultiThreadedObjectGenerator.html" target="classFrame">MultiThreadedObjectGenerator</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="ObjectGenerator.html" target="classFrame">ObjectGenerator</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="MultiThreadedObjectGenerator.html" target="classFrame">ObjectGeneratorRunner</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="TimeLogger.html" target="classFrame">TimeLogger</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="TimeLogger.html" target="classFrame">TimeRecord</a>
              		</td>
            	</tr>
				        	</tbody>
      	</table>
		
		      	<div class="overview">
        	<ul>
          		<li>
            		<a href="../../../../../../overview-summary.html">Overview</a>
          		</li>
          		<li class="selected">Package</li>
        	</ul>
      	</div>
      	<div class="framenoframe">
        	<ul>
          		<li>
            		<a href="../../../../../../index.html" target="_top">FRAMES</a>
          		</li>
          		<li>
            		<a href="package-summary.html" target="_top">NO FRAMES</a>
          		</li>
        	</ul>
      	</div>
				<hr />
		Copyright &copy; 2009-2012 The Apache Software Foundation. All Rights Reserved.
	</body>
</html>