public Callable setDefaultPayload()

in agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/heartbeat/WebAppsHeartbeatProvider.java [70:145]


  public Callable<Boolean> setDefaultPayload(HeartBeatProvider provider) {
    return new Callable<Boolean>() {

      final Set<String> enabledProperties = defaultFields;

      @Override
      public Boolean call() {

        boolean hasSetValues = false;
        // update environment variable to account for
        updateEnvironmentVariableMap();
        for (String fieldName : enabledProperties) {
          try {
            switch (fieldName) {
              case WEBSITE_SITE_NAME:
                String webSiteName = getWebsiteSiteName();
                if (Strings.isNullOrEmpty(webSiteName)) {
                  break;
                }
                provider.addHeartBeatProperty(fieldName, webSiteName, true);
                hasSetValues = true;
                break;
              case WEBSITE_HOSTNAME:
                String webSiteHostName = getWebsiteHostName();
                if (Strings.isNullOrEmpty(webSiteHostName)) {
                  break;
                }
                provider.addHeartBeatProperty(fieldName, webSiteHostName, true);
                hasSetValues = true;
                break;
              case WEBSITE_HOME_STAMPNAME:
                String websiteHomeStampName = getWebsiteHomeStampName();
                if (Strings.isNullOrEmpty(websiteHomeStampName)) {
                  break;
                }
                provider.addHeartBeatProperty(fieldName, websiteHomeStampName, true);
                hasSetValues = true;
                break;
              case WEBSITE_OWNER_NAME:
                String websiteOwnerName = getWebsiteOwnerName();
                if (Strings.isNullOrEmpty(websiteOwnerName)) {
                  break;
                }
                provider.addHeartBeatProperty(fieldName, websiteOwnerName, true);
                hasSetValues = true;
                break;
              case WEBSITE_RESOURCE_GROUP:
                String websiteResourceGroup = getWebsiteResourceGroup();
                if (Strings.isNullOrEmpty(websiteResourceGroup)) {
                  break;
                }
                provider.addHeartBeatProperty(fieldName, websiteResourceGroup, true);
                hasSetValues = true;
                break;
              case WEBSITE_SLOT_NAME:
                String websiteSlotName = getWebsiteSlotName();
                if (Strings.isNullOrEmpty(websiteSlotName)) {
                  break;
                }
                provider.addHeartBeatProperty(fieldName, websiteSlotName, true);
                hasSetValues = true;
                break;
              default:
                logger.trace("Unknown web apps property encountered");
                break;
            }
          } catch (RuntimeException e) {
            if (logger.isWarnEnabled()) {
              logger.warn("Failed to obtain heartbeat property", e);
            }
          }
        }
        return hasSetValues;
      }
    };
  }