public int doStartTagInternal() throws JspException {
    try {

      if (filePathUtils == null || imageUtils == null) {
        WebApplicationContext wac = getRequestContext().getWebApplicationContext();
        AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
        factory.autowireBean(this);
      }

      HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();

      MerchantStore merchantStore = (MerchantStore) request.getAttribute(Constants.ADMIN_STORE);

      StringBuilder imagePath = new StringBuilder();

      String baseUrl = filePathUtils.buildStoreUri(merchantStore, request);
      imagePath.append(baseUrl);

      pageContext.getOut().print(imagePath.toString());

    } catch (Exception ex) {
      LOGGER.error("Error while getting content url", ex);
    }
    return SKIP_BODY;
  }
  public int doStartTagInternal() throws JspException {
    try {

      if (filePathUtils == null) {
        WebApplicationContext wac = getRequestContext().getWebApplicationContext();
        AutowireCapableBeanFactory factory = wac.getAutowireCapableBeanFactory();
        factory.autowireBean(this);
      }

      HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();

      MerchantStore merchantStore = (MerchantStore) request.getAttribute(Constants.ADMIN_STORE);

      HttpSession session = request.getSession();

      StringBuilder filePath = new StringBuilder();

      // TODO domain from merchant, else from global config, else from property (localhost)

      // example -> "/files/{storeCode}/{fileName}.{extension}"

      @SuppressWarnings("unchecked")
      Map<String, String> configurations =
          (Map<String, String>) session.getAttribute(Constants.STORE_CONFIGURATION);
      String scheme = Constants.HTTP_SCHEME;
      if (configurations != null) {
        scheme = (String) configurations.get("scheme");
      }

      filePath
          .append(scheme)
          .append("://")
          .append(merchantStore.getDomainName())
          // .append("/")
          .append(request.getContextPath());

      filePath
          .append(filePathUtils.buildAdminDownloadProductFilePath(merchantStore, digitalProduct))
          .toString();

      pageContext.getOut().print(filePath.toString());

    } catch (Exception ex) {
      LOGGER.error("Error while getting content url", ex);
    }
    return SKIP_BODY;
  }