• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sonus21 / rqueue / 25600722838

09 May 2026 12:06PM UTC coverage: 83.396% (-5.3%) from 88.677%
25600722838

push

github

web-flow
Nats v2 web (#295)

* ci: compile main sources in coverage_report job

The coverage_report job was producing an effectively empty
jacocoTestReport.xml (3.4KB vs ~1.1MB locally) because no .class files
existed when coverageReportOnly ran — the job checked out source code
and downloaded .exec artifacts, but never compiled. JaCoCo's report
generator skips packages/classes it cannot resolve, so the merged XML
ended up with only <sessioninfo> entries and no <package> elements.

That made coverallsJacoco silently no-op via the
"source file set empty, skipping" branch in CoverallsReporter, so
"Push coverage to Coveralls" reported success without uploading.

Verified by downloading the coverage-report artifact from a recent run
and comparing its XML structure against a local build's report.

Assisted-By: Claude Code

* nats-web: implement pause / soft-delete admin ops and capability-aware Q-detail

Replace the all-stub `NatsRqueueUtilityService` with real impls for the operations
JetStream can model: `pauseUnpauseQueue` persists the `paused` flag on `QueueConfig`
in the queue-config KV bucket and notifies the local listener container so the poller
stops dispatching; `deleteMessage` is a soft delete via `MessageMetadataService`
(stream message persists, dashboard hides via the metadata flag); `getDataType`
reports `STREAM`. `moveMessage`, `enqueueMessage`, and `makeEmpty` deliberately
remain "not supported" — there is no JetStream primitive for those.

Update `RqueueQDetailServiceImpl.getRunningTasks` / `getScheduledTasks` to return
header-only tables when the broker capabilities suppress those sections, instead of
emitting zero rows or 501s on NATS.

20 new unit tests cover the pause/delete paths and lock in the still-unsupported
operations. Updates `nats-task.md` / `nats-task-v2.md` to reflect what landed.

Assisted-By: Claude Code

* nats-web: capability-aware nav / charts and stream-based peek

End-to-end browser-tested the NATS dashboard and shipped the t... (continued)

2566 of 3407 branches covered (75.32%)

Branch coverage included in aggregate %.

795 of 1072 new or added lines in 22 files covered. (74.16%)

312 existing lines in 38 files now uncovered.

7715 of 8921 relevant lines covered (86.48%)

0.86 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.1
/rqueue-core/src/main/java/com/github/sonus21/rqueue/config/MetricsProperties.java
1
/*
2
 * Copyright (c) 2019-2026 Sonu Kumar
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * You may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *     https://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and limitations under the License.
14
 *
15
 */
16

17
package com.github.sonus21.rqueue.config;
18

19
import io.micrometer.core.instrument.Tag;
20
import io.micrometer.core.instrument.Tags;
21
import java.util.LinkedHashMap;
22
import java.util.Map;
23
import java.util.Map.Entry;
24
import lombok.Getter;
25
import lombok.Setter;
26
import org.apache.commons.lang3.StringUtils;
27

28
/**
29
 * RqueueMetrics provides all possible configurations available in Rqueue library for metrics.
30
 *
31
 * <p>Rqueue can be configured to count the failure execution, total execution, and can have set of
32
 * tags.
33
 */
34
@Getter
35
@Setter
36
public abstract class MetricsProperties {
1✔
37

38
  /**
39
   * List of tags to be used while publishing metrics.
40
   */
41
  private Map<String, String> tags = new LinkedHashMap<>();
1✔
42

43
  /**
44
   * what type of counting feature is enabled, by default counting feature is disabled.
45
   */
46
  private Count count = new Count();
1✔
47

48
  private Tags metricTags = Tags.empty();
1✔
49

50
  /*
51
   * Prefix to be used while publishing metrics.
52
   */
53
  private String prefix = "";
1✔
54

55
  /**
56
   * Get Tags object that can be used in metric. Tags can be either configured manually or using
57
   * properties or XML file.
58
   *
59
   * @return Tags object
60
   */
61
  public Tags getMetricTags() {
62
    Tag tag = metricTags.stream().findFirst().orElse(null);
1✔
63
    if (tag == null && !tags.isEmpty()) {
1✔
64
      for (Entry<String, String> entry : tags.entrySet()) {
1✔
65
        metricTags = metricTags.and(entry.getKey(), entry.getValue());
1✔
66
      }
1✔
67
    }
68
    return metricTags;
1✔
69
  }
70

71
  public void setMetricTags(Tags tags) {
72
    metricTags = tags;
1✔
73
  }
1✔
74

75
  public boolean countExecution() {
76
    return count.isExecution();
1✔
77
  }
78

79
  public boolean countFailure() {
80
    return count.isFailure();
1✔
81
  }
82

83
  public String getMetricName(String name) {
84
    if (StringUtils.isEmpty(prefix)) {
1!
85
      return name;
1✔
86
    }
UNCOV
87
    return prefix + name;
×
88
  }
89

90
  @Getter
91
  @Setter
92
  public static class Count {
1✔
93

94
    /**
95
     * Count all execution success and failure
96
     *
97
     * <p>each method invocation is counted once, which means if a message is retried N times then
98
     * it will be counted as N
99
     */
100
    private boolean execution = false;
1✔
101
    /**
102
     * count failure execution, count increases whenever invocation failure, or it fails due to
103
     * deserialization etc. Any types of failure would be counted.
104
     */
105
    private boolean failure = false;
1✔
106
  }
107
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc