/* used in ShareAddressExecutor */
  @Monitor(
      server = SHAREADDRESS_SERVER,
      parserClass = ServiceUrlParserFactory.CLASS_XML_WEBSERVICE,
      serviceUrlKeys = "ADDRESSSHARING")
  private DetectResult monitorShareAddressServer() {
    DetectResult result = new DetectResult();

    try {
      UserProfile userProfile = BackendServerMonitorUtil.createUserProfile();
      TnContext tc = BackendServerMonitorUtil.createTnContext();

      AddressSharingRequest addressSharingRequest = new AddressSharingRequest();
      addressSharingRequest.setUserId(PoiUtil.getLongFrom(userProfile.getUserId()));
      addressSharingRequest.setPtn(userProfile.getMin());
      addressSharingRequest.setContextString(tc.toContextString());
      addressSharingRequest.setAddress(BackendServerMonitorUtil.createStop());

      ContactInfo contact = new ContactInfo();
      contact.setName("test");
      contact.setPtn(userProfile.getMin());
      List<ContactInfo> contactlist = new ArrayList<ContactInfo>();
      contactlist.add(contact);
      addressSharingRequest.setContactList(contactlist);

      AddressSharingResponse addressSharingResponse =
          AddressSharingServiceProxy.getInstance().shareAddress(addressSharingRequest, tc);
      String statusCode = addressSharingResponse.getStatusCode();
      String statusMessage = addressSharingResponse.getStatusMessage();

      if ("OK".equalsIgnoreCase(statusCode)) {
        result.isSuccess = true;
      } else {
        result.isSuccess = false;
        result.msg = "statusCode = " + statusCode + ", statusMessage = " + statusMessage;
      }
    } catch (Exception ex) {
      logger.fatal("#monitorShareAddressServer", ex);
      result.isSuccess = false;
      result.msg =
          "Exception occurs when share address"
              + ". Exception msg->"
              + ExceptionUtil.collectExceptionMsg(ex);
    }

    return result;
  }