code: @Value("${org.apereo.portal.portlets.favorites.MarketplaceFunctionalName:null}")
      public void setMarketplaceFName(String marketplaceFunctionalName) {
  
          // interpret null, non-text-having, or literal "null" as
          // signaling lack of Marketplace functional name.
          if (!StringUtils.hasText(marketplaceFunctionalName)
                  || "null".equalsIgnoreCase(marketplaceFunctionalName)) {
              marketplaceFunctionalName = null;
          }
  
          this.marketplaceFName = marketplaceFunctionalName;
      }
docs: Configures FavoritesController to include a Marketplace portlet functional name in the Model,
  which ultimately signals and enables the View to include convenient link to Marketplace for
  user to add new favorites.
  
  <p>When set to null, signals Favorites portlet to suppress links to Marketplace. Setting to
  the empty String or to the literal value "null" (ignoring case) is equivalent to setting to
  null.
  
  <p>This is for convenience in expressing no-marketplace-fname-available via injected value
  from properties file. Defaults to the value of the property
  "org.apereo.portal.portlets.favorites.MarketplaceFunctionalName", or null if that property is
  not set.
  
  <p>The functional name can technically be the fname of any portlet. It doesn't have to be The
  Marketplace Portlet. Perhaps you've got your own take on Marketplace.
  
  <p>This allows Favorites to support integration with Marketplace without requiring a
  Marketplace, gracefully degrading when no Marketplace available.
  
  @param marketplaceFunctionalName String fname of a marketplace portlet, or null.