Skip to content

Commit 86ef410

Browse files
authored
Merge pull request #40 from JavaSaBr/improve-moules-7
Improve modules, part 7
2 parents bbdbcd1 + 249abaf commit 86ef410

File tree

198 files changed

+2106
-13240
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

198 files changed

+2106
-13240
lines changed

.github/workflows/develop.yml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ on:
88

99
jobs:
1010
build:
11-
1211
runs-on: ubuntu-latest
1312
permissions:
14-
contents: read
15-
13+
contents: write
14+
pull-requests: write
1615
steps:
1716
- uses: actions/checkout@v4
17+
1818
- name: Set up JDK 21
1919
uses: actions/setup-java@v4
2020
with:
@@ -30,14 +30,28 @@ jobs:
3030
- name: Run tests for all modules
3131
run: ./gradlew test
3232

33-
dependency-submission:
33+
- name: Generate jacoco reports
34+
run: ./gradlew jacocoTestReport
35+
36+
- name: Generate aggregated jacoco report
37+
run: ./gradlew test-coverage:testCodeCoverageReport
3438

39+
- name: Add coverage to PR
40+
id: jacoco
41+
uses: madrapps/jacoco-report@v1.7.2
42+
with:
43+
paths: ${{ github.workspace }}/test-coverage/build/reports/jacoco/testCodeCoverageReport/testCodeCoverageReport.xml
44+
token: ${{ secrets.GITHUB_TOKEN }}
45+
min-coverage-overall: 40
46+
min-coverage-changed-files: 60
47+
48+
dependency-submission:
3549
runs-on: ubuntu-latest
3650
permissions:
3751
contents: write
38-
3952
steps:
4053
- uses: actions/checkout@v4
54+
4155
- name: Set up JDK 21
4256
uses: actions/setup-java@v4
4357
with:

build.gradle

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
rootProject.version = "9.10.0"
1+
rootProject.version = "10.0.alpha"
22
group = 'javasabr.rlib'
33

44
subprojects {
@@ -8,6 +8,8 @@ subprojects {
88
}
99

1010
apply plugin: "java-library"
11+
apply plugin: "jacoco"
12+
apply plugin: "jacoco-report-aggregation"
1113
apply plugin: "java-test-fixtures"
1214
apply plugin: 'maven-publish'
1315

@@ -119,6 +121,15 @@ subprojects {
119121
tasks.withType(Test).configureEach {
120122
maxParallelForks = Runtime.runtime.availableProcessors()
121123
}
124+
125+
jacocoTestReport {
126+
dependsOn test
127+
reports {
128+
xml.required = false
129+
csv.required = false
130+
html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
131+
}
132+
}
122133
}
123134

124135
wrapper {

rlib-classpath/src/main/java/javasabr/rlib/classpath/impl/ClassPathScannerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
import javasabr.rlib.collections.array.Array;
1919
import javasabr.rlib.collections.array.ArrayFactory;
2020
import javasabr.rlib.collections.array.MutableArray;
21+
import javasabr.rlib.common.util.ArrayUtils;
2122
import javasabr.rlib.io.impl.ReuseBytesInputStream;
2223
import javasabr.rlib.io.impl.ReuseBytesOutputStream;
23-
import javasabr.rlib.common.util.ArrayUtils;
2424
import javasabr.rlib.io.util.IoUtils;
2525
import javasabr.rlib.logger.api.Logger;
2626
import javasabr.rlib.logger.api.LoggerManager;

rlib-collections/src/main/java/javasabr/rlib/collections/array/Array.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.Serializable;
44
import java.util.Collection;
55
import java.util.Iterator;
6+
import java.util.List;
67
import java.util.Optional;
78
import java.util.RandomAccess;
89
import java.util.function.Function;
@@ -203,4 +204,6 @@ default Iterator<E> iterator() {
203204
ArrayIterationFunctions<E> iterations();
204205

205206
UnsafeArray<E> asUnsafe();
207+
208+
List<E> toList();
206209
}

rlib-collections/src/main/java/javasabr/rlib/collections/array/IntArray.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ static IntArray of(int... elements) {
3434
return new ImmutableIntArray(elements);
3535
}
3636

37+
static IntArray copyOf(IntArray intArray) {
38+
return new ImmutableIntArray(intArray.toArray());
39+
}
40+
3741
int size();
3842

3943
boolean contains(int value);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package javasabr.rlib.collections.array;
22

33
import javasabr.rlib.collections.operation.LockableSource;
4-
import javasabr.rlib.common.util.ThreadSafe;
4+
import javasabr.rlib.common.ThreadSafe;
55

66
public interface LockableArray<E> extends MutableArray<E>, LockableSource, ThreadSafe {
77
}

rlib-collections/src/main/java/javasabr/rlib/collections/array/LongArray.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ static LongArray of(long... elements) {
3434
return new ImmutableLongArray(elements);
3535
}
3636

37+
static LongArray copyOf(LongArray intArray) {
38+
return new ImmutableLongArray(intArray.toArray());
39+
}
40+
3741
int size();
3842

3943
boolean contains(long value);

rlib-collections/src/main/java/javasabr/rlib/collections/array/impl/AbstractArray.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.util.Arrays;
66
import java.util.Collection;
7+
import java.util.List;
78
import java.util.function.Consumer;
89
import java.util.function.Function;
910
import javasabr.rlib.collections.array.Array;
@@ -246,4 +247,12 @@ public int hashCode() {
246247
public UnsafeArray<E> asUnsafe() {
247248
return this;
248249
}
250+
251+
@Override
252+
public List<E> toList() {
253+
if (isEmpty()) {
254+
return List.of();
255+
}
256+
return List.of(Arrays.copyOf(wrapped(), size()));
257+
}
249258
}

rlib-collections/src/main/java/javasabr/rlib/collections/array/impl/CopyOnWriteMutableArray.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import java.util.concurrent.atomic.AtomicReference;
77
import javasabr.rlib.collections.array.Array;
88
import javasabr.rlib.collections.array.UnsafeMutableArray;
9+
import javasabr.rlib.common.ThreadSafe;
910
import javasabr.rlib.common.util.ArrayUtils;
10-
import javasabr.rlib.common.util.ThreadSafe;
1111
import lombok.AccessLevel;
1212
import lombok.experimental.FieldDefaults;
1313
import org.jspecify.annotations.Nullable;

rlib-collections/src/main/java/javasabr/rlib/collections/dictionary/Dictionary.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package javasabr.rlib.collections.dictionary;
22

3+
import java.util.Collection;
34
import java.util.Optional;
45
import javasabr.rlib.collections.array.Array;
56
import javasabr.rlib.collections.array.MutableArray;
@@ -26,10 +27,14 @@ public interface Dictionary<K, V> extends Iterable<V> {
2627
@Nullable
2728
V getOrDefault(K key, V def);
2829

30+
<C extends Collection<K>> C keys(C container);
31+
2932
MutableArray<K> keys(MutableArray<K> container);
3033

3134
Array<K> keys(Class<K> type);
3235

36+
<C extends Collection<V>> C values(C container);
37+
3338
MutableArray<V> values(MutableArray<V> container);
3439

3540
Array<V> values(Class<V> type);

0 commit comments

Comments
 (0)