Package net.sf.collabreview.reputation

Examples of net.sf.collabreview.reputation.ReputationMetric


    } catch (InterruptedException e) {
    }


    ReputationMetricManager rmm = collabReview.getReputationMetricManager();
    ReputationMetric qualities = rmm.findReputationMetric("quality");
    for (String name : qualities.listContributors()) {
      logger.info(qualities.getAuthorRank(name) + ": " + name + " " + qualities.getAuthorScore(name));
    }

    logger.info("Sending terminate signal to agents...");
    Shutdown.terminate();
  }
View Full Code Here


    Repository repository = collabReview.getRepository();
    StringBuilder result = new StringBuilder();
    result.append(String.format("Project quality performance overview (report generated: %s)\n============================================================================\n\n", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())));

    result.append("Developer quality score overview:\n\n");
    ReputationMetric qualityMetric = collabReview.getReputationMetricManager().findReputationMetric("quality");
    result.append("+------+----------------------+-------+\n");
    result.append("| Rank | Developer            | Score |\n");
    result.append("+------+----------------------+-------+\n");
    int rank = 1;
    for (String authorName : qualityMetric.getAuthorScores().keySet()) {
      result.append(String.format("| %4d | %20s | %5.1f |\n", rank, authorName, qualityMetric.getAuthorScore(authorName)));
      rank++;
    }
    result.append("+------+----------------------+-------+\n\n\n");

    Collection<ArtifactIdentifier> artifacts = repository.listFilteredArtifacts(true, artifactIdentifierFilter);
View Full Code Here

    }

    private void sendMails() {
      MetricDelta deltaDebt = (MetricDelta) collabReview.getReputationMetricManager().findReputationMetric("delta");
      assert deltaDebt != null;
      ReputationMetric quality = collabReview.getReputationMetricManager().findReputationMetric("qlybonqty");
      ReputationMetric technicalDebt = collabReview.getReputationMetricManager().findReputationMetric("techdebt");
      assert technicalDebt != null;
      Map<String, Float> scores = new TreeMap<String, Float>(quality.getAuthorScores());
      scores.keySet().retainAll(participants);
      logger.debug("Participant scores: " + scores);

      if (mailRecipient == null) {
        mailRecipient = collabReview.getMailManager().getAdministrator();
      }
      Mail listMail = collabReview.getMailManager().newMail("Javadoc reputation scores overview", mailRecipient.toString());
      assert review != null;
      String body = "Achtung liebe Entwickler,\n\n" +
          "es gibt eine kleine Änderung in der Berechnung der Punkte, weil mehrfach\n" +
          "darum gebeten wurde, doch auch Quantität mit einzubeziehen. Deshalb sind\n" +
          "die neuen Punkte jetzt inklusive einem Bonus von maximal 5 Punkten, der\n" +
          "sich anteilig an dem Beitrag des Entwicklers der am zweitmeisten beige-\n" +
          "tragen hat, bestimmt. Das heißt: hast du halb so viel wie derzeit Mark\n" +
          "beigetragen, dann ist dein Bonus 2,5.\n\n" +
          "Und jetzt weiter wie gehabt:\n" +
          "Eine Änderung wurde in das SourceForge repository übertragen und \n" +
          "anschließend auf Konformität zu den Java Coding Conventions überprüft.\n" +
          "Diese Mail informiert euch über eure aktuelle Code-Qualitäts-Reputation\n" +
          "nach dieser Änderung.\n\n" +
          "Die technische Schuld beträgt nun insgesamt " + toEuroString(technicalDebt.sum()) +
          " (Veränderung: " + toEuroString(deltaDebt.sum()) + ").\n\n" +
          getRankingTableString(scores, technicalDebt.getAuthorScores(), deltaDebt.getAuthorScores()) + "\n\n" +
          "Die Überprüfung einer der Dateien im Änderungssatz ergab (beispielhaft):\n" +
          " Datei:          " + review.getArtifactIdentifier().getName() + "\n" +
          " Bewertung:      " + review.getRating() + "\n" +
          " Bewertet durch: " + review.getAuthorName() + "\n" +
          " Erklärung:      " + review.getReviewText() + "\n\n";
View Full Code Here

   * suitable candidate can be found in the smaller set.
   *
   * @return name of one of the worst
   */
  private String randomSelectWeak() {
    ReputationMetric metric = collabReview.getReputationMetricManager().findReputationMetric(metricName);
    Author target = null;
    int candidateSetSize = 4;
    List<String> contributors = metric.listContributorsFillWithNoContributors();
    Collections.reverse(contributors);
    while (target == null && candidateSetSize < contributors.size()) {
      candidateSetSize = Math.min(contributors.size(), candidateSetSize + 1);
      int i = (int) (Math.random() * candidateSetSize);
      target = collabReview.getAuthorManager().getAuthor(contributors.get(i));
View Full Code Here

    return title;
  }

  @Override
  public boolean renderCore(HttpServletRequest request, PrintWriter writer) throws Exception {
    ReputationMetric metric = collabReview.getReputationMetricManager().findReputationMetric(metricName);
    metric.ensureReady();
    List<String> contributors = metric.listContributors();
    if (invert) {
      Collections.reverse(contributors);
    }
    if (contributors.size() == 0) {
      writer.println("<p>Keine Punktetabelle in diesem Bereich verfügbar</p>");
      return true;
    }
    String bestName = contributors.get(0);
    float bestScore = metric.getAuthorScore(bestName);
    writer.println(String.format(sentenceBest, bestName, bestScore * scoreScale));
    Author author = null;
    if (request.getSession().getAttribute(Constants.SESSION_ATTRIB_AUTHOR) != null) {
      author = collabReview.getAuthorManager().getAuthor((String) request.getSession().getAttribute(Constants.SESSION_ATTRIB_AUTHOR));
    }
    if (author == null) {
      writer.println("<p>Melde dich an, um deine eigene Position angezeigt zu bekommen.</p>");
      return true;
    }
    if (author.getName().equals(bestName)) {
      writer.println("<p>Herzlichen Glückwunsch, das bist du!</p>");
      return true;
    }
    if (contributors.size() < 2) {
      writer.println("<p>Andere Leute haben in diesem Bereich nichts beigetragen</p>");
      return true;
    }
    int ownRank = contributors.size();
    for (int i = 0; i < contributors.size(); i++) {
      if (contributors.get(i).equals(author.getName())) {
        ownRank = i;
      }
    }
    Float ownScore = metric.getAuthorScore(author.getName());
    if( ownScore == null ) {
      // I wonder if assuming 0 is always correct...
      ownScore = 0f;
    }
    String nextName = contributors.get(ownRank - 1);
    float differenceToNext = Math.abs(metric.getAuthorScore(nextName) - ownScore);
    writer.println(String.format("<p>Du selbst befindest dich auf dem %d. Platz. " +
        "Wenn du noch %.1f Punkte in diesem Bereich gewinnst, dann kannst du %s einholen. " +
        "Danach ist dann auch der erste Platz nicht mehr weit...</p>"
        , ownRank + 1, differenceToNext * scoreScale, nextName));
    return true;
View Full Code Here

  public WikiUpdateScoreListTimer() {
  }

  private static List<WikiAuthorResponsibilityComparator> calculateCurrentScores() {
    ReputationMetric reputationMetric = CollabReviewSingleton.get().getReputationMetricManager().findReputationMetric("silfwiki");
    List<WikiAuthorResponsibilityComparator> currentScoreList = new ArrayList<WikiAuthorResponsibilityComparator>();
    for (String authorName : CollabReviewSingleton.get().getAuthorManager().listAuthorNames()) {
      Author author = CollabReviewSingleton.get().getAuthorManager().getAuthor(authorName);
      String userName = author.getName();
      Float quality = reputationMetric.getAuthorScore(author.getName());
      if (quality == null) {
        quality = 0f;
      }
      currentScoreList.add(new WikiAuthorResponsibilityComparator(userName, quality, author.isDisabled()));
    }
View Full Code Here

      logger.error("Creating, writing to or reading from file UserScores.txt failed: " + e);
    }
  }

  public Pair<String, Double> getCurrentHeldDerWocheAndScore() throws FileNotFoundException {
    ReputationMetric reputationMetric = CollabReviewSingleton.get().getReputationMetricManager().findReputationMetric("silfwiki");
    HashMap<String, Double> lastWeekScoresHash = getLastWeekScoresHash();
    List<WikiAuthorResponsibilityComparator> oneWeekScoresList = new ArrayList<WikiAuthorResponsibilityComparator>();
    for (String authorName : CollabReviewSingleton.get().getAuthorManager().listAuthorNames()) {
      Author author = CollabReviewSingleton.get().getAuthorManager().getAuthor(authorName);
      Float qualityScore = reputationMetric.getAuthorScore(author.getName());
      if (qualityScore == null) {
        qualityScore = 0f;
      }
      double oneWeekScore = lastWeekScoresHash.get(authorName) != null ? qualityScore - lastWeekScoresHash.get(authorName) : qualityScore;
      oneWeekScoresList.add(new WikiAuthorResponsibilityComparator(authorName, oneWeekScore, author.isDisabled()));
View Full Code Here

TOP

Related Classes of net.sf.collabreview.reputation.ReputationMetric

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.