@Override public void start() { // http://stackoverflow.com/questions/5270611/read-maven-properties-file-inside-jar-war-file logger.info("{} - {}", DESCRIPTION, MongoDBHelper.getRiverVersion()); Status status = MongoDBRiverHelper.getRiverStatus(esClient, riverName.getName()); if (status == Status.IMPORT_FAILED || status == Status.INITIAL_IMPORT_FAILED || status == Status.SCRIPT_IMPORT_FAILED || status == Status.START_FAILED) { logger.error("Cannot start. Current status is {}", status); return; } if (status == Status.STOPPED) { // Leave the current status of the river alone, but set the context status to 'stopped'. // Enabling the river via REST will trigger the actual start. context.setStatus(Status.STOPPED); logger.info("River is currently disabled and will not be started"); } else { // Mark the current status as "waiting for full start" context.setStatus(Status.START_PENDING); // Request start of the river in the next iteration of the status thread MongoDBRiverHelper.setRiverStatus(esClient, riverName.getName(), Status.RUNNING); logger.info("Startup pending"); } statusThread = EsExecutors.daemonThreadFactory(settings.globalSettings(), "mongodb_river_status:" + definition.getIndexName()).newThread( new StatusChecker(this, definition, context)); statusThread.start(); }
/** * Put running instance of jira river into registry. Used for REST management operations handling. * * @param jiraRiver to get instance for * @see #getRunningInstances() * @see #getRunningInstance(String) */ public static void addRunningInstance(IJiraRiverMgm jiraRiver) { riverInstances.put(jiraRiver.riverName().getName(), jiraRiver); }
@Override public synchronized void close() { logger.info("closing JIRA River on this node"); closed = true; if (coordinatorThread != null) { coordinatorThread.interrupt(); } // free instances created in #start() coordinatorThread = null; coordinatorInstance = null; synchronized (riverInstances) { riverInstances.remove(riverName().getName()); } }
/** * Write indexing info into activity log if enabled. * * @param indexingInfo to write */ protected void writeActivityLogRecord(ProjectIndexingInfo indexingInfo) { if (activityLogIndexName != null) { try { client.prepareIndex(activityLogIndexName, activityLogTypeName) .setSource(indexingInfo.buildDocument(jsonBuilder(), riverName().getName(), true, true)).execute() .actionGet(); } catch (Exception e) { logger.error("Error during index update result writing to the audit log {}", e.getMessage()); } } }
super(); logger = esIntegration.createLogger(getClass()); this.riverName = esIntegration.riverName().getName(); this.indexName = indexName; this.issueTypeName = issueTypeName;
.info( "Configured JIRA River '{}' for JIRA API base URL '{}', jira user '{}', JQL timezone '{}'. Search index name '{}', document type for issues '{}'.", riverName.getName(), jiraClient.getJiraAPIUrlBase(), jiraUser, jiraJqlTimezone, indexName, typeName); if (activityLogIndexName != null) { logger.info( "Activity log for JIRA River '{}' is enabled. Search index name '{}', document type for index updates '{}'.", riverName.getName(), activityLogIndexName, activityLogTypeName);
FilterBuilders.andFilter( FilterBuilders.termFilter(ProjectIndexingInfo.DOCFIELD_PROJECT_KEY, projectKey), FilterBuilders.termFilter(ProjectIndexingInfo.DOCFIELD_RIVER_NAME, riverName().getName()))) .setQuery(QueryBuilders.matchAllQuery()).addSort(ProjectIndexingInfo.DOCFIELD_START_DATE, SortOrder.DESC) .addField("_source").setSize(1).execute().actionGet();
builder.field("river_name", riverName().getName()); builder.field("info_date", currentDate); builder.startObject("indexing");
bulk.add(indexRequest(indexName).type(typeName).source(EmailToJson.toJson(message[i], riverName.getName(),config))); }else{ String[] ids=message[i].getHeader(config.getIdField()); bulk.add(indexRequest(indexName).type(typeName).id(id).source(EmailToJson.toJson(message[i], riverName.getName(),config)));