<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Feature (Apache CXF JavaDoc 3.0.0 API)
</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="Feature (Apache CXF JavaDoc 3.0.0 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/Feature.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="../../../../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>
Apache CXF API</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/cxf/feature/FastInfosetFeature.html" title="class in org.apache.cxf.feature"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/cxf/feature/Features.html" title="annotation in org.apache.cxf.feature"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/cxf/feature/Feature.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Feature.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;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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.cxf.feature</FONT>
<BR>
Interface Feature</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../org/apache/cxf/feature/AbstractFeature.html" title="class in org.apache.cxf.feature">AbstractFeature</A>, <A HREF="../../../../org/apache/cxf/validation/BeanValidationFeature.html" title="class in org.apache.cxf.validation">BeanValidationFeature</A>, <A HREF="../../../../org/apache/cxf/transport/https/CertConstraintsFeature.html" title="class in org.apache.cxf.transport.https">CertConstraintsFeature</A>, <A HREF="../../../../org/apache/cxf/binding/coloc/feature/ColocFeature.html" title="class in org.apache.cxf.binding.coloc.feature">ColocFeature</A>, <A HREF="../../../../org/apache/cxf/transport/jms/ConnectionFactoryFeature.html" title="class in org.apache.cxf.transport.jms">ConnectionFactoryFeature</A>, <A HREF="../../../../org/apache/cxf/clustering/FailoverFeature.html" title="class in org.apache.cxf.clustering">FailoverFeature</A>, <A HREF="../../../../org/apache/cxf/feature/FastInfosetFeature.html" title="class in org.apache.cxf.feature">FastInfosetFeature</A>, <A HREF="../../../../org/apache/cxf/transport/common/gzip/GZIPFeature.html" title="class in org.apache.cxf.transport.common.gzip">GZIPFeature</A>, <A HREF="../../../../org/apache/cxf/javascript/JavascriptOptionsFeature.html" title="class in org.apache.cxf.javascript">JavascriptOptionsFeature</A>, <A HREF="../../../../org/apache/cxf/jaxrs/validation/JAXRSBeanValidationFeature.html" title="class in org.apache.cxf.jaxrs.validation">JAXRSBeanValidationFeature</A>, <A HREF="../../../../org/apache/cxf/transport/jms/JMSConfigFeature.html" title="class in org.apache.cxf.transport.jms">JMSConfigFeature</A>, <A HREF="../../../../org/apache/cxf/clustering/LoadDistributorFeature.html" title="class in org.apache.cxf.clustering">LoadDistributorFeature</A>, <A HREF="../../../../org/apache/cxf/feature/LoggingFeature.html" title="class in org.apache.cxf.feature">LoggingFeature</A>, <A HREF="../../../../org/apache/cxf/ws/policy/blueprint/PolicyEngineBPDefinitionParser.PolicyEngineConfig.html" title="class in org.apache.cxf.ws.policy.blueprint">PolicyEngineBPDefinitionParser.PolicyEngineConfig</A>, <A HREF="../../../../org/apache/cxf/management/interceptor/ResponseTimeFeature.html" title="class in org.apache.cxf.management.interceptor">ResponseTimeFeature</A>, <A HREF="../../../../org/apache/cxf/ws/rm/feature/RMFeature.html" title="class in org.apache.cxf.ws.rm.feature">RMFeature</A>, <A HREF="../../../../org/apache/cxf/feature/validation/SchemaValidationFeature.html" title="class in org.apache.cxf.feature.validation">SchemaValidationFeature</A>, <A HREF="../../../../org/apache/cxf/databinding/stax/StaxDataBindingFeature.html" title="class in org.apache.cxf.databinding.stax">StaxDataBindingFeature</A>, <A HREF="../../../../org/apache/cxf/feature/StaxTransformFeature.html" title="class in org.apache.cxf.feature">StaxTransformFeature</A>, <A HREF="../../../../org/apache/cxf/jaxrs/swagger/SwaggerFeature.html" title="class in org.apache.cxf.jaxrs.swagger">SwaggerFeature</A>, <A HREF="../../../../org/apache/cxf/feature/WrappedFeature.html" title="class in org.apache.cxf.feature">WrappedFeature</A>, <A HREF="../../../../org/apache/cxf/ws/addressing/WSAddressingFeature.html" title="class in org.apache.cxf.ws.addressing">WSAddressingFeature</A>, <A HREF="../../../../org/apache/cxf/ws/policy/WSPolicyFeature.html" title="class in org.apache.cxf.ws.policy">WSPolicyFeature</A>, <A HREF="../../../../org/apache/cxf/feature/transform/XSLTFeature.html" title="class in org.apache.cxf.feature.transform">XSLTFeature</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>Feature</B></DL>
</PRE>

<P>
A Feature is something that is able to customize a Server, Client, or Bus, typically
 adding capabilities. For instance, there may be a LoggingFeature which configures
 one of the above to log each of their messages.
 <p>
 By default the initialize methods all delegate to initializeProvider(InterceptorProvider). 
 If you're simply adding interceptors to a Server, Client, or Bus, this allows you to add
 them easily.
<P>

<P>
<HR>

<P>

<!-- ========== 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="../../../../org/apache/cxf/feature/Feature.html#initialize(org.apache.cxf.Bus)">initialize</A></B>(<A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</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/cxf/feature/Feature.html#initialize(org.apache.cxf.endpoint.Client, org.apache.cxf.Bus)">initialize</A></B>(<A HREF="../../../../org/apache/cxf/endpoint/Client.html" title="interface in org.apache.cxf.endpoint">Client</A>&nbsp;client,
           <A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</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/cxf/feature/Feature.html#initialize(org.apache.cxf.interceptor.InterceptorProvider, org.apache.cxf.Bus)">initialize</A></B>(<A HREF="../../../../org/apache/cxf/interceptor/InterceptorProvider.html" title="interface in org.apache.cxf.interceptor">InterceptorProvider</A>&nbsp;interceptorProvider,
           <A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</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/cxf/feature/Feature.html#initialize(org.apache.cxf.endpoint.Server, org.apache.cxf.Bus)">initialize</A></B>(<A HREF="../../../../org/apache/cxf/endpoint/Server.html" title="interface in org.apache.cxf.endpoint">Server</A>&nbsp;server,
           <A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ 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="initialize(org.apache.cxf.endpoint.Server, org.apache.cxf.Bus)"><!-- --></A><H3>
initialize</H3>
<PRE>
void <B>initialize</B>(<A HREF="../../../../org/apache/cxf/endpoint/Server.html" title="interface in org.apache.cxf.endpoint">Server</A>&nbsp;server,
                <A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="initialize(org.apache.cxf.endpoint.Client, org.apache.cxf.Bus)"><!-- --></A><H3>
initialize</H3>
<PRE>
void <B>initialize</B>(<A HREF="../../../../org/apache/cxf/endpoint/Client.html" title="interface in org.apache.cxf.endpoint">Client</A>&nbsp;client,
                <A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="initialize(org.apache.cxf.interceptor.InterceptorProvider, org.apache.cxf.Bus)"><!-- --></A><H3>
initialize</H3>
<PRE>
void <B>initialize</B>(<A HREF="../../../../org/apache/cxf/interceptor/InterceptorProvider.html" title="interface in org.apache.cxf.interceptor">InterceptorProvider</A>&nbsp;interceptorProvider,
                <A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="initialize(org.apache.cxf.Bus)"><!-- --></A><H3>
initialize</H3>
<PRE>
void <B>initialize</B>(<A HREF="../../../../org/apache/cxf/Bus.html" title="interface in org.apache.cxf">Bus</A>&nbsp;bus)</PRE>
<DL>
<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/Feature.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="../../../../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>
Apache CXF API</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/cxf/feature/FastInfosetFeature.html" title="class in org.apache.cxf.feature"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/cxf/feature/Features.html" title="annotation in org.apache.cxf.feature"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/cxf/feature/Feature.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Feature.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;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Apache CXF
</BODY>
</HTML>
