Class DefaultRuleEngineContainerRegistry

java.lang.Object
de.hybris.platform.ruleengine.init.impl.DefaultRuleEngineContainerRegistry
All Implemented Interfaces:
RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>

public class DefaultRuleEngineContainerRegistry extends Object implements RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
Default implementation of RuleEngineContainerRegistry interface, based on Drools
  • Constructor Details

    • DefaultRuleEngineContainerRegistry

      public DefaultRuleEngineContainerRegistry()
  • Method Details

    • setActiveContainer

      public void setActiveContainer(org.kie.api.builder.ReleaseId releaseId, org.kie.api.runtime.KieContainer rulesContainer)
      Adds another active container, identified by release, to a repository. Note: Depending on the flag set via setKeepOnlyOneContainerVersion(boolean) (OOTB this is set via the property ruleengine.containerregistry.keep.only.one.module.version) this call will also remove all other KieContainer instances of the same groupId and artifactId (essentially all previously deployed versions of the same rule module).
      Specified by:
      setActiveContainer in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
      Parameters:
      releaseId - knowledge base container module release identifier
      rulesContainer - knowledge base container instance
    • getActiveContainer

      public org.kie.api.runtime.KieContainer getActiveContainer(org.kie.api.builder.ReleaseId releaseId)
      Description copied from interface: RuleEngineContainerRegistry
      Retrieve knowledge base container reference, identified by release id
      Specified by:
      getActiveContainer in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
      Parameters:
      releaseId - knowledge base container module release identifier
      Returns:
      knowledge base container instance
    • lookupForDeployedRelease

      public Optional<org.kie.api.builder.ReleaseId> lookupForDeployedRelease(String... releaseTokens)
      Description copied from interface: RuleEngineContainerRegistry
      Lookup for a deployed knowledge base container release id by partial release id tokens (e.g. group id and artifact id)
      Specified by:
      lookupForDeployedRelease in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
      Parameters:
      releaseTokens - knowledge base container module release identifier
      Returns:
      optional of container release id
    • removeActiveContainer

      public org.kie.api.runtime.KieContainer removeActiveContainer(org.kie.api.builder.ReleaseId releaseHolder)
      Description copied from interface: RuleEngineContainerRegistry
      Remove knowledge base container identified by release id
      Specified by:
      removeActiveContainer in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
      Parameters:
      releaseHolder - knowledge base container module release identifier
      Returns:
      removed knowledge base container instance, null if not found
    • lockReadingRegistry

      public void lockReadingRegistry()
      Description copied from interface: RuleEngineContainerRegistry
      lock registry for reading operations
      Specified by:
      lockReadingRegistry in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
    • unlockReadingRegistry

      public void unlockReadingRegistry()
      Description copied from interface: RuleEngineContainerRegistry
      unlock registry for reading operations
      Specified by:
      unlockReadingRegistry in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
    • lockWritingRegistry

      public void lockWritingRegistry()
      Description copied from interface: RuleEngineContainerRegistry
      lock registry for writing operations
      Specified by:
      lockWritingRegistry in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
    • unlockWritingRegistry

      public void unlockWritingRegistry()
      Description copied from interface: RuleEngineContainerRegistry
      unlock registry for writing operations
      Specified by:
      unlockWritingRegistry in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
    • isLockedForReading

      public boolean isLockedForReading()
      Description copied from interface: RuleEngineContainerRegistry
      Check if the registry is locked for reading
      Specified by:
      isLockedForReading in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
      Returns:
      true if the registry is in the state locked for reading
    • isLockedForWriting

      public boolean isLockedForWriting()
      Description copied from interface: RuleEngineContainerRegistry
      Check if the registry is locked for writing
      Specified by:
      isLockedForWriting in interface RuleEngineContainerRegistry<org.kie.api.builder.ReleaseId,org.kie.api.runtime.KieContainer>
      Returns:
      true if the registry is in the state locked for writing
    • setup

      @PostConstruct public void setup()
    • getConcurrentMapFactory

      protected ConcurrentMapFactory getConcurrentMapFactory()
    • setConcurrentMapFactory

      public void setConcurrentMapFactory(ConcurrentMapFactory concurrentMapFactory)
    • getReadWriteLock

      protected ReadWriteLock getReadWriteLock()
    • getReadLock

      protected Lock getReadLock()
    • getWriteLock

      protected Lock getWriteLock()
    • isKeepOnlyOneContainerVersion

      protected boolean isKeepOnlyOneContainerVersion()
    • setKeepOnlyOneContainerVersion

      public void setKeepOnlyOneContainerVersion(boolean keepOnlyOneContainerVersion)
    • removeAllPreviousVersions

      protected void removeAllPreviousVersions(org.kie.api.builder.ReleaseId newReleaseId)
    • isPreviousReleaseId

      protected boolean isPreviousReleaseId(org.kie.api.builder.ReleaseId newReleaseId, org.kie.api.builder.ReleaseId oldReleaseId)
    • isReadLockEnabled

      protected boolean isReadLockEnabled()
    • setReadLockEnabled

      public void setReadLockEnabled(boolean readLockEnabled)