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 2019/08/16 17:39:35 UTC

[ignite-teamcity-bot] branch master updated: Board: optimizing process of issues handling, avoid odd updates

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 c2e89ae  Board: optimizing process of issues handling, avoid odd updates
c2e89ae is described below

commit c2e89aed06197d1fb556c38ba9e105305020c672
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Aug 16 20:39:31 2019 +0300

    Board: optimizing process of issues handling, avoid odd updates
---
 .../ignite/tcbot/engine/defect/BlameCandidate.java | 19 +++++++++++++++
 .../tcbot/engine/defect/DefectCompacted.java       | 27 ++++++++++++++++++++++
 .../tcbot/engine/defect/DefectFirstBuild.java      | 17 ++++++++++++++
 .../ignite/tcbot/engine/defect/DefectKey.java      | 27 ----------------------
 .../ignite/tcbot/engine/defect/DefectsStorage.java |  6 +++--
 5 files changed, 67 insertions(+), 29 deletions(-)

diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/BlameCandidate.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/BlameCandidate.java
index 7a12a77..a8ce81c 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/BlameCandidate.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/BlameCandidate.java
@@ -16,6 +16,7 @@
  */
 package org.apache.ignite.tcbot.engine.defect;
 
+import java.util.Objects;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
 import org.apache.ignite.tcbot.persistence.IVersionedEntity;
 import org.apache.ignite.tcbot.persistence.Persisted;
@@ -68,4 +69,22 @@ public class BlameCandidate  implements IVersionedEntity {
     public void fullDisplayName(int fullDisplayName) {
         this.fullDisplayName = fullDisplayName;
     }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+        BlameCandidate candidate = (BlameCandidate)o;
+        return _ver == candidate._ver &&
+            vcsUsername == candidate.vcsUsername &&
+            tcHelperUsername == candidate.tcHelperUsername &&
+            fullDisplayName == candidate.fullDisplayName;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return Objects.hash(_ver, vcsUsername, tcHelperUsername, fullDisplayName);
+    }
 }
diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectCompacted.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectCompacted.java
index d5e26e1..a397949 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectCompacted.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectCompacted.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import org.apache.ignite.ci.teamcity.ignited.change.ChangeCompacted;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
@@ -175,4 +176,30 @@ public class DefectCompacted {
     public void removeOldVerBlameCandidates() {
         blameCandidates.removeIf(IVersionedEntity::isOutdatedEntityVersion);
     }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+        DefectCompacted compacted = (DefectCompacted)o;
+        return id == compacted.id &&
+            tcBranch == compacted.tcBranch &&
+            tcSrvId == compacted.tcSrvId &&
+            tcSrvCodeCid == compacted.tcSrvCodeCid &&
+            trackedBranchCid == compacted.trackedBranchCid &&
+            resolvedByUsernameId == compacted.resolvedByUsernameId &&
+            resolvedTs == compacted.resolvedTs &&
+            Objects.equals(commits, compacted.commits) &&
+            Objects.equals(blameCandidates, compacted.blameCandidates) &&
+            Objects.equals(buildsInvolved, compacted.buildsInvolved) &&
+            Objects.equals(changes, compacted.changes);
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return Objects.hash(id, tcBranch, tcSrvId, tcSrvCodeCid, trackedBranchCid, resolvedByUsernameId, resolvedTs,
+            commits, blameCandidates, buildsInvolved, changes);
+    }
 }
diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectFirstBuild.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectFirstBuild.java
index 2531034..fd271ce 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectFirstBuild.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectFirstBuild.java
@@ -18,6 +18,7 @@ package org.apache.ignite.tcbot.engine.defect;
 
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Objects;
 import java.util.Set;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.tcbot.persistence.Persisted;
@@ -45,4 +46,20 @@ public class DefectFirstBuild {
     public Set<DefectIssue> issues() {
         return Collections.unmodifiableSet(issues);
     }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+        DefectFirstBuild that = (DefectFirstBuild)o;
+        return Objects.equals(build, that.build) &&
+            Objects.equals(issues, that.issues);
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return Objects.hash(build, issues);
+    }
 }
diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectKey.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectKey.java
deleted file mode 100644
index cb8beb1..0000000
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectKey.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ignite.tcbot.engine.defect;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class DefectKey {
-    private int srvId;
-    private int branchId;
-    private List<CommitCompacted> commits = new ArrayList<>();
-
-}
diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectsStorage.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectsStorage.java
index 9a6aa1d..a66c606 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectsStorage.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/defect/DefectsStorage.java
@@ -140,8 +140,10 @@ public class DefectsStorage {
 
         defect.id(id);
 
-        //todo check equals/hashcode before saving
-        cache.put(id, defect);
+        DefectCompacted existingDefect = load(id);
+
+        if (existingDefect == null || !existingDefect.equals(defect))
+            save(defect);
 
         return defect;
     }