<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->

  <title>Archiva Web :: Web Common: proxyConnector</title>

  <!-- Mobile viewport optimized: j.mp/bplateviewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- Bootstrap core CSS -->
  <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> -->

  <!--custom css for these pages-->
  <link rel="stylesheet" href="css/style.css">

  <link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.css" type="text/css">

  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
</head>

<body class="home">
 <div class="container">
  <header>
 
   <div id="header" class="column first last span-20">
        <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="index.html">Archiva Web :: Web Common: proxyConnector</a></div>
        <div id="primary" class="column span-18 append-1 prepend-1 first last">
          <ul class="navigation">
            <li id="nav-rest"><a href="resources.html">REST</a></li>
            <li id="nav-data"><a href="data.html">Data Model</a></li>
          </ul>
        </div>
        <div>
          <ul class="xbreadcrumbs" id="breadcrumbs">
<li>
 <a href="index.html" class="home">Home</a> &gt;

            </li>
<li>
 <a href="syntax_xml.html">XML</a> &gt;

            </li>
<li class="current">
 <a href="xml_ns0_proxyConnector.html">proxyConnector</a>

            </li>
          </ul>
        </div>
      </div>
  <!--<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="index.html">Archiva Web :: Web Common: proxyConnector</a>
      </div>
      <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="resources.html">Resources</a></li>
          <li><a href="data.html">Data Types</a></li>
          <li><a href="downloads.html">Files and Libraries</a></li>
        </ul>
      </div>
    </div>
  </nav>-->
 </header>
  <div id="main" class="column first last span-20">
  
      <h1 class="page-header">proxyConnector <small>Data Type</small></h1>

      <p></p>

      <dl class="dl-horizontal">
        <dt>Schema</dt>
        <dd><a href="ns0.xsd">ns0.xsd</a></dd>
        <dt>Available Since</dt>
        <dd>1.4-M1</dd>
      </dl>

      <table class="table">
        <caption>Properties</caption>
        <thead>
        <tr>
          <th>name</th>
          <th>data type</th>
          <th>type</th>
          <th>namespace</th>
          <th>min/max occurs</th>
          <th>description</th>
        </tr>
        </thead>
        <tbody>
        <tr>
          <td>  order
</td>
          <td>  int

</td>
          <td>  element

</td>
          <td>  

</td>
          <td>  1/1

</td>
          <td>  Get the order of the proxy connectors. (0 means no order specified)
</td>
        </tr>
        </tbody>
        <tr>
          <td colspan="6"><h5 class="text-muted">Properties inherited from <a href="xml_ns0_abstractRepositoryConnector.html">abstractRepositoryConnector</a></h5></td>
        </tr>
        <tbody>
        <tr>
          <td>blackListPatterns</td>
          <td>string
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/unbounded
</td>
          <td>Method getBlackListPatterns.</td>
        </tr>
        <tr>
          <td>disabled</td>
          <td>boolean
</td>
          <td>element
</td>
          <td>
</td>
          <td>1/1
</td>
          <td>Get if the the repository proxy connector is disabled or not
.</td>
        </tr>
        <tr>
          <td>policies</td>
          <td>(custom)
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/1
</td>
          <td>Method getPolicies.</td>
        </tr>
        <tr>
          <td>policiesEntries</td>
          <td><a href="xml_ns0_propertyEntry.html">propertyEntry</a>
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/unbounded
</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>properties</td>
          <td>(custom)
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/1
</td>
          <td>Method getProperties.</td>
        </tr>
        <tr>
          <td>propertiesEntries</td>
          <td><a href="xml_ns0_propertyEntry.html">propertyEntry</a>
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/unbounded
</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>proxyId</td>
          <td>string
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/1
</td>
          <td>Get the network proxy ID to use for this connector.</td>
        </tr>
        <tr>
          <td>sourceRepoId</td>
          <td>string
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/1
</td>
          <td>Get the Repository Source for this connector.</td>
        </tr>
        <tr>
          <td>targetRepoId</td>
          <td>string
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/1
</td>
          <td>Get the Repository Target for this connector.</td>
        </tr>
        <tr>
          <td>whiteListPatterns</td>
          <td>string
</td>
          <td>element
</td>
          <td>
</td>
          <td>0/unbounded
</td>
          <td>Method getWhiteListPatterns.</td>
        </tr>
        </tbody>
      </table>

      <h2>Example</h2>

      <pre class="prettyprint lang-xml">&lt;proxyConnector&gt;
  &lt;order&gt;...&lt;/order&gt;
  &lt;blackListPatterns&gt;...&lt;/blackListPatterns&gt;
  &lt;policies&gt;...&lt;/policies&gt;
  &lt;properties&gt;...&lt;/properties&gt;
  &lt;proxyId&gt;...&lt;/proxyId&gt;
  &lt;sourceRepoId&gt;...&lt;/sourceRepoId&gt;
  &lt;targetRepoId&gt;...&lt;/targetRepoId&gt;
  &lt;whiteListPatterns&gt;...&lt;/whiteListPatterns&gt;
  &lt;disabled&gt;...&lt;/disabled&gt;
  &lt;policiesEntries&gt;
    &lt;key&gt;...&lt;/key&gt;
    &lt;value&gt;...&lt;/value&gt;
  &lt;/policiesEntries&gt;
  &lt;propertiesEntries&gt;
    &lt;key&gt;...&lt;/key&gt;
    &lt;value&gt;...&lt;/value&gt;
  &lt;/propertiesEntries&gt;
&lt;/proxyConnector&gt;
</pre>
        
        <footer>
          <div class="footer">
            Generated by <a href="http://enunciate.webcohesion.com">Enunciate</a>.
          </div>
        </footer>

      </div>
    
  </div>


  <!-- JavaScript placed at the end of the document so the pages load faster. -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

  
  <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.js" type="text/javascript"></script>
  

</body>
</html>
