title: Registering a custom ValueParamProvider in Jersey 2.27
body: <p>I realize that these are internal APIs, but if they're available internally why not make them usable by the less privileged masses, and they're also extremely useful. Even though these APIs were internal in Jersey 2.25 they could be used, and I'd like to upgrade my Jersey version without breaking my custom Jersey extensions.</p>
  
  <p>It's certainly possible to extend <a href="https://github.com/jersey/jersey/blob/master/core-server/src/main/java/org/glassfish/jersey/server/spi/internal/ValueParamProvider.java" rel="noreferrer"><code>ValueParamProvider</code></a> in Jersey 2.27, but I no longer see a way to register that Provider along with it's triggering annotation. Looking at how Jersey does this for its own implementations, it now uses a <code>BoostrapConfigurator</code>, which seems to be internalized to such an extent that external implementations can't use the same methodology.</p>
  
  <p>Maybe I'm wrong about that, and if someone has a clear description of how, that would be great. Otherwise, does anyone know of a method for doing the same thing?</p>
  
  <p>This <em>used</em> to work...</p>
  
  <pre><code>ResourceConfig resourcceConfig = ...
  
  resourceConfig.register(new AbstractBinder() {
  
      @Override
      protected void configure (){ 
        bind(MyParamValueFactoryProvider.class).to(ValueFactoryProvider.class).in(Singleton.class);
        bind(MyParamInjectionResolver.class).to(new TypeLiteral&lt;InjectionResolver&lt;EntityParam&gt;&gt;() {
  
        }).in(Singleton.class);
      }
    }
  });
  </code></pre>
  
  <p>With appropriate implementations of <code>AbstractValueFactoryProvider</code> and <code>ParamInjectionResolver</code>.</p>
  
  <p>Now it looks like you need to implement <code>ValueParamProvider</code>, which is easy enough, but I'm not sure how to register that properly with the Jersey framework anymore. Any help appreciated.</p>