
<!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.repository.content.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.repository.content.maven2</h2>

		<table class="summary">
        	<thead>
          		<tr>
            		<th>Class Summary</th>
          		</tr>
        	</thead>
        	<tbody>
        		            	<tr>
              		<td>
                		<a href="AbstractDefaultRepositoryContent.html" target="classFrame">AbstractDefaultRepositoryContent</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="ArtifactExtensionMapping.html" target="classFrame">ArtifactExtensionMapping</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="DefaultPathParser.html" target="classFrame">DefaultPathParser</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="FilenameParser.html" target="classFrame">FilenameParser</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="ManagedDefaultRepositoryContent.html" target="classFrame">ManagedDefaultRepositoryContent</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="RemoteDefaultRepositoryContent.html" target="classFrame">RemoteDefaultRepositoryContent</a>
              		</td>
            	</tr>
				            	<tr>
              		<td>
                		<a href="RepositoryRequest.html" target="classFrame">RepositoryRequest</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>