Package org.kie.api.builder

## Interface KieRepository

-     public interface KieRepository

  KieRepository is a singleton acting as a repository for all the available KieModules regardless if they are stored in the maven repository or programmatically built by the user

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addKieModule​(KieModule kModule)` | Adds a new KieModule to this KieRepository
    `KieModule` | `addKieModule​(Resource resource, Resource... dependencies)` | Creates a new KieModule using the provided resource and dependencies and automatically adds it to this KieRepository
    `ReleaseId` | `getDefaultReleaseId()` | Returns the default ReleaseId used to identify a KieModule in this KieRepository if the user didn't explicitly provide one
    `KieModule` | `getKieModule​(ReleaseId releaseId)` | Retrieve a KieModule with the given ReleaseId in this KieRepository.
    `KieModule` | `removeKieModule​(ReleaseId releaseId)` | Remove a no longer useful KieModule, identified by the given ReleaseId, from this KieRepository

- - ### Method Detail

    - #### getDefaultReleaseId

          ReleaseId getDefaultReleaseId()

      Returns the default ReleaseId used to identify a KieModule in this KieRepository if the user didn't explicitly provide one
      Returns:
        The default ReleaseId

    - #### addKieModule

          void addKieModule​(KieModule kModule)

      Adds a new KieModule to this KieRepository

    - #### addKieModule

          KieModule addKieModule​(Resource resource,
                                 Resource... dependencies)

      Creates a new KieModule using the provided resource and dependencies and automatically adds it to this KieRepository
      Parameters:
        `resource` -
        `dependencies` -
      Returns:
        The newly created KieModule

    - #### getKieModule

          KieModule getKieModule​(ReleaseId releaseId)

      Retrieve a KieModule with the given ReleaseId in this KieRepository. It is possible to use maven's conventions and version ranges like in

               KieModule kieModule = kieRepository.getKieModule( KieServices.Factory.get().newReleaseId("group", "artifact", "LATEST") );

      or

               KieModule kieModule = kieRepository.getKieModule( KieServices.Factory.get().newReleaseId("group", "artifact", "[1.0,1.2)") );

      Parameters:
        `releaseId` - The releaseId identifying the KieModule to be returned
      Returns:
        The KieModule identified by the given releaseId or null if such KieModule doesn't exist

    - #### removeKieModule

          KieModule removeKieModule​(ReleaseId releaseId)

      Remove a no longer useful KieModule, identified by the given ReleaseId, from this KieRepository
      Parameters:
        `releaseId` - The releaseId identifying the KieModule to be removed
      Returns:
        The removed KieModule or null if such KieModule didn't exist