diff --git a/docs/reports/kover/html/index.html b/docs/reports/kover/html/index.html index 5938eb6b..f4f5503c 100644 --- a/docs/reports/kover/html/index.html +++ b/docs/reports/kover/html/index.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0% - (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0% - (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0% - (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0% - (0/6218) + (0/5639) @@ -133,7 +133,7 @@

Coverage Breakdown

0% - (0/18) + (0/17) @@ -149,7 +149,7 @@

Coverage Breakdown

0% - (0/132) + (0/130) @@ -157,7 +157,7 @@

Coverage Breakdown

0% - (0/782) + (0/825) @@ -192,7 +192,7 @@

Coverage Breakdown

0% - (0/39) + (0/37) @@ -200,61 +200,18 @@

Coverage Breakdown

0% - (0/177) + (0/202) - dev.suresh.adt + dev.suresh.atomic 0% - (0/7) - - - - - 0% - - - (0/25) - - - - - 0% - - - (0/40) - - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - - - - - dev.suresh.atomic - - - 0% - - - (0/3) + (0/2) @@ -262,7 +219,7 @@

Coverage Breakdown

0% - (0/5) + (0/4) @@ -271,7 +228,7 @@

Coverage Breakdown

0% - (0/5) + (0/4) @@ -279,12 +236,12 @@

Coverage Breakdown

0% - (0/42) + (0/40) - dev.suresh.cli + dev.suresh.cli 0% @@ -320,7 +277,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -351,12 +308,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -399,7 +356,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -435,7 +392,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -471,7 +428,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -507,7 +464,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -543,7 +500,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -586,7 +543,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -622,7 +579,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -665,7 +622,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -708,7 +665,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -751,7 +708,7 @@

Coverage Breakdown

- dev.suresh.network + dev.suresh.network 0% @@ -794,7 +751,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -832,12 +789,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.server + dev.suresh.server 0% @@ -880,7 +837,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -916,7 +873,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -959,7 +916,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -1002,7 +959,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -1045,7 +1002,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_BLOCK.html b/docs/reports/kover/html/index_SORT_BY_BLOCK.html index fa3115f7..37fed5e6 100644 --- a/docs/reports/kover/html/index_SORT_BY_BLOCK.html +++ b/docs/reports/kover/html/index_SORT_BY_BLOCK.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -119,13 +119,13 @@

Coverage Breakdown

- dev.suresh.atomic + dev.suresh.atomic 0% - (0/3) + (0/2) @@ -133,7 +133,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -142,7 +142,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -150,12 +150,12 @@

Coverage Breakdown

0%
- (0/42) + (0/40) - dev.suresh.cli + dev.suresh.cli 0% @@ -191,7 +191,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -222,12 +222,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.config + dev.suresh.config 0% @@ -263,7 +263,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -299,7 +299,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -335,7 +335,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -371,7 +371,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -407,7 +407,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -457,7 +457,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -473,7 +473,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -481,7 +481,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -516,50 +516,7 @@

Coverage Breakdown

0%
- (0/39) - - - - - 0% - - - (0/177) - - - - - dev.suresh.adt - - - 0% - - - (0/7) - - - - - 0% - - - (0/25) - - - - - 0% - - - (0/40) - - - - - 0% - - - (0/87) + (0/37) @@ -567,12 +524,12 @@

Coverage Breakdown

0%
- (0/679) + (0/202) - dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -615,7 +572,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -658,7 +615,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -701,7 +658,7 @@

Coverage Breakdown

- dev.suresh.network + dev.suresh.network 0% @@ -744,7 +701,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -782,12 +739,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.server + dev.suresh.server 0% @@ -830,7 +787,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -873,7 +830,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -916,7 +873,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -959,7 +916,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -1002,7 +959,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -1045,7 +1002,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_BLOCK_DESC.html b/docs/reports/kover/html/index_SORT_BY_BLOCK_DESC.html index 4fedc9e5..e8d49f3d 100644 --- a/docs/reports/kover/html/index_SORT_BY_BLOCK_DESC.html +++ b/docs/reports/kover/html/index_SORT_BY_BLOCK_DESC.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -119,7 +119,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -162,7 +162,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -205,7 +205,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -248,7 +248,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -291,7 +291,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -334,7 +334,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -377,7 +377,7 @@

Coverage Breakdown

- dev.suresh.server + dev.suresh.server 0% @@ -420,7 +420,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -458,12 +458,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.network + dev.suresh.network 0% @@ -506,7 +506,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -549,7 +549,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -592,7 +592,7 @@

Coverage Breakdown

- dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -632,49 +632,6 @@

Coverage Breakdown

(0/195) - - - - dev.suresh.adt - - - 0% - - - (0/7) - - - - - 0% - - - (0/25) - - - - - 0% - - - (0/40) - - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - @@ -708,7 +665,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -716,7 +673,7 @@

Coverage Breakdown

0%
- (0/177) + (0/202) @@ -735,7 +692,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -751,7 +708,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -759,12 +716,12 @@

Coverage Breakdown

0%
- (0/782) + (0/825) - dev.suresh.service + dev.suresh.service 0% @@ -800,7 +757,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -836,7 +793,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -872,7 +829,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -908,7 +865,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -944,7 +901,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -980,7 +937,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -1011,12 +968,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.cli + dev.suresh.cli 0% @@ -1052,13 +1009,13 @@

Coverage Breakdown

- dev.suresh.atomic + dev.suresh.atomic 0% - (0/3) + (0/2) @@ -1066,7 +1023,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -1075,7 +1032,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -1083,7 +1040,7 @@

Coverage Breakdown

0%
- (0/42) + (0/40) @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_CLASS.html b/docs/reports/kover/html/index_SORT_BY_CLASS.html index b94db048..67278b91 100644 --- a/docs/reports/kover/html/index_SORT_BY_CLASS.html +++ b/docs/reports/kover/html/index_SORT_BY_CLASS.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -133,7 +133,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -149,7 +149,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -157,7 +157,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -192,7 +192,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -200,61 +200,18 @@

Coverage Breakdown

0%
- (0/177) + (0/202) - dev.suresh.adt + dev.suresh.atomic 0% - (0/7) - - - - - 0% - - - (0/25) - - - - - 0% - - - (0/40) - - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - - - - - dev.suresh.atomic - - - 0% - - - (0/3) + (0/2) @@ -262,7 +219,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -271,7 +228,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -279,12 +236,12 @@

Coverage Breakdown

0%
- (0/42) + (0/40) - dev.suresh.cli + dev.suresh.cli 0% @@ -320,7 +277,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -351,12 +308,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -399,7 +356,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -435,7 +392,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -471,7 +428,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -507,7 +464,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -543,7 +500,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -586,7 +543,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -622,7 +579,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -665,7 +622,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -708,7 +665,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -751,7 +708,7 @@

Coverage Breakdown

- dev.suresh.network + dev.suresh.network 0% @@ -794,7 +751,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -832,12 +789,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.server + dev.suresh.server 0% @@ -880,7 +837,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -916,7 +873,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -959,7 +916,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -1002,7 +959,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -1045,7 +1002,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_CLASS_DESC.html b/docs/reports/kover/html/index_SORT_BY_CLASS_DESC.html index 705193b3..6ec3c6c8 100644 --- a/docs/reports/kover/html/index_SORT_BY_CLASS_DESC.html +++ b/docs/reports/kover/html/index_SORT_BY_CLASS_DESC.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -119,7 +119,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -162,7 +162,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -205,7 +205,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -248,7 +248,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -291,7 +291,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -327,7 +327,7 @@

Coverage Breakdown

- dev.suresh.server + dev.suresh.server 0% @@ -370,7 +370,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -408,12 +408,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.network + dev.suresh.network 0% @@ -456,7 +456,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -499,7 +499,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -542,7 +542,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -585,7 +585,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -621,7 +621,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -664,7 +664,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -700,7 +700,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -736,7 +736,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -772,7 +772,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -808,7 +808,7 @@

Coverage Breakdown

- dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -851,7 +851,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -882,12 +882,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.cli + dev.suresh.cli 0% @@ -923,13 +923,13 @@

Coverage Breakdown

- dev.suresh.atomic + dev.suresh.atomic 0% - (0/3) + (0/2) @@ -937,7 +937,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -946,34 +946,7 @@

Coverage Breakdown

0%
- (0/5) - - - - - 0% - - - (0/42) - - - - - dev.suresh.adt - - - 0% - - - (0/7) - - - - - 0% - - - (0/25) + (0/4) @@ -983,22 +956,6 @@

Coverage Breakdown

(0/40) - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - @@ -1032,7 +989,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -1040,7 +997,7 @@

Coverage Breakdown

0%
- (0/177) + (0/202) @@ -1059,7 +1016,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -1075,7 +1032,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -1083,7 +1040,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_LINE.html b/docs/reports/kover/html/index_SORT_BY_LINE.html index 4295cf0c..fc639a33 100644 --- a/docs/reports/kover/html/index_SORT_BY_LINE.html +++ b/docs/reports/kover/html/index_SORT_BY_LINE.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -133,7 +133,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -149,7 +149,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -157,7 +157,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -192,7 +192,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -200,61 +200,18 @@

Coverage Breakdown

0%
- (0/177) + (0/202) - dev.suresh.adt + dev.suresh.atomic 0% - (0/7) - - - - - 0% - - - (0/25) - - - - - 0% - - - (0/40) - - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - - - - - dev.suresh.atomic - - - 0% - - - (0/3) + (0/2) @@ -262,7 +219,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -271,7 +228,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -279,12 +236,12 @@

Coverage Breakdown

0%
- (0/42) + (0/40) - dev.suresh.cli + dev.suresh.cli 0% @@ -320,7 +277,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -351,12 +308,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -399,7 +356,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -435,7 +392,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -471,7 +428,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -507,7 +464,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -543,7 +500,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -586,7 +543,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -622,7 +579,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -665,7 +622,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -708,7 +665,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -751,7 +708,7 @@

Coverage Breakdown

- dev.suresh.network + dev.suresh.network 0% @@ -794,7 +751,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -832,12 +789,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.server + dev.suresh.server 0% @@ -880,7 +837,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -916,7 +873,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -959,7 +916,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -1002,7 +959,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -1045,7 +1002,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_LINE_DESC.html b/docs/reports/kover/html/index_SORT_BY_LINE_DESC.html index b1d45907..0ac93d1e 100644 --- a/docs/reports/kover/html/index_SORT_BY_LINE_DESC.html +++ b/docs/reports/kover/html/index_SORT_BY_LINE_DESC.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -119,7 +119,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -162,7 +162,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -205,7 +205,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -248,7 +248,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -291,7 +291,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -327,7 +327,7 @@

Coverage Breakdown

- dev.suresh.server + dev.suresh.server 0% @@ -370,7 +370,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -408,12 +408,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.network + dev.suresh.network 0% @@ -456,7 +456,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -499,7 +499,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -542,7 +542,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -585,7 +585,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -621,7 +621,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -664,7 +664,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -700,7 +700,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -736,7 +736,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -772,7 +772,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -808,7 +808,7 @@

Coverage Breakdown

- dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -851,7 +851,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -882,12 +882,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.cli + dev.suresh.cli 0% @@ -923,13 +923,13 @@

Coverage Breakdown

- dev.suresh.atomic + dev.suresh.atomic 0% - (0/3) + (0/2) @@ -937,7 +937,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -946,34 +946,7 @@

Coverage Breakdown

0%
- (0/5) - - - - - 0% - - - (0/42) - - - - - dev.suresh.adt - - - 0% - - - (0/7) - - - - - 0% - - - (0/25) + (0/4) @@ -983,22 +956,6 @@

Coverage Breakdown

(0/40) - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - @@ -1032,7 +989,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -1040,7 +997,7 @@

Coverage Breakdown

0%
- (0/177) + (0/202) @@ -1059,7 +1016,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -1075,7 +1032,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -1083,7 +1040,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_METHOD.html b/docs/reports/kover/html/index_SORT_BY_METHOD.html index 6ee70e56..d675e916 100644 --- a/docs/reports/kover/html/index_SORT_BY_METHOD.html +++ b/docs/reports/kover/html/index_SORT_BY_METHOD.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -133,7 +133,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -149,7 +149,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -157,7 +157,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -192,7 +192,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -200,61 +200,18 @@

Coverage Breakdown

0%
- (0/177) + (0/202) - dev.suresh.adt + dev.suresh.atomic 0% - (0/7) - - - - - 0% - - - (0/25) - - - - - 0% - - - (0/40) - - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - - - - - dev.suresh.atomic - - - 0% - - - (0/3) + (0/2) @@ -262,7 +219,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -271,7 +228,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -279,12 +236,12 @@

Coverage Breakdown

0%
- (0/42) + (0/40) - dev.suresh.cli + dev.suresh.cli 0% @@ -320,7 +277,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -351,12 +308,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -399,7 +356,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -435,7 +392,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -471,7 +428,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -507,7 +464,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -543,7 +500,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -586,7 +543,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -622,7 +579,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -665,7 +622,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -708,7 +665,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -751,7 +708,7 @@

Coverage Breakdown

- dev.suresh.network + dev.suresh.network 0% @@ -794,7 +751,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -832,12 +789,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.server + dev.suresh.server 0% @@ -880,7 +837,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -916,7 +873,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -959,7 +916,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -1002,7 +959,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -1045,7 +1002,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_METHOD_DESC.html b/docs/reports/kover/html/index_SORT_BY_METHOD_DESC.html index f7288358..e567b2f0 100644 --- a/docs/reports/kover/html/index_SORT_BY_METHOD_DESC.html +++ b/docs/reports/kover/html/index_SORT_BY_METHOD_DESC.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -119,7 +119,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -162,7 +162,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -205,7 +205,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -248,7 +248,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -291,7 +291,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -327,7 +327,7 @@

Coverage Breakdown

- dev.suresh.server + dev.suresh.server 0% @@ -370,7 +370,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -408,12 +408,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.network + dev.suresh.network 0% @@ -456,7 +456,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -499,7 +499,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -542,7 +542,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -585,7 +585,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -621,7 +621,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -664,7 +664,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -700,7 +700,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -736,7 +736,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -772,7 +772,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -808,7 +808,7 @@

Coverage Breakdown

- dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -851,7 +851,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -882,12 +882,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.cli + dev.suresh.cli 0% @@ -923,13 +923,13 @@

Coverage Breakdown

- dev.suresh.atomic + dev.suresh.atomic 0% - (0/3) + (0/2) @@ -937,7 +937,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -946,34 +946,7 @@

Coverage Breakdown

0%
- (0/5) - - - - - 0% - - - (0/42) - - - - - dev.suresh.adt - - - 0% - - - (0/7) - - - - - 0% - - - (0/25) + (0/4) @@ -983,22 +956,6 @@

Coverage Breakdown

(0/40) - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - @@ -1032,7 +989,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -1040,7 +997,7 @@

Coverage Breakdown

0%
- (0/177) + (0/202) @@ -1059,7 +1016,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -1075,7 +1032,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -1083,7 +1040,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_NAME_DESC.html b/docs/reports/kover/html/index_SORT_BY_NAME_DESC.html index c6cab12c..83f64b98 100644 --- a/docs/reports/kover/html/index_SORT_BY_NAME_DESC.html +++ b/docs/reports/kover/html/index_SORT_BY_NAME_DESC.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -119,7 +119,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -162,7 +162,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -205,7 +205,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -248,7 +248,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -291,7 +291,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -327,7 +327,7 @@

Coverage Breakdown

- dev.suresh.server + dev.suresh.server 0% @@ -370,7 +370,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -408,12 +408,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.network + dev.suresh.network 0% @@ -456,7 +456,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -499,7 +499,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -542,7 +542,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -585,7 +585,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -621,7 +621,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -664,7 +664,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -700,7 +700,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -736,7 +736,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -772,7 +772,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -808,7 +808,7 @@

Coverage Breakdown

- dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -851,7 +851,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -882,12 +882,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.cli + dev.suresh.cli 0% @@ -923,13 +923,13 @@

Coverage Breakdown

- dev.suresh.atomic + dev.suresh.atomic 0% - (0/3) + (0/2) @@ -937,7 +937,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -946,34 +946,7 @@

Coverage Breakdown

0%
- (0/5) - - - - - 0% - - - (0/42) - - - - - dev.suresh.adt - - - 0% - - - (0/7) - - - - - 0% - - - (0/25) + (0/4) @@ -983,22 +956,6 @@

Coverage Breakdown

(0/40) - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - @@ -1032,7 +989,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -1040,7 +997,7 @@

Coverage Breakdown

0%
- (0/177) + (0/202) @@ -1059,7 +1016,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -1075,7 +1032,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -1083,7 +1040,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_STATEMENT.html b/docs/reports/kover/html/index_SORT_BY_STATEMENT.html index 6635787d..59262c41 100644 --- a/docs/reports/kover/html/index_SORT_BY_STATEMENT.html +++ b/docs/reports/kover/html/index_SORT_BY_STATEMENT.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -133,7 +133,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -149,7 +149,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -157,7 +157,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -192,7 +192,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -200,61 +200,18 @@

Coverage Breakdown

0%
- (0/177) + (0/202) - dev.suresh.adt + dev.suresh.atomic 0% - (0/7) - - - - - 0% - - - (0/25) - - - - - 0% - - - (0/40) - - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - - - - - dev.suresh.atomic - - - 0% - - - (0/3) + (0/2) @@ -262,7 +219,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -271,7 +228,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -279,12 +236,12 @@

Coverage Breakdown

0%
- (0/42) + (0/40) - dev.suresh.cli + dev.suresh.cli 0% @@ -320,7 +277,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -351,12 +308,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -399,7 +356,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -435,7 +392,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -471,7 +428,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -507,7 +464,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -543,7 +500,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -586,7 +543,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -622,7 +579,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -665,7 +622,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -708,7 +665,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -751,7 +708,7 @@

Coverage Breakdown

- dev.suresh.network + dev.suresh.network 0% @@ -794,7 +751,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -832,12 +789,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.server + dev.suresh.server 0% @@ -880,7 +837,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -916,7 +873,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -959,7 +916,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -1002,7 +959,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -1045,7 +1002,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/index_SORT_BY_STATEMENT_DESC.html b/docs/reports/kover/html/index_SORT_BY_STATEMENT_DESC.html index 2d050128..760e89c0 100644 --- a/docs/reports/kover/html/index_SORT_BY_STATEMENT_DESC.html +++ b/docs/reports/kover/html/index_SORT_BY_STATEMENT_DESC.html @@ -51,7 +51,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/97) + (0/89) @@ -59,15 +59,15 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/238) + (0/211) - 1.5% + 1.9% - (3/198) + (3/158) @@ -75,7 +75,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/1029) + (0/937) @@ -83,7 +83,7 @@

openjdk-playground code coverage report: Overall Coverage Summary

0%
- (0/6218) + (0/5639) @@ -119,7 +119,7 @@

Coverage Breakdown

- dev.suresh.vthread.jetty + dev.suresh.vthread.jetty 0% @@ -162,7 +162,7 @@

Coverage Breakdown

- dev.suresh.vthread.echo + dev.suresh.vthread.echo 0% @@ -205,7 +205,7 @@

Coverage Breakdown

- dev.suresh.vthread + dev.suresh.vthread 0% @@ -248,7 +248,7 @@

Coverage Breakdown

- dev.suresh.util + dev.suresh.util 0% @@ -291,7 +291,7 @@

Coverage Breakdown

- dev.suresh.service + dev.suresh.service 0% @@ -327,7 +327,7 @@

Coverage Breakdown

- dev.suresh.server + dev.suresh.server 0% @@ -370,7 +370,7 @@

Coverage Breakdown

- dev.suresh.npe + dev.suresh.npe 0% @@ -408,12 +408,12 @@

Coverage Breakdown

0%
- (0/79) + (0/85) - dev.suresh.network + dev.suresh.network 0% @@ -456,7 +456,7 @@

Coverage Breakdown

- dev.suresh.mvn + dev.suresh.mvn 0% @@ -499,7 +499,7 @@

Coverage Breakdown

- dev.suresh.misc + dev.suresh.misc 0% @@ -542,7 +542,7 @@

Coverage Breakdown

- dev.suresh.lang + dev.suresh.lang 0% @@ -585,7 +585,7 @@

Coverage Breakdown

- dev.suresh.jte + dev.suresh.jte 0% @@ -621,7 +621,7 @@

Coverage Breakdown

- dev.suresh.json + dev.suresh.json 0% @@ -664,7 +664,7 @@

Coverage Breakdown

- dev.suresh.jfr + dev.suresh.jfr 0% @@ -700,7 +700,7 @@

Coverage Breakdown

- dev.suresh.jackson + dev.suresh.jackson 0% @@ -736,7 +736,7 @@

Coverage Breakdown

- dev.suresh.generics + dev.suresh.generics 0% @@ -772,7 +772,7 @@

Coverage Breakdown

- dev.suresh.config + dev.suresh.config 0% @@ -808,7 +808,7 @@

Coverage Breakdown

- dev.suresh.concurrent + dev.suresh.concurrent 0% @@ -851,7 +851,7 @@

Coverage Breakdown

- dev.suresh.collection + dev.suresh.collection 0% @@ -882,12 +882,12 @@

Coverage Breakdown

0%
- (0/203) + (0/231) - dev.suresh.cli + dev.suresh.cli 0% @@ -923,13 +923,13 @@

Coverage Breakdown

- dev.suresh.atomic + dev.suresh.atomic 0% - (0/3) + (0/2) @@ -937,7 +937,7 @@

Coverage Breakdown

0%
- (0/5) + (0/4) @@ -946,34 +946,7 @@

Coverage Breakdown

0%
- (0/5) - - - - - 0% - - - (0/42) - - - - - dev.suresh.adt - - - 0% - - - (0/7) - - - - - 0% - - - (0/25) + (0/4) @@ -983,22 +956,6 @@

Coverage Breakdown

(0/40) - - - - 0% - - - (0/87) - - - - - 0% - - - (0/679) - @@ -1032,7 +989,7 @@

Coverage Breakdown

0%
- (0/39) + (0/37) @@ -1040,7 +997,7 @@

Coverage Breakdown

0%
- (0/177) + (0/202) @@ -1059,7 +1016,7 @@

Coverage Breakdown

0%
- (0/18) + (0/17) @@ -1075,7 +1032,7 @@

Coverage Breakdown

0%
- (0/132) + (0/130) @@ -1083,7 +1040,7 @@

Coverage Breakdown

0%
- (0/782) + (0/825) @@ -1109,7 +1066,7 @@

Coverage Breakdown

diff --git a/docs/reports/kover/html/ns-1/index.html b/docs/reports/kover/html/ns-1/index.html index 24d9ac7f..b95975ce 100644 --- a/docs/reports/kover/html/ns-1/index.html +++ b/docs/reports/kover/html/ns-1/index.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -170,7 +170,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -186,7 +186,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -194,7 +194,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK.html b/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK.html index 42e0ccb3..9b842afd 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -278,7 +278,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -294,7 +294,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -302,7 +302,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK_DESC.html b/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK_DESC.html index 9ce6dee1..47358ad3 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK_DESC.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_BLOCK_DESC.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -134,7 +134,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -150,7 +150,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -158,7 +158,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS.html b/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS.html index 68b0601c..1a81b42f 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -170,7 +170,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -186,7 +186,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -194,7 +194,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS_DESC.html b/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS_DESC.html index 6de63512..664f529f 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS_DESC.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_CLASS_DESC.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -242,7 +242,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -258,7 +258,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -266,7 +266,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_LINE.html b/docs/reports/kover/html/ns-1/index_SORT_BY_LINE.html index 46aec515..1fab382f 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_LINE.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_LINE.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -170,7 +170,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -186,7 +186,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -194,7 +194,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_LINE_DESC.html b/docs/reports/kover/html/ns-1/index_SORT_BY_LINE_DESC.html index 2b3595d4..a086cef8 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_LINE_DESC.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_LINE_DESC.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -242,7 +242,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -258,7 +258,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -266,7 +266,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD.html b/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD.html index f81401ff..c311d364 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -170,7 +170,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -186,7 +186,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -194,7 +194,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD_DESC.html b/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD_DESC.html index 1b518620..260d3a33 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD_DESC.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_METHOD_DESC.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -242,7 +242,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -258,7 +258,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -266,7 +266,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_NAME_DESC.html b/docs/reports/kover/html/ns-1/index_SORT_BY_NAME_DESC.html index 4bd9caae..73ee8c72 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_NAME_DESC.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_NAME_DESC.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -242,7 +242,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -258,7 +258,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -266,7 +266,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT.html b/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT.html index 546db732..7ad3116c 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -170,7 +170,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -186,7 +186,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -194,7 +194,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT_DESC.html b/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT_DESC.html index 32fe7050..7b48b776 100644 --- a/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT_DESC.html +++ b/docs/reports/kover/html/ns-1/index_SORT_BY_STATEMENT_DESC.html @@ -60,7 +60,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/18) + (0/17) @@ -76,7 +76,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/132) + (0/130) @@ -84,7 +84,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/782) + (0/825) @@ -242,7 +242,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/7) + (0/6) @@ -258,7 +258,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/114) + (0/112) @@ -266,7 +266,7 @@

Coverage Summary for Package: <empty package>

0%
- (0/672) + (0/715) @@ -329,7 +329,7 @@

Coverage Summary for Package: <empty package>

diff --git a/docs/reports/kover/html/ns-1/sources/source-1.html b/docs/reports/kover/html/ns-1/sources/source-1.html index b6a67bb9..38b09243 100644 --- a/docs/reports/kover/html/ns-1/sources/source-1.html +++ b/docs/reports/kover/html/ns-1/sources/source-1.html @@ -98,7 +98,7 @@

Coverage Summary for Class: App (<empty package name>)

  */  object App {   /** Application version. */ -  const val VERSION = "2.4.0" +  const val VERSION = "2.4.1"     /** Application base version used for calculating the version. */   const val BASE_VERSION = "base_version" @@ -107,10 +107,10 @@

Coverage Summary for Class: App (<empty package name>)

  const val JAVA_VERSION = "javaVersion"     /** Kotlin library version. */ -  const val KOTLIN_VERSION = "2.0.0-Beta5" +  const val KOTLIN_VERSION = "2.0.0"     /** Gradle version */ -  const val GRADLE_VERSION = "8.7" +  const val GRADLE_VERSION = "8.8"     /**   * Git @@ -133,7 +133,7 @@

Coverage Summary for Class: App (<empty package name>)

    /** Returns the list of runtime dependencies. */   val dependencies: List<String> by lazy { -  """org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@1da11571""".trimIndent().lines().filter { it.isNotBlank() } +  """org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler_Decorated@1c370679""".trimIndent().lines().filter { it.isNotBlank() }   }  } @@ -159,7 +159,7 @@

Coverage Summary for Class: App (<empty package name>)

diff --git a/docs/reports/kover/html/ns-1/sources/source-2.html b/docs/reports/kover/html/ns-1/sources/source-2.html index a5b54f55..e909d505 100644 --- a/docs/reports/kover/html/ns-1/sources/source-2.html +++ b/docs/reports/kover/html/ns-1/sources/source-2.html @@ -63,7 +63,7 @@

Coverage Summary for Class: JavaApp (<empty package name>)

0%
- (0/7) + (0/6) @@ -79,7 +79,7 @@

Coverage Summary for Class: JavaApp (<empty package name>)

0%
- (0/114) + (0/112) @@ -87,7 +87,7 @@

Coverage Summary for Class: JavaApp (<empty package name>)

0%
- (0/672) + (0/715) @@ -102,6 +102,7 @@

Coverage Summary for Class: JavaApp (<empty package name>)

 import static java.lang.System.out;    import com.sun.net.httpserver.HttpServer; +   import java.io.File;  import java.io.IOException;  import java.lang.management.ManagementFactory; @@ -122,9 +123,7 @@

Coverage Summary for Class: JavaApp (<empty package name>)

 import javax.net.ssl.TrustManagerFactory;  import javax.net.ssl.X509TrustManager;   - public class JavaApp { -  -  void main(String[] args) throws Exception { + void main(String[] args) throws Exception {   var start = System.currentTimeMillis();   final var lineSep = System.lineSeparator();   @@ -132,28 +131,24 @@

Coverage Summary for Class: JavaApp (<empty package name>)

  double sizeUnit = 1024f * 1024 * 1014;   out.printf("%n✧✧✧✧✧ Available Processors: %d ✧✧✧✧✧%n", rt.availableProcessors());   out.printf( -  "%n✧✧✧✧✧ JVM Memory -> Total Allocated : %.2fGB, Free: %.2fGB, Max Configured: %.2fGB, ✧✧✧✧✧%n", -  rt.totalMemory() / sizeUnit, rt.freeMemory() / sizeUnit, rt.maxMemory() / sizeUnit); +  "%n✧✧✧✧✧ JVM Memory -> Total Allocated : %.2fGB, Free: %.2fGB, Max Configured: %.2fGB, ✧✧✧✧✧%n", +  rt.totalMemory() / sizeUnit, rt.freeMemory() / sizeUnit, rt.maxMemory() / sizeUnit);     out.printf("%n✧✧✧✧✧ Processes ✧✧✧✧✧%n");   var ps = ProcessHandle.allProcesses().sorted(ProcessHandle::compareTo).toList(); -  ps.forEach( -  p -> { -  var pInfo = STR."\{p.pid()} : \{p.info()}"; -  out.println(pInfo); -  }); +  ps.forEach(p -> out.printf("%d : %s%n", p.pid(), p.info()));     out.printf("%n✧✧✧✧✧ Trust stores ✧✧✧✧✧%n");   var tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());   tmf.init((KeyStore) null);   var issuers = -  Arrays.stream(tmf.getTrustManagers()) -  .flatMap( -  tm -> { -  var x509Tm = (X509TrustManager) tm; -  return Arrays.stream(x509Tm.getAcceptedIssuers()); -  }) -  .toList(); +  Arrays.stream(tmf.getTrustManagers()) +  .flatMap( +  tm -> { +  var x509Tm = (X509TrustManager) tm; +  return Arrays.stream(x509Tm.getAcceptedIssuers()); +  }) +  .toList();   issuers.forEach(cert -> out.println(cert.getIssuerX500Principal()));     out.printf("%n✧✧✧✧✧ Dns Resolution ✧✧✧✧✧%n"); @@ -166,128 +161,127 @@

Coverage Summary for Class: JavaApp (<empty package name>)

    out.printf("%n✧✧✧✧✧ Charsets ✧✧✧✧✧%n");   var cs = Charset.availableCharsets(); -  cs.forEach((name, charSet) -> out.println(name + " : " + charSet)); +  cs.forEach((name, charSet) -> out.printf("%s : %s%n", name, charSet));     out.printf("%n✧✧✧✧✧ System Locales ✧✧✧✧✧%n");   var locales = Locale.getAvailableLocales();   for (Locale locale : locales) { -  out.println(locale); +  out.println(locale);   }     out.printf("%n✧✧✧✧✧ System Countries ✧✧✧✧✧%n");   var countries = Locale.getISOCountries();   for (String country : countries) { -  out.println(country); +  out.println(country);   }     out.printf("%n✧✧✧✧✧ System Currencies ✧✧✧✧✧%n");   var currencies = Currency.getAvailableCurrencies();   for (Currency currency : currencies) { -  out.println(currency); +  out.println(currency);   }     out.printf("%n✧✧✧✧✧ System Languages ✧✧✧✧✧%n");   var languages = Locale.getISOLanguages();   for (String language : languages) { -  out.println(language); +  out.println(language);   }     out.printf("%n✧✧✧✧✧ Env Variables ✧✧✧✧✧%n");   var env = System.getenv(); -  env.forEach((k, v) -> out.println(k + " : " + v)); +  env.forEach((k, v) -> out.printf("%s : %s%n", k, v));     out.printf("%n✧✧✧✧✧ System Properties ✧✧✧✧✧%n");   var props = System.getProperties(); -  props.forEach((k, v) -> out.println(k + " : " + v)); +  props.forEach((k, v) -> out.printf("%s : %s%n", k, v));     var fmt = HexFormat.ofDelimiter(", ").withUpperCase().withPrefix("0x");   out.printf( -  "%n✧✧✧✧✧ I ❤️ Java = %s%n", -  fmt.formatHex("I ❤️ Java".getBytes(StandardCharsets.UTF_8))); +  "%n✧✧✧✧✧ I ❤️ Java = %s%n", +  fmt.formatHex("I ❤️ Java".getBytes(StandardCharsets.UTF_8)));   out.printf("✧✧✧✧✧ LineSeparator = %s%n", fmt.formatHex(lineSep.getBytes()));   out.printf("✧✧✧✧✧ File PathSeparator = %s%n%n", fmt.formatHex(File.pathSeparator.getBytes()));     out.printf("%n✧✧✧✧✧ Streams ✧✧✧✧✧%n");   Stream.of("java", "kotlin", "scala", " ") -  .map(String::toUpperCase) -  .filter(s -> !s.isBlank()) -  .mapMulti( -  (s, consumer) -> { -  consumer.accept(s); -  consumer.accept(s.toLowerCase()); -  }) -  .forEach(out::println); +  .map(String::toUpperCase) +  .filter(s -> !s.isBlank()) +  .mapMulti( +  (s, consumer) -> { +  consumer.accept(s); +  consumer.accept(s.toLowerCase()); +  }) +  .forEach(out::println);     out.printf("%n✧✧✧✧✧ Additional info in exception ✧✧✧✧✧%n");   Security.setProperty("jdk.includeInExceptions", "hostInfo,jar");   try (var s = new Socket()) { -  s.setSoTimeout(1_00); -  s.connect(new InetSocketAddress("localhost", 12345), 1_00); +  s.setSoTimeout(1_00); +  s.connect(new InetSocketAddress("localhost", 12345), 1_00);   } catch (Exception e) { -  out.println(e.getMessage()); -  assert e.getMessage().contains("localhost/127.0.0.1:12345"); +  out.println(e.getMessage()); +  assert e.getMessage().contains("localhost/127.0.0.1:12345");   }     var currTime = System.currentTimeMillis();   var vmTime = -  ProcessHandle.current().info().startInstant().orElseGet(Instant::now).toEpochMilli(); -  var stats = -  """ -  -  +---------Summary----------+ -  | Processes : %-5d | -  | Dns Addresses : %-5d | -  | Trust Stores : %-5d | -  | TimeZones : %-5d | -  | CharSets : %-5d | -  | Locales : %-5d | -  | Countries : %-5d | -  | Languages : %-5d | -  | Currencies : %-5d | -  | Env Vars : %-5d | -  | Sys Props : %-5d | -  | Total time : %-5dms | -  | JVM Startup : %-5dms | -  | Process Time : %-5dms | -  +--------------------------+ -  """ -  .formatted( -  ps.size(), -  dns.size(), -  issuers.size(), -  tz.size(), -  cs.size(), -  locales.length, -  countries.length, -  languages.length, -  currencies.size(), -  env.size(), -  props.size(), -  (currTime - vmTime), -  (start - vmTime), -  (currTime - start)); +  ProcessHandle.current().info().startInstant().orElseGet(Instant::now).toEpochMilli(); +  var stats = """ +  +---------Summary----------+ +  | Processes : %-5d | +  | Dns Addresses : %-5d | +  | Trust Stores : %-5d | +  | TimeZones : %-5d | +  | CharSets : %-5d | +  | Locales : %-5d | +  | Countries : %-5d | +  | Languages : %-5d | +  | Currencies : %-5d | +  | Env Vars : %-5d | +  | Sys Props : %-5d | +  | Total time : %-5dms | +  | JVM Startup : %-5dms | +  | Process Time : %-5dms | +  +--------------------------+ +  """.formatted( +  ps.size(), +  dns.size(), +  issuers.size(), +  tz.size(), +  cs.size(), +  locales.length, +  countries.length, +  languages.length, +  currencies.size(), +  env.size(), +  props.size(), +  (currTime - vmTime), +  (start - vmTime), +  (currTime - start));   out.println(stats); -  } + }   -  /** Starts an HTTP server */ -  private void webServer() throws IOException { + /** +  * Starts an HTTP server +  */ + private void webServer() throws IOException {   var start = System.currentTimeMillis();   var server = HttpServer.create(new InetSocketAddress(80), 0);   server.createContext( -  "/", -  t -> { -  out.println(STR."GET: \{t.getRequestURI()}"); -  var res = -  "Java %s running on %s %s" -  .formatted( -  System.getProperty("java.version"), -  System.getProperty("os.name"), -  System.getProperty("os.arch")); -  t.sendResponseHeaders(200, res.length()); -  try (var os = t.getResponseBody()) { -  os.write(res.getBytes()); -  } -  }); +  "/", +  t -> { +  out.printf("GET: %s%n", t.getRequestURI()); +  var res = +  "Java %s running on %s %s" +  .formatted( +  System.getProperty("java.version"), +  System.getProperty("os.name"), +  System.getProperty("os.arch")); +  t.sendResponseHeaders(200, res.length()); +  try (var os = t.getResponseBody()) { +  os.write(res.getBytes()); +  } +  });     server.createContext("/shutdown", _ -> server.stop(0));   server.start(); @@ -296,11 +290,10 @@

Coverage Summary for Class: JavaApp (<empty package name>)

  // The timestamp returned by the call to getRuntimeMXBean().getStartTime()   // returns the value *after* basic JVM initialization.   var vmTime = ManagementFactory.getRuntimeMXBean().getStartTime(); -  out.println(STR."Starting Http Server on port \{server.getAddress().getPort()}..."); +  out.printf("Starting Http Server on port %d...%n", server.getAddress().getPort());   out.printf( -  "Started in %d millis! (JVM: %dms, Server: %dms)%n", -  (currTime - vmTime), (start - vmTime), (currTime - start)); -  } +  "Started in %d millis! (JVM: %dms, Server: %dms)%n", +  (currTime - vmTime), (start - vmTime), (currTime - start));  }
@@ -325,7 +318,7 @@

Coverage Summary for Class: JavaApp (<empty package name>)

diff --git a/docs/reports/kover/html/ns-1/sources/source-3.html b/docs/reports/kover/html/ns-1/sources/source-3.html index d2c0070a..33e4569d 100644 --- a/docs/reports/kover/html/ns-1/sources/source-3.html +++ b/docs/reports/kover/html/ns-1/sources/source-3.html @@ -157,7 +157,7 @@

Coverage Summary for Class: Main (<empty package name>)

diff --git a/docs/reports/kover/html/ns-1/sources/source-4.html b/docs/reports/kover/html/ns-1/sources/source-4.html index 4f92c10d..ca4afcab 100644 --- a/docs/reports/kover/html/ns-1/sources/source-4.html +++ b/docs/reports/kover/html/ns-1/sources/source-4.html @@ -157,7 +157,7 @@

Coverage Summary for Class: MainKt (<empty package name>)

diff --git a/docs/reports/kover/html/ns-1/sources/source-5.html b/docs/reports/kover/html/ns-1/sources/source-5.html index 8180ee39..3c3b3334 100644 --- a/docs/reports/kover/html/ns-1/sources/source-5.html +++ b/docs/reports/kover/html/ns-1/sources/source-5.html @@ -313,7 +313,7 @@

Coverage Summary for Class: Result (<empty package name>)

diff --git a/docs/reports/kover/html/ns-1/sources/source-6.html b/docs/reports/kover/html/ns-1/sources/source-6.html index 8469ace0..cd81632f 100644 --- a/docs/reports/kover/html/ns-1/sources/source-6.html +++ b/docs/reports/kover/html/ns-1/sources/source-6.html @@ -49,7 +49,7 @@

Coverage Summary for Class: BuildConfig (<empty package name>)

   object BuildConfig {   -  const val time = "2024-03-30T20:04:45.229907522" +  const val time = "2024-06-15T20:19:11.655194145"  } @@ -74,7 +74,7 @@

Coverage Summary for Class: BuildConfig (<empty package name>)

diff --git a/docs/reports/kover/html/ns-10/index.html b/docs/reports/kover/html/ns-10/index.html index 0ef2c6b1..84a153fa 100644 --- a/docs/reports/kover/html/ns-10/index.html +++ b/docs/reports/kover/html/ns-10/index.html @@ -3,7 +3,7 @@ - openjdk-playground code coverage report Coverage Report > dev.suresh.mvn + openjdk-playground code coverage report Coverage Report > dev.suresh.network + + + + + +
+ + +

Coverage Summary for Class: VThreadServer (dev.suresh.vthread)

+ + + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % + + Instruction, % +
VThreadServer + + 0% + + + (0/1) + + + + 0% + + + (0/12) + + + + + 0% + + + (0/81) + + + + 0% + + + (0/378) + +
+ +
+
+ + +
+ package dev.suresh.vthread
+ 
+ import com.sun.net.httpserver.*
+ import java.lang.Thread.sleep
+ import java.net.*
+ import java.net.http.*
+ import java.net.http.HttpResponse.BodyHandlers
+ import java.time.*
+ import java.util.concurrent.*
+ import java.util.stream.Collectors.joining
+ import kotlin.system.*
+ import okhttp3.tls.internal.*
+ 
+ object VThreadServer {
+ 
+   private val execSvc = Executors.newVirtualThreadPerTaskExecutor()
+ 
+   @JvmStatic
+   fun run() {
+     val took = measureTimeMillis { exec() }
+     println(">> Took ${Duration.ofMillis(took).toSeconds()} seconds!")
+   }
+ 
+   private fun exec() {
+     println("Generating a self signed cert...")
+     val selfSignedCert = TlsUtil.localhost()
+     val cn = selfSignedCert.trustManager.acceptedIssuers[0].subjectX500Principal
+     println("Self signed cert: $cn")
+ 
+     // Starts HTTPS server
+     val httpsServer =
+         HttpsServer.create(InetSocketAddress(8443), 1_000).apply {
+           httpsConfigurator = HttpsConfigurator(selfSignedCert.sslContext())
+           executor = execSvc
+           createContext("/", ::root)
+           createContext("/top", ::top)
+           start()
+         }
+ 
+     val url = "https://localhost:${httpsServer.address.port}"
+     println("Started the server on $url")
+ 
+     val client =
+         HttpClient.newBuilder()
+             .connectTimeout(Duration.ofSeconds(5))
+             .sslContext(selfSignedCert.sslContext())
+             .version(HttpClient.Version.HTTP_2)
+             .executor(execSvc)
+             .build()
+ 
+     println("Sending 500 concurrent requests to $url")
+     val futures =
+         (1..500).map {
+           CompletableFuture.supplyAsync(
+                   {
+                     val res =
+                         client.send(
+                             HttpRequest.newBuilder().uri(URI.create(url)).build(),
+                             BodyHandlers.ofString())
+                     val thread = Thread.currentThread()
+                     println(
+                         "<--- Response(${thread.name}-${thread.threadId()}-${thread.isVirtual}): ${res.body()}")
+                     res.body()
+                   },
+                   execSvc)
+               .exceptionally(Throwable::message)
+         }
+ 
+     // Wait for all tasks to complete and prints the response.
+     CompletableFuture.allOf(*futures.toTypedArray())
+         .handle { _, _ -> // or thenRun
+           // Finally stop the server.
+           println("Shutting down the server!")
+           httpsServer.stop(1)
+           futures.map { it.join() }
+         }
+         .thenAccept { it.forEach(::println) }
+         .join()
+   }
+ 
+   private fun root(ex: HttpExchange) {
+     val thread = Thread.currentThread()
+     println(
+         "---> Request(${thread.name}-${thread.threadId()}-${thread.isVirtual}): ${ex.requestMethod} - ${ex.requestURI}")
+     // Simulate blocking call.
+     sleep(Duration.ofMillis(100))
+     ex.responseHeaders.add("Content-Type", "application/json")
+     val res =
+         """
+             {
+                "threadId" : ${thread.threadId()},
+                "version"  : ${System.getProperty("java.vm.version")},
+                "virtual"  : ${thread.isVirtual}
+             }
+       """
+             .trimIndent()
+             .toByteArray()
+ 
+     ex.sendResponseHeaders(200, res.size.toLong())
+     ex.responseBody.apply {
+       write(res)
+       close()
+     }
+   }
+ 
+   private fun top(ex: HttpExchange) {
+     println("---> Request: ${ex.requestMethod} - ${ex.requestURI}")
+     val res =
+         ProcessHandle.allProcesses()
+             .map {
+               "${it.pid()} ${it.parent().map(ProcessHandle::pid).orElse(0)} ${
+       it.info().startInstant()
+         .map(Instant::toString).orElse("-")
+       } ${
+       it.info().commandLine()
+         .orElse("-")
+       } ${it.info().user().orElse("-")}"
+             }
+             .collect(joining("<br>"))
+             .toByteArray()
+ 
+     ex.responseHeaders.add("Content-Type", "text/html; charset=UTF-8")
+     ex.sendResponseHeaders(200, res.size.toLong())
+     ex.responseBody.apply {
+       write(res)
+       close()
+     }
+   }
+ 
+   /**
+    * Disable hostname verification of JDK http client.
+    * http://mail.openjdk.java.net/pipermail/net-dev/2018-November/011912.html
+    */
+   private fun disableHostnameVerification() =
+       System.setProperty("jdk.internal.httpclient.disableHostnameVerification", "true")
+ }
+
+
+
+ + + + + + diff --git a/docs/reports/kover/html/ns-16/index.html b/docs/reports/kover/html/ns-16/index.html index 95d6d680..a09bbc95 100644 --- a/docs/reports/kover/html/ns-16/index.html +++ b/docs/reports/kover/html/ns-16/index.html @@ -3,7 +3,7 @@ - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread + openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.echo + + + + + +
+ + +

Coverage Summary for Class: Server (dev.suresh.vthread.echo)

+ + + + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % + + Instruction, % +
Server + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/4) + + + + 0% + + + (0/26) + + + + 0% + + + (0/215) + +
+ +
+
+ + +
+ package dev.suresh.vthread.echo
+ 
+ import java.net.*
+ import java.net.StandardSocketOptions.SO_REUSEADDR
+ import java.net.StandardSocketOptions.SO_REUSEPORT
+ import java.time.*
+ import java.util.concurrent.atomic.*
+ import kotlinx.datetime.*
+ import kotlinx.datetime.Clock
+ 
+ object Server {
+   val ports = 9001..9010
+   private val conns = LongAdder()
+   private val msgs = LongAdder()
+ 
+   fun run() {
+     println("Starting echo server on ports range: $ports")
+     ports.forEach { port -> Thread.startVirtualThread { serve(port) } }
+ 
+     while (true) {
+       Thread.sleep(Duration.ofSeconds(2))
+       val currDateTime = Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault())
+       println("$currDateTime - Connections: ${conns.sum()}, Messages: ${msgs.sum()}")
+     }
+   }
+ 
+   fun serve(port: Int) {
+     ServerSocket(port, 1_000, InetAddress.getByName("0.0.0.0")).use { server ->
+       server.setOption(SO_REUSEADDR, true)
+       server.setOption(SO_REUSEPORT, true)
+       while (true) {
+         val client = server.accept()
+         conns.increment()
+         Thread.startVirtualThread { handle(client) }
+       }
+     }
+   }
+ 
+   fun handle(socket: Socket) {
+     try {
+       socket.use { sock ->
+         val inr = sock.inputStream.bufferedReader()
+         val out = sock.outputStream.bufferedWriter()
+         inr.forEachLine {
+           msgs.increment()
+           out.write(it)
+           out.newLine()
+         }
+       }
+     } finally {
+       conns.decrement()
+     }
+   }
+ }
+ 
+ fun main() {
+   Server.run()
+ }
+
+
+
+ + + + + + diff --git a/docs/reports/kover/html/ns-17/sources/source-4.html b/docs/reports/kover/html/ns-16/sources/source-4.html similarity index 98% rename from docs/reports/kover/html/ns-17/sources/source-4.html rename to docs/reports/kover/html/ns-16/sources/source-4.html index 2ae28660..8ea9b55e 100644 --- a/docs/reports/kover/html/ns-17/sources/source-4.html +++ b/docs/reports/kover/html/ns-16/sources/source-4.html @@ -173,7 +173,7 @@

Coverage Summary for Class: ServerKt (dev.suresh.vthread.echo)

diff --git a/docs/reports/kover/html/ns-17/index.html b/docs/reports/kover/html/ns-17/index.html index f2a2186f..a326e8bb 100644 --- a/docs/reports/kover/html/ns-17/index.html +++ b/docs/reports/kover/html/ns-17/index.html @@ -3,7 +3,7 @@ - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.echo + openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_BLOCK.html b/docs/reports/kover/html/ns-18/index_SORT_BY_BLOCK.html deleted file mode 100644 index 631750e2..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_BLOCK.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_BLOCK_DESC.html b/docs/reports/kover/html/ns-18/index_SORT_BY_BLOCK_DESC.html deleted file mode 100644 index add7197d..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_BLOCK_DESC.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_CLASS.html b/docs/reports/kover/html/ns-18/index_SORT_BY_CLASS.html deleted file mode 100644 index 462e979a..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_CLASS.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_CLASS_DESC.html b/docs/reports/kover/html/ns-18/index_SORT_BY_CLASS_DESC.html deleted file mode 100644 index a8e4224a..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_CLASS_DESC.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_LINE.html b/docs/reports/kover/html/ns-18/index_SORT_BY_LINE.html deleted file mode 100644 index 0d9cc690..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_LINE.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_LINE_DESC.html b/docs/reports/kover/html/ns-18/index_SORT_BY_LINE_DESC.html deleted file mode 100644 index 2f70af9d..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_LINE_DESC.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_METHOD.html b/docs/reports/kover/html/ns-18/index_SORT_BY_METHOD.html deleted file mode 100644 index b6ec813d..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_METHOD.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_METHOD_DESC.html b/docs/reports/kover/html/ns-18/index_SORT_BY_METHOD_DESC.html deleted file mode 100644 index b329b4b8..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_METHOD_DESC.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_NAME_DESC.html b/docs/reports/kover/html/ns-18/index_SORT_BY_NAME_DESC.html deleted file mode 100644 index cdf38735..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_NAME_DESC.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_STATEMENT.html b/docs/reports/kover/html/ns-18/index_SORT_BY_STATEMENT.html deleted file mode 100644 index 0e352f09..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_STATEMENT.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/index_SORT_BY_STATEMENT_DESC.html b/docs/reports/kover/html/ns-18/index_SORT_BY_STATEMENT_DESC.html deleted file mode 100644 index ed2d32d4..00000000 --- a/docs/reports/kover/html/ns-18/index_SORT_BY_STATEMENT_DESC.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - - openjdk-playground code coverage report Coverage Report > dev.suresh.vthread.jetty - - - - - - -
- - - -

Coverage Summary for Package: dev.suresh.vthread.jetty

- - - - - - - - - - - - - - - - - -
Package - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
dev.suresh.vthread.jetty - - 0% - - - (0/3) - - - - 0% - - - (0/16) - - - - 0% - - - (0/22) - - - - 0% - - - (0/110) - - - - 0% - - - (0/512) - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
VirtualThreadPool - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/2) - - - - 0% - - - (0/8) - - - - 0% - - - (0/19) - -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
- -
- - - - - - diff --git a/docs/reports/kover/html/ns-18/sources/source-1.html b/docs/reports/kover/html/ns-18/sources/source-1.html deleted file mode 100644 index 7052e902..00000000 --- a/docs/reports/kover/html/ns-18/sources/source-1.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - openjdk-playground code coverage report Coverage Report > HelloServlet - - - - - - -
- - -

Coverage Summary for Class: HelloServlet (dev.suresh.vthread.jetty)

- - - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
HelloServlet - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - 0% - - - (0/2) - - - - 0% - - - (0/24) - - - - 0% - - - (0/86) - -
- -
-
- - -
- package dev.suresh.vthread.jetty
- 
- import io.mikael.urlbuilder.UrlBuilder
- import jakarta.servlet.http.HttpServlet
- import jakarta.servlet.http.HttpServletRequest
- import jakarta.servlet.http.HttpServletResponse
- import java.net.http.HttpClient
- import java.net.http.HttpRequest
- import java.net.http.HttpResponse.BodyHandlers
- import java.time.Duration
- import java.util.concurrent.Executors
- import kotlin.time.DurationUnit
- import kotlin.time.measureTime
- import org.eclipse.jetty.ee10.servlet.ServletContextHandler
- import org.eclipse.jetty.server.Server
- import org.eclipse.jetty.server.ServerConnector
- import org.eclipse.jetty.util.JavaVersion
- import org.eclipse.jetty.util.Jetty
- 
- fun main() {
-   run()
- }
- 
- fun run(args: Array<String>? = emptyArray()) {
-   val httpPort = 8080
-   println("Starting the Jetty server on $httpPort...")
-   val server = Server(VirtualThreadPool())
- 
-   val connector =
-       ServerConnector(server).apply {
-         port = httpPort
-         acceptQueueSize = 64
-       }
-   server.connectors = arrayOf(connector)
- 
-   val context = ServletContextHandler()
-   context.addServlet(HelloServlet::class.java, "/")
-   server.handler = context
-   server.start()
-   println("Server started at ${server.uri}")
- 
-   val took = measureTime { pumpRequests(server, 50) }
-   println("Took ${took.toDouble(DurationUnit.SECONDS)} seconds")
- 
-   if (args.orEmpty().any { it.equals("--no-shutdown", true) }) {
-     server.join()
-   } else {
-     println("Shutting down the server!")
-     server.stop()
-   }
- }
- 
- fun pumpRequests(server: Server, count: Int, deadlineInSec: Long = 5L) {
-   require(count > 0)
-   println(
-       "Sending $count concurrent requests to ${server.uri} and wait for $deadlineInSec seconds...",
-   )
- 
-   val client =
-       HttpClient.newBuilder()
-           .version(HttpClient.Version.HTTP_1_1)
-           .followRedirects(HttpClient.Redirect.NORMAL)
-           .connectTimeout(Duration.ofSeconds(5))
-           .build()
- 
-   val factory = Thread.ofVirtual().name("VirtualThreadPool-", 1).factory()
-   val execSvc = Executors.newThreadPerTaskExecutor(factory)
-   // val ecs = ExecutorCompletionService<String>(execSvc)
- 
-   val results =
-       execSvc.use { exec ->
-         val user = System.getProperty("user.name", "user")
- 
-         println("--> Sending $count concurrent requests")
-         (1..count).map { idx ->
-           exec.submit<Result<String>> {
-             try {
- 
-               val uri =
-                   UrlBuilder.fromUri(server.uri)
-                       .addParameter("id", idx.toString())
-                       .addParameter("user", user)
-                       .toUri()
- 
-               val req =
-                   HttpRequest.newBuilder()
-                       .uri(uri)
-                       .timeout(Duration.ofSeconds(2))
-                       .header("Content-Type", "application/json")
-                       .GET()
-                       .build()
-               val res = client.send(req, BodyHandlers.ofString())
- 
-               println("<--- $idx. Response($threadInfo): ${res.statusCode()} - ${res.body()}")
-               Result.success(res.body())
-             } catch (t: Throwable) {
-               Result.failure(t)
-             }
-           }
-         }
-       }
- 
-   // Clear the interrupt status
-   println("Checking if the current thread has been interrupted: ${Thread.interrupted()}")
-   val (ok, err) = results.map { it.get() }.partition { it.isSuccess }
- 
-   err.forEachIndexed { i, r ->
-     if (i == 0) println("=== ERRORS ===")
-     val msg =
-         when (val ex = r.exceptionOrNull()) {
-           is InterruptedException -> "Task interrupted/cancelled due to timeout!"
-           else -> ex?.cause?.message
-         }
-     println("ERROR ${i + 1} -> $msg")
-   }
- 
-   println(
-       """
-     SUCCESS: ${ok.size} / ${results.size}
-     FAILURE: ${err.size} / ${results.size}
-     """
-           .trimIndent(),
-   )
- }
- 
- class HelloServlet : HttpServlet() {
-   private val ID = ScopedValue.newInstance<String>()
-   private val USER = ScopedValue.newInstance<String>()
-   private val OS: String = System.getProperty("os.name")
- 
-   init {
-     println("Initializing Jakarta Servlet >>>>> ")
-   }
- 
-   override fun doGet(req: HttpServletRequest, resp: HttpServletResponse) {
-     val id = req.getParameter("id")
-     val user = req.getParameter("user")
-     ScopedValue.where(ID, id).where(USER, user).run {
-       resp.apply {
-         contentType = "application/json"
-         status = HttpServletResponse.SC_OK
-         writer?.println(exec(req))
-       }
-     }
-   }
- 
-   private fun exec(req: HttpServletRequest): String {
-     // Simulate blocking
-     Thread.sleep(Duration.ofMillis(500))
-     return """
-           {
-             "Id"     : ${ID.orElse("n/a")},
-             "User"   : ${USER.orElse("n/a")},
-             "server" : Jetty-${Jetty.VERSION},
-             "Java"   : ${JavaVersion.VERSION},
-             "OS"     : $OS,
-             "target" : ${req.fullURL},
-             "Thread" : ${Thread.currentThread()}
-           }
-          """
-         .trimIndent()
-   }
- }
- 
- val HttpServletRequest.fullURL: String
-   get() =
-       when (queryString.isNullOrBlank()) {
-         true -> requestURL.toString()
-         else -> requestURL.append('?').append(queryString).toString()
-       }
- 
- val threadInfo
-   get() = Thread.currentThread().run { "$name-${threadId()}-$isVirtual" }
-
-
-
- - - - - - diff --git a/docs/reports/kover/html/ns-18/sources/source-2.html b/docs/reports/kover/html/ns-18/sources/source-2.html deleted file mode 100644 index b5ae7e56..00000000 --- a/docs/reports/kover/html/ns-18/sources/source-2.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - openjdk-playground code coverage report Coverage Report > JettyServerKt - - - - - - -
- - -

Coverage Summary for Class: JettyServerKt (dev.suresh.vthread.jetty)

- - - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
JettyServerKt - - 0% - - - (0/1) - - - - 0% - - - (0/6) - - - - 0% - - - (0/18) - - - - 0% - - - (0/78) - - - - 0% - - - (0/407) - -
- -
-
- - -
- package dev.suresh.vthread.jetty
- 
- import io.mikael.urlbuilder.UrlBuilder
- import jakarta.servlet.http.HttpServlet
- import jakarta.servlet.http.HttpServletRequest
- import jakarta.servlet.http.HttpServletResponse
- import java.net.http.HttpClient
- import java.net.http.HttpRequest
- import java.net.http.HttpResponse.BodyHandlers
- import java.time.Duration
- import java.util.concurrent.Executors
- import kotlin.time.DurationUnit
- import kotlin.time.measureTime
- import org.eclipse.jetty.ee10.servlet.ServletContextHandler
- import org.eclipse.jetty.server.Server
- import org.eclipse.jetty.server.ServerConnector
- import org.eclipse.jetty.util.JavaVersion
- import org.eclipse.jetty.util.Jetty
- 
- fun main() {
-   run()
- }
- 
- fun run(args: Array<String>? = emptyArray()) {
-   val httpPort = 8080
-   println("Starting the Jetty server on $httpPort...")
-   val server = Server(VirtualThreadPool())
- 
-   val connector =
-       ServerConnector(server).apply {
-         port = httpPort
-         acceptQueueSize = 64
-       }
-   server.connectors = arrayOf(connector)
- 
-   val context = ServletContextHandler()
-   context.addServlet(HelloServlet::class.java, "/")
-   server.handler = context
-   server.start()
-   println("Server started at ${server.uri}")
- 
-   val took = measureTime { pumpRequests(server, 50) }
-   println("Took ${took.toDouble(DurationUnit.SECONDS)} seconds")
- 
-   if (args.orEmpty().any { it.equals("--no-shutdown", true) }) {
-     server.join()
-   } else {
-     println("Shutting down the server!")
-     server.stop()
-   }
- }
- 
- fun pumpRequests(server: Server, count: Int, deadlineInSec: Long = 5L) {
-   require(count > 0)
-   println(
-       "Sending $count concurrent requests to ${server.uri} and wait for $deadlineInSec seconds...",
-   )
- 
-   val client =
-       HttpClient.newBuilder()
-           .version(HttpClient.Version.HTTP_1_1)
-           .followRedirects(HttpClient.Redirect.NORMAL)
-           .connectTimeout(Duration.ofSeconds(5))
-           .build()
- 
-   val factory = Thread.ofVirtual().name("VirtualThreadPool-", 1).factory()
-   val execSvc = Executors.newThreadPerTaskExecutor(factory)
-   // val ecs = ExecutorCompletionService<String>(execSvc)
- 
-   val results =
-       execSvc.use { exec ->
-         val user = System.getProperty("user.name", "user")
- 
-         println("--> Sending $count concurrent requests")
-         (1..count).map { idx ->
-           exec.submit<Result<String>> {
-             try {
- 
-               val uri =
-                   UrlBuilder.fromUri(server.uri)
-                       .addParameter("id", idx.toString())
-                       .addParameter("user", user)
-                       .toUri()
- 
-               val req =
-                   HttpRequest.newBuilder()
-                       .uri(uri)
-                       .timeout(Duration.ofSeconds(2))
-                       .header("Content-Type", "application/json")
-                       .GET()
-                       .build()
-               val res = client.send(req, BodyHandlers.ofString())
- 
-               println("<--- $idx. Response($threadInfo): ${res.statusCode()} - ${res.body()}")
-               Result.success(res.body())
-             } catch (t: Throwable) {
-               Result.failure(t)
-             }
-           }
-         }
-       }
- 
-   // Clear the interrupt status
-   println("Checking if the current thread has been interrupted: ${Thread.interrupted()}")
-   val (ok, err) = results.map { it.get() }.partition { it.isSuccess }
- 
-   err.forEachIndexed { i, r ->
-     if (i == 0) println("=== ERRORS ===")
-     val msg =
-         when (val ex = r.exceptionOrNull()) {
-           is InterruptedException -> "Task interrupted/cancelled due to timeout!"
-           else -> ex?.cause?.message
-         }
-     println("ERROR ${i + 1} -> $msg")
-   }
- 
-   println(
-       """
-     SUCCESS: ${ok.size} / ${results.size}
-     FAILURE: ${err.size} / ${results.size}
-     """
-           .trimIndent(),
-   )
- }
- 
- class HelloServlet : HttpServlet() {
-   private val ID = ScopedValue.newInstance<String>()
-   private val USER = ScopedValue.newInstance<String>()
-   private val OS: String = System.getProperty("os.name")
- 
-   init {
-     println("Initializing Jakarta Servlet >>>>> ")
-   }
- 
-   override fun doGet(req: HttpServletRequest, resp: HttpServletResponse) {
-     val id = req.getParameter("id")
-     val user = req.getParameter("user")
-     ScopedValue.where(ID, id).where(USER, user).run {
-       resp.apply {
-         contentType = "application/json"
-         status = HttpServletResponse.SC_OK
-         writer?.println(exec(req))
-       }
-     }
-   }
- 
-   private fun exec(req: HttpServletRequest): String {
-     // Simulate blocking
-     Thread.sleep(Duration.ofMillis(500))
-     return """
-           {
-             "Id"     : ${ID.orElse("n/a")},
-             "User"   : ${USER.orElse("n/a")},
-             "server" : Jetty-${Jetty.VERSION},
-             "Java"   : ${JavaVersion.VERSION},
-             "OS"     : $OS,
-             "target" : ${req.fullURL},
-             "Thread" : ${Thread.currentThread()}
-           }
-          """
-         .trimIndent()
-   }
- }
- 
- val HttpServletRequest.fullURL: String
-   get() =
-       when (queryString.isNullOrBlank()) {
-         true -> requestURL.toString()
-         else -> requestURL.append('?').append(queryString).toString()
-       }
- 
- val threadInfo
-   get() = Thread.currentThread().run { "$name-${threadId()}-$isVirtual" }
-
-
-
- - - - - - diff --git a/docs/reports/kover/html/ns-2/index.html b/docs/reports/kover/html/ns-2/index.html index 86a9b88b..cf93370c 100644 --- a/docs/reports/kover/html/ns-2/index.html +++ b/docs/reports/kover/html/ns-2/index.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/177) + (0/202) @@ -150,7 +150,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/38) + (0/36) @@ -158,7 +158,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK.html b/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK.html index 30d9305e..9ffcfa87 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/177) + (0/202) @@ -186,7 +186,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/38) + (0/36) @@ -194,7 +194,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK_DESC.html b/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK_DESC.html index 0fdd22e3..cfa18ff7 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK_DESC.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_BLOCK_DESC.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/177) + (0/202) @@ -150,7 +150,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/38) + (0/36) @@ -158,7 +158,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS.html b/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS.html index b0d725b6..f00d2975 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0%
- (0/177) + (0/202) @@ -150,7 +150,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -158,7 +158,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS_DESC.html b/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS_DESC.html index 229af695..24aafc2d 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS_DESC.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_CLASS_DESC.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -186,7 +186,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -194,7 +194,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_LINE.html b/docs/reports/kover/html/ns-2/index_SORT_BY_LINE.html index 7f020398..a524ca51 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_LINE.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_LINE.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -150,7 +150,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -158,7 +158,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_LINE_DESC.html b/docs/reports/kover/html/ns-2/index_SORT_BY_LINE_DESC.html index b4d5701a..660e0703 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_LINE_DESC.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_LINE_DESC.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -186,7 +186,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -194,7 +194,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD.html b/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD.html index 78fcfed2..1686f393 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -150,7 +150,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -158,7 +158,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD_DESC.html b/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD_DESC.html index 30b79a90..a315d792 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD_DESC.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_METHOD_DESC.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -186,7 +186,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -194,7 +194,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_NAME_DESC.html b/docs/reports/kover/html/ns-2/index_SORT_BY_NAME_DESC.html index a3bcedb6..ea4fc202 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_NAME_DESC.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_NAME_DESC.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -186,7 +186,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -194,7 +194,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT.html b/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT.html index 28791082..6e7c088c 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -150,7 +150,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -158,7 +158,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT_DESC.html b/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT_DESC.html index ee821663..df728bdc 100644 --- a/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT_DESC.html +++ b/docs/reports/kover/html/ns-2/index_SORT_BY_STATEMENT_DESC.html @@ -76,7 +76,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/39) + (0/37) @@ -84,7 +84,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/177) + (0/202) @@ -186,7 +186,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/38) + (0/36) @@ -194,7 +194,7 @@

Coverage Summary for Package: dev.suresh

0% - (0/158) + (0/183) @@ -221,7 +221,7 @@

Coverage Summary for Package: dev.suresh

diff --git a/docs/reports/kover/html/ns-2/sources/source-1.html b/docs/reports/kover/html/ns-2/sources/source-1.html index a02cf7d9..679b7473 100644 --- a/docs/reports/kover/html/ns-2/sources/source-1.html +++ b/docs/reports/kover/html/ns-2/sources/source-1.html @@ -68,7 +68,7 @@

Coverage Summary for Class: Main (dev.suresh)

0% - (0/37) + (0/35) @@ -76,7 +76,7 @@

Coverage Summary for Class: Main (dev.suresh)

0% - (0/139) + (0/164) @@ -131,7 +131,7 @@

Coverage Summary for Class: Main (dev.suresh)

0% - (0/38) + (0/36) @@ -139,7 +139,7 @@

Coverage Summary for Class: Main (dev.suresh)

0% - (0/158) + (0/183) @@ -154,7 +154,6 @@

Coverage Summary for Class: Main (dev.suresh)

   import static java.lang.System.out;   - import dev.suresh.adt.DOP;  import dev.suresh.ffm.FFMApi;  import dev.suresh.jte.RenderJte;  import dev.suresh.lang.JPMSKt; @@ -199,7 +198,6 @@

Coverage Summary for Class: Main (dev.suresh)

  """;   out.println(textBlock);   out.println(textBlock.translateEscapes()); -  out.println(STR."Record Test: \{new Person("Hello Kotlin", 8)}");     // Lossy conversion in compound assignments. Warning should be thrown if lint is enabled.   var i = 100; @@ -209,7 +207,7 @@

Coverage Summary for Class: Main (dev.suresh)

  new MockServer().run();   new MavenResolver().run();   new RenderJte().run(); -  DOP.run();  JettyServerKt.run(args);   JPMSKt.run();   HelpfulNPE.run(); @@ -218,15 +216,15 @@

Coverage Summary for Class: Main (dev.suresh)

    private void securityProperties() {   var secMgr = System.getSecurityManager(); -  out.println(STR."Security Manager (Deprecated): \{secMgr}"); +  out.printf("Security Manager (Deprecated): %s%n", secMgr);     final String dnsCacheTTL = "networkaddress.cache.ttl";   final String dnsCacheNegTTL = "networkaddress.cache.negative.ttl";   final String disabledAlgorithms = "jdk.tls.disabledAlgorithms";   -  out.println(STR."\{dnsCacheTTL} -> \{Security.getProperty(dnsCacheTTL)}"); -  out.println(STR."\{dnsCacheNegTTL} -> \{Security.getProperty(dnsCacheNegTTL)}"); -  out.println(STR."\{disabledAlgorithms} -> \{Security.getProperty(disabledAlgorithms)}"); +  out.printf("%1s -> %2s%n", dnsCacheTTL, Security.getProperty(dnsCacheTTL)); +  out.printf("%1s -> %2s%n", dnsCacheNegTTL, Security.getProperty(dnsCacheNegTTL)); +  out.printf("%1s -> %2s%n", disabledAlgorithms, Security.getProperty(disabledAlgorithms));     Security.setProperty(dnsCacheTTL, "30");   // Large value for the cache for negative responses is problematic. @@ -273,7 +271,7 @@

Coverage Summary for Class: Main (dev.suresh)

diff --git a/docs/reports/kover/html/ns-2/sources/source-2.html b/docs/reports/kover/html/ns-2/sources/source-2.html index d7c3952b..ef474aa4 100644 --- a/docs/reports/kover/html/ns-2/sources/source-2.html +++ b/docs/reports/kover/html/ns-2/sources/source-2.html @@ -96,7 +96,6 @@

Coverage Summary for Class: Person (dev.suresh)

   import static java.lang.System.out;   - import dev.suresh.adt.DOP;  import dev.suresh.ffm.FFMApi;  import dev.suresh.jte.RenderJte;  import dev.suresh.lang.JPMSKt; @@ -141,7 +140,6 @@

Coverage Summary for Class: Person (dev.suresh)

  """;   out.println(textBlock);   out.println(textBlock.translateEscapes()); -  out.println(STR."Record Test: \{new Person("Hello Kotlin", 8)}");     // Lossy conversion in compound assignments. Warning should be thrown if lint is enabled.   var i = 100; @@ -151,7 +149,7 @@

Coverage Summary for Class: Person (dev.suresh)

  new MockServer().run();   new MavenResolver().run();   new RenderJte().run(); -  DOP.run(); +    JettyServerKt.run(args);   JPMSKt.run();   HelpfulNPE.run(); @@ -160,15 +158,15 @@

Coverage Summary for Class: Person (dev.suresh)

    private void securityProperties() {   var secMgr = System.getSecurityManager(); -  out.println(STR."Security Manager (Deprecated): \{secMgr}"); +  out.printf("Security Manager (Deprecated): %s%n", secMgr);     final String dnsCacheTTL = "networkaddress.cache.ttl";   final String dnsCacheNegTTL = "networkaddress.cache.negative.ttl";   final String disabledAlgorithms = "jdk.tls.disabledAlgorithms";   -  out.println(STR."\{dnsCacheTTL} -> \{Security.getProperty(dnsCacheTTL)}"); -  out.println(STR."\{dnsCacheNegTTL} -> \{Security.getProperty(dnsCacheNegTTL)}"); -  out.println(STR."\{disabledAlgorithms} -> \{Security.getProperty(disabledAlgorithms)}"); +  out.printf("%1s -> %2s%n", dnsCacheTTL, Security.getProperty(dnsCacheTTL)); +  out.printf("%1s -> %2s%n", dnsCacheNegTTL, Security.getProperty(dnsCacheNegTTL)); +  out.printf("%1s -> %2s%n", disabledAlgorithms, Security.getProperty(disabledAlgorithms));     Security.setProperty(dnsCacheTTL, "30");   // Large value for the cache for negative responses is problematic. @@ -215,7 +213,7 @@

Coverage Summary for Class: Person (dev.suresh)

diff --git a/docs/reports/kover/html/ns-3/index.html b/docs/reports/kover/html/ns-3/index.html index 6da61cf5..fe6a3ff6 100644 --- a/docs/reports/kover/html/ns-3/index.html +++ b/docs/reports/kover/html/ns-3/index.html @@ -3,7 +3,7 @@ - openjdk-playground code coverage report Coverage Report > dev.suresh.adt + openjdk-playground code coverage report Coverage Report > dev.suresh.atomic + + + + + +
+ + +

Coverage Summary for Class: FloatingPointKt (dev.suresh.lang)

+ + + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % + + Instruction, % +
FloatingPointKt + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + + 0% + + + (0/19) + + + + 0% + + + (0/101) + +
+ +
+
+ + +
+ package dev.suresh.lang
+ 
+ import java.math.BigDecimal
+ import kotlin.math.*
+ 
+ /**
+  * 64-bit floating points can only represent numbers which are sums of powers of 2.
+  *
+  * [Floating Point in 60 Seconds](https://www.youtube.com/watch?v=Vs7LRqnZLaI)
+  */
+ fun main() {
+   // Double-precision 64-bit IEEE 754 floating point
+   val dx = 0.1
+   val dy = 0.2
+ 
+   // Single-precision 32-bit IEEE 754 floating point
+   val fx = 0.1f
+   val fy = 0.2f
+ 
+   // 0.1 and 0.2 can't represent precisely. It is hidden from you by the fact that
+   // floating point number rounds the result when it prints.
+ 
+   println("[Double] dx: $dx, dy: $dy") // prints x: 0.1, y: 0.2
+   println("[Float]  fx: $fx, fy: $fy \n") // prints x: 0.1, y: 0.2
+ 
+   // The floating error can accumulate on other operations
+   val dz = dx + dy
+   val fz = fx + fy
+ 
+   println("[Double] $dx + $dy = $dz") // prints 0.30000000000000004
+   println("[Float]  $fx + $fy = $fz \n") // prints 0.3
+ 
+   // 0.1 and 0.2 are slightly larger than it appears and 0.3 is smaller.
+   println(BigDecimal(0.1)) // prints 0.1000000000000000055511151231257827021181583404541015625
+   println(BigDecimal(0.2)) // prints 0.200000000000000011102230246251565404236316680908203125
+   println(BigDecimal(0.3)) // prints 0.299999999999999988897769753748434595763683319091796875
+ 
+   val x = BigDecimal(0.1).add(BigDecimal(0.2))
+   println(x) // prints 0.3000000000000000166533453693773481063544750213623046875
+   println(x.toDouble()) // prints 30000000000000004
+   // Use canonical string representation provided by the Double.toString(double) method
+   println(BigDecimal.valueOf(0.3)) // prints 0.3
+ 
+   // To reduce the accumulated error, is to use set precision.
+   println("\nReducing the accumulated error")
+   println(round(dz * 1e8) / 1e8) // prints 0.3
+ }
+
+
+
+ + + + + + diff --git a/docs/reports/kover/html/ns-4/sources/source-2.html b/docs/reports/kover/html/ns-d/sources/source-4.html similarity index 57% rename from docs/reports/kover/html/ns-4/sources/source-2.html rename to docs/reports/kover/html/ns-d/sources/source-4.html index 6815a48c..01c7c08f 100644 --- a/docs/reports/kover/html/ns-4/sources/source-2.html +++ b/docs/reports/kover/html/ns-d/sources/source-4.html @@ -5,7 +5,7 @@ - openjdk-playground code coverage report Coverage Report > Counter + openjdk-playground code coverage report Coverage Report > Foo + + + + + +
+ + +

Coverage Summary for Class: HiddenClassKt (dev.suresh.lang)

+ + + + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % + + Instruction, % +
HiddenClassKt + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/18) + + + + 0% + + + (0/100) + +
+ +
+
+ + +
+ package dev.suresh.lang
+ 
+ import java.lang.invoke.*
+ import java.util.*
+ 
+ /**
+  * Run with "-XX:+UnlockDiagnosticVMOptions -XX:+ShowHiddenFrames" to see the hidden classes.
+  *
+  * --add-opens java.base/java.util=ALL-UNNAMED
+  *
+  * @since JDK15
+  */
+ fun main() {
+   println("Reading Foo bytes...")
+   val clBytes = Foo::class.java.toBytes() ?: error("Can't load Foo!")
+ 
+   println(HiddenData::class.java.toBytes()?.decodeToString())
+   println("-------------------------")
+   val t = HiddenData("kotlin")
+   println(t.javaClass.toBytes()?.decodeToString())
+ 
+   val lookup = MethodHandles.lookup().defineHiddenClass(clBytes, true)
+   val run = lookup.findStatic(lookup.lookupClass(), "run", MethodType.methodType(Void.TYPE))
+   // run.invokeExact()
+ 
+   val mh = MethodHandles.privateLookupIn(Formatter::class.java, MethodHandles.lookup())
+   println(MethodHandles.lookup())
+   println(mh.lookupClass())
+ 
+   println(mh.lookupModes())
+   val m =
+       mh.findVirtual(
+           mh.lookupClass(),
+           "parse",
+           MethodType.methodType(java.util.List::class.java, java.lang.String::class.java))
+ 
+   println(m.invoke(Formatter(), "%s"))
+   // Concurrent
+ }
+ 
+ interface Foo {
+   companion object {
+ 
+     @JvmStatic
+     fun run() {
+       println("Inside Foo")
+       error("Error from $methodName")
+     }
+   }
+ }
+ 
+ data class HiddenData(val name: String)
+
+
+
+ + + + + + diff --git a/docs/reports/kover/html/ns-a/sources/source-4.html b/docs/reports/kover/html/ns-d/sources/source-6.html similarity index 52% rename from docs/reports/kover/html/ns-a/sources/source-4.html rename to docs/reports/kover/html/ns-d/sources/source-6.html index d93a2b30..df8e78ff 100644 --- a/docs/reports/kover/html/ns-a/sources/source-4.html +++ b/docs/reports/kover/html/ns-d/sources/source-6.html @@ -5,7 +5,7 @@ - openjdk-playground code coverage report Coverage Report > Dog + openjdk-playground code coverage report Coverage Report > HiddenData + + + + + +
+ + +

Coverage Summary for Class: JPMSKt (dev.suresh.lang)

+ + + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % + + Instruction, % +
JPMSKt + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + + 0% + + + (0/30) + + + + 0% + + + (0/142) + +
+ +
+
+ + +
+ package dev.suresh.lang
+ 
+ import com.javax0.sourcebuddy.Compiler
+ import java.io.*
+ import java.lang.invoke.*
+ import java.lang.reflect.Modifier
+ import java.security.*
+ import java.util.*
+ import java.util.spi.*
+ 
+ fun main() {
+   run()
+ }
+ 
+ fun run() {
+   val modules = ModuleLayer.boot().modules()
+   println("\nFound ${modules.size} jdk modules!")
+ 
+   val jsModule =
+       ModuleLayer.boot().findModule("jdk.jshell").orElseGet { error("No JShell module found!") }
+ 
+   // Using Tool API
+   jsModule.classLoader.using {
+     val sl = ServiceLoader.load(javax.tools.Tool::class.java)
+     val jShell = sl.first { it.name() == "jshell" }
+     println(jShell.name())
+   }
+ 
+   // Using new ToolsProvider API
+   val jdeps =
+       ToolProvider.findFirst("jdeps").orElseGet { error("jdeps tool is missing in the JDK!") }
+   val out = StringWriter()
+   val pw = PrintWriter(out)
+   jdeps.run(pw, pw, "--version")
+ 
+   val version = out.toString()
+   println("jdeps version: $version")
+ 
+   // compileJava()
+   // showAllSecurityProperties()
+ }
+ 
+ fun reflections() {
+   println("String isFinal = ${Modifier.isFinal(String::class.java.modifiers)}")
+ }
+ 
+ fun compileJava() {
+   Compiler.java()
+       .from(
+           """
+       | package dev.suresh;
+       | public class TestApp implements Runnable {
+       |    @Override
+       |    public void run() {
+       |      System.out.println("Hello from TestApp!");
+       |    }
+       | }
+       """
+               .trimMargin())
+       .compile()
+       .load()
+       .newInstance(Runnable::class.java)
+       .run()
+ }
+ 
+ /** @see [VarHandles](https://www.baeldung.com/java-variable-handles) */
+ private fun showAllSecurityProperties() {
+   // Should add this VM args "--add-opens=java.base/java.security=ALL-UNNAMED"
+   val lookup = MethodHandles.lookup()
+   val varHandle =
+       MethodHandles.privateLookupIn(Security::class.java, lookup)
+           .findStaticVarHandle(Security::class.java, "props", Properties::class.java)
+   val sec = varHandle.get() as Properties
+   sec.forEach { k: Any, v: Any -> println("$k --> $v") }
+ }
+
+
+
+ + + + + + diff --git a/docs/reports/kover/html/ns-18/sources/source-3.html b/docs/reports/kover/html/ns-d/sources/source-8.html similarity index 58% rename from docs/reports/kover/html/ns-18/sources/source-3.html rename to docs/reports/kover/html/ns-d/sources/source-8.html index 272f7a42..85339ea8 100644 --- a/docs/reports/kover/html/ns-18/sources/source-3.html +++ b/docs/reports/kover/html/ns-d/sources/source-8.html @@ -5,7 +5,7 @@ - openjdk-playground code coverage report Coverage Report > VirtualThreadPool + openjdk-playground code coverage report Coverage Report > Logger + + + + + +
+ + +

Coverage Summary for Class: TextKt (dev.suresh.lang)

+ + + + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % + + Instruction, % +
TextKt + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/4) + + + + 0% + + + (0/21) + + + + 0% + + + (0/134) + +
+ +
+
+ + +
+ package dev.suresh.lang
+ 
+ import java.util.*
+ 
+ /**
+  * https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/lang/Character.html#unicode
+  * https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
+  * https://docs.oracle.com/javase/tutorial/i18n/text/char.html
+  */
+ fun main() {
+ 
+   // String that contains the US flag and a grapheme for a 4-member-family.
+   val text = "🇺🇸👨‍👩‍👧‍👦"
+ 
+   println(
+       """
+       String : $text
+       String Length : ${text.length}  (Number of Unicode code units, characters as fixed-width 16-bit entities)
+       Code Point Size : ${text.codePoints().count()} (Any surrogate pairs encountered in the sequence are combined)
+       UTF-8 ByteArray Size : ${text.encodeToByteArray().size}
+       """
+           .trimIndent())
+ 
+   val codePoints = text.codePoints().toArray()
+   for (i in codePoints.indices) {
+     println(HexFormat.of().withPrefix("0x").toHexDigits(codePoints[i]))
+     println(String(codePoints, 0, i + 1))
+   }
+ 
+   println("---CodePoint to String---")
+   println(codePoints.codePointsToString())
+   println(codePoints.codePointsToString(","))
+   println("--------------------------")
+ 
+   // val fmt =
+ 
+   //  val bit = BreakIterator.getCharacterInstance()
+   //  // bb.set
+   //  while (bb.next() != BreakIterator.DONE) {
+   //    println(Character.toString(bb.current()))
+   //  }
+   //
+   //  println("----")
+   //  "🇺🇸👨‍👩‍👧‍👦".codePoints().forEach { String(IntArray(it), 0, 1) }
+   //  println("----")
+   //
+   //  "🇺🇸👨‍👩‍👧‍👦".codePoints().mapToObj(Character::toString).forEach { println(it) }
+ }
+ 
+ fun IntArray.codePointsToString(): String = buildString {
+   for (cp in this@codePointsToString) {
+     appendCodePoint(cp)
+   }
+ }
+ 
+ fun IntArray.codePointsToString(separator: String = "") =
+     joinToString(separator) { Character.toString(it) }
+
+
+
+ + + + + + diff --git a/docs/reports/kover/html/ns-e/sources/source-a.html b/docs/reports/kover/html/ns-d/sources/source-a.html similarity index 98% rename from docs/reports/kover/html/ns-e/sources/source-a.html rename to docs/reports/kover/html/ns-d/sources/source-a.html index 8851b9ff..02ad89ab 100644 --- a/docs/reports/kover/html/ns-e/sources/source-a.html +++ b/docs/reports/kover/html/ns-d/sources/source-a.html @@ -235,7 +235,7 @@

Coverage Summary for Class: User (dev.suresh.lang)

diff --git a/docs/reports/kover/html/ns-e/index.html b/docs/reports/kover/html/ns-e/index.html index b9a3f46a..bc6e6db2 100644 --- a/docs/reports/kover/html/ns-e/index.html +++ b/docs/reports/kover/html/ns-e/index.html @@ -3,7 +3,7 @@ - openjdk-playground code coverage report Coverage Report > dev.suresh.lang + openjdk-playground code coverage report Coverage Report > dev.suresh.misc - - - - - -
- - -

Coverage Summary for Class: KotlinADTKt (dev.suresh.misc)

- - - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
KotlinADTKt - - 0% - - - (0/1) - - - - 0% - - - (0/2) - - - - 25% - - - (2/8) - - - - 0% - - - (0/6) - - - - 0% - - - (0/58) - -
- -
-
- - -
- package dev.suresh.misc
- 
- import kotlin.math.*
- 
- sealed class Tree<out T>
- 
- data object Empty : Tree<Nothing>()
- 
- data class Node<T>(val value: T, val right: Tree<T> = Empty, val left: Tree<T> = Empty) : Tree<T>()
- 
- fun <T : Number> Tree<T>.sum(): Long =
-     when (this) {
-       Empty -> 0
-       is Node -> value.toLong() + left.sum() + right.sum()
-     }
- 
- fun <T> Tree<T>.depth(): Int =
-     when (this) {
-       Empty -> 0
-       is Node -> max(left.depth(), right.depth()) + 1
-     }
- 
- // fun <T> Tree<T>.printTree(depth: Int = 0) {
- //    val indent = " ".repeat(depth)
- //    when (this) {
- //        Empty -> return
- //        is Node -> {
- //            println("$indent $value")
- //            println("$indent ${left.}")
- //            value.toLong() + left.sum() + right.sum()
- //        }
- //    }
- // }
-
-
-
- - - - - - diff --git a/docs/reports/kover/html/ns-f/sources/source-4.html b/docs/reports/kover/html/ns-f/sources/source-4.html deleted file mode 100644 index d654a773..00000000 --- a/docs/reports/kover/html/ns-f/sources/source-4.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - openjdk-playground code coverage report Coverage Report > KotlinxTimeKt - - - - - - -
- - -

Coverage Summary for Class: KotlinxTimeKt (dev.suresh.misc)

- - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
KotlinxTimeKt - - 0% - - - (0/1) - - - - 0% - - - (0/4) - - - - - 0% - - - (0/40) - - - - 0% - - - (0/209) - -
- -
-
- - -
- package dev.suresh.misc
- 
- import java.time.Month
- import java.time.format.*
- import kotlinx.datetime.*
- import kotlinx.datetime.Clock
- import kotlinx.datetime.Instant
- import kotlinx.datetime.LocalDate
- import kotlinx.datetime.LocalDateTime
- 
- fun main() {
-   physicalTime()
-   civilTime()
- }
- 
- /**
-  * Wall clock/calender time.
-  *
-  * Duration - Temporal amount deals with DateTime Period - Temporal amount deals with Date
-  */
- private fun civilTime() {
-   val iso8601String = "2020-10-18T06:41:05.123743"
- 
-   val wallCalender = LocalDate(2020, Month.OCTOBER, 17)
-   println(wallCalender)
-   println(LocalDate.parse("2020-10-20"))
- 
-   val wallClock = LocalDateTime(2020, Month.OCTOBER, 17, 10, 30, 10, 12345678)
-   println(wallClock)
-   println(LocalDateTime.parse(iso8601String))
- 
-   // Formatter is not yet available for kotlinx.time
-   val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS")
-   val dateTime = java.time.LocalDateTime.parse("2020-10-18 06:41:05.123", formatter)
-   println(dateTime)
- 
-   val tz = TimeZone.currentSystemDefault()
-   val now = Clock.System.now()
-   val zonedDateTime = now.toLocalDateTime(tz)
-   println("Instant now $now")
-   println("ZonedDateTime  $zonedDateTime")
- 
-   val local = wallCalender.atTime(14, 51, 10, 234)
-   TimeZone.availableZoneIds
-       .map { it.split("/") }
-       .groupBy { it.first() }
-       .forEach { (t, u) ->
-         println(t)
-         println("--------")
-         u.forEachIndexed { index, list -> }
-       }
- 
-   println(
-       local.toInstant(TimeZone.of("Europe/Berlin")).toLocalDateTime(TimeZone.of("Asia/Calcutta")))
- }
- 
- /** Epoch time. */
- private fun physicalTime() {
-   val timestamp = Clock.System.now()
-   timestamp.testPrint()
- 
-   Instant.DISTANT_FUTURE.testPrint()
-   Instant.DISTANT_PAST.testPrint()
- 
-   Instant.parse("2020-10-18T06:41:05.123Z").testPrint()
-   Instant.fromEpochMilliseconds(1603003265000).testPrint()
-   Instant.fromEpochSeconds(1603003265, 123743000).testPrint()
- }
- 
- fun Instant.testPrint() {
-   println("toString               : ${toString()}")
-   println("Epoch Seconds          : $epochSeconds")
-   println("Epoch Millis           : ${toEpochMilliseconds()}")
-   println("Nanoseconds of second  : $nanosecondsOfSecond")
-   println("----------------------------------------------")
- }
-
-
-
- - - - - - diff --git a/docs/reports/kover/html/ns-f/sources/source-5.html b/docs/reports/kover/html/ns-f/sources/source-5.html deleted file mode 100644 index 3abf1992..00000000 --- a/docs/reports/kover/html/ns-f/sources/source-5.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - openjdk-playground code coverage report Coverage Report > Node - - - - - - -
- - -

Coverage Summary for Class: Node (dev.suresh.misc)

- - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
Node - - 0% - - - (0/1) - - - - 0% - - - (0/1) - - - - - 0% - - - (0/1) - - - - 0% - - - (0/37) - -
- -
-
- - -
- package dev.suresh.misc
- 
- import kotlin.math.*
- 
- sealed class Tree<out T>
- 
- data object Empty : Tree<Nothing>()
- 
- data class Node<T>(val value: T, val right: Tree<T> = Empty, val left: Tree<T> = Empty) : Tree<T>()
- 
- fun <T : Number> Tree<T>.sum(): Long =
-     when (this) {
-       Empty -> 0
-       is Node -> value.toLong() + left.sum() + right.sum()
-     }
- 
- fun <T> Tree<T>.depth(): Int =
-     when (this) {
-       Empty -> 0
-       is Node -> max(left.depth(), right.depth()) + 1
-     }
- 
- // fun <T> Tree<T>.printTree(depth: Int = 0) {
- //    val indent = " ".repeat(depth)
- //    when (this) {
- //        Empty -> return
- //        is Node -> {
- //            println("$indent $value")
- //            println("$indent ${left.}")
- //            value.toLong() + left.sum() + right.sum()
- //        }
- //    }
- // }
-
-
-
- - - - - - diff --git a/docs/reports/kover/html/ns-f/sources/source-6.html b/docs/reports/kover/html/ns-f/sources/source-6.html deleted file mode 100644 index 8977cbcb..00000000 --- a/docs/reports/kover/html/ns-f/sources/source-6.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - openjdk-playground code coverage report Coverage Report > Node1 - - - - - - -
- - -

Coverage Summary for Class: Node1 (dev.suresh.misc)

- - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
Node1 - - 0% - - - (0/1) - - - - 0% - - - (0/1) - - - - - 0% - - - (0/1) - - - - 0% - - - (0/34) - -
- -
-
- - -
- package dev.suresh.misc
- 
- fun main2() {
-   val root =
-       generateSequence(Node1(1)) { prev ->
-             // Repeatedly generate parent nodes that link to the previous node as their left
-             // children
-             Node1(prev.data + 1, prev, null)
-           }
-           .take(100_000)
-           .last()
-   println(root.depth)
- }
- 
- data class Node1<T>(val data: T, val left: Node1<T>? = null, val right: Node1<T>? = null)
- 
- val <T> Node1<T>?.depth: Int
-   get() =
-       when (this) {
-         null -> 0
-         else -> maxOf(left.depth, right.depth) + 1
-       }
-
-
-
- - - - - - diff --git a/docs/reports/kover/html/ns-f/sources/source-8.html b/docs/reports/kover/html/ns-f/sources/source-8.html deleted file mode 100644 index 5c2cb201..00000000 --- a/docs/reports/kover/html/ns-f/sources/source-8.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - - openjdk-playground code coverage report Coverage Report > Tree - - - - - - -
- - -

Coverage Summary for Class: Tree (dev.suresh.misc)

- - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
Tree - - 0% - - - (0/1) - - - - 0% - - - (0/1) - - - - - 0% - - - (0/1) - - - - 0% - - - (0/2) - -
- -
-
- - -
- package dev.suresh.misc
- 
- import kotlin.math.*
- 
- sealed class Tree<out T>
- 
- data object Empty : Tree<Nothing>()
- 
- data class Node<T>(val value: T, val right: Tree<T> = Empty, val left: Tree<T> = Empty) : Tree<T>()
- 
- fun <T : Number> Tree<T>.sum(): Long =
-     when (this) {
-       Empty -> 0
-       is Node -> value.toLong() + left.sum() + right.sum()
-     }
- 
- fun <T> Tree<T>.depth(): Int =
-     when (this) {
-       Empty -> 0
-       is Node -> max(left.depth(), right.depth()) + 1
-     }
- 
- // fun <T> Tree<T>.printTree(depth: Int = 0) {
- //    val indent = " ".repeat(depth)
- //    when (this) {
- //        Empty -> return
- //        is Node -> {
- //            println("$indent $value")
- //            println("$indent ${left.}")
- //            value.toLong() + left.sum() + right.sum()
- //        }
- //    }
- // }
-
-
-
- - - - - - diff --git a/docs/reports/kover/html/ns-f/sources/source-9.html b/docs/reports/kover/html/ns-f/sources/source-9.html deleted file mode 100644 index fa6be827..00000000 --- a/docs/reports/kover/html/ns-f/sources/source-9.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - openjdk-playground code coverage report Coverage Report > TreeTestKt - - - - - - -
- - -

Coverage Summary for Class: TreeTestKt (dev.suresh.misc)

- - - - - - - - - - - - - - - - - - - -
Class - Class, % - - Method, % - - Branch, % - - Line, % - - Instruction, % -
TreeTestKt - - 0% - - - (0/1) - - - - 0% - - - (0/3) - - - - 0% - - - (0/2) - - - - 0% - - - (0/9) - - - - 0% - - - (0/47) - -
- -
-
- - -
- package dev.suresh.misc
- 
- fun main2() {
-   val root =
-       generateSequence(Node1(1)) { prev ->
-             // Repeatedly generate parent nodes that link to the previous node as their left
-             // children
-             Node1(prev.data + 1, prev, null)
-           }
-           .take(100_000)
-           .last()
-   println(root.depth)
- }
- 
- data class Node1<T>(val data: T, val left: Node1<T>? = null, val right: Node1<T>? = null)
- 
- val <T> Node1<T>?.depth: Int
-   get() =
-       when (this) {
-         null -> 0
-         else -> maxOf(left.depth, right.depth) + 1
-       }
-
-
-
- - - - - - diff --git a/docs/reports/tests/test/classes/dev.suresh.json.KotlinTest.html b/docs/reports/tests/test/classes/dev.suresh.json.KotlinTest.html index a168b539..9e9d2933 100644 --- a/docs/reports/tests/test/classes/dev.suresh.json.KotlinTest.html +++ b/docs/reports/tests/test/classes/dev.suresh.json.KotlinTest.html @@ -41,7 +41,7 @@

KotlinTest

-
0.397s
+
0.467s

duration

@@ -79,17 +79,17 @@

Tests

coroutineTest() -0.009s +0.013s passed dispatcherTest() -0.379s +0.440s passed version() -0.009s +0.014s passed @@ -114,7 +114,7 @@

Standard output

Generated by -Gradle 8.7 at Mar 30, 2024, 8:05:51 PM

+Gradle 8.8 at Jun 15, 2024, 8:20:16 PM

diff --git a/docs/reports/tests/test/index.html b/docs/reports/tests/test/index.html index 2ca339a7..ac398e7c 100644 --- a/docs/reports/tests/test/index.html +++ b/docs/reports/tests/test/index.html @@ -38,7 +38,7 @@

Test Summary

-
0.397s
+
0.467s

duration

@@ -85,7 +85,7 @@

Packages

3 0 0 -0.397s +0.467s 100% @@ -112,7 +112,7 @@

Classes

3 0 0 -0.397s +0.467s 100% @@ -126,7 +126,7 @@

Classes

Generated by -Gradle 8.7 at Mar 30, 2024, 8:05:51 PM

+Gradle 8.8 at Jun 15, 2024, 8:20:16 PM

diff --git a/docs/reports/tests/test/packages/dev.suresh.json.html b/docs/reports/tests/test/packages/dev.suresh.json.html index 59737184..25832974 100644 --- a/docs/reports/tests/test/packages/dev.suresh.json.html +++ b/docs/reports/tests/test/packages/dev.suresh.json.html @@ -40,7 +40,7 @@

Package dev.suresh.json

-
0.397s
+
0.467s

duration

@@ -83,7 +83,7 @@

Classes

3 0 0 -0.397s +0.467s 100% @@ -96,7 +96,7 @@

Classes

Generated by -Gradle 8.7 at Mar 30, 2024, 8:05:51 PM

+Gradle 8.8 at Jun 15, 2024, 8:20:16 PM