@Override
    protected List<UserPropertyProvider> getUserPropertyProviders()
    {
        return providers;
    }
Delegate UserPropertyProvider operations among up to three configurable provider implementation classes.

This implementation will not explicitly verify if a user exists, when operating on its properties. The methods of
this implementation will <em>not</em> throw {@link org.jivesoftware.openfire.user.UserNotFoundException}.

This class related to, but is distinct from {@link MappedUserPropertyProvider}. The Hybrid variant of the provider
iterates over providers, operating on the first applicable instance. The Mapped variant, however, maps each user to
exactly one provider.

To use this provider, use the following system property definition:

<ul>
<li>{@code provider.userproperty.className = org.jivesoftware.openfire.user.HybridUserPropertyProvider}</li>
</ul>

Next, configure up to three providers, by setting these properties:
<ol>
<li>{@code hybridUserPropertyProvider.primaryProvider.className = fully.qualified.ClassUserPropertyProvider}</li>
<li>{@code hybridUserPropertyProvider.secondaryProvider.className = fully.qualified.ClassUserPropertyProvider}</li>
<li>{@code hybridUserPropertyProvider.tertiaryProvider.className = fully.qualified.ClassUserPropertyProvider}</li>
</ol>

@author Guus der Kinderen, guus.der.kinderen@gmail.com
xmppserver/src/main/java/org/jivesoftware/openfire/user/property/HybridUserPropertyProvider.java