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/10/29 11:10:32 UTC

[ignite-teamcity-bot] branch ignite-10030 updated: IGNITE-10030: Change date, commit hash, and equals supported

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-10030
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/ignite-10030 by this push:
     new 91ebebc  IGNITE-10030: Change date, commit hash, and equals supported
91ebebc is described below

commit 91ebebc2fb70c9f107aaa62fbbcb376b936eca4c
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Mon Oct 29 14:10:30 2018 +0300

    IGNITE-10030: Change date, commit hash, and equals supported
---
 .../ignite/ci/di/scheduler/TcBotScheduler.java     |  2 +-
 .../ignite/ci/tcmodel/changes/ChangeRef.java       | 27 ++++++++++
 .../teamcity/ignited/change/ChangeCompacted.java   | 57 ++++++++++++++++++++--
 .../ignited/fatbuild/ProactiveFatBuildSync.java    |  2 +-
 .../src/test/resources/change2.xml                 |  2 +-
 5 files changed, 84 insertions(+), 6 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/TcBotScheduler.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/TcBotScheduler.java
index 045ea2a..c931b08 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/TcBotScheduler.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/di/scheduler/TcBotScheduler.java
@@ -28,7 +28,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
 class TcBotScheduler implements IScheduler {
-    public static final int POOL_SIZE = 8;
+    public static final int POOL_SIZE = 10;
     /** Logger. */
     private static final Logger logger = LoggerFactory.getLogger(TcBotScheduler.class);
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangeRef.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangeRef.java
index 4d16034..21af700 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangeRef.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/changes/ChangeRef.java
@@ -17,14 +17,24 @@
 
 package org.apache.ignite.ci.tcmodel.changes;
 
+import com.google.common.base.Strings;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
 import org.apache.ignite.ci.db.Persisted;
 import org.apache.ignite.ci.tcmodel.result.AbstractRef;
 
+import static org.apache.ignite.ci.util.ExceptionUtil.propagateException;
+
 /**
  * Change short version.
  */
 @Persisted
+@XmlAccessorType(XmlAccessType.FIELD)
 public class ChangeRef extends AbstractRef {
     @XmlAttribute public String id;
     @XmlAttribute public String version;
@@ -36,6 +46,7 @@ public class ChangeRef extends AbstractRef {
     @XmlAttribute public String date;
     @XmlAttribute public String webUrl;
 
+
     @Override public String toString() {
         return "ChangeRef{" +
             "href='" + href + '\'' +
@@ -46,4 +57,20 @@ public class ChangeRef extends AbstractRef {
             ", webUrl='" + webUrl + '\'' +
             '}';
     }
+
+    /** Format local. */
+    @XmlTransient private static ThreadLocal<SimpleDateFormat> fmtLoc
+        = ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyyMMdd'T'HHmmssZ"));
+
+    /**
+     *
+     */
+    public Long getDateTs() {
+        try {
+            return Strings.isNullOrEmpty(date) ? null : fmtLoc.get().parse(date).getTime();
+        }
+        catch (ParseException e) {
+            throw propagateException(e);
+        }
+    }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java
index c9ebd38..616bc07 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/change/ChangeCompacted.java
@@ -16,6 +16,10 @@
  */
 package org.apache.ignite.ci.teamcity.ignited.change;
 
+import com.google.common.base.Objects;
+import com.google.common.base.Strings;
+import javax.annotation.Nullable;
+import javax.xml.bind.DatatypeConverter;
 import org.apache.ignite.ci.analysis.IVersionedEntity;
 import org.apache.ignite.ci.db.Persisted;
 import org.apache.ignite.ci.tcmodel.changes.Change;
@@ -30,7 +34,7 @@ public class ChangeCompacted implements IVersionedEntity {
     private static final Logger logger = LoggerFactory.getLogger(FatBuildDao.class);
 
     /** Latest version. */
-    private static final int LATEST_VERSION = 1;
+    private static final int LATEST_VERSION = 3;
 
     /** Entity fields version. */
     @SuppressWarnings("FieldCanBeLocal")
@@ -45,6 +49,12 @@ public class ChangeCompacted implements IVersionedEntity {
     private int tcUserUsername = -1;
     private int tcUserFullname = -1;
 
+    /** Version: For Git revision, 20 bytes. */
+    @Nullable private byte[] version;
+
+    /** Date timestamp. */
+    private long date;
+
     public ChangeCompacted(IStringCompactor compactor, Change change) {
         id = compactor.getStringId(change.id);
         vcsUsername = compactor.getStringId(change.username);
@@ -52,13 +62,32 @@ public class ChangeCompacted implements IVersionedEntity {
         if (change.user != null) {
             try {
                 tcUserId = Integer.parseInt(change.user.id);
-            } catch (NumberFormatException e) {
-                logger.error("TC User id parse failed " + change.user.id, e);
+            }
+            catch (NumberFormatException e) {
+                logger.error("TC User id parse failed " + change.user.id + ":" + e.getMessage(), e);
             }
             tcUserUsername = compactor.getStringId(change.user.username);
             tcUserFullname = compactor.getStringId(change.user.name);
         }
 
+        if (!Strings.isNullOrEmpty(change.version)) {
+            try {
+                version = DatatypeConverter.parseHexBinary(change.version);
+            }
+            catch (Exception e) {
+                logger.error("TC Change version parse failed " + change.version + ":" + e.getMessage(), e);
+            }
+        }
+
+        try {
+            Long date = change.getDateTs();
+
+            this.date = date == null ? -1L : date;
+        }
+        catch (Exception e) {
+            logger.error("TC Change date parse failed " + change.date + ":" + e.getMessage(), e);
+        }
+
     }
 
     public int id() {
@@ -86,4 +115,26 @@ public class ChangeCompacted implements IVersionedEntity {
     public String tcUserFullName(IStringCompactor compactor) {
         return compactor.getStringFromId(tcUserFullname);
     }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+        ChangeCompacted compacted = (ChangeCompacted)o;
+        return _ver == compacted._ver &&
+            id == compacted.id &&
+            vcsUsername == compacted.vcsUsername &&
+            tcUserId == compacted.tcUserId &&
+            tcUserUsername == compacted.tcUserUsername &&
+            tcUserFullname == compacted.tcUserFullname &&
+            date == compacted.date &&
+            Objects.equal(version, compacted.version);
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return Objects.hashCode(_ver, id, vcsUsername, tcUserId, tcUserUsername, tcUserFullname, version, date);
+    }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
index b5c2c56..2f0a986 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProactiveFatBuildSync.java
@@ -46,7 +46,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 public class ProactiveFatBuildSync {
-    public static final int FAT_BUILD_PROACTIVE_TASKS = 4;
+    public static final int FAT_BUILD_PROACTIVE_TASKS = 5;
 
     /** Logger. */
     private static final Logger logger = LoggerFactory.getLogger(ProactiveFatBuildSync.class);
diff --git a/ignite-tc-helper-web/src/test/resources/change2.xml b/ignite-tc-helper-web/src/test/resources/change2.xml
index 4b1b746..d81cfd7 100644
--- a/ignite-tc-helper-web/src/test/resources/change2.xml
+++ b/ignite-tc-helper-web/src/test/resources/change2.xml
@@ -1,7 +1,7 @@
 <!--https://ci.ignite.apache.org/app/rest/latest/changes/id:834837-->
 <change id="834837" version="584652293c8646d8a893eed1a2b2ae1a179a5d20" username="aplatonovv" date="20181011T184228+0300" href="/app/rest/latest/changes/id:834837" webUrl="http://ci.ignite.apache.org/viewModification.html?modId=834837&amp;personal=false">
     <comment>
-        IGNITE-9726 Prevent the whole suite lockup after GridCacheAbstractFailoverSelfTest failure - Fixes #4859. Signed-off-by: Alexey Goncharuk <al...@gmail.com>
+        IGNITE-9726 Prevent the whole suite lockup after GridCacheAbstractFailoverSelfTest failure - Fixes #4859. Signed-off-by: Alexey Goncharuk &lt;alexey.goncharuk@gmail.com>
     </comment>
     <files count="2">
         <file before-revision="88df5ee607b23a30e051e9724dcd97b7e43aa6d6" after-revision="584652293c8646d8a893eed1a2b2ae1a179a5d20" changeType="edited" file="modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFailoverSelfTest.java" relative-file="modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFailoverSelfTest.java"/>