All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xellitix.commons.api.ApiModule Maven / Gradle / Ivy

package com.xellitix.commons.api;

import com.google.inject.AbstractModule;
import com.google.inject.assistedinject.FactoryModuleBuilder;
import com.xellitix.commons.net.compat.java.JavaNetCompatibilityModule;

/**
 * API Guice module.
 *
 * @author Grayson Kuhns
 */
public class ApiModule extends AbstractModule {

  /**
   * Configures the module.
   */
  @Override
  protected void configure() {
    install(new JavaNetCompatibilityModule());

    bind(ResourcePathExtractor.class).to(DefaultResourcePathExtractor.class);

    install(new FactoryModuleBuilder()
      .implement(ResourceReference.class, DefaultResourceReference.class)
      .build(ResourceReferenceFactory.class));

    bind(JaxRsResourceReferenceBuilder.class).to(DefaultJaxRsResourceReferenceBuilder.class);

    // Model - resource resolution
    bind(ResourceModelMapper.class).to(ClassGraphResourceModelMapper.class);
    bind(ModelResourcePathResolver.class).to(DefaultModelResourcePathResolver.class);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy