private void processJob(final RequestJob job) { final URI executionResource = this.resolver. resolveExecution( job.context().targetExecution()); if(executionResource==null) { retryJob(job); } else { completeJob(job, executionResource); } }
boolean requiresEnrichment() { return !isResolved(requiresCommit(), this.enrichment.commitResource()) || !isResolved(requiresBranch(), this.enrichment.branchResource()) || !isResolved(requiresRepository(), this.enrichment.repositoryResource()); }
public static Deployment fromConfiguration(final EnrichmentConfig enrichment) { return builder(). withBase(URI.create(Optional.fromNullable(enrichment.getBase()).or(DEFAULT_BASE.toString()))). withBrokerHost(enrichment.getBroker().getHost()). withBrokerPort(enrichment.getBroker().getPort()). build(); }
private void completeJob(final RequestJob job, final URI executionResource) { final EnrichmentContext ctx = job.context(); boolean completed=false; try { submitEnrichmentRequest(ctx,UseCase.createRequest(executionResource,ctx)); completed=true; } catch (final Exception e) { LOGGER.error("Could not process {} ({}). Full stacktrace follows",ctx.pendingEnrichment(),executionResource,e); } finally { LOGGER.trace("{} processing job {}",completed?"Completed ":"Failed ",job.description()); EnrichmentRequestor.this.metrics.jobProcessed(job,completed); } }
static ExecutionEnrichment processResult(final EnrichmentContext context, final EnrichmentResult result) { final Bindings additions = result.additions(); return new ImmutableExecutionEnrichment(). withRepositoryResource(resolveResource(additions, ci("forRepository"))). withBranchResource(resolveResource(additions, ci("forBranch"))). withCommitResource(resolveResource(additions, ci("forCommit"))); }
private static EnrichmentConfig createEnrichmentConfig(final HarvesterConfiguration config) { final BrokerConfig brokerConfig = new BrokerConfig(); brokerConfig.setHost(config.brokerHost()); brokerConfig.setPort(config.brokerPort()); final EnrichmentConfig enrichmentConfig = new EnrichmentConfig(); enrichmentConfig.setBroker(brokerConfig); enrichmentConfig.setBase(config.canonicalBase()); return enrichmentConfig; }
private void doConnect() throws IOException { LOGGER.info("Initializing Enrichment Service..."); this.requestor=new EnrichmentRequestor(this,this.connector,this.resolver); this.requestor.start(); initializePendingEnrichmentsTransactionally(); LOGGER.info("Enrichment Service initialized."); this.state=new ServiceConnected(); }
public Commit createCommit(final String commitId, final URI resource) { checkNotNull(commitId,"Commit identifier cannot be null"); checkNotNull(resource,"Commit resource cannot be null"); checkState(commits().add(commitId),"A commit identified by '%s' does already exist in branch '%s' of repository '%s'",commitId,this.id.name(),this.id.repository()); return Commit.newInstance(this,commitId,resource); }
public SourceCodeManagementService(final RepositoryRepository repositoryRepository, final BranchRepository branchRepository, final CommitRepository commitRepository) { setRepositoryRepository(repositoryRepository); setBranchRepository(branchRepository); setCommitRepository(commitRepository); }
@Override public Optional<URI> branchResource() { return this.enrichment.branchResource(); }
void triggerTermination() { LOGGER.debug("Requested Enrichment Requestor worker termination."); this.terminated=true; final RequestJob job = new RequestJob(null); LOGGER.trace("Created job {}",job.description()); queueJob(job); }
public URI repository() { return this.id.branchId().repository(); }
synchronized void jobProcessed(final RequestJob job, final boolean completed) { this.metrics[PENDING_JOBS].decrementAndGet(); this.metrics[PROCESSED_JOBS].incrementAndGet(); if(completed) { this.metrics[COMPLETED_JOBS].incrementAndGet(); } else { this.metrics[FAILED_JOBS].incrementAndGet(); } }
private void doDisconnect() throws IOException { this.requestor.stop(); LOGGER.info("Enrichment Service stopped."); this.state=new ServiceDisconnected(); }
private RequestJob(final EnrichmentContext context) { this.context=context; this.retries=0; this.id=EnrichmentRequestor.this.metrics.createJob(context); }
@Override public void run() { if(!this.cancelled) { EnrichmentRequestor.this.worker.queueJob(RequestJob.this); } }
RequestorMetrics() { this.metrics[CREATED_JOBS] =new Counter("createdJobs"); this.metrics[PENDING_JOBS] =new Counter("pendingJobs"); this.metrics[PROCESSED_JOBS]=new Counter("processedJobs"); this.metrics[FAILED_JOBS] =new Counter("failedJobs"); this.metrics[COMPLETED_JOBS]=new Counter("completedJobs"); }