code: public static SolrServer inject(SolrServer server, DocumentObjectBinder binder) {
      checkNotNull(server, "Server cannot be null.");
      checkNotNull(binder, "Binder cannot be null.");
      Field binderField;
      try {
        binderField = SolrServer.class.getDeclaredField(BINDER_FIELD_NAME);
        binderField.setAccessible(true);
        binderField.set(server, binder);
      } catch (NoSuchFieldException e) {
        throw new UnsupportedOperationException(
            "Impossible to set binder. Field not present in server. New Solr version?",
            e);
      } catch (SecurityException e) {
        throw new UnsupportedOperationException(
            "Not allowed to set server's binder field.", e);
      } catch (IllegalAccessException e) {
        throw new UnsupportedOperationException(
            "Cannot access server's binder field.", e);
      }
      return server;
    }
docs: Sets the given binder to the given server's {@link SolrServer#binder}
  
  @param server
  The server to be altered. Cannot be null.
  @param binder
  The binder to be set. Cannot be null.
  @return the server.
  @throws IllegalArgumentException
  if server or binder are null.
  @throws UnsupportedOperationException
  if unable to find, access or set the field.