<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Mon Oct 19 13:38:32 CDT 2009 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ClientConfig (Apache Wink 1.0-incubating API)
</TITLE>

<META NAME="date" CONTENT="2009-10-19">

<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="ClientConfig (Apache Wink 1.0-incubating API)";
    }
}
</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="class-use/ClientConfig.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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="../../../../org/apache/wink/client/BaseTest.html" title="class in org.apache.wink.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/wink/client/ClientConfig.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ClientConfig.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">
org.apache.wink.client</FONT>
<BR>
Class ClientConfig</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.wink.client.ClientConfig</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.lang.Cloneable</DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../org/apache/wink/client/ApacheHttpClientConfig.html" title="class in org.apache.wink.client">ApacheHttpClientConfig</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>ClientConfig</B><DT>extends java.lang.Object<DT>implements java.lang.Cloneable</DL>
</PRE>

<P>
Provides client configuration. The ClientConfig is implemented using the
 builder pattern so method calls can be easily aggregated. Custom Providers
 are defined by calling the <A HREF="../../../../org/apache/wink/client/ClientConfig.html#applications(javax.ws.rs.core.Application...)"><CODE>applications(Application...)</CODE></A> method.
 Custom client handlers are defined by calling the
 <A HREF="../../../../org/apache/wink/client/ClientConfig.html#handlers(org.apache.wink.client.handlers.ClientHandler...)"><CODE>handlers(ClientHandler...)</CODE></A> method.
<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="../../../../org/apache/wink/client/ClientConfig.html#ClientConfig()">ClientConfig</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Construct a new ClientConfig with the following default settings:
 
 proxy: none
 connect timeout: 60 seconds
 read timeout: 60 seconds
 follow redirects: true
 </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;<A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#acceptHeaderAutoSet(boolean)">acceptHeaderAutoSet</A></B>(boolean&nbsp;isAcceptHeaderAutoSet)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether client will automatically set an appropriate Accept header</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#applications(javax.ws.rs.core.Application...)">applications</A></B>(javax.ws.rs.core.Application...&nbsp;applications)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add applications</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#clone()">clone</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="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#connectTimeout(int)">connectTimeout</A></B>(int&nbsp;connectTimeout)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the connect timeout in milliseconds</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#followRedirects(boolean)">followRedirects</A></B>(boolean&nbsp;followRedirects)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set whether to client will automatically follow redirects</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List&lt;javax.ws.rs.core.Application&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#getApplications()">getApplications</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an unmodifiable list of the applications</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/wink/client/handlers/ConnectionHandler.html" title="interface in org.apache.wink.client.handlers">ConnectionHandler</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#getConnectionHandler()">getConnectionHandler</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the client handler that acts as the connection handler.</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="../../../../org/apache/wink/client/ClientConfig.html#getConnectTimeout()">getConnectTimeout</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the connect timeout in milliseconds</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List&lt;<A HREF="../../../../org/apache/wink/client/handlers/ClientHandler.html" title="interface in org.apache.wink.client.handlers">ClientHandler</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#getHandlers()">getHandlers</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get an unmodifiable list of the client handlers</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#getProxyHost()">getProxyHost</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the proxy host</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="../../../../org/apache/wink/client/ClientConfig.html#getProxyPort()">getProxyPort</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the proxy port</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="../../../../org/apache/wink/client/ClientConfig.html#getReadTimeout()">getReadTimeout</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the read timeout in milliseconds</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#handlers(org.apache.wink.client.handlers.ClientHandler...)">handlers</A></B>(<A HREF="../../../../org/apache/wink/client/handlers/ClientHandler.html" title="interface in org.apache.wink.client.handlers">ClientHandler</A>...&nbsp;handlers)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add client handlers</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="../../../../org/apache/wink/client/ClientConfig.html#isAcceptHeaderAutoSet()">isAcceptHeaderAutoSet</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether client will automatically set an appropriate Accept
 header</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="../../../../org/apache/wink/client/ClientConfig.html#isFollowRedirects()">isFollowRedirects</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether to client will automatically follow redirects</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="../../../../org/apache/wink/client/ClientConfig.html#isLoadWinkApplications()">isLoadWinkApplications</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="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#proxyHost(java.lang.String)">proxyHost</A></B>(java.lang.String&nbsp;proxyHost)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the proxy host</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#proxyPort(int)">proxyPort</A></B>(int&nbsp;proxyPort)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the proxy port</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#readTimeout(int)">readTimeout</A></B>(int&nbsp;readTimeout)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the read timeout in milliseconds</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="../../../../org/apache/wink/client/ClientConfig.html#setLoadWinkApplications(boolean)">setLoadWinkApplications</A></B>(boolean&nbsp;loadWinkApplications)</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.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</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="ClientConfig()"><!-- --></A><H3>
ClientConfig</H3>
<PRE>
public <B>ClientConfig</B>()</PRE>
<DL>
<DD>Construct a new ClientConfig with the following default settings:
 <ul>
 <li>proxy: none</li>
 <li>connect timeout: 60 seconds</li>
 <li>read timeout: 60 seconds</li>
 <li>follow redirects: true</li>
 </ul>
<P>
</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="getProxyHost()"><!-- --></A><H3>
getProxyHost</H3>
<PRE>
public final java.lang.String <B>getProxyHost</B>()</PRE>
<DL>
<DD>Get the proxy host
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the proxy host</DL>
</DD>
</DL>
<HR>

<A NAME="proxyHost(java.lang.String)"><!-- --></A><H3>
proxyHost</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>proxyHost</B>(java.lang.String&nbsp;proxyHost)</PRE>
<DL>
<DD>Set the proxy host
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>proxyHost</CODE> - proxy host
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getProxyPort()"><!-- --></A><H3>
getProxyPort</H3>
<PRE>
public final int <B>getProxyPort</B>()</PRE>
<DL>
<DD>Get the proxy port
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the proxy port</DL>
</DD>
</DL>
<HR>

<A NAME="proxyPort(int)"><!-- --></A><H3>
proxyPort</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>proxyPort</B>(int&nbsp;proxyPort)</PRE>
<DL>
<DD>Set the proxy port
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>proxyPort</CODE> - proxy port
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getConnectTimeout()"><!-- --></A><H3>
getConnectTimeout</H3>
<PRE>
public final int <B>getConnectTimeout</B>()</PRE>
<DL>
<DD>Get the connect timeout in milliseconds
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the connect timeout in milliseconds</DL>
</DD>
</DL>
<HR>

<A NAME="connectTimeout(int)"><!-- --></A><H3>
connectTimeout</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>connectTimeout</B>(int&nbsp;connectTimeout)</PRE>
<DL>
<DD>Set the connect timeout in milliseconds
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>connectTimeout</CODE> - the connect timeout in milliseconds
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getReadTimeout()"><!-- --></A><H3>
getReadTimeout</H3>
<PRE>
public final int <B>getReadTimeout</B>()</PRE>
<DL>
<DD>Get the read timeout in milliseconds
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the read timeout in milliseconds</DL>
</DD>
</DL>
<HR>

<A NAME="readTimeout(int)"><!-- --></A><H3>
readTimeout</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>readTimeout</B>(int&nbsp;readTimeout)</PRE>
<DL>
<DD>Set the read timeout in milliseconds
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>readTimeout</CODE> - the read timeout in milliseconds
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="isFollowRedirects()"><!-- --></A><H3>
isFollowRedirects</H3>
<PRE>
public final boolean <B>isFollowRedirects</B>()</PRE>
<DL>
<DD>Returns whether to client will automatically follow redirects
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if client will automatically follow redirects; false
         otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="followRedirects(boolean)"><!-- --></A><H3>
followRedirects</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>followRedirects</B>(boolean&nbsp;followRedirects)</PRE>
<DL>
<DD>Set whether to client will automatically follow redirects
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>followRedirects</CODE> - whether to client will automatically follow
            redirects
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="isAcceptHeaderAutoSet()"><!-- --></A><H3>
isAcceptHeaderAutoSet</H3>
<PRE>
public final boolean <B>isAcceptHeaderAutoSet</B>()</PRE>
<DL>
<DD>Returns whether client will automatically set an appropriate Accept
 header
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if client will automatically set an appropriate Accept
         header; false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="acceptHeaderAutoSet(boolean)"><!-- --></A><H3>
acceptHeaderAutoSet</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>acceptHeaderAutoSet</B>(boolean&nbsp;isAcceptHeaderAutoSet)</PRE>
<DL>
<DD>Set whether client will automatically set an appropriate Accept header
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>isAcceptHeaderAutoSet</CODE> - whether client will automatically set an
            appropriate Accept header
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getHandlers()"><!-- --></A><H3>
getHandlers</H3>
<PRE>
public final java.util.List&lt;<A HREF="../../../../org/apache/wink/client/handlers/ClientHandler.html" title="interface in org.apache.wink.client.handlers">ClientHandler</A>&gt; <B>getHandlers</B>()</PRE>
<DL>
<DD>Get an unmodifiable list of the client handlers
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>an unmodifiable list of the client handlers</DL>
</DD>
</DL>
<HR>

<A NAME="handlers(org.apache.wink.client.handlers.ClientHandler...)"><!-- --></A><H3>
handlers</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>handlers</B>(<A HREF="../../../../org/apache/wink/client/handlers/ClientHandler.html" title="interface in org.apache.wink.client.handlers">ClientHandler</A>...&nbsp;handlers)</PRE>
<DL>
<DD>Add client handlers
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>handlers</CODE> - the handlers to add
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="getConnectionHandler()"><!-- --></A><H3>
getConnectionHandler</H3>
<PRE>
protected <A HREF="../../../../org/apache/wink/client/handlers/ConnectionHandler.html" title="interface in org.apache.wink.client.handlers">ConnectionHandler</A> <B>getConnectionHandler</B>()</PRE>
<DL>
<DD>Returns the client handler that acts as the connection handler. This
 handler is always the last handler on the chain and is automatically
 added to the end of the defined list of handlers.
 <p>
 This method should be overridden in order to provide an alternate
 connection handler.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the connection handler</DL>
</DD>
</DL>
<HR>

<A NAME="getApplications()"><!-- --></A><H3>
getApplications</H3>
<PRE>
public final java.util.List&lt;javax.ws.rs.core.Application&gt; <B>getApplications</B>()</PRE>
<DL>
<DD>Get an unmodifiable list of the applications
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="applications(javax.ws.rs.core.Application...)"><!-- --></A><H3>
applications</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>applications</B>(javax.ws.rs.core.Application...&nbsp;applications)</PRE>
<DL>
<DD>Add applications
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>applications</CODE> - the applications to add
<DT><B>Returns:</B><DD>this client configuration
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client">ClientConfigException</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="clone()"><!-- --></A><H3>
clone</H3>
<PRE>
protected <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>clone</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>clone</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setLoadWinkApplications(boolean)"><!-- --></A><H3>
setLoadWinkApplications</H3>
<PRE>
public void <B>setLoadWinkApplications</B>(boolean&nbsp;loadWinkApplications)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isLoadWinkApplications()"><!-- --></A><H3>
isLoadWinkApplications</H3>
<PRE>
public boolean <B>isLoadWinkApplications</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<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="class-use/ClientConfig.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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="../../../../serialized-form.html"><FONT CLASS="NavBarFont1"><B>Serialized</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="../../../../org/apache/wink/client/BaseTest.html" title="class in org.apache.wink.client"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/wink/client/ClientConfigException.html" title="class in org.apache.wink.client"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/wink/client/ClientConfig.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ClientConfig.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>
Copyright &#169; 2009 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
