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;
     }