<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<TITLE>
Config
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Config";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/google/enterprise/adaptor/CommandStreamParser.html" title="class in com.google.enterprise.adaptor"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/google/enterprise/adaptor/CustomFormatter.html" title="class in com.google.enterprise.adaptor"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/google/enterprise/adaptor/Config.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Config.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.google.enterprise.adaptor</FONT>
<BR>
Class Config</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.google.enterprise.adaptor.Config</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>Config</B><DT>extends <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
</PRE>

<P>
Configuration values for this program, like the GSA's hostname. Also several
 knobs, or controls, for changing the behavior of the program.
 <p>All available configuration:<br>
 <style type="text/css"> td { padding-right:2em; } </style>
 <table>
 <tr><td align=center><b>required?</b></td>
     <td><b>name</b></td><td><b>meaning</b></td>
 <tr><td> </td><td>adaptor.autoUnzip </td><td> expand zip files and send
     each file inside   separatly.  Defaults to false
 <tr><td> </td><td>adaptor.sendDocControlsHeader </td><td>use 
      X-Gsa-Doc-Controls HTTP header with namespaced ACLs.
      Otherwise ACLs are sent without namespace and as metadata.
      Defaults to false
 <tr><td> </td><td>adaptor.fullListingSchedule </td><td> when to invoke 
     <A HREF="../../../../com/google/enterprise/adaptor/Adaptor.html#getDocIds(com.google.enterprise.adaptor.DocIdPusher)"><CODE>Adaptor.getDocIds</CODE></A>, in cron format (minute,
     hour,  day of month, month, day of week).  Defaults to 0 3 * * *
 <tr><td> </td><td>adaptor.incrementalPollPeriodSecs </td><td> number
     of seconds between invocations of <A HREF="../../../../com/google/enterprise/adaptor/PollingIncrementalAdaptor.html#getModifiedDocIds(com.google.enterprise.adaptor.DocIdPusher)"><CODE>PollingIncrementalAdaptor.getModifiedDocIds</CODE></A>.    Defaults to 900
 <tr><td> </td><td>adaptor.docContentTimeoutSecs </td><td> number of seconds
     before a call to get document content times out and is interrupted.
     Defaults to 30
 <tr><td> </td><td>adaptor.pushDocIdsOnStartup </td><td> whether to invoke
     <A HREF="../../../../com/google/enterprise/adaptor/Adaptor.html#getDocIds(com.google.enterprise.adaptor.DocIdPusher)"><CODE>Adaptor.getDocIds</CODE></A> on process start
     (in addition to adaptor.fullListingSchedule).   Defaults to true
 <tr><td> </td><td>docId.isUrl </td><td> say your adaptor's document ids
     are already URLs and avoid them being inserted into adaptor
       generated URLs.   Defaults to false
 <tr><td> </td><td>feed.crawlImmediatelyBitEnabled </td><td> send bit telling
     GSA to crawl immediately.  Defaults to false
 <tr><td> </td><td>feed.maxUrls </td><td> set max number of URLs included
     per feed file.    Defaults to 5000
 <tr><td> </td><td>feed.name </td><td> source name used in feeds. Generated
     if not provided
 <tr><td> </td><td>feed.noRecrawlBitEnabled </td><td> send bit telling
     GSA to crawl your documents only once.  Defaults to  false
 <tr><td> </td><td>gsa.614FeedWorkaroundEnabled </td><td> enable detour
     around particular feed parsing failure found in GSA version 6.14 .
     Defaults to false
 <tr><td> </td><td>gsa.70AuthMethodWorkaroundEnabled </td><td> send authmethod
     in feed files to workaround early GSA 7.0 bug. Defaults to false
 <tr><td> </td><td>gsa.characterEncoding </td><td> character set used
     in feed files. Defaults to  UTF-8
 <tr><td align="center"> yes </td><td>gsa.hostname </td><td> machine to
     send feed files to.  Process errors if not provided 
 <tr><td> </td><td>journal.reducedMem </td><td> avoid tracking per URL 
     information in RAM; suggested with over five hundred thousand documents.
     Defaults to true
 <tr><td> </td><td>server.dashboardPort </td><td> port on adaptor's
     machine for accessing adaptor's dashboard.   Defaults to  5679
 <tr><td> </td><td>server.docIdPath </td><td> part of URL preceding
     encoded document ids.  Defaults to  /doc/
 <tr><td> </td><td>server.fullAccessHosts </td><td> hosts allowed access
     without authentication
     (certificates still needed when in secure mode).   Defaults to
     empty but implicitly contains gsa.hostname
 <tr><td> </td><td>server.hostname </td><td>
     hostname of adaptor machine for URL generation. 
     The GSA will use this hostname to crawl the adaptor.
     Defaults to automatically detected hostname
 <tr><td> </td><td>server.keyAlias </td><td> keystore alias where
     encryption (public and private) keys are stored.
     Defaults to adaptor
 <tr><td> </td><td>server.maxWorkerThreads </td><td> number of maximum
     simultenous retrievals  allowed.  Defaults to 16
 <tr><td> </td><td>server.port </td><td> retriever port.  Defaults to 5678
 <tr><td> </td><td>server.queueCapacity </td><td> max retriever queue size.
     Defaults to  160
 <tr><td> </td><td>server.reverseProxyPort </td><td> port used in
     retriever URLs (in case requests
     are routed through a reverse proxy).  Defaults to server.port
 <tr><td> </td><td>server.reverseProxyProtocol </td><td> either http or https,
     depending on  proxy traffic.  Defaults to https in secure
     mode and http otherwise
 <tr><td> </td><td>server.secure </td><td> enables https and certificate
     checking. Defaults to false
 <tr><td> </td><td>server.useCompression </td><td> compress retrieval
     responses. Defaults to true
 <tr><td> </td><td>transform.maxDocumentBytes </td><td> max size of
     document that will get transformed.  Defaults to 1048576
 <tr><td> </td><td>transform.pipeline </td><td> sequence of
     transformation steps.  Defaults to no-pipeline
 <tr><td> </td><td>transform.required </td><td> fail retrieval if document is
     over maxDocumentBytes.  Defaults to false
 </table>
<P>

<P>
<HR>

<P>

<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#Config()">Config</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#addKey(java.lang.String, java.lang.String)">addKey</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
       <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add configuration key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#autoConfig(java.lang.String[])">autoConfig</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load default configuration file and parse command line options.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#ensureLatestConfigLoaded()">ensureLatestConfigLoaded</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getAdaptorDocContentTimeoutMillis()">getAdaptorDocContentTimeoutMillis</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getAdaptorFullListingSchedule()">getAdaptorFullListingSchedule</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cron-style format for describing when the adaptor should perform full
 listings of <code>DocId</code>s.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getAdaptorIncrementalPollPeriodMillis()">getAdaptorIncrementalPollPeriodMillis</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getAllKeys()">getAllKeys</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getFeedMaxUrls()">getFeedMaxUrls</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides max number of URLs (equal to number of document ids) that are sent
 to the GSA per feed file.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getFeedName()">getFeedName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html?is-external=true" title="class or interface in java.nio.charset">Charset</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getGsaCharacterEncoding()">getGsaCharacterEncoding</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides the character encoding the GSA prefers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getGsaHostname()">getGsaHostname</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Required to be set: GSA machine to send document ids to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getRawValue(java.lang.String)">getRawValue</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a configuration value exactly as provided in configuration.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerBaseUri()">getServerBaseUri</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional: Returns this host's base URI which other paths will be resolved
 against.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerBaseUri(com.google.enterprise.adaptor.DocId)">getServerBaseUri</A></B>(<A HREF="../../../../com/google/enterprise/adaptor/DocId.html" title="class in com.google.enterprise.adaptor">DocId</A>&nbsp;docId)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional: Returns the host's base URI which GSA will contact for document
 information, including document contents.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerDashboardPort()">getServerDashboardPort</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Local port, on this computer, from which the dashboard is served.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerDocIdPath()">getServerDocIdPath</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional: Path below <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerBaseUri(com.google.enterprise.adaptor.DocId)"><CODE>getServerBaseUri(DocId)</CODE></A> where documents are
 namespaced.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerFullAccessHosts()">getServerFullAccessHosts</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comma-separated list of IPs or hostnames that can retrieve content without
 authentication checks.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerHostname()">getServerHostname</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Without changes contains InetAddress.getLocalHost().getHostName().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerKeyAlias()">getServerKeyAlias</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The alias in the keystore that has the key to use for encryption.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerMaxWorkerThreads()">getServerMaxWorkerThreads</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The maximum number of worker threads to use to respond to document
 requests.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerPort()">getServerPort</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suggested to be set: Local port, on this computer, onto which requests from
 GSA come in on.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerQueueCapacity()">getServerQueueCapacity</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The maximum request queue length.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerReverseProxyPort()">getServerReverseProxyPort</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The port that should be used in feed file and other references to the
 adaptor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerReverseProxyProtocol()">getServerReverseProxyProtocol</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The protocol that should be used in feed files and other references to the
 adaptor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getTransformMaxDocumentBytes()">getTransformMaxDocumentBytes</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getTransformPipelineSpec()">getTransformPipelineSpec</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a list of maps correspending to each transform in the pipeline.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getValue(java.lang.String)">getValue</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get a configuration value as computed based on the configuration.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#getValuesWithPrefix(java.lang.String)">getValuesWithPrefix</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;prefix)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets all configuration values that begin with <code>prefix</code>, returning
 them as a map with the keys having <code>prefix</code> removed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isAdaptorPushDocIdsOnStartup()">isAdaptorPushDocIdsOnStartup</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the default <code>main()</code> should automatically start pushing all
 document ids on startup.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isCrawlImmediatelyBitEnabled()">isCrawlImmediatelyBitEnabled</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional (default false): Adds crawl-immediately bit with sent records in
 feed file.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isDocIdUrl()">isDocIdUrl</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional (default false): If your DocIds are already valid URLs you can
 have this method return true and they will be sent to GSA unmodified.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isFeedNoRecrawlBitEnabled()">isFeedNoRecrawlBitEnabled</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Optional (default false): Adds no-recrawl bit with sent records in feed
 file.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isGsa614FeedWorkaroundEnabled()">isGsa614FeedWorkaroundEnabled</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isGsa70AuthMethodWorkaroundEnabled()">isGsa70AuthMethodWorkaroundEnabled</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isJournalReducedMem()">isJournalReducedMem</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isServerSecure()">isServerSecure</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether full security should be enabled.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isServerToUseCompression()">isServerToUseCompression</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#isTransformRequired()">isTransformRequired</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#load(java.io.File)">load</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;configFile)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load user-provided configuration file.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#load(java.lang.String)">load</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;configFile)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load user-provided configuration file.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#loadDefaultConfigFile()">loadDefaultConfigFile</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Loads <code>adaptor-config.properties</code> in the current directory, if it
 exists.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#overrideKey(java.lang.String, java.lang.String)">overrideKey</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
            <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the default value of a preexisting configuration key.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#sendDocControlsHeader()">sendDocControlsHeader</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#useAdaptorAutoUnzip()">useAdaptorAutoUnzip</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Automatically unzips and <code>DocId</code>s ending in <code>.zip</code> and provides
 them to the GSA.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/google/enterprise/adaptor/Config.html#validate()">validate</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="Config()"><!-- --></A><H3>
Config</H3>
<PRE>
public <B>Config</B>()</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="getAllKeys()"><!-- --></A><H3>
getAllKeys</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>getAllKeys</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getGsaHostname()"><!-- --></A><H3>
getGsaHostname</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getGsaHostname</B>()</PRE>
<DL>
<DD>Required to be set: GSA machine to send document ids to. This is the
 hostname of your GSA on your network.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFeedName()"><!-- --></A><H3>
getFeedName</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getFeedName</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerPort()"><!-- --></A><H3>
getServerPort</H3>
<PRE>
public int <B>getServerPort</B>()</PRE>
<DL>
<DD>Suggested to be set: Local port, on this computer, onto which requests from
 GSA come in on.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerReverseProxyPort()"><!-- --></A><H3>
getServerReverseProxyPort</H3>
<PRE>
public int <B>getServerReverseProxyPort</B>()</PRE>
<DL>
<DD>The port that should be used in feed file and other references to the
 adaptor. This does not affect the actual port the adaptor uses.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerReverseProxyProtocol()"><!-- --></A><H3>
getServerReverseProxyProtocol</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getServerReverseProxyProtocol</B>()</PRE>
<DL>
<DD>The protocol that should be used in feed files and other references to the
 adaptor. This does not affect the actual protocol the adaptor uses.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerDashboardPort()"><!-- --></A><H3>
getServerDashboardPort</H3>
<PRE>
public int <B>getServerDashboardPort</B>()</PRE>
<DL>
<DD>Local port, on this computer, from which the dashboard is served.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isDocIdUrl()"><!-- --></A><H3>
isDocIdUrl</H3>
<PRE>
public boolean <B>isDocIdUrl</B>()</PRE>
<DL>
<DD>Optional (default false): If your DocIds are already valid URLs you can
 have this method return true and they will be sent to GSA unmodified. If
 your DocId is like http://procurement.corp.company.com/internal/011212.html
 you can turn this true and that URL will be handed to the GSA.

 <p>By default DocIds are URL encoded and prefixed with http:// and this
 host's name and port.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerHostname()"><!-- --></A><H3>
getServerHostname</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getServerHostname</B>()</PRE>
<DL>
<DD>Without changes contains InetAddress.getLocalHost().getHostName().
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerFullAccessHosts()"><!-- --></A><H3>
getServerFullAccessHosts</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getServerFullAccessHosts</B>()</PRE>
<DL>
<DD>Comma-separated list of IPs or hostnames that can retrieve content without
 authentication checks. The GSA's hostname is implicitly in this list.

 <p>When in secure mode, clients are requested to provide a client
 certificate. If the provided client certificate is valid and the Common
 Name (CN) of the Subject is in this list (case-insensitively), then it is
 given access.

 <p>In non-secure mode, the hostnames in this list are resolved to IPs at
 startup and when a request is made from one of those IPs the client is
 given access.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerBaseUri()"><!-- --></A><H3>
getServerBaseUri</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</A> <B>getServerBaseUri</B>()</PRE>
<DL>
<DD>Optional: Returns this host's base URI which other paths will be resolved
 against. It is used to construct URIs to provide to the GSA for it to
 contact this server for various services. For documents (which is probably
 what you care about), the <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerBaseUri(com.google.enterprise.adaptor.DocId)"><CODE>getServerBaseUri(DocId)</CODE></A> version is used
 instead.

 <p>It must contain the protocol, hostname, and port, but may optionally
 contain a path like <code>/yourfavoritepath</code>. By default, the protocol,
 hostname, and port are retrieved automatically and no path is set.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerDocIdPath()"><!-- --></A><H3>
getServerDocIdPath</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getServerDocIdPath</B>()</PRE>
<DL>
<DD>Optional: Path below <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerBaseUri(com.google.enterprise.adaptor.DocId)"><CODE>getServerBaseUri(DocId)</CODE></A> where documents are
 namespaced. Generally, should be at least <code>"/"</code> and end with a slash.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerBaseUri(com.google.enterprise.adaptor.DocId)"><!-- --></A><H3>
getServerBaseUri</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</A> <B>getServerBaseUri</B>(<A HREF="../../../../com/google/enterprise/adaptor/DocId.html" title="class in com.google.enterprise.adaptor">DocId</A>&nbsp;docId)</PRE>
<DL>
<DD>Optional: Returns the host's base URI which GSA will contact for document
 information, including document contents. By default it returns <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerBaseUri()"><CODE>getServerBaseUri()</CODE></A>.  However, if you would like to direct GSA's queries
 for contents to go to other computers/binaries then you can change this
 method.

 <p>For example, imagine that you want five binaries to serve the contents
 of files to the GSA.  In this case you could split the document ids into
 five categories using something like:

 <pre>String urlBeginnings[] = new String[] {
   "http://content-server-A:5678",
   "http://content-server-B:5678",
   "http://backup-server-A:5678",
   "http://backup-server-B:5678",
   "http://new-server:7878"
 };
 int shard = docId.getUniqueId().hashCode() % 5;
 return URI.create(urlBeginnings[shard]);</pre>

 <p>Note that this URI is used in conjunction with <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerDocIdPath()"><CODE>getServerDocIdPath()</CODE></A> and the document ID to form the full URL. In addition,
 by using <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getServerBaseUri()"><CODE>getServerBaseUri()</CODE></A> and <code>getDocIdPath()</code>, we have to
 be able to parse back the original document ID when a request comes to this
 server.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isServerSecure()"><!-- --></A><H3>
isServerSecure</H3>
<PRE>
public boolean <B>isServerSecure</B>()</PRE>
<DL>
<DD>Whether full security should be enabled. When <code>true</code>, the adaptor is
 locked down using HTTPS, checks certificates, and generally behaves in a
 fully-secure manner. When <code>false</code> (default), the adaptor serves
 content over HTTP and is unable to authenticate users (all users are
 treated as anonymous).

 <p>The need for this setting is because when enabled, security requires a
 reasonable amount of configuration and know-how. To provide easy
 out-of-the-box execution, this is disabled by default.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerKeyAlias()"><!-- --></A><H3>
getServerKeyAlias</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getServerKeyAlias</B>()</PRE>
<DL>
<DD>The alias in the keystore that has the key to use for encryption.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerMaxWorkerThreads()"><!-- --></A><H3>
getServerMaxWorkerThreads</H3>
<PRE>
public int <B>getServerMaxWorkerThreads</B>()</PRE>
<DL>
<DD>The maximum number of worker threads to use to respond to document
 requests. The main reason to limit the number of threads is that each can
 be using a transform pipeline and will have multiple complete copies of the
 response in memory at the same time.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getServerQueueCapacity()"><!-- --></A><H3>
getServerQueueCapacity</H3>
<PRE>
public int <B>getServerQueueCapacity</B>()</PRE>
<DL>
<DD>The maximum request queue length.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isServerToUseCompression()"><!-- --></A><H3>
isServerToUseCompression</H3>
<PRE>
public boolean <B>isServerToUseCompression</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="sendDocControlsHeader()"><!-- --></A><H3>
sendDocControlsHeader</H3>
<PRE>
public boolean <B>sendDocControlsHeader</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isFeedNoRecrawlBitEnabled()"><!-- --></A><H3>
isFeedNoRecrawlBitEnabled</H3>
<PRE>
public boolean <B>isFeedNoRecrawlBitEnabled</B>()</PRE>
<DL>
<DD>Optional (default false): Adds no-recrawl bit with sent records in feed
 file. If connector handles updates and deletes then GSA does not have to
 recrawl periodically to notice that a document is changed or deleted.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isCrawlImmediatelyBitEnabled()"><!-- --></A><H3>
isCrawlImmediatelyBitEnabled</H3>
<PRE>
public boolean <B>isCrawlImmediatelyBitEnabled</B>()</PRE>
<DL>
<DD>Optional (default false): Adds crawl-immediately bit with sent records in
 feed file.  This bit makes the sent URL get crawl priority.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isAdaptorPushDocIdsOnStartup()"><!-- --></A><H3>
isAdaptorPushDocIdsOnStartup</H3>
<PRE>
public boolean <B>isAdaptorPushDocIdsOnStartup</B>()</PRE>
<DL>
<DD>Whether the default <code>main()</code> should automatically start pushing all
 document ids on startup. Defaults to <code>true</code>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="useAdaptorAutoUnzip()"><!-- --></A><H3>
useAdaptorAutoUnzip</H3>
<PRE>
public boolean <B>useAdaptorAutoUnzip</B>()</PRE>
<DL>
<DD>Automatically unzips and <code>DocId</code>s ending in <code>.zip</code> and provides
 them to the GSA.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAdaptorFullListingSchedule()"><!-- --></A><H3>
getAdaptorFullListingSchedule</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getAdaptorFullListingSchedule</B>()</PRE>
<DL>
<DD>Cron-style format for describing when the adaptor should perform full
 listings of <code>DocId</code>s. Multiple times can be specified by separating
 them with a '|' (vertical bar).
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAdaptorIncrementalPollPeriodMillis()"><!-- --></A><H3>
getAdaptorIncrementalPollPeriodMillis</H3>
<PRE>
public long <B>getAdaptorIncrementalPollPeriodMillis</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAdaptorDocContentTimeoutMillis()"><!-- --></A><H3>
getAdaptorDocContentTimeoutMillis</H3>
<PRE>
public long <B>getAdaptorDocContentTimeoutMillis</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getTransformPipelineSpec()"><!-- --></A><H3>
getTransformPipelineSpec</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt;&gt; <B>getTransformPipelineSpec</B>()</PRE>
<DL>
<DD>Returns a list of maps correspending to each transform in the pipeline.
 Each map is the configuration entries for that transform. The 'name'
 configuration entry is added in each map based on the name provided by the
 user.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getTransformMaxDocumentBytes()"><!-- --></A><H3>
getTransformMaxDocumentBytes</H3>
<PRE>
public int <B>getTransformMaxDocumentBytes</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isTransformRequired()"><!-- --></A><H3>
isTransformRequired</H3>
<PRE>
public boolean <B>isTransformRequired</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isJournalReducedMem()"><!-- --></A><H3>
isJournalReducedMem</H3>
<PRE>
public boolean <B>isJournalReducedMem</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getGsaCharacterEncoding()"><!-- --></A><H3>
getGsaCharacterEncoding</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html?is-external=true" title="class or interface in java.nio.charset">Charset</A> <B>getGsaCharacterEncoding</B>()</PRE>
<DL>
<DD>Provides the character encoding the GSA prefers.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isGsa614FeedWorkaroundEnabled()"><!-- --></A><H3>
isGsa614FeedWorkaroundEnabled</H3>
<PRE>
public boolean <B>isGsa614FeedWorkaroundEnabled</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isGsa70AuthMethodWorkaroundEnabled()"><!-- --></A><H3>
isGsa70AuthMethodWorkaroundEnabled</H3>
<PRE>
public boolean <B>isGsa70AuthMethodWorkaroundEnabled</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFeedMaxUrls()"><!-- --></A><H3>
getFeedMaxUrls</H3>
<PRE>
public int <B>getFeedMaxUrls</B>()</PRE>
<DL>
<DD>Provides max number of URLs (equal to number of document ids) that are sent
 to the GSA per feed file.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="load(java.lang.String)"><!-- --></A><H3>
load</H3>
<PRE>
public void <B>load</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;configFile)
          throws <A HREF="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD>Load user-provided configuration file.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="load(java.io.File)"><!-- --></A><H3>
load</H3>
<PRE>
public void <B>load</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;configFile)
          throws <A HREF="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD>Load user-provided configuration file.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="ensureLatestConfigLoaded()"><!-- --></A><H3>
ensureLatestConfigLoaded</H3>
<PRE>
public boolean <B>ensureLatestConfigLoaded</B>()
                                 throws <A HREF="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD><code>true</code> if configuration file was modified.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="loadDefaultConfigFile()"><!-- --></A><H3>
loadDefaultConfigFile</H3>
<PRE>
public void <B>loadDefaultConfigFile</B>()</PRE>
<DL>
<DD>Loads <code>adaptor-config.properties</code> in the current directory, if it
 exists. It squelches any errors so that you are free to call it without
 error handling, since this is typically non-fatal.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="validate()"><!-- --></A><H3>
validate</H3>
<PRE>
public void <B>validate</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="autoConfig(java.lang.String[])"><!-- --></A><H3>
autoConfig</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>autoConfig</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</PRE>
<DL>
<DD>Load default configuration file and parse command line options.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>unused command line arguments
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - when not all configuration keys have values</DL>
</DD>
</DL>
<HR>

<A NAME="getRawValue(java.lang.String)"><!-- --></A><H3>
getRawValue</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getRawValue</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
<DL>
<DD>Get a configuration value exactly as provided in configuration. Generally,
 <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getValue(java.lang.String)"><CODE>getValue(java.lang.String)</CODE></A> should be used instead of this method.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>raw non-<code>null</code> value of <code>key</code>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if <code>key</code> has no value</DL>
</DD>
</DL>
<HR>

<A NAME="getValue(java.lang.String)"><!-- --></A><H3>
getValue</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getValue</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key)</PRE>
<DL>
<DD>Get a configuration value as computed based on the configuration. Some
 configuration values can be generated from other values. This method
 returns that computed configuration value instead of the raw value provided
 in configuration. This method should be preferred over <A HREF="../../../../com/google/enterprise/adaptor/Config.html#getRawValue(java.lang.String)"><CODE>getRawValue(java.lang.String)</CODE></A>.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>non-<code>null</code> value of <code>key</code>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</A></CODE> - if <code>key</code> has no value</DL>
</DD>
</DL>
<HR>

<A NAME="getValuesWithPrefix(java.lang.String)"><!-- --></A><H3>
getValuesWithPrefix</H3>
<PRE>
public <A HREF="http://download.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>,<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&gt; <B>getValuesWithPrefix</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;prefix)</PRE>
<DL>
<DD>Gets all configuration values that begin with <code>prefix</code>, returning
 them as a map with the keys having <code>prefix</code> removed.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addKey(java.lang.String, java.lang.String)"><!-- --></A><H3>
addKey</H3>
<PRE>
public void <B>addKey</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
                   <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
<DL>
<DD>Add configuration key. If <code>defaultValue</code> is <code>null</code>, then no
 default value is used and the user must provide one.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="overrideKey(java.lang.String, java.lang.String)"><!-- --></A><H3>
overrideKey</H3>
<PRE>
public void <B>overrideKey</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;key,
                        <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;defaultValue)</PRE>
<DL>
<DD>Change the default value of a preexisting configuration key. If <code>defaultValue</code> is <code>null</code>, then no default is used and the user must
 provide one.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../com/google/enterprise/adaptor/CommandStreamParser.html" title="class in com.google.enterprise.adaptor"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/google/enterprise/adaptor/CustomFormatter.html" title="class in com.google.enterprise.adaptor"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/google/enterprise/adaptor/Config.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Config.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
