diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 0000000..adb82ec --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,34 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. +# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle + +name: Java CI with Gradle + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +permissions: + contents: read + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + java-version: '8' + distribution: 'temurin' + - name: Build with Gradle + uses: gradle/gradle-build-action@0d13054264b0bb894ded474f08ebb30921341cee + with: + arguments: build diff --git a/build.gradle b/build.gradle index 0ea9c04..27ab606 100644 --- a/build.gradle +++ b/build.gradle @@ -45,7 +45,7 @@ configurations.archives.artifacts.clear() allprojects { group = 'com.uber.m3' - version = '0.13.0' + version = '0.14.0' apply plugin: 'java' apply plugin: 'maven' @@ -169,9 +169,10 @@ subprojects { ext."signing.secretKeyRingFile" = "ci/${ext.secretKeyRingFileName}" -task wrapper(type: Wrapper) { + +wrapper { // Gradle version 4+ required for JMH benchmarking, otherwise v3.5+ is sufficient - gradleVersion = '4.0' + gradleVersion = '6.9' } // -------------------------------------- @@ -183,9 +184,9 @@ coveralls { task jacocoRootReport(type: org.gradle.testing.jacoco.tasks.JacocoReport) { dependsOn = subprojects.test - sourceDirectories = files(subprojects.sourceSets.main.allSource.srcDirs) - classDirectories = files(subprojects.sourceSets.main.output.classesDirs) - executionData = files(subprojects.jacocoTestReport.executionData) + sourceDirectories.setFrom(files(subprojects.sourceSets.main.allSource.srcDirs)) + classDirectories.setFrom(files(subprojects.sourceSets.main.output.classesDirs)) + executionData.setFrom(files(subprojects.jacocoTestReport.executionData)) reports { xml.enabled = true diff --git a/core/src/main/java/com/uber/m3/tally/ScopeImpl.java b/core/src/main/java/com/uber/m3/tally/ScopeImpl.java index 09e8377..6133957 100644 --- a/core/src/main/java/com/uber/m3/tally/ScopeImpl.java +++ b/core/src/main/java/com/uber/m3/tally/ScopeImpl.java @@ -23,6 +23,7 @@ import com.uber.m3.util.ImmutableMap; import javax.annotation.Nullable; +import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.Optional; @@ -172,7 +173,11 @@ String fullyQualifiedName(String name) { public Snapshot snapshot() { Snapshot snap = new SnapshotImpl(); - for (ScopeImpl subscope : registry.subscopes.values()) { + ArrayList scopes = new ArrayList<>(); + scopes.add(this); + scopes.addAll(registry.subscopes.values()); + + for (ScopeImpl subscope : scopes) { ImmutableMap tags = new ImmutableMap.Builder() .putAll(this.tags) .putAll(subscope.tags) diff --git a/core/src/test/java/com/uber/m3/tally/TestScopeTest.java b/core/src/test/java/com/uber/m3/tally/TestScopeTest.java index ccfc3aa..5e84dab 100644 --- a/core/src/test/java/com/uber/m3/tally/TestScopeTest.java +++ b/core/src/test/java/com/uber/m3/tally/TestScopeTest.java @@ -47,12 +47,14 @@ public void testCreate() { testScope.tagged(tags).counter("counter").inc(1); + testScope.counter("untagged_counter").inc(1); + Snapshot snapshot = testScope.snapshot(); assertNotNull(snapshot); Map counters = snapshot.counters(); assertNotNull(counters); - assertEquals(1, counters.size()); + assertEquals(2, counters.size()); CounterSnapshot counterSnapshot = counters.get(new ScopeKey("counter", tags)); assertNotNull(counterSnapshot); @@ -60,6 +62,12 @@ public void testCreate() { assertEquals("counter", counterSnapshot.name()); assertEquals(tags, counterSnapshot.tags()); assertEquals(1, counterSnapshot.value()); + + counterSnapshot = counters.get(new ScopeKey("untagged_counter", ImmutableMap.EMPTY)); + assertNotNull(counterSnapshot); + assertEquals("untagged_counter", counterSnapshot.name()); + assertEquals(ImmutableMap.EMPTY, counterSnapshot.tags()); + assertEquals(1, counterSnapshot.value()); } @Test diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index de80b9b..0161e9e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ #Fri Dec 25 03:30:51 CET 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.2-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists