
<!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 Compatibility Kit 0.7.0 Reference</title>
		<link rel="stylesheet" type="text/css" href="stylesheet.css" title="style" />
	</head>
	<body>
				<div class="overview">
			<ul>
				<li class="selected">Overview</li>
				<li>Package</li>
			</ul>
		</div>
		<div class="framenoframe">
			<ul>
				<li>
					<a href="index.html" target="_top">FRAMES</a>
				</li>
				<li>
    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
        	  	</li>
	        </ul>
      	</div>
		
		      	<h2>OpenCMIS Test Compatibility Kit 0.7.0 Reference</h2>

		<table class="summary">
        	<thead>
          		<tr>
            		<th>Packages</th>
          		</tr>
        	</thead>
        	<tbody>
    	    	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/package-summary.html">org.apache.chemistry.opencmis.tck</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/impl/package-summary.html">org.apache.chemistry.opencmis.tck.impl</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/report/package-summary.html">org.apache.chemistry.opencmis.tck.report</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/runner/package-summary.html">org.apache.chemistry.opencmis.tck.runner</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/tests/basics/package-summary.html">org.apache.chemistry.opencmis.tck.tests.basics</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/tests/control/package-summary.html">org.apache.chemistry.opencmis.tck.tests.control</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/tests/crud/package-summary.html">org.apache.chemistry.opencmis.tck.tests.crud</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/tests/filing/package-summary.html">org.apache.chemistry.opencmis.tck.tests.filing</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/tests/query/package-summary.html">org.apache.chemistry.opencmis.tck.tests.query</a>
              		</td>
            	</tr>
	          	            	<tr>
              		<td>
                		<a href="org/apache/chemistry/opencmis/tck/tests/versioning/package-summary.html">org.apache.chemistry.opencmis.tck.tests.versioning</a>
              		</td>
            	</tr>
	          	        	</tbody>
      	</table>
		
				<div class="overview">
			<ul>
				<li class="selected">Overview</li>
				<li>Package</li>
			</ul>
		</div>
		<div class="framenoframe">
			<ul>
				<li>
					<a href="index.html" target="_top">FRAMES</a>
				</li>
				<li>
    	        	<a href="overview-summary.html" target="_top">NO FRAMES</a>
        	  	</li>
	        </ul>
      	</div>
		
		<hr />
		Copyright &copy; 2009-2012 The Apache Software Foundation. All Rights Reserved.
	</body>
</html>