protected JSONObject getAppJSONObject(long remoteAppId) throws Exception {
    JSONObject jsonObject = JSONFactoryUtil.createJSONObject();

    App app = _appLocalService.fetchRemoteApp(remoteAppId);

    if (app != null) {
      jsonObject.put("appId", app.getRemoteAppId());
      jsonObject.put("downloaded", app.isDownloaded());
      jsonObject.put("installed", app.isInstalled());
      jsonObject.put("version", app.getVersion());
    } else {
      jsonObject.put("appId", remoteAppId);
      jsonObject.put("downloaded", false);
      jsonObject.put("installed", false);
      jsonObject.put("version", StringPool.BLANK);
    }

    return jsonObject;
  }