
<!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=UTF-8" />
		<title>Archiva :: Modules 1.4-M4 Reference Package org.apache.archiva.metadata.repository.storage.maven2</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.archiva.metadata.repository.storage.maven2</h2>

		<table class="summary">
        	<thead>
          		<tr>
            		<th>Class Summary</th>
          		</tr>
        	</thead>
        	<tbody>
        		            	<tr>
              		<td>
                		<a href="AbstractDefaultRepositoryContentTestCase.html" target="classFrame">AbstractDefaultRepositoryContentTestCase</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="AbstractLegacyRepositoryContentTestCase.html" target="classFrame">AbstractLegacyRepositoryContentTestCase</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="ManagedDefaultRepositoryContentTest.html" target="classFrame">ManagedDefaultRepositoryContentTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="ManagedLegacyRepositoryContentTest.html" target="classFrame">ManagedLegacyRepositoryContentTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="Maven2RepositoryMetadataResolverMRM1411RepoGroupTest.html" target="classFrame">Maven2RepositoryMetadataResolverMRM1411RepoGroupTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="Maven2RepositoryMetadataResolverMRM1411Test.html" target="classFrame">Maven2RepositoryMetadataResolverMRM1411Test</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="Maven2RepositoryMetadataResolverManagedReleaseTest.html" target="classFrame">Maven2RepositoryMetadataResolverManagedReleaseTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="Maven2RepositoryMetadataResolverManagedSnapshotTest.html" target="classFrame">Maven2RepositoryMetadataResolverManagedSnapshotTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="Maven2RepositoryMetadataResolverTest.html" target="classFrame">Maven2RepositoryMetadataResolverTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="MavenRepositoryMetadataReaderTest.html" target="classFrame">MavenRepositoryMetadataReaderTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="MockWagon.html" target="classFrame">MockWagon</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="RemoteDefaultRepositoryContentTest.html" target="classFrame">RemoteDefaultRepositoryContentTest</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="RemoteLegacyRepositoryContentTest.html" target="classFrame">RemoteLegacyRepositoryContentTest</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 &#169; 2006-2013 The Apache Software Foundation. All Rights Reserved.
	</body>
</html>