Class BackofficeModulesManager

java.lang.Object
com.hybris.backoffice.BackofficeModulesManager

public class BackofficeModulesManager extends Object
A tooling class capable of finding and reading module's libraries and holding information about them.
  • Field Details

  • Constructor Details

    • BackofficeModulesManager

      public BackofficeModulesManager(com.hybris.cockpitng.core.modules.LibraryFetcher libraryFetcher, com.hybris.cockpitng.modules.ModulesEnumeration modules)
  • Method Details

    • refreshAndFetch

      public void refreshAndFetch() throws com.hybris.cockpitng.core.CockpitApplicationException
      Reloads all informations about registered backoffice modules.

      All currently loaded modules are detached, newly initialized, modules libraries are being recreated and modules reattached.

      Throws:
      com.hybris.cockpitng.core.CockpitApplicationException - throws if modules could not be reattached or libraries could not be recreated
    • isModuleRegistered

      public boolean isModuleRegistered(String moduleName)
      Checks if specified module is registered.
      Parameters:
      moduleName - name of module
      Returns:
      true if module with specified name is already registered
    • getModules

      public List<String> getModules()
      Provides a list of attached backoffice modules. Returned list contains both fetched modules and manually registered.
      Returns:
      list of modules names
      See Also:
    • getModuleName

      public Optional<String> getModuleName(URI moduleURI)
      Provides a name of module that origines from provided URI
      Parameters:
      moduleURI - module origin
      Returns:
      name of module originated from specified URI
    • getModuleLib

      public Optional<File> getModuleLib(String moduleName)
      Gets specified module's library.
      Parameters:
      moduleName - name of module
      Returns:
      library of a module
    • getModuleSource

      public Optional<URI> getModuleSource(String moduleName)
      Gets the origin URI of specified module
      Parameters:
      moduleName - name of module
      Returns:
      origin URI of module
    • getModuleSource

      public Optional<URI> getModuleSource(File moduleLib)
      Gets the origin URI of module that is stored in specified library
      Parameters:
      moduleLib - module's library
      Returns:
      origin URI of module
    • getModuleInfo

      public Optional<com.hybris.cockpitng.core.modules.ModuleInfo> getModuleInfo(String moduleName)
      Gets information about a specified module.

      Please bear in mind that manager cannot provide module information about manually registerd modules. In this case Optional.empty() is returned.

      Parameters:
      moduleName - name of module
      Returns:
      information about module
      See Also:
    • getModuleInfo

      public Optional<com.hybris.cockpitng.core.modules.ModuleInfo> getModuleInfo(File moduleLibFile)
      Gets information about a specified module that is stored in specified library
      Parameters:
      moduleLibFile - module's library
      Returns:
      information about module
    • getModuleName

      public Optional<String> getModuleName(File moduleLibFile)
      Gets name of module that is stored in specified library
      Parameters:
      moduleLibFile - module's library
      Returns:
      module name
    • getDataRootDir

      public File getDataRootDir()
      Gets a root directory for data files
      Returns:
      data root directory
    • getModuleJarsRootDir

      public File getModuleJarsRootDir()
      Gets a root directory, where module's libraries are kept.
      Returns:
      module's libraries directory
    • registerNewModuleJar

      public File registerNewModuleJar(String moduleName) throws IOException, com.hybris.cockpitng.core.CockpitApplicationException
      Creates and attaches new module library
      Parameters:
      moduleName - name of module
      Returns:
      module's library
      Throws:
      IOException - thrown is a library could not be created (i.e. file already exists)
      com.hybris.cockpitng.core.CockpitApplicationException - thrown if a library for this module is already attached
    • registerNewModuleJarImmediately

      protected void registerNewModuleJarImmediately(String moduleName, File moduleLibFile, URI source, Properties moduleLibsURLs) throws com.hybris.cockpitng.core.CockpitApplicationException
      Throws:
      com.hybris.cockpitng.core.CockpitApplicationException
    • unregisterModuleJar

      public void unregisterModuleJar(String moduleName) throws IOException, com.hybris.cockpitng.core.CockpitApplicationException
      Detaches previously attached module
      Parameters:
      moduleName - module name
      Throws:
      IOException - thrown if library could not be deleted
      com.hybris.cockpitng.core.CockpitApplicationException - thrown if module cannot be detached (i.e. is a built in module)
    • unregisterModuleJar

      protected void unregisterModuleJar(String moduleName, File moduleLibFile) throws IOException, com.hybris.cockpitng.core.CockpitApplicationException
      Throws:
      IOException
      com.hybris.cockpitng.core.CockpitApplicationException
    • removeModuleJarImmediately

      protected void removeModuleJarImmediately(String moduleName, File moduleLibFile, Properties moduleLibsURLs) throws IOException
      Throws:
      IOException
    • qualifiesForUnregistering

      protected boolean qualifiesForUnregistering(File moduleLibFile, Properties moduleLibsURLs)
    • qualifiesForRemoval

      protected boolean qualifiesForRemoval(File moduleLibFile, Properties moduleLibsURLs)
    • getModulePath

      protected <R> Optional<R> getModulePath(String moduleName, Properties moduleLibsURLS, Function<String,R> pathConverter)
    • getModulePath

      protected <R> Optional<R> getModulePath(File moduleLib, Properties moduleLibsURLS, Function<String,R> pathConverter)
    • getLibraryFetcher

      protected com.hybris.cockpitng.core.modules.LibraryFetcher getLibraryFetcher()
    • getModulesEnumeration

      protected com.hybris.cockpitng.modules.ModulesEnumeration getModulesEnumeration()
    • getDirProcessors

      protected Function<String,String>[] getDirProcessors()
    • getRootDir

      protected File getRootDir(String configuredRootDir, Function<String,String>... processors)
    • processDir

      @Deprecated(since="2105", forRemoval=true) protected String processDir(String dir, Function<String,String>... processors)
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 2105, not used any more
      Replace variables in target dir string.
      Parameters:
      dir -
      processors -
    • loadModuleLibsURLS

      protected Properties loadModuleLibsURLS(File libRoot)
      Loads information about libraries mapping: library -> module URL
      Parameters:
      libRoot - root directory for local modules libraries
      Returns:
      map <library path ; module URL>
    • registerExistingModules

      protected void registerExistingModules(Properties libsURLs)
    • isModuleFetched

      protected boolean isModuleFetched(File moduleLibFile)
    • assureCorrectExistingModulesStructure

      @Deprecated(since="1808", forRemoval=true) protected void assureCorrectExistingModulesStructure()
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 1808, introduce only to ease upgrade process - remove all occurrences when removed
    • fetchModules

      protected void fetchModules(File libdir, Properties libsURLs)
    • getModuleLibFileName

      protected String getModuleLibFileName(String moduleName)
    • storeModuleLibsURLS

      protected void storeModuleLibsURLS(Properties props, File libRoot)
    • registerNewModuleImmediately

      protected void registerNewModuleImmediately(com.hybris.cockpitng.core.modules.ModuleInfo moduleInfo, URI source)
    • getManuallyRegisteredModuleUrl

      protected URI getManuallyRegisteredModuleUrl(String moduleName)