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 <dpav...@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; }