/**
   * initialize
   *
   * @throws Exception
   */
  public void init() throws Exception {
    Validate.notNull(ownerName, "ownerName must not be null.");
    Validate.notNull(viewerName, "viewerName must not be null.");
    //
    synchronized (locker) {
      removeChild(UIActivitiesLoader.class);
      activitiesLoader = addChild(UIActivitiesLoader.class, null, "UIActivitiesLoader");
    }
    //
    String activityId = Utils.getActivityID();
    if (activityId != null && activityId.length() > 0) {
      activitiesLoader.setPostContext(PostContext.SINGLE);
    } else {
      activitiesLoader.setPostContext(PostContext.USER);
    }

    // Check if current display page is My Activity Stream
    String currentUserName = URLUtils.getCurrentUser();
    if (currentUserName != null) {
      selectedDisplayMode = DisplayMode.OWNER_STATUS;
    }

    activitiesLoader.setLoadingCapacity(ACTIVITY_PER_PAGE);
    activitiesLoader.setOwnerName(ownerName);
    activitiesLoader.setSelectedDisplayMode(selectedDisplayMode.toString());

    //
    //    UIActivitiesContainer activitiesContainer =
    // activitiesLoader.getChild(UIActivitiesContainer.class);

    //
    Identity ownerIdentity =
        Utils.getIdentityManager()
            .getOrCreateIdentity(OrganizationIdentityProvider.NAME, ownerName, false);

    ActivityManager activityManager = Utils.getActivityManager();
    ListAccess<ExoSocialActivity> activitiesListAccess = null;

    switch (this.selectedDisplayMode) {
      case MY_ACTIVITIES:
        activitiesListAccess = activityManager.getActivitiesWithListAccess(ownerIdentity);
        activitiesLoader.setActivityListAccess(activitiesListAccess);
        break;
      case OWNER_STATUS:
        if (isActivityStreamOwner == false) {
          Identity viewerIdentity =
              Utils.getIdentityManager()
                  .getOrCreateIdentity(OrganizationIdentityProvider.NAME, viewerName, false);
          activitiesListAccess =
              activityManager.getActivitiesWithListAccess(ownerIdentity, viewerIdentity);
          activitiesLoader.setActivityListAccess(activitiesListAccess);
        } else {
          activitiesListAccess = activityManager.getActivitiesWithListAccess(ownerIdentity);
          activitiesLoader.setActivityListAccess(activitiesListAccess);
        }

        break;
      case CONNECTIONS:
        activitiesListAccess =
            activityManager.getActivitiesOfConnectionsWithListAccess(ownerIdentity);
        activitiesLoader.setActivityListAccess(activitiesListAccess);
        break;
      case MY_SPACE:
        activitiesListAccess =
            activityManager.getActivitiesOfUserSpacesWithListAccess(ownerIdentity);
        activitiesLoader.setActivityListAccess(activitiesListAccess);
        break;
      default:
        activitiesListAccess = activityManager.getActivityFeedWithListAccess(ownerIdentity);
        activitiesLoader.setActivityListAccess(activitiesListAccess);
        break;
    }

    //
    String lastVisitedModeCookieKey =
        String.format(Utils.ACTIVITY_STREAM_TAB_SELECTED_COOKIED, Utils.getViewerRemoteId());
    String lastVisitedMode = Utils.getCookies(lastVisitedModeCookieKey);

    this.notChangedMode =
        lastVisitedMode == null
            ? true
            : this.selectedDisplayMode.toString().equals(lastVisitedMode.trim());

    // setNumberOfUpdatedActivities(getActivigetActivitiesUpdatedNumtiesUpdatedNum(notChangedMode));
    setNumberOfUpdatedActivities(0);

    //
    activitiesLoader.init();
  }