<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva :: Modules &#x2013; Metadata API</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
      <script type="text/javascript" src="./js/apache-maven-fluido-1.6.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://archiva.apache.org/css/site.css" />
      <!-- Google Analytics -->
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-140879-5']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
      </head>
    <body class="topBarEnabled">
                      <a href="https://github.com/apache/archiva">
      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
        src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png"
        alt="Fork me on GitHub">
    </a>
      <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
            <div class="container"><div class="nav-collapse">
            <ul class="nav">
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developers <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="index.html" title="Overview">Overview</a></li>
            <li><a href="terminology.html" title="Terminology">Terminology</a></li>
            <li><a href="metadata-content-model.html" title="Metadata Control Model">Metadata Control Model</a></li>
            <li><a href="metadata-api.html" title="Metadata API">Metadata API</a></li>
            <li><a href="repository-api.html" title="Repository API">Repository API</a></li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Modules <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="archiva-base/index.html" title="Archiva :: Base">Archiva :: Base</a></li>
            <li><a href="archiva-scheduler/index.html" title="Archiva :: Scheduler">Archiva :: Scheduler</a></li>
            <li><a href="archiva-web/index.html" title="Archiva :: Web">Archiva :: Web</a></li>
            <li><a href="metadata/index.html" title="Archiva :: Metadata">Archiva :: Metadata</a></li>
            <li><a href="plugins/index.html" title="Archiva :: Core Plugins">Archiva :: Core Plugins</a></li>
            <li><a href="archiva-maven/index.html" title="Archiva :: Maven">Archiva :: Maven</a></li>
        </ul>
      </li>
        <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li class="dropdown-submenu">
<a href="project-info.html" title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                  <li><a href="index.html" title="About">About</a></li>
              </ul>
            </li>
            <li class="dropdown-submenu">
<a href="project-reports.html" title="Project Reports">Project Reports</a>
              <ul class="dropdown-menu">
                  <li><a href="xref/index.html" title="Source Xref">Source Xref</a></li>
                  <li><a href="checkstyle-aggregate.html" title="Checkstyle">Checkstyle</a></li>
                  <li><a href="apidocs/index.html" title="Javadoc">Javadoc</a></li>
              </ul>
            </li>
        </ul>
      </li>
              </ul>
<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
      <input value="https://archiva.apache.org/ref/3.0.0-SNAPSHOT" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript">asyncJs( 'https://cse.google.com/brand?form=search-form' )</script>
                              <ul class="nav pull-right"><li>
        <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow archiva</a>
    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
        </li></ul>
                    </div>
        </div>
      </div>
    </div>
    <div class="container">
      <div id="banner">
        <div class="pull-left"><a href="http://archiva.apache.org/index.html" id="bannerLeft"><img src="http://archiva.apache.org/images/archiva.png"  alt="Apache Archiva"/></a></div>
        <div class="pull-right"><a href="http://www.apache.org/" id="bannerRight"><img src="https://www.apache.org/images/asf_logo_wide_2016.png"  alt="Apache Software Foundation"/></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li class=""><a href="https://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="../../index.html" title="Archiva">Archiva</a><span class="divider">/</span></li>
      <li class=""><a href="index.html" title="Archiva Modules">Archiva Modules</a><span class="divider">/</span></li>
    <li class="active ">Metadata API</li>
        <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2019-11-30</li>
          <li id="projectVersion" class="pull-right">Version: 3.0.0-SNAPSHOT</li>
        </ul>
      </div>
        <div id="bodyColumn" >
<div class="section">
<h2><a name="Metadata_API_and_Persistence"></a>Metadata API and Persistence</h2>
<p>The Metadata Java API is comprised of the following:</p>
<ul>
<li>The Java model</li>
<li>The Metadata repository API</li>
<li>The plugins for storing the metadata repository content</li></ul>
<div class="section">
<h3><a name="Metadata_Models"></a>Metadata Models</h3>
<p>The Java model is a very simply representation of the metadata. Presently the following are represented:</p>
<ul>
<li><a href="./apidocs/reference/org/apache/archiva/metadata/model/MetadataFacet.html"> repository metadata facets</a></li>
<li><a href="./apidocs/reference/org/apache/archiva/metadata/model/ProjectMetadata.html"> project metadata</a></li>
<li><a href="./apidocs/reference/org/apache/archiva/metadata/model/ProjectVersionMetadata.html"> project version metadata</a></li>
<li>various subtypes</li></ul>
<p>More information can be found in the <a href="./apidocs/reference/org/apache/archiva/metadata/model/package-summary.html"> org.apache.archiva.metadata.model</a> package, or the <a href="./metadata/metadata-model/index.html"> metadata-model</a> module.</p></div>
<div class="section">
<h3><a name="Metadata_Repository_API"></a>Metadata Repository API</h3>
<p>The metadata repository API is responsible for accessing the metadata repository and persisting changes. This is handled by the <a href="./apidocs/reference/org/apache/archiva/metadata/repository/MetadataRepository.html"> MetadataRepository</a> class.</p>
<p>More information can be found in the <a href="./metadata/metadata-repository-api/index.html"> metadata-repository-api</a> module.</p></div>
<div class="section">
<h3><a name="Persistence"></a>Persistence</h3>
<p>Currently, the only implementation of persistence for the metadata content is a flat-file option using Java properties. The code is note yet production quality. You can find out more in the: <a href="./apidocs/reference/org/apache/archiva/metadata/repository/file/FileMetadataRepository.html"> FileMetadataRepository</a> class.</p></div></div>
        </div>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
            <p>Copyright &copy;2006&#x2013;2019
<a href="http://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        <p id="poweredBy" class="pull-right">  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
  </p>
                          <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="https://www.ohloh.net/p/6670/widgets/project_thin_badge.js"></script>
    </div>
        </div>
    </footer>
    </body>
</html>