@Override
  public void postInitModule() throws ModuleInitializationException {
    // get connectionPool from ConnectionPoolManager
    ConnectionPoolManager cpm =
        (ConnectionPoolManager)
            getServer().getModule("org.fcrepo.server.storage.ConnectionPoolManager");
    if (cpm == null) {
      throw new ModuleInitializationException(
          "ConnectionPoolManager module was required, but apparently has " + "not been loaded.",
          getRole());
    }
    try {
      this.connectionPool = cpm.getPool();
    } catch (ConnectionPoolNotFoundException e1) {
      throw new ModuleInitializationException(
          "Could not find requested " + "connectionPool.", getRole());
    }

    try {
      irodsFileSystem = IRODSFileSystem.instance();
      JargonProperties origProps = irodsFileSystem.getIrodsSession().getJargonProperties();
      SettableJargonProperties overrideJargonProperties = new SettableJargonProperties(origProps);
      overrideJargonProperties.setIrodsSocketTimeout(irodsSocketTimeout); // was 300
      overrideJargonProperties.setIrodsParallelSocketTimeout(irodsSocketTimeout); // was 300
      irodsFileSystem.getIrodsSession().setJargonProperties(overrideJargonProperties);
    } catch (JargonException e) {
      throw new ModuleInitializationException(
          "Could not create IRODSFileSystem: " + e.getLocalizedMessage(), getRole());
    }
    objectStore = makeStore(objectStoreBase, OBJECT_REGISTRY_TABLE);
    datastreamStore = makeStore(datastreamStoreBase, DATASTREAM_REGISTRY_TABLE);
  }