You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/11/21 21:17:49 UTC
[ignite-teamcity-bot] branch master updated: Master trends
refactoring: dependency injection
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/master by this push:
new ef1f169 Master trends refactoring: dependency injection
ef1f169 is described below
commit ef1f16957367d4afffa5688b5e0fd7f290f1a2a5
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Thu Nov 22 00:17:46 2018 +0300
Master trends refactoring: dependency injection
---
.../ci/teamcity/ignited/TeamcityIgnitedImpl.java | 8 ++-
.../ignite/ci/web/model/hist/BuildsHistory.java | 82 +++++++++++-----------
.../ci/web/rest/build/GetBuildTestFailures.java | 7 +-
3 files changed, 51 insertions(+), 46 deletions(-)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
index 3693114..cfb21e1 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
@@ -23,6 +23,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.ignite.ci.ITeamcity;
import org.apache.ignite.ci.di.AutoProfiling;
import org.apache.ignite.ci.di.MonitoredTask;
+import org.apache.ignite.ci.di.cache.GuavaCached;
import org.apache.ignite.ci.di.scheduler.IScheduler;
import org.apache.ignite.ci.teamcity.ignited.buildcondition.BuildCondition;
import org.apache.ignite.ci.teamcity.ignited.buildcondition.BuildConditionDao;
@@ -230,8 +231,8 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
int minDiffId = since ? low : high;
long temp;
- FatBuildCompacted highBuild = getFatBuild(buildRefs.get(high).id());
- FatBuildCompacted lowBuild = getFatBuild(buildRefs.get(low).id());
+ FatBuildCompacted highBuild = getFatBuild(buildRefs.get(high).id(), SyncMode.LOAD_NEW);
+ FatBuildCompacted lowBuild = getFatBuild(buildRefs.get(low).id(), SyncMode.LOAD_NEW);
if (highBuild != null && !highBuild.isFakeStub()){
if (highBuild.getStartDate().before(key))
@@ -245,7 +246,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
while (low <= high) {
int mid = (low + high) >>> 1;
- FatBuildCompacted midVal = getFatBuild(buildRefs.get(mid).id());
+ FatBuildCompacted midVal = getFatBuild(buildRefs.get(mid).id(), SyncMode.LOAD_NEW);
if (midVal != null && !midVal.isFakeStub()) {
if (midVal.getStartDate().after(key))
@@ -339,6 +340,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
}
/** {@inheritDoc} */
+ @GuavaCached(maximumSize = 200, expireAfterAccessSecs = 30, softValues = true)
@Override public FatBuildCompacted getFatBuild(int buildId, SyncMode mode) {
FatBuildCompacted existingBuild = getFatBuildFromIgnite(buildId);
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/BuildsHistory.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/BuildsHistory.java
index 17abef0..0ba1e47 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/BuildsHistory.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/hist/BuildsHistory.java
@@ -19,19 +19,8 @@ package org.apache.ignite.ci.web.model.hist;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import java.io.UncheckedIOException;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-import java.util.function.Consumer;
-import java.util.stream.Collectors;
-import javax.servlet.ServletContext;
-import org.apache.ignite.ci.ITcHelper;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
import org.apache.ignite.ci.ITeamcity;
import org.apache.ignite.ci.tcbot.chain.BuildChainProcessor;
import org.apache.ignite.ci.tcmodel.result.Build;
@@ -41,13 +30,24 @@ import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
+import org.apache.ignite.ci.teamcity.restcached.ITcServerProvider;
import org.apache.ignite.ci.user.ICredentialsProv;
-import org.apache.ignite.ci.web.CtxListener;
import org.apache.ignite.ci.web.model.current.BuildStatisticsSummary;
import org.apache.ignite.ci.web.rest.parms.FullQueryParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.UncheckedIOException;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.stream.Collectors;
+
import static com.google.common.base.Strings.isNullOrEmpty;
/**
@@ -87,16 +87,15 @@ public class BuildsHistory {
/** */
private static final Logger logger = LoggerFactory.getLogger(BuildsHistory.class);
- /** */
- public void initialize(ICredentialsProv prov, ServletContext ctx) {
- final IStringCompactor compactor = CtxListener.getInjector(ctx).getInstance(IStringCompactor.class);
+ @Inject private ITeamcityIgnitedProvider tcIgnitedProv;
- ITcHelper tcHelper = CtxListener.getTcHelper(ctx);
+ @Inject private ITcServerProvider tcServerProvider;
- ITeamcity teamcity = tcHelper.server(srvId, prov);
+ @Inject private IStringCompactor compactor;
- ITeamcityIgnitedProvider tcIgnitedProv = CtxListener.getInjector(ctx)
- .getInstance(ITeamcityIgnitedProvider.class);
+ /** */
+ public void initialize(ICredentialsProv prov) {
+ ITeamcity teamcity = tcServerProvider.server(srvId, prov);
ITeamcityIgnited ignitedTeamcity = tcIgnitedProv.server(srvId, prov);
@@ -144,24 +143,22 @@ public class BuildsHistory {
buildStaticsFutures.add(buildFut);
}
- buildStaticsFutures.forEach(new Consumer <Future<BuildStatisticsSummary>>() {
- @Override public void accept(Future<BuildStatisticsSummary> v) {
- try {
- BuildStatisticsSummary buildsStatistic = v.get();
+ buildStaticsFutures.forEach(fut -> {
+ try {
+ BuildStatisticsSummary buildsStatistic = fut.get();
- if (buildsStatistic != null && !buildsStatistic.isFakeStub)
- buildsStatistics.add(buildsStatistic);
- }
- catch (ExecutionException e) {
- if (e.getCause() instanceof UncheckedIOException)
- logger.error(Arrays.toString(e.getStackTrace()));
+ if (buildsStatistic != null && !buildsStatistic.isFakeStub)
+ buildsStatistics.add(buildsStatistic);
+ }
+ catch (ExecutionException e) {
+ if (e.getCause() instanceof UncheckedIOException)
+ logger.error(Arrays.toString(e.getStackTrace()));
- else
- throw new RuntimeException(e);
- }
- catch (InterruptedException e) {
+ else
throw new RuntimeException(e);
- }
+ }
+ catch (InterruptedException e) {
+ throw new RuntimeException(e);
}
});
}
@@ -248,8 +245,7 @@ public class BuildsHistory {
});
}
- /** */
- public BuildsHistory(Builder builder) {
+ private BuildsHistory withParameters(Builder builder) {
this.skipTests = builder.skipTests;
this.srvId = builder.srvId;
this.buildTypeId = builder.buildTypeId;
@@ -257,6 +253,7 @@ public class BuildsHistory {
this.sinceDateFilter = builder.sinceDate;
this.untilDateFilter = builder.untilDate;
this.projectId = builder.projectId;
+ return this;
}
/** */
@@ -341,9 +338,12 @@ public class BuildsHistory {
}
- /** */
- public BuildsHistory build() {
- return new BuildsHistory(this);
+ /**
+ * @param injector */
+ public BuildsHistory build(Injector injector) {
+ final BuildsHistory instance = injector.getInstance(BuildsHistory.class);
+
+ return instance.withParameters(this);
}
}
}
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
index bda0ddc..7e7b97c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/build/GetBuildTestFailures.java
@@ -247,6 +247,9 @@ public class GetBuildTestFailures {
@Nullable @QueryParam("sinceDate") String sinceDate,
@Nullable @QueryParam("untilDate") String untilDate,
@Nullable @QueryParam("skipTests") String skipTests) throws ParseException {
+
+ final Injector injector = CtxListener.getInjector(ctx);
+
BuildsHistory.Builder builder = new BuildsHistory.Builder()
.branch(branch)
.server(srvId)
@@ -257,14 +260,14 @@ public class GetBuildTestFailures {
if (Boolean.valueOf(skipTests))
builder.skipTests();
- BuildsHistory buildsHist = builder.build();
+ BuildsHistory buildsHist = builder.build(injector);
final ICredentialsProv prov = ICredentialsProv.get(req);
if (!prov.hasAccess(srvId))
throw ServiceUnauthorizedException.noCreds(srvId);
- buildsHist.initialize(prov, ctx);
+ buildsHist.initialize(prov);
return buildsHist;
}