/** * This method updates the stat publishing status in gateway domain * * @param receiverUrl event receiver url * @param user username for the event receiver * @param password password for the event receiver * @param statUpdateStatus status of the stat publishing state * @throws APIManagementException if an error occurs while adding BAMServerProfile * @throws ClusteringFault if it fails to send cluster message to Gateway domain and update stats * publishing status * @throws Exception if an error occurs while updating EventingConfiguration */ public void updateStatPublishGateway( String receiverUrl, String user, String password, Boolean statUpdateStatus) throws APIManagementException, ClusteringFault, Exception { if (log.isDebugEnabled()) { log.debug("Updating stats publishing status in Gateway."); } // updating stat publishing at the receiver node, self update APIManagerAnalyticsConfiguration analyticsConfiguration = APIManagerAnalyticsConfiguration.getInstance(); analyticsConfiguration.setAnalyticsEnabled(statUpdateStatus); if (log.isDebugEnabled()) { log.debug("Updated stats publishing status in Gateway to : " + statUpdateStatus); } ServiceDataPublisherAdmin serviceDataPublisherAdmin = APIManagerComponent.getDataPublisherAdminService(); EventingConfigData eventingConfigData = null; if (serviceDataPublisherAdmin != null) { eventingConfigData = serviceDataPublisherAdmin.getEventingConfigData(); } if (eventingConfigData != null) { // config values must be updated if the stats publishing is true if (statUpdateStatus) { if (log.isDebugEnabled()) { log.debug("Updating values related to stats publishing status."); } // values related to stats publishing status are only updated if all of them are non-empty if (!(receiverUrl.isEmpty()) && !(user.isEmpty()) && !(password.isEmpty())) { analyticsConfiguration.setBamServerUrlGroups(receiverUrl); analyticsConfiguration.setBamServerUser(user); analyticsConfiguration.setBamServerPassword(password); eventingConfigData.setUrl(receiverUrl); eventingConfigData.setUserName(user); eventingConfigData.setPassword(password); if (log.isDebugEnabled()) { log.debug( "BAMServerURL : " + receiverUrl + " , BAMServerUserName : "******" , " + "BAMServerPassword : "******"Sending cluster message to Gateway domain to update stats publishing status."); } clusteringAgent.sendMessage( new StatUpdateClusterMessage(statUpdateStatus, receiverUrl, user, password), true); } }