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