<!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 Fri Jun 25 14:13:15 CDT 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ClientConfig (Apache Wink 1.1.1-incubating API)
</TITLE>

<META NAME="date" CONTENT="2010-06-25">

<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.1.1-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/ClientAuthenticationException.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, org.apache.wink.common.internal.WinkConfiguration</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, org.apache.wink.common.internal.WinkConfiguration</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;Convenience method to set the wink.client.connectTimeout property</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;Convenience method to get the int value of the wink.client.connectTimeout property</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.util.Properties</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#getProperties()">getProperties</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience method for getting all properties registered on this instance.</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;Convenience method to get the int value of the wink.client.readTimeout property</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;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/wink/client/ClientConfig.html#isSupportDTDExpansion()">isSupportDTDExpansion</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience method to get the boolean value of the wink.supportDTDExpansion property</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;Convenience method to set the wink.client.readTimeout property</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>
<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#setProperties(java.util.Properties)">setProperties</A></B>(java.util.Properties&nbsp;properties)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience method to set the client configuration properties.</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#supportDTDExpansion(boolean)">supportDTDExpansion</A></B>(boolean&nbsp;supportDTDExpansion)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience method to set the wink.supportDTDExpansion property</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>Convenience method to get the int value of the wink.client.connectTimeout property
<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>Convenience method to set the wink.client.connectTimeout property
<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>Convenience method to get the int value of the wink.client.readTimeout property
<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>Convenience method to set the wink.client.readTimeout property
<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="isSupportDTDExpansion()"><!-- --></A><H3>
isSupportDTDExpansion</H3>
<PRE>
public final boolean <B>isSupportDTDExpansion</B>()</PRE>
<DL>
<DD>Convenience method to get the boolean value of the wink.supportDTDExpansion property
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>boolean</DL>
</DD>
</DL>
<HR>

<A NAME="supportDTDExpansion(boolean)"><!-- --></A><H3>
supportDTDExpansion</H3>
<PRE>
public final <A HREF="../../../../org/apache/wink/client/ClientConfig.html" title="class in org.apache.wink.client">ClientConfig</A> <B>supportDTDExpansion</B>(boolean&nbsp;supportDTDExpansion)</PRE>
<DL>
<DD>Convenience method to set the wink.supportDTDExpansion property
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>supportDTDExpansion</CODE> - boolean
<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>
<HR>

<A NAME="getProperties()"><!-- --></A><H3>
getProperties</H3>
<PRE>
public java.util.Properties <B>getProperties</B>()</PRE>
<DL>
<DD>Convenience method for getting all properties registered on this instance.  System properties may be changed between creation of
 new instances.
 
 The following properties are meaningful to a ClientConfig instance:
 wink.client.connectTimeout - value is in milliseconds, default is 60000
 wink.client.readTimeout - value is in milliseconds, default is 60000
 wink.supportDTDExpansion - value is "true" or "false" to allow DOCTYPE entity expansion when built-in providers parse XML, default is "false"
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>getProperties</CODE> in interface <CODE>org.apache.wink.common.internal.WinkConfiguration</CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>properties on this ClientConfig instance</DL>
</DD>
</DL>
<HR>

<A NAME="setProperties(java.util.Properties)"><!-- --></A><H3>
setProperties</H3>
<PRE>
public void <B>setProperties</B>(java.util.Properties&nbsp;properties)</PRE>
<DL>
<DD>Convenience method to set the client configuration properties.
 
 The following properties are meaningful to a ClientConfig instance:
 wink.client.connectTimeout - value is in milliseconds, default is 60000
 wink.client.readTimeout - value is in milliseconds, default is 60000
 wink.supportDTDExpansion - value is "true" or "false" to allow DOCTYPE entity expansion when built-in providers parse XML, default is "false"
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>setProperties</CODE> in interface <CODE>org.apache.wink.common.internal.WinkConfiguration</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>properties</CODE> - the properties object to use.  If properties parameter is null, the properties on this ClientConfig will be cleared with Properties.clear()</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/ClientAuthenticationException.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-2010 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
