From fbe07b1d16cb04a16371caa3231d60e17b0f6a5f Mon Sep 17 00:00:00 2001
From: MASES Public Developers Team
<94312179+masesdevelopers@users.noreply.github.com>
Date: Sat, 25 Nov 2023 20:36:15 +0100
Subject: [PATCH] Added .NET 8 (#147)
* Fix for empty types
* Added ability to avoid all methods and removed IIUnknownInterfaceType due to some incompatibility
---
.../JCOReflectorCLI8.0.runtimeconfig.json | 9 +
.../workflows/createjars_core8.0_linux.job | 13 +
.../workflows/createjars_core8.0_win19.job | 13 +
.github/workflows/docs.yaml | 40 ++-
.github/workflows/linux.yaml | 106 ++++--
.github/workflows/maven.yaml | 63 +++-
.github/workflows/pullrequests.yaml | 63 +++-
.github/workflows/reflect_net8.0.job | 20 ++
.github/workflows/release.yaml | 78 ++++-
.github/workflows/testbranch.yaml | 131 +++++--
.github/workflows/windows.yaml | 136 +++++--
.gitmodules | 3 +
README.md | 11 +-
docs/net8.0 | 1 +
src/jvm/README.md | 331 ++++++++++++++++++
src/jvm/src/net8.0/assemblies.list | 290 +++++++++++++++
src/jvm/statistics/net8.0/Statistics.csv | 2 +
src/net/CLI/JCOReflectorCLI.csproj | 4 +-
src/net/CLI/JCOReflectorCLI.nuspec | 3 +-
src/net/CLI/Program.cs | 2 +
src/net/GUI/JCOReflectorGUI.csproj | 4 +-
src/net/GUI/MainWindow.xaml.cs | 4 +
src/net/engine/Const.cs | 56 +--
src/net/engine/JCOReflectorEngine.csproj | 7 +-
src/net/engine/Reflector.cs | 5 +-
25 files changed, 1247 insertions(+), 148 deletions(-)
create mode 100644 .github/workflows/JCOReflectorCLI8.0.runtimeconfig.json
create mode 100644 .github/workflows/createjars_core8.0_linux.job
create mode 100644 .github/workflows/createjars_core8.0_win19.job
create mode 100644 .github/workflows/reflect_net8.0.job
create mode 160000 docs/net8.0
create mode 100644 src/jvm/src/net8.0/assemblies.list
create mode 100644 src/jvm/statistics/net8.0/Statistics.csv
diff --git a/.github/workflows/JCOReflectorCLI8.0.runtimeconfig.json b/.github/workflows/JCOReflectorCLI8.0.runtimeconfig.json
new file mode 100644
index 00000000000..e7f9cfcdb4c
--- /dev/null
+++ b/.github/workflows/JCOReflectorCLI8.0.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.WindowsDesktop.App",
+ "version": "8.0.0"
+ }
+ }
+}
diff --git a/.github/workflows/createjars_core8.0_linux.job b/.github/workflows/createjars_core8.0_linux.job
new file mode 100644
index 00000000000..f816d957ea9
--- /dev/null
+++ b/.github/workflows/createjars_core8.0_linux.job
@@ -0,0 +1,13 @@
+
+
+
+ Error
+ src/jvm
+ true
+ jdk
+ Version8
+
+ bin/net8.0
+ false
+ true
+
diff --git a/.github/workflows/createjars_core8.0_win19.job b/.github/workflows/createjars_core8.0_win19.job
new file mode 100644
index 00000000000..87a072fb15b
--- /dev/null
+++ b/.github/workflows/createjars_core8.0_win19.job
@@ -0,0 +1,13 @@
+
+
+
+ Error
+ src\jvm
+ true
+ C:\hostedtoolcache\windows\Java_Adopt_jdk\13.0.2-8.1\x64
+ Version8
+
+ bin\net8.0
+ false
+ true
+
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 89670269243..ac5f49c836e 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -84,6 +84,7 @@ jobs:
run: |
Copy-Item .github\workflows\JCOReflectorCLI6.0.runtimeconfig.json -Destination bin\net6.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
Copy-Item .github\workflows\JCOReflectorCLI7.0.runtimeconfig.json -Destination bin\net7.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
+ Copy-Item .github\workflows\JCOReflectorCLI8.0.runtimeconfig.json -Destination bin\net8.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
- name: Switch to master net6.0 help file
run: |
@@ -96,6 +97,12 @@ jobs:
cd .\docs\net7.0
git checkout master
cd ..\..
+
+ - name: Switch to master net8.0 help file
+ run: |
+ cd .\docs\net8.0
+ git checkout master
+ cd ..\..
- name: Switch to master net462 help file
run: |
@@ -112,7 +119,10 @@ jobs:
- name: Clean net7.0 help file folders
run: Get-ChildItem -Path .\docs\net7.0 -Exclude .git,LICENSE,README.md | Remove-Item -Recurse -Force
-
+
+ - name: Clean net8.0 help file folders
+ run: Get-ChildItem -Path .\docs\net8.0 -Exclude .git,LICENSE,README.md | Remove-Item -Recurse -Force
+
- name: Clean net462 help file folders
run: Get-ChildItem -Path .\docs\net462 -Exclude .git,LICENSE,README.md | Remove-Item -Recurse -Force
@@ -135,7 +145,11 @@ jobs:
- name: Build net7.0 Java Help files
run: dotnet bin\net7.0\MASES.JCOReflectorCLI.dll -JobType BuildDocs -JobFile .github\workflows\builddocs_win19.job -CommitVersion ${{ env.GITHUB_COMMIT_MESSAGE }} -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
-
+
+ - name: Build net8.0 Java Help files
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType BuildDocs -JobFile .github\workflows\builddocs_win19.job -CommitVersion ${{ env.GITHUB_COMMIT_MESSAGE }} -JDKFolder %JAVA_HOME_11_X64%
+ shell: cmd
+
- name: Build net462 Java Help files
run: .\bin\net462\MASES.JCOReflectorCLI -JobType BuildDocs -JobFile .github\workflows\builddocs_win19.job -CommitVersion ${{ env.GITHUB_COMMIT_MESSAGE }} -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
@@ -163,7 +177,16 @@ jobs:
shell: cmd
env:
GITHUB_WORKSPACE: $GITHUB_WORKSPACE
-
+
+ - name: Commit changes to net8.0 help file
+ run: |
+ cd .\docs\net8.0
+ %GITHUB_WORKSPACE%\.github\workflows\commit.cmd github-actions 41898282+github-actions[bot]@users.noreply.github.com "Update help file to commit masesgroup/JCOReflector@${{ env.GITHUB_COMMIT_MESSAGE }}"
+ cd ..\..\..
+ shell: cmd
+ env:
+ GITHUB_WORKSPACE: $GITHUB_WORKSPACE
+
- name: Commit changes to net462 help file
run: |
cd .\docs\net462
@@ -204,6 +227,17 @@ jobs:
SUPER_SECRET: ${{ secrets.DOCS_API_TOKEN_GITHUB }}
REPO: masesgroup/NET7Docs
+ - name: Push changes to net8.0 help file
+ run: |
+ cd .\docs\net8.0
+ %GITHUB_WORKSPACE%\.github\workflows\push.cmd %REPO%
+ cd ..\..
+ shell: cmd
+ env:
+ GITHUB_WORKSPACE: $GITHUB_WORKSPACE
+ SUPER_SECRET: ${{ secrets.DOCS_API_TOKEN_GITHUB }}
+ REPO: masesgroup/NET8Docs
+
- name: Push changes to net462 help file
run: |
cd .\docs\net462
diff --git a/.github/workflows/linux.yaml b/.github/workflows/linux.yaml
index 935d68c391d..47d55f56274 100644
--- a/.github/workflows/linux.yaml
+++ b/.github/workflows/linux.yaml
@@ -70,35 +70,27 @@ jobs:
fetch-depth: '1'
- name: Extract file
- run: .github/workflows/GetLicense.ps1 ${{ secrets.JCOBRIDGE_2_5_8 }} $env:GITHUB_WORKSPACE/JCOBridge.lic
+ run: .github/workflows/GetLicense.ps1 ${{ secrets.JCOBRIDGE_2_5_9 }} $env:GITHUB_WORKSPACE/JCOBridge.lic
shell: pwsh
- # Install .NET SDKs
- - name: Setup .NET 6.0
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 6.0.x
-
- - name: Setup .NET 7.0
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 7.0.x
-
# Runs a set of commands using the runners shell
- name: Build JCOReflectorCLI
run: |
dotnet build --no-incremental --framework net6.0 --configuration Release src/net/JCOReflectorCLI.sln
- dotnet build --no-incremental --framework net7.0 --configuration Release src/net/JCOReflectorCLI.sln
+ dotnet build --no-incremental --framework net7.0 --configuration Release src/net/JCOReflectorCLI.sln
+ dotnet build --no-incremental --framework net8.0 --configuration Release src/net/JCOReflectorCLI.sln
- name: Build Java files
run: |
dotnet bin/net6.0/MASES.JCOReflectorCLI.dll -JobType Build -JDKFolder $JAVA_HOME_11_X64 -JobFile .github/workflows/build_linux.job
dotnet bin/net7.0/MASES.JCOReflectorCLI.dll -JobType Build -JDKFolder $JAVA_HOME_11_X64 -JobFile .github/workflows/build_linux.job
+ dotnet bin/net8.0/MASES.JCOReflectorCLI.dll -JobType Build -JDKFolder $JAVA_HOME_11_X64 -JobFile .github/workflows/build_linux.job
- name: Build JAR files
run: |
dotnet bin/net6.0/MASES.JCOReflectorCLI.dll -JobType CreateJars -JDKFolder $JAVA_HOME_11_X64 -JobFile .github/workflows/createjars_core6.0_linux.job
dotnet bin/net7.0/MASES.JCOReflectorCLI.dll -JobType CreateJars -JDKFolder $JAVA_HOME_11_X64 -JobFile .github/workflows/createjars_core7.0_linux.job
+ dotnet bin/net8.0/MASES.JCOReflectorCLI.dll -JobType CreateJars -JDKFolder $JAVA_HOME_11_X64 -JobFile .github/workflows/createjars_core8.0_linux.job
- uses: actions/setup-java@v3
with:
@@ -109,21 +101,21 @@ jobs:
- name: Build Java test source file .NET 6.0
run: javac -cp ./bin/net6.0/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloLock --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloLock --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloNET --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloNET --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloNETEvent --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloNETEvent --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloIterator --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloIterator --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" hierarchy.HelloHierarchy --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" hierarchy.HelloHierarchy --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" hierarchy.HelloInterfaces --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" hierarchy.HelloInterfaces --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" nettest.HelloNETSocket -server 127.0.0.1 --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" nettest.HelloNETSocket -server 127.0.0.1 --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" nettest.HelloNETSocket -async -server 127.0.0.1 --LicensePath:$GITHUB_WORKSPACE
+ - run: java -cp "./bin/net6.0/JCOReflector.jar:./tests/jvm/java/src/" nettest.HelloNETSocket -async -server 127.0.0.1 --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
#java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
@@ -152,6 +144,29 @@ jobs:
#java -cp "./bin/net7.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
#java -cp "./bin/net7.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+ - name: Build Java test source file .NET 8.0
+ run: javac -cp ./bin/net8.0/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
+
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloLock --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloNET --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloNETEvent --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" mscorlib.HelloIterator --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" hierarchy.HelloHierarchy --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" hierarchy.HelloInterfaces --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" nettest.HelloNETSocket -server 127.0.0.1 --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar:./tests/jvm/java/src/" nettest.HelloNETSocket -async -server 127.0.0.1 --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+
+ #java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
+ #java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+
- name: Download and install Scala package
run: |
sudo apt update
@@ -167,25 +182,25 @@ jobs:
mkdir ./tests/jvm/scala/output
scalac -cp "./bin/net6.0/*" -d ./tests/jvm/scala/output ./tests/jvm/scala/src/main/scala/hierarchy/* ./tests/jvm/scala/src/main/scala/mscorlib/* ./tests/jvm/scala/src/main/scala/nettest/* ./tests/jvm/scala/src/main/scala/refout/*
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloLock --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloLock --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloNet --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloNet --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloNETEvent --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloNETEvent --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloIterator --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" mscorlib.HelloIterator --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" hierarchy.HelloHierarchy --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" hierarchy.HelloHierarchy --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" hierarchy.HelloInterfaces --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" hierarchy.HelloInterfaces --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" nettest.HelloNETSocket --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" nettest.HelloNETSocket --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" nettest.HelloNETSocket -async --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" nettest.HelloNETSocket -async --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" refout.HelloRefOutBase --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" refout.HelloRefOutBase --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" refout.HelloRefOut --LicensePath:$GITHUB_WORKSPACE
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net6.0/*:./tests/jvm/scala/output" refout.HelloRefOut --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- run: rm -rf ./tests/jvm/scala/output
@@ -216,4 +231,31 @@ jobs:
- run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net7.0/*:./tests/jvm/scala/output" refout.HelloRefOut --LicensePath:$GITHUB_WORKSPACE --CoreCLRApp:Microsoft.NET7.App
continue-on-error: true
- run: rm -rf ./tests/jvm/scala/output
-
+
+ - name: Build Scala test source file .NET 8.0
+ run: |
+ source "$HOME/.sdkman/bin/sdkman-init.sh"
+ mkdir ./tests/jvm/scala/output
+ scalac -cp "./bin/net8.0/*" -d ./tests/jvm/scala/output ./tests/jvm/scala/src/main/scala/hierarchy/* ./tests/jvm/scala/src/main/scala/mscorlib/* ./tests/jvm/scala/src/main/scala/nettest/* ./tests/jvm/scala/src/main/scala/refout/*
+
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" mscorlib.HelloLock --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" mscorlib.HelloNet --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" mscorlib.HelloNETEvent --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" mscorlib.HelloIterator --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" hierarchy.HelloHierarchy --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" hierarchy.HelloInterfaces --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" nettest.HelloNETSocket --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" nettest.HelloNETSocket -async --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" refout.HelloRefOutBase --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: source "$HOME/.sdkman/bin/sdkman-init.sh" && scala -nobootcp -toolcp "./bin/net8.0/*:./tests/jvm/scala/output" refout.HelloRefOut --LicensePath:$GITHUB_WORKSPACE
+ continue-on-error: true
+ - run: rm -rf ./tests/jvm/scala/output
diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml
index 5d6ab7bf023..42993a46154 100644
--- a/.github/workflows/maven.yaml
+++ b/.github/workflows/maven.yaml
@@ -103,7 +103,7 @@ jobs:
- name: Install local file to be used within Javadoc section of generated POM
shell: bash
- run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net6.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.8 -Dpackaging=jar -f ./src/jvm/src/net6.0.xml
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net6.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net6.0.xml
- name: Publish net6.0 to Apache Maven Central
shell: bash
@@ -160,7 +160,7 @@ jobs:
- name: Install local file to be used within Javadoc section of generated POM
shell: bash
- run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net7.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.8 -Dpackaging=jar -f ./src/jvm/src/net7.0.xml
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net7.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net7.0.xml
- name: Publish net7.0 to Apache Maven Central
shell: bash
@@ -170,6 +170,63 @@ jobs:
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
+ build_maven_net8:
+ needs: check
+ if: needs.check.outputs.run_job == 'true'
+ # The type of runner that the job will run on
+ runs-on: windows-2022
+
+ # Steps represent a sequence of tasks that will be executed as part of the job
+ steps:
+ # Runs a set of commands using the runners shell
+ # Support longpaths
+ - name: Support long paths
+ run: git config --system core.longpaths true
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v4
+
+ - name: Install gpg secret key
+ run: |
+ cat <(echo -e "${{ secrets.MAVEN_GPG_PRIVATE_KEY }}") | gpg --batch --import
+ gpg --list-secret-keys --keyid-format LONG
+ shell: bash
+
+ # Runs a set of commands using the runners shell
+ - name: Build JCOReflectorCLI
+ run: dotnet build --no-incremental --framework net8.0 src\net\JCOReflectorCLI.sln
+
+ # Runs a set of commands using the runners shell
+ - name: Copy configuration file
+ run: Copy-Item .github\workflows\JCOReflectorCLI8.0.runtimeconfig.json -Destination bin\net8.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
+
+ - name: Build net8.0 Maven POM files
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType CreatePOM -JobFile .github\workflows\createpom_win19.job
+
+ - name: Set up Apache Maven Central
+ uses: actions/setup-java@v3
+ with: # running setup-java again overwrites the settings.xml
+ distribution: temurin
+ java-version: 11
+ cache: 'maven'
+ server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml
+ server-username: MAVEN_USERNAME # env variable for username in deploy
+ server-password: MAVEN_CENTRAL_TOKEN # env variable for token in deploy
+ gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
+ gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
+
+ - name: Install local file to be used within Javadoc section of generated POM
+ shell: bash
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net8.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net8.0.xml
+
+ - name: Publish net8.0 to Apache Maven Central
+ shell: bash
+ run: mvn --file ./src/jvm/src/net8.0.xml --no-transfer-progress --batch-mode -Dgpg.passphrase=${{ secrets.MAVEN_GPG_PASSPHRASE }} deploy
+ env:
+ MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
+ MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
+ MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
+
build_maven_net462:
needs: check
if: needs.check.outputs.run_job == 'true'
@@ -213,7 +270,7 @@ jobs:
- name: Install local file to be used within Javadoc section of generated POM
shell: bash
- run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net462/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.8 -Dpackaging=jar -f ./src/jvm/src/net462.xml
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net462/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net462.xml
- name: Publish net462 to Apache Maven Central
shell: bash
diff --git a/.github/workflows/pullrequests.yaml b/.github/workflows/pullrequests.yaml
index 0466a04e4db..55715c19a46 100644
--- a/.github/workflows/pullrequests.yaml
+++ b/.github/workflows/pullrequests.yaml
@@ -86,11 +86,13 @@ jobs:
run: |
Copy-Item .github\workflows\JCOReflectorCLI6.0.runtimeconfig.json -Destination bin\net6.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
Copy-Item .github\workflows\JCOReflectorCLI7.0.runtimeconfig.json -Destination bin\net7.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
+ Copy-Item .github\workflows\JCOReflectorCLI8.0.runtimeconfig.json -Destination bin\net8.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
- name: Remove Java files
run: |
Remove-Item .\src\jvm\src\net6.0 -Recurse -Force
Remove-Item .\src\jvm\src\net7.0 -Recurse -Force
+ Remove-Item .\src\jvm\src\net8.0 -Recurse -Force
Remove-Item .\src\jvm\src\net462 -Recurse -Force
- name: Reflect .NET 6.0 Java files
@@ -98,7 +100,10 @@ jobs:
- name: Reflect .NET 7.0 Java files
run: .\bin\net7.0\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net7.0.job
-
+
+ - name: Reflect .NET 8.0 Java files
+ run: .\bin\net8.0\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net8.0.job
+
- name: Reflect .NET Framework Java files
run: .\bin\net462\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net462.job
@@ -109,7 +114,11 @@ jobs:
- name: Build Java files .NET Core 7.0
run: dotnet bin\net7.0\MASES.JCOReflectorCLI.dll -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
-
+
+ - name: Build Java files .NET Core 8.0
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
+ shell: cmd
+
- name: Build Java files .NET Framework
run: .\bin\net462\MASES.JCOReflectorCLI -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
@@ -121,7 +130,11 @@ jobs:
- name: Build JAR files .NET Core 7.0
run: dotnet bin\net7.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core7.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
-
+
+ - name: Build JAR files .NET Core 8.0
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core8.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
+ shell: cmd
+
- name: Build JAR files .NET Framework
run: .\bin\net462\MASES.JCOReflectorCLI -JobType CreateJars -JobFile .github\workflows\createjars_framework_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
@@ -154,6 +167,20 @@ jobs:
# - run: java -cp "./bin/net7.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
# - run: java -cp "./bin/net7.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+ - name: Build Java test source file .NET Core 8.0
+ run: javac -cp ./bin/net8.0/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
+
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloLock
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNET
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNETEvent
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloIterator
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloHierarchy
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloInterfaces
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket -async
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
+ # - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+
- name: Build Java test source file .NET Framework
run: javac -cp ./bin/net462/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
@@ -232,6 +259,36 @@ jobs:
# - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net7.0/*;./tests/jvm/scala/output" refout.HelloRefOut
# shell: cmd
# - run: cd ./tests/jvm/scala && rmdir output /s /q
+ # shell: cmd
+
+ - name: Build Scala test source file .NET Core 8.0
+ shell: cmd
+ run: |
+ cd ./tests/jvm/scala
+ mkdir output
+ ..\..\..\scala-2.13.5\bin\scalac -toolcp "../../../bin/net8.0/*" -d ./output ./src/main/scala/hierarchy/* ./src/main/scala/mscorlib/* ./src/main/scala/nettest/* ./src/main/scala/refout/*
+
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloLock
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloNet
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloNETEvent
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloIterator
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" hierarchy.HelloHierarchy
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" hierarchy.HelloInterfaces
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket -async
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" refout.HelloRefOutBase
+ # shell: cmd
+ # - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" refout.HelloRefOut
+ # shell: cmd
+ # - run: cd ./tests/jvm/scala && rmdir output /s /q
# shell: cmd
- name: Build Scala test source file .NET Framework
diff --git a/.github/workflows/reflect_net8.0.job b/.github/workflows/reflect_net8.0.job
new file mode 100644
index 00000000000..869dcb433bb
--- /dev/null
+++ b/.github/workflows/reflect_net8.0.job
@@ -0,0 +1,20 @@
+
+
+ Error
+
+ PresentationFramework, Version=8.0.0.0, PublicKeyToken=31bf3856ad364e35
+
+ src/jvm
+ true
+ true
+ true
+ true
+ 10
+ true
+ true
+ true
+ true
+ true
+ true
+ false
+
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 9dc886c076c..7a51fe4ece1 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -51,7 +51,7 @@ jobs:
- name: Install local file to be used within Javadoc section of generated POM
shell: bash
- run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net6.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.8 -Dpackaging=jar -f ./src/jvm/src/net6.0.xml
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net6.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net6.0.xml
- name: Publish net6.0 to Apache Maven Central
shell: bash
@@ -99,7 +99,7 @@ jobs:
- name: Install local file to be used within Javadoc section of generated POM
shell: bash
- run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net7.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.8 -Dpackaging=jar -f ./src/jvm/src/net7.0.xml
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net7.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net7.0.xml
- name: Publish net7.0 to Apache Maven Central
shell: bash
@@ -109,6 +109,54 @@ jobs:
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
+ build_maven_net8:
+ # The type of runner that the job will run on
+ runs-on: windows-2022
+
+ # Steps represent a sequence of tasks that will be executed as part of the job
+ steps:
+ # Runs a set of commands using the runners shell
+ # Support longpaths
+ - name: Support long paths
+ run: git config --system core.longpaths true
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v4
+
+ - name: Build JCOReflectorCLI
+ run: dotnet build --no-incremental --framework net8.0 --configuration Release /p:Platform="Any CPU" src\JCOReflectorCLI.sln
+
+ # Runs a set of commands using the runners shell
+ - name: Copy configuration file
+ run: Copy-Item .github\workflows\JCOReflectorCLI8.0.runtimeconfig.json -Destination bin\net8.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
+
+ - name: Build net8.0 Maven POM files
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType CreatePOM -POMStagingType Release -JobFile .github\workflows\createpom_win19.job
+
+ - name: Set up Apache Maven Central
+ uses: actions/setup-java@v3
+ with: # running setup-java again overwrites the settings.xml
+ distribution: temurin
+ java-version: 11
+ cache: 'maven'
+ server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml
+ server-username: MAVEN_USERNAME # env variable for username in deploy
+ server-password: MAVEN_CENTRAL_TOKEN # env variable for token in deploy
+ gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
+ gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
+
+ - name: Install local file to be used within Javadoc section of generated POM
+ shell: bash
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net8.0/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net8.0.xml
+
+ - name: Publish net8.0 to Apache Maven Central
+ shell: bash
+ run: mvn --file ./src/jvm/src/net8.0.xml --no-transfer-progress --batch-mode -Dgpg.passphrase=${{ secrets.MAVEN_GPG_PASSPHRASE }} deploy
+ env:
+ MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
+ MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
+ MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
+
build_maven_net462:
# The type of runner that the job will run on
runs-on: windows-2022
@@ -143,7 +191,7 @@ jobs:
- name: Install local file to be used within Javadoc section of generated POM
shell: bash
- run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net462/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.8 -Dpackaging=jar -f ./src/jvm/src/net462.xml
+ run: mvn install:install-file --no-transfer-progress -Dfile=../../../bin/net462/JCOBridge.jar -DgroupId=JCOBridge -DartifactId=JCOBridge -Dversion=2.5.9 -Dpackaging=jar -f ./src/jvm/src/net462.xml
- name: Publish net462 to Apache Maven Central
shell: bash
@@ -154,7 +202,7 @@ jobs:
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
build_release:
- needs: [build_maven_net6, build_maven_net7, build_maven_net462]
+ needs: [build_maven_net6, build_maven_net7, build_maven_net8, build_maven_net462]
# The type of runner that the job will run on
runs-on: windows-2022
@@ -185,6 +233,7 @@ jobs:
run: |
Copy-Item .github\workflows\JCOReflectorCLI6.0.runtimeconfig.json -Destination bin\net6.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
Copy-Item .github\workflows\JCOReflectorCLI7.0.runtimeconfig.json -Destination bin\net7.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
+ Copy-Item .github\workflows\JCOReflectorCLI8.0.runtimeconfig.json -Destination bin\net8.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
- name: Build Java files
@@ -198,6 +247,7 @@ jobs:
run: |
dotnet .\bin\net6.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core6.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
dotnet .\bin\net7.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core7.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
+ dotnet .\bin\net8.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core8.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
.\bin\net462\MASES.JCOReflectorCLI -JobType CreateJars -JobFile .github\workflows\createjars_framework_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
@@ -205,12 +255,14 @@ jobs:
run: |
Compress-Archive -Path .\bin\net6.0\* -DestinationPath .\bin\net6.0.zip
Compress-Archive -Path .\bin\net7.0\* -DestinationPath .\bin\net7.0.zip
+ Compress-Archive -Path .\bin\net8.0\* -DestinationPath .\bin\net8.0.zip
Compress-Archive -Path .\bin\net462\* -DestinationPath .\bin\net462.zip
- name: Compress documentation files
run: |
Compress-Archive -Path .\docs\net6.0\* -DestinationPath .\net6.0.docs.zip
Compress-Archive -Path .\docs\net7.0\* -DestinationPath .\net7.0.docs.zip
+ Compress-Archive -Path .\docs\net8.0\* -DestinationPath .\net8.0.docs.zip
Compress-Archive -Path .\docs\net462\* -DestinationPath .\net462.docs.zip
- name: Upload net6.0 binaries to release
@@ -231,6 +283,15 @@ jobs:
tag: ${{ github.ref }}
overwrite: true
+ - name: Upload net8.0 binaries to release
+ uses: svenstaro/upload-release-action@v2
+ with:
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ file: .\bin\net8.0.zip
+ asset_name: net8.0.zip
+ tag: ${{ github.ref }}
+ overwrite: true
+
- name: Upload net462 binaries to release
uses: svenstaro/upload-release-action@v2
with:
@@ -258,6 +319,15 @@ jobs:
tag: ${{ github.ref }}
overwrite: true
+ - name: Upload net8.0 documentation to release
+ uses: svenstaro/upload-release-action@v2
+ with:
+ repo_token: ${{ secrets.GITHUB_TOKEN }}
+ file: .\net8.0.docs.zip
+ asset_name: net8.0.docs.zip
+ tag: ${{ github.ref }}
+ overwrite: true
+
- name: Upload net462 documentation to release
uses: svenstaro/upload-release-action@v2
with:
diff --git a/.github/workflows/testbranch.yaml b/.github/workflows/testbranch.yaml
index 59f578d062e..fae30dff09b 100644
--- a/.github/workflows/testbranch.yaml
+++ b/.github/workflows/testbranch.yaml
@@ -78,7 +78,7 @@ jobs:
shell: cmd
- name: Extract secret
- run: .github\workflows\GetLicense.ps1 ${{ secrets.JCOBRIDGE_2_5_8 }} .\JCOBridge.lic
+ run: .github\workflows\GetLicense.ps1 ${{ secrets.JCOBRIDGE_2_5_9 }} .\JCOBridge.lic
# Runs a set of commands using the runners shell
- name: Build JCOReflectorCLI
@@ -95,11 +95,13 @@ jobs:
run: |
Copy-Item .github\workflows\JCOReflectorCLI6.0.runtimeconfig.json -Destination bin\net6.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
Copy-Item .github\workflows\JCOReflectorCLI7.0.runtimeconfig.json -Destination bin\net7.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
+ Copy-Item .github\workflows\JCOReflectorCLI8.0.runtimeconfig.json -Destination bin\net8.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
- name: Remove Java files
run: |
Remove-Item .\src\jvm\src\net6.0 -Recurse -Force
Remove-Item .\src\jvm\src\net7.0 -Recurse -Force
+ Remove-Item .\src\jvm\src\net8.0 -Recurse -Force
Remove-Item .\src\jvm\src\net462 -Recurse -Force
- name: Reflect .NET 6.0 Java files
@@ -107,6 +109,9 @@ jobs:
- name: Reflect .NET 7.0 Java files
run: .\bin\net7.0\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net7.0.job
+
+ - name: Reflect .NET 8.0 Java files
+ run: .\bin\net8.0\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net8.0.job
- name: Reflect .NET Framework Java files
run: .\bin\net462\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net462.job
@@ -127,7 +132,11 @@ jobs:
- name: Build Java files .NET Core 7.0
run: dotnet bin\net7.0\MASES.JCOReflectorCLI.dll -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
-
+
+ - name: Build Java files .NET Core 8.0
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
+ shell: cmd
+
- name: Build Java files .NET Framework
run: .\bin\net462\MASES.JCOReflectorCLI -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
@@ -139,6 +148,10 @@ jobs:
- name: Build JAR files .NET Core 7.0
run: dotnet bin\net7.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core7.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
+
+ - name: Build JAR files .NET Core 8.0
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core8.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
+ shell: cmd
- name: Build JAR files .NET Framework
run: .\bin\net462\MASES.JCOReflectorCLI -JobType CreateJars -JobFile .github\workflows\createjars_framework_win19.job -JDKFolder %JAVA_HOME_11_X64%
@@ -148,6 +161,7 @@ jobs:
run: |
Compress-Archive -Path .\bin\net6.0\* -DestinationPath .\bin\net6.0.zip
Compress-Archive -Path .\bin\net7.0\* -DestinationPath .\bin\net7.0.zip
+ Compress-Archive -Path .\bin\net8.0\* -DestinationPath .\bin\net8.0.zip
Compress-Archive -Path .\bin\net462\* -DestinationPath .\bin\net462.zip
- uses: actions/upload-artifact@v3
@@ -167,7 +181,13 @@ jobs:
name: net7.0
path: .\bin\net7.0.zip
retention-days: 1
-
+
+ - uses: actions/upload-artifact@v3
+ with:
+ name: net8.0
+ path: .\bin\net8.0.zip
+ retention-days: 1
+
- uses: actions/upload-artifact@v3
with:
name: net462
@@ -183,25 +203,25 @@ jobs:
- name: Build Java test source file .NET Core 6.0
run: javac -cp ./bin/net6.0/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloLock
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloLock --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNET
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNET --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNETEvent
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNETEvent --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloIterator
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloIterator --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloHierarchy
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloHierarchy --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloInterfaces
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloInterfaces --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket -async
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket -async --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- name: Build Java test source file .NET Core 7.0
@@ -228,6 +248,30 @@ jobs:
- run: java -cp "./bin/net7.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut --CoreCLRApp:Microsoft.NET7.App
continue-on-error: true
+ - name: Build Java test source file .NET Core 8.0
+ run: javac -cp ./bin/net8.0/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
+
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloLock
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNET
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNETEvent
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloIterator
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloHierarchy
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloInterfaces
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket -async
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+ continue-on-error: true
+
- name: Build Java test source file .NET Framework
run: javac -cp ./bin/net462/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
@@ -265,34 +309,34 @@ jobs:
mkdir output
..\..\..\scala-2.13.5\bin\scalac -toolcp "../../../bin/net6.0/*" -d ./output ./src/main/scala/hierarchy/* ./src/main/scala/mscorlib/* ./src/main/scala/nettest/* ./src/main/scala/refout/*
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloLock
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloLock --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNet
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNet --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNETEvent
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNETEvent --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloIterator
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloIterator --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloHierarchy
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloHierarchy --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloInterfaces
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloInterfaces --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket -async
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket -async --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOutBase
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOutBase --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOut
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOut --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- run: cd ./tests/jvm/scala && rmdir output /s /q
@@ -340,6 +384,47 @@ jobs:
shell: cmd
continue-on-error: true
+ - name: Build Scala test source file .NET Core 8.0
+ shell: cmd
+ run: |
+ cd ./tests/jvm/scala
+ mkdir output
+ ..\..\..\scala-2.13.5\bin\scalac -toolcp "../../../bin/net8.0/*" -d ./output ./src/main/scala/hierarchy/* ./src/main/scala/mscorlib/* ./src/main/scala/nettest/* ./src/main/scala/refout/*
+
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloLock
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloNet
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloNETEvent
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloIterator
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" hierarchy.HelloHierarchy
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" hierarchy.HelloInterfaces
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket -async
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" refout.HelloRefOutBase
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" refout.HelloRefOut
+ shell: cmd
+ continue-on-error: true
+ - run: cd ./tests/jvm/scala && rmdir output /s /q
+ shell: cmd
+ continue-on-error: true
+
- name: Build Scala test source file .NET Framework
shell: cmd
run: |
diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml
index 4df284f4b2c..d3f533eb544 100644
--- a/.github/workflows/windows.yaml
+++ b/.github/workflows/windows.yaml
@@ -72,7 +72,7 @@ jobs:
fetch-depth: '1'
- name: Extract secret
- run: .github\workflows\GetLicense.ps1 ${{ secrets.JCOBRIDGE_2_5_8 }} .\JCOBridge.lic
+ run: .github\workflows\GetLicense.ps1 ${{ secrets.JCOBRIDGE_2_5_9 }} .\JCOBridge.lic
# Runs a set of commands using the runners shell
- name: Build JCOReflectorCLI
@@ -89,11 +89,13 @@ jobs:
run: |
Copy-Item .github\workflows\JCOReflectorCLI6.0.runtimeconfig.json -Destination bin\net6.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
Copy-Item .github\workflows\JCOReflectorCLI7.0.runtimeconfig.json -Destination bin\net7.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
+ Copy-Item .github\workflows\JCOReflectorCLI8.0.runtimeconfig.json -Destination bin\net8.0\MASES.JCOReflectorCLI.runtimeconfig.json -Force
- name: Remove Java files
run: |
Remove-Item .\src\jvm\src\net6.0 -Recurse -Force
Remove-Item .\src\jvm\src\net7.0 -Recurse -Force
+ Remove-Item .\src\jvm\src\net8.0 -Recurse -Force
Remove-Item .\src\jvm\src\net462 -Recurse -Force
- name: Reflect .NET 6.0 Java files
@@ -101,7 +103,10 @@ jobs:
- name: Reflect .NET 7.0 Java files
run: .\bin\net7.0\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net7.0.job
-
+
+ - name: Reflect .NET 8.0 Java files
+ run: .\bin\net8.0\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net8.0.job
+
- name: Reflect .NET Framework Java files
run: .\bin\net462\MASES.JCOReflectorCLI -JobType Reflect -JobFile .github\workflows\reflect_net462.job
@@ -112,7 +117,11 @@ jobs:
- name: Build Java files .NET Core 7.0
run: dotnet bin\net7.0\MASES.JCOReflectorCLI.dll -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
-
+
+ - name: Build Java files .NET Core 8.0
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
+ shell: cmd
+
- name: Build Java files .NET Framework
run: .\bin\net462\MASES.JCOReflectorCLI -JobType Build -JobFile .github\workflows\build_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
@@ -124,7 +133,11 @@ jobs:
- name: Build JAR files .NET Core 7.0
run: dotnet bin\net7.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core7.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
-
+
+ - name: Build JAR files .NET Core 8.0
+ run: dotnet bin\net8.0\MASES.JCOReflectorCLI.dll -JobType CreateJars -JobFile .github\workflows\createjars_core8.0_win19.job -JDKFolder %JAVA_HOME_11_X64%
+ shell: cmd
+
- name: Build JAR files .NET Framework
run: .\bin\net462\MASES.JCOReflectorCLI -JobType CreateJars -JobFile .github\workflows\createjars_framework_win19.job -JDKFolder %JAVA_HOME_11_X64%
shell: cmd
@@ -138,25 +151,25 @@ jobs:
- name: Build Java test source file .NET Core 6.0
run: javac -cp ./bin/net6.0/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloLock
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloLock --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNET
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNET --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNETEvent
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNETEvent --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloIterator
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloIterator --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloHierarchy
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloHierarchy --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloInterfaces
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloInterfaces --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket -async
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket -async --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+ - run: java -cp "./bin/net6.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut --CoreCLRApp:Microsoft.NET6.App
continue-on-error: true
- name: Build Java test source file .NET Core 7.0
@@ -182,7 +195,31 @@ jobs:
continue-on-error: true
- run: java -cp "./bin/net7.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut --CoreCLRApp:Microsoft.NET7.App
continue-on-error: true
-
+
+ - name: Build Java test source file .NET Core 8.0
+ run: javac -cp ./bin/net8.0/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
+
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloLock
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNET
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloNETEvent
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" mscorlib.HelloIterator
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloHierarchy
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" hierarchy.HelloInterfaces
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" nettest.HelloNETSocket -async
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOutBase
+ continue-on-error: true
+ - run: java -cp "./bin/net8.0/JCOReflector.jar;./tests/jvm/java/src/" refout.HelloRefOut
+ continue-on-error: true
+
- name: Build Java test source file .NET Framework
run: javac -cp ./bin/net462/JCOReflector.jar ./tests/jvm/java/src/hierarchy/*.java ./tests/jvm/java/src/mscorlib/*.java ./tests/jvm/java/src/nettest/*.java ./tests/jvm/java/src/refout/*.java
@@ -220,34 +257,34 @@ jobs:
mkdir output
..\..\..\scala-2.13.5\bin\scalac -toolcp "../../../bin/net6.0/*" -d ./output ./src/main/scala/hierarchy/* ./src/main/scala/mscorlib/* ./src/main/scala/nettest/* ./src/main/scala/refout/*
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloLock
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloLock --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNet
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNet --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNETEvent
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloNETEvent --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloIterator
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" mscorlib.HelloIterator --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloHierarchy
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloHierarchy --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloInterfaces
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" hierarchy.HelloInterfaces --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket -async
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket -async --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOutBase
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOutBase --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOut
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net6.0/*;./tests/jvm/scala/output" refout.HelloRefOut --CoreCLRApp:Microsoft.NET6.App
shell: cmd
continue-on-error: true
- run: cd ./tests/jvm/scala && rmdir output /s /q
@@ -294,7 +331,48 @@ jobs:
- run: cd ./tests/jvm/scala && rmdir output /s /q
shell: cmd
continue-on-error: true
-
+
+ - name: Build Scala test source file .NET Core 8.0
+ shell: cmd
+ run: |
+ cd ./tests/jvm/scala
+ mkdir output
+ ..\..\..\scala-2.13.5\bin\scalac -toolcp "../../../bin/net8.0/*" -d ./output ./src/main/scala/hierarchy/* ./src/main/scala/mscorlib/* ./src/main/scala/nettest/* ./src/main/scala/refout/*
+
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloLock
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloNet
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloNETEvent
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" mscorlib.HelloIterator
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" hierarchy.HelloHierarchy
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" hierarchy.HelloInterfaces
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" nettest.HelloNETSocket -async
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" refout.HelloRefOutBase
+ shell: cmd
+ continue-on-error: true
+ - run: .\scala-2.13.5\bin\scala -toolcp "./bin/net8.0/*;./tests/jvm/scala/output" refout.HelloRefOut
+ shell: cmd
+ continue-on-error: true
+ - run: cd ./tests/jvm/scala && rmdir output /s /q
+ shell: cmd
+ continue-on-error: true
+
- name: Build Scala test source file .NET Framework
shell: cmd
run: |
@@ -340,6 +418,7 @@ jobs:
run: |
Compress-Archive -Path .\bin\net6.0\* -DestinationPath .\bin\net6.0.zip
Compress-Archive -Path .\bin\net7.0\* -DestinationPath .\bin\net7.0.zip
+ Compress-Archive -Path .\bin\net8.0\* -DestinationPath .\bin\net8.0.zip
Compress-Archive -Path .\bin\net462\* -DestinationPath .\bin\net462.zip
- name: Extract commit SHA
@@ -405,6 +484,11 @@ jobs:
with:
name: net7.0
path: .\bin\net7.0.zip
+
+ - uses: actions/upload-artifact@v3
+ with:
+ name: net8.0
+ path: .\bin\net8.0.zip
- uses: actions/upload-artifact@v3
with:
diff --git a/.gitmodules b/.gitmodules
index 25a5b02fc74..83384a73b7d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,3 +7,6 @@
[submodule "netreflected/docs/net7.0"]
path = docs/net7.0
url = https://github.com/masesgroup/NET7Docs.git
+[submodule "docs/net8.0"]
+ path = docs/net8.0
+ url = https://github.com/masesgroup/NET8Docs.git
diff --git a/README.md b/README.md
index 19432a9db7c..20c8187c17c 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,9 @@ JCOReflector is a comprehensive suite of libraries and tools to use Java/JVM API
### Libraries and Tools
-|.NET Framework | .NET 6 | .NET 7 |
-|--- |--- |--- |
-|[![Maven Central](https://img.shields.io/maven-central/v/com.masesgroup/jcoreflector_net462.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.masesgroup%22%20AND%20a:%22jcoreflector_net462%22) | [![Maven Central](https://img.shields.io/maven-central/v/com.masesgroup/jcoreflector_net6.0.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.masesgroup%22%20AND%20a:%22jcoreflector_net6.0%22)| [![Maven Central](https://img.shields.io/maven-central/v/com.masesgroup/jcoreflector_net7.0.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.masesgroup%22%20AND%20a:%22jcoreflector_net7.0%22)|
+|.NET Framework | .NET 6 | .NET 7 | .NET 8 |
+|--- |--- |--- |--- |
+|[![Maven Central](https://img.shields.io/maven-central/v/com.masesgroup/jcoreflector_net462.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.masesgroup%22%20AND%20a:%22jcoreflector_net462%22) | [![Maven Central](https://img.shields.io/maven-central/v/com.masesgroup/jcoreflector_net6.0.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.masesgroup%22%20AND%20a:%22jcoreflector_net6.0%22)| [![Maven Central](https://img.shields.io/maven-central/v/com.masesgroup/jcoreflector_net7.0.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.masesgroup%22%20AND%20a:%22jcoreflector_net7.0%22)| [![Maven Central](https://img.shields.io/maven-central/v/com.masesgroup/jcoreflector_net8.0.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.masesgroup%22%20AND%20a:%22jcoreflector_net8.0%22)|
|JCOReflectorEngine | JCOReflectorCLI |
|--- |--- |
@@ -214,7 +214,8 @@ Within the folder bin you will find three subfolders:
- **net462** (available only on Windows platform)
- **net6.0** (available on .NET 6 supported platforms)
- **net7.0** (available on .NET 7 supported platforms)
-
+- **net8.0** (available on .NET 8 supported platforms)
+-
in each subfolder will be available two executables:
- **JCOReflectorCLI** the CLI tool;
@@ -225,7 +226,7 @@ in each subfolder will be available two executables:
## Reflected Assemblies
-The folder [src/jvm/src](/src/jvm/src) contains all reflected classes generated for **.NET** **Framework** (_net462_), **6** (_net6.0_) and **7** (_net7.0_). Below the coverage [statistics](#statistics):
+The folder [src/jvm/src](/src/jvm/src) contains all reflected classes generated for **.NET** **Framework** (_net462_), **6** (_net6.0_), **7** (_net7.0_) and **8** (_net8.0_). Below the coverage [statistics](#statistics):
### Statistics
diff --git a/docs/net8.0 b/docs/net8.0
new file mode 160000
index 00000000000..8fa5dc397e7
--- /dev/null
+++ b/docs/net8.0
@@ -0,0 +1 @@
+Subproject commit 8fa5dc397e70f1fd814aa2e6a2e56fa9d18e658e
diff --git a/src/jvm/README.md b/src/jvm/README.md
index 8b234611ae2..1adad6416a3 100644
--- a/src/jvm/README.md
+++ b/src/jvm/README.md
@@ -783,3 +783,334 @@ Parsed assemblies are:
[//]: # "EndReport net7.0"
![Net7Statistic](https://docs.google.com/spreadsheets/d/e/2PACX-1vTe94B4KWTddOWDnIHGRkHHPq23g_oPzZUfmVU3ls1lEUwNQmG_T4Zi7xCCNkb0RMqkT8LblRNW7aT9/pubchart?oid=1527441532&format=image)
+
+
+## .NET 8
+
+> NOTE: reference is .NET v8.0.* of the GitHub runner image
+
+[//]: # "BeginReport net8.0"
+Parsed assemblies are:
+* PresentationFramework, Version=7.0.0.0, PublicKeyToken=31bf3856ad364e35
+
+> Analyzed Assemblies:
+> * PresentationFramework, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
+> * System.Private.Uri, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xaml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Runtime.InteropServices, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections.Specialized, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections.NonGeneric, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ObjectModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel.TypeConverter, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Loader, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Memory, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Reflection.Emit.ILGeneration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections.Concurrent, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.Emit.Lightweight, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Security, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Formats.Asn1, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Text.Encoding.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Numerics, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Thread, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.Tracing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * Microsoft.Win32.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Principal.Windows, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Claims, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Sockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Overlapped, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.NameResolution, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.ThreadPool, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Drawing.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Numerics.Vectors, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Formatters, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Resources.Writer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml.XDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Private.Xml.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Private.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Diagnostics.TraceSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.DiagnosticSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.Quic, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * Microsoft.Win32.Registry, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Channels, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.IO.Compression, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.IO.Compression.Brotli, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Net.NetworkInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.Emit, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Linq.Expressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Windows.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.ComponentModel.EventBasedAsync, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Requests, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.WebHeaderCollection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.ServicePoint, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Drawing.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * Microsoft.Win32.SystemEvents, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Xml.ReaderWriter, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Permissions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Data.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml.XmlSerializer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Transactions.Local, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * WindowsBase, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.InteropServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Packaging, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.IsolatedStorage, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.FileSystem.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Security.Cryptography.Pkcs, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml.XPath, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Configuration.ConfigurationManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Diagnostics.Process, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.FileVersionInfo, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.WebClient, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Diagnostics.TextWriterTraceListener, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Console, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.EventLog, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Security.Cryptography.ProtectedData, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * PresentationCore, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * DirectWriteForwarder, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Private.CoreLib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
+> * Microsoft.Win32.Registry, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Principal.Windows, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Memory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Collections, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections.NonGeneric, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections.Concurrent, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ObjectModel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Console, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.StackTrace, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections.Immutable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.MemoryMappedFiles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.FileSystem.DriveInfo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.IsolatedStorage, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.TypeExtensions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Resources.Writer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.CompilerServices.VisualC, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.InteropServices, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Formatters, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.FileSystem.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Claims, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Tasks.Parallel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.CompilerServices.VisualC, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * Microsoft.CSharp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * Microsoft.VisualBasic.Core, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.FileSystem.DriveInfo, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * Microsoft.VisualBasic.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Windows.Forms.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Diagnostics.StackTrace, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Pipes, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Private.DataContractSerialization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Windows.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Text.Encoding.CodePages, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Ping, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Diagnostics.Contracts, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Compression.ZipFile, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.IO.FileSystem.Watcher, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Linq.Queryable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Linq.Parallel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.HttpListener, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.WebSockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.WebProxy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.Mail, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.WebSockets.Client, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.DispatchProxy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Tasks.Parallel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Web.HttpUtility, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Xml.XPath.XDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.AppContext, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Buffers, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.ComponentModel.Annotations, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * System.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel.Annotations, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Configuration.ConfigurationManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.IO.MemoryMappedFiles, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Pipes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.EventLog, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Diagnostics.PerformanceCounter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Linq.Expressions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Pipes.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Linq, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Linq.Queryable, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Linq.Parallel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Data.SqlClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Data.Common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Data.Odbc, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Data.OleDb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Diagnostics.Debug, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.Tools, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.CodeDom, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * Microsoft.Win32.SystemEvents, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Diagnostics.Process, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Collections.Specialized, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel.TypeConverter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel.EventBasedAsync, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ComponentModel.Primitives, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.TraceSource, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.TextWriterTraceListener, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Diagnostics.FileVersionInfo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Private.Uri, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Compression, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.IO.FileSystem.Watcher, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Ports, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Windows.Extensions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.Requests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Primitives, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.HttpListener, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.ServicePoint, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.NameResolution, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.WebClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.WebHeaderCollection, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.WebProxy, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.Mail, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Net.NetworkInformation, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Ping, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Security, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Sockets, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.WebSockets.Client, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.WebSockets, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Text.RegularExpressions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Windows.Forms.Design, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.CodeDom, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Dynamic.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Formats.Tar, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Globalization.Calendars, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Globalization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Globalization.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.IO.Compression.ZipFile, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.IO, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.FileSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.FileSystem.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.Pipes.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.IO.UnmanagedMemoryStream, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Net.Http.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Text.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Text.Encodings.Web, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Runtime.Intrinsics, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Runtime.Numerics, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Numerics.Vectors, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Reflection.TypeExtensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Resources.Reader, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Resources.ResourceManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.CompilerServices.Unsafe, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Handles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.InteropServices.JavaScript, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.InteropServices.RuntimeInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Runtime.Serialization.Primitives, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Xml, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Json, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Runtime.Serialization.Schema, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Algorithms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Cng, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Csp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.OpenSsl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.X509Certificates, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Pkcs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.ProtectedData, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.Cryptography.Xml, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Security.Principal, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Security.SecureString, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * System.ServiceModel.Syndication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.ServiceProcess.ServiceController, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Text.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Tasks.Dataflow, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Tasks, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Threading.Tasks.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Threading.Timer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Transactions.Local, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Web.HttpUtility, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Private.Xml, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+> * System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Xml.XDocument, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml.XPath.XDocument, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * System.Xml.ReaderWriter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml.XmlSerializer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * System.Xml.XmlDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+> * WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * UIAutomationTypes, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * UIAutomationProvider, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * System.Windows.Input.Manipulations, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+> * ReachFramework, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * System.Printing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * PresentationUI, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+> * System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+> * Analyzed Types = 26436
+> * Enumerators = 24
+> * Delegates = 364
+> * Classes
+> * Constructors = 6718
+> * Methods = 30551
+> * Properties = 18543
+> * Events = 1742
+> * Implemented Types = 7273
+> * Enumerators = 23
+> * Delegates = 364
+> * Enums = 1251
+> * Flags = 270
+> * Interfaces = 363
+> * Classes = 5272
+> * Exceptions = 237
+> * Constructors = 5799
+> * Methods = 21231
+> * Duplicated Methods = 813
+> * Properties = 17287
+> * Events = 1635
+> * Discarded Types = 19162
+> * Non Public = 18809
+> * Generic = 293
+> * Internals = 24
+
+[//]: # "EndReport net8.0"
+
+![Net8Statistic](https://docs.google.com/spreadsheets/d/e/2PACX-1vTe94B4KWTddOWDnIHGRkHHPq23g_oPzZUfmVU3ls1lEUwNQmG_T4Zi7xCCNkb0RMqkT8LblRNW7aT9/pubchart?oid=1527441532&format=image)
\ No newline at end of file
diff --git a/src/jvm/src/net8.0/assemblies.list b/src/jvm/src/net8.0/assemblies.list
new file mode 100644
index 00000000000..f13d7edae56
--- /dev/null
+++ b/src/jvm/src/net8.0/assemblies.list
@@ -0,0 +1,290 @@
+PresentationFramework, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+System.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
+System.Private.Uri, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xaml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Runtime.InteropServices, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections.Specialized, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections.NonGeneric, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ObjectModel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel.TypeConverter, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Loader, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Memory, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Reflection.Emit.ILGeneration, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections.Concurrent, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.Emit.Lightweight, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Security, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Formats.Asn1, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Text.Encoding.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Numerics, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Thread, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.Tracing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+Microsoft.Win32.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Principal.Windows, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Claims, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Sockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Overlapped, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.NameResolution, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.ThreadPool, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Drawing.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Numerics.Vectors, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Formatters, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Resources.Writer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml.XDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Private.Xml.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Private.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Diagnostics.TraceSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Http, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.DiagnosticSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.Quic, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+Microsoft.Win32.Registry, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Channels, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.IO.Compression, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.IO.Compression.Brotli, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Net.NetworkInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.Emit, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Linq.Expressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Windows.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.ComponentModel.EventBasedAsync, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Requests, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.WebHeaderCollection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.ServicePoint, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Drawing.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+Microsoft.Win32.SystemEvents, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Xml.ReaderWriter, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Permissions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Data.Common, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml.XmlSerializer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Transactions.Local, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+WindowsBase, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.InteropServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Packaging, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.IsolatedStorage, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.FileSystem.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Security.Cryptography.Pkcs, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml.XPath, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Configuration.ConfigurationManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Diagnostics.Process, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.FileVersionInfo, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.WebClient, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Diagnostics.TextWriterTraceListener, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Console, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.EventLog, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Security.Cryptography.ProtectedData, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+PresentationCore, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+DirectWriteForwarder, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Private.CoreLib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
+Microsoft.Win32.Registry, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Principal.Windows, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Memory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Collections, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections.NonGeneric, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections.Concurrent, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ObjectModel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Console, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.StackTrace, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections.Immutable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.MemoryMappedFiles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.FileSystem.DriveInfo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.IsolatedStorage, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.TypeExtensions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Resources.Writer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.CompilerServices.VisualC, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.InteropServices, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Formatters, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.FileSystem.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Claims, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Tasks.Parallel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.CompilerServices.VisualC, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+Microsoft.CSharp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+Microsoft.VisualBasic.Core, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.FileSystem.DriveInfo, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+Microsoft.VisualBasic.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Windows.Forms.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Diagnostics.StackTrace, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Pipes, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Xml, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Private.DataContractSerialization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Windows.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Text.Encoding.CodePages, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Ping, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Diagnostics.Contracts, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Compression.ZipFile, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.IO.FileSystem.Watcher, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Linq.Queryable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Linq.Parallel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.HttpListener, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.WebSockets, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.WebProxy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.Mail, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.WebSockets.Client, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.DispatchProxy, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Tasks.Parallel, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Web.HttpUtility, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Xml.XPath.XDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.AppContext, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Buffers, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.ComponentModel.Annotations, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+System.Runtime, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel.Annotations, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Configuration.ConfigurationManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.IO.MemoryMappedFiles, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Pipes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.EventLog, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Diagnostics.PerformanceCounter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Linq.Expressions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Pipes.AccessControl, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Linq, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Linq.Queryable, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Linq.Parallel, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Data.SqlClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Data.Common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Data.Odbc, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Data.OleDb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Diagnostics.Debug, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.Tools, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.CodeDom, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+Microsoft.Win32.SystemEvents, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Diagnostics.Process, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Collections.Specialized, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel.TypeConverter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel.EventBasedAsync, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ComponentModel.Primitives, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.TraceSource, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.TextWriterTraceListener, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Diagnostics.FileVersionInfo, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Private.Uri, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Compression, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.IO.FileSystem.Watcher, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Ports, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Windows.Extensions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.Requests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Primitives, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.HttpListener, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.ServicePoint, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.NameResolution, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.WebClient, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.WebHeaderCollection, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.WebProxy, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.Mail, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Net.NetworkInformation, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Ping, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Security, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Sockets, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.WebSockets.Client, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.WebSockets, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Text.RegularExpressions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Windows.Forms.Design, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.CodeDom, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Dynamic.Runtime, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Formats.Tar, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Globalization.Calendars, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Globalization, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Globalization.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.IO.Compression.ZipFile, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.IO, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.FileSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.FileSystem.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.Pipes.AccessControl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.IO.UnmanagedMemoryStream, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Net.Http.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Text.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Text.Encodings.Web, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Runtime.Intrinsics, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Runtime.Numerics, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Numerics.Vectors, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Reflection.TypeExtensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Resources.Reader, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Resources.ResourceManager, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.CompilerServices.Unsafe, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Handles, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.InteropServices.JavaScript, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.InteropServices.RuntimeInformation, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Runtime.Serialization.Primitives, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Xml, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Json, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Runtime.Serialization.Schema, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Algorithms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Cng, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Csp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.OpenSsl, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Primitives, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.X509Certificates, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Pkcs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.ProtectedData, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.Cryptography.Xml, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Security.Principal, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Security.SecureString, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+System.ServiceModel.Syndication, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.ServiceProcess.ServiceController, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Text.Encoding, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Tasks.Dataflow, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Tasks, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Threading.Tasks.Extensions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Threading.Timer, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Transactions.Local, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Web.HttpUtility, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Private.Xml, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
+System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Xml.XDocument, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml.XPath.XDocument, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+System.Xml.ReaderWriter, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml.XmlSerializer, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+System.Xml.XmlDocument, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+UIAutomationTypes, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+UIAutomationProvider, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+System.Windows.Input.Manipulations, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ReachFramework, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+System.Printing, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+PresentationUI, Version=7.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
+System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
diff --git a/src/jvm/statistics/net8.0/Statistics.csv b/src/jvm/statistics/net8.0/Statistics.csv
new file mode 100644
index 00000000000..8be9fd73f44
--- /dev/null
+++ b/src/jvm/statistics/net8.0/Statistics.csv
@@ -0,0 +1,2 @@
+parsedAssemblies;analyzedTypes;discardedTypes;discardedNonPublicTypes;discardedGenericTypes;discardedInternalTypes;implementedEnum ;implementedEnumsFlags;analyzedEnumerators;implementedEnumerators;analyzedDelegates;implementedDelegates;implementedInterfaces;implementedClasses;implementedExceptions;analyzedCtors;implementedCtors ;analyzedMethods;implementedMethods;analyzedProperties;implementedProperties;analyzedEvents;implementedEvents;loadedAssemblies;
+116;26436;19162;18809;293;24;1251;270;24;23;364;364;363;5272;237;6718;5799;30551;21231;18543;17287;1742;1635;283;
\ No newline at end of file
diff --git a/src/net/CLI/JCOReflectorCLI.csproj b/src/net/CLI/JCOReflectorCLI.csproj
index 45d3f4a3c68..e3eebdc14ec 100644
--- a/src/net/CLI/JCOReflectorCLI.csproj
+++ b/src/net/CLI/JCOReflectorCLI.csproj
@@ -9,10 +9,10 @@
Copyright © MASES s.r.l. 2022
MASES s.r.l.
MASES s.r.l.
- 1.13.0.0
+ 1.14.0.0
MASES.JCOReflectorCLI
true
- net462;net6.0;net7.0
+ net462;net6.0;net7.0;net8.0
..\..\..\bin\
true
diff --git a/src/net/CLI/JCOReflectorCLI.nuspec b/src/net/CLI/JCOReflectorCLI.nuspec
index aa2230c624c..79f9bb2d4aa 100644
--- a/src/net/CLI/JCOReflectorCLI.nuspec
+++ b/src/net/CLI/JCOReflectorCLI.nuspec
@@ -2,7 +2,7 @@
MASES.JCOReflectorCLI
- 1.13.0
+ 1.14.0
JCOReflector CLI - CLI interface for JCOReflector Engine
MASES s.r.l.
MASES s.r.l.
@@ -26,5 +26,6 @@
+
\ No newline at end of file
diff --git a/src/net/CLI/Program.cs b/src/net/CLI/Program.cs
index 069c662e4af..8e028545964 100644
--- a/src/net/CLI/Program.cs
+++ b/src/net/CLI/Program.cs
@@ -36,6 +36,8 @@ static void showHelp(string errorString = null)
var title = "JCOReflector CLI - CLI interface for JCOReflector Engine (.NET 6)";
#elif NET7_0
var title = "JCOReflector CLI - CLI interface for JCOReflector Engine (.NET 7)";
+#elif NET8_0
+ var title = "JCOReflector CLI - CLI interface for JCOReflector Engine (.NET 8)";
#elif NETFRAMEWORK
var title = "JCOReflector CLI - CLI interface for JCOReflector Engine (.NET Framework)";
#else
diff --git a/src/net/GUI/JCOReflectorGUI.csproj b/src/net/GUI/JCOReflectorGUI.csproj
index 4350e415a4b..fe21140b4ac 100644
--- a/src/net/GUI/JCOReflectorGUI.csproj
+++ b/src/net/GUI/JCOReflectorGUI.csproj
@@ -8,10 +8,10 @@
Copyright © MASES s.r.l. 2023
MASES s.r.l.
MASES s.r.l.
- 1.13.0.0
+ 1.14.0.0
JCOReflectorGUI
true
- net462;net6.0-windows;net7.0-windows
+ net462;net6.0-windows;net7.0-windows;net8.0-windows
true
..\..\..\bin\
true
diff --git a/src/net/GUI/MainWindow.xaml.cs b/src/net/GUI/MainWindow.xaml.cs
index 128e51c4490..ca4af5071ac 100644
--- a/src/net/GUI/MainWindow.xaml.cs
+++ b/src/net/GUI/MainWindow.xaml.cs
@@ -116,6 +116,10 @@ public MainWindow()
#elif NET7_0
Title = "JCOReflector Builder - CLR to JVM reflection class generator (.NET 7)";
+ tbAssemblyNames.Text += "PresentationFramework";
+#elif NET8_0
+ Title = "JCOReflector Builder - CLR to JVM reflection class generator (.NET 8)";
+
tbAssemblyNames.Text += "PresentationFramework";
#elif NETFRAMEWORK
Title = "JCOReflector Builder - CLR to JVM reflection class generator (.NET Framework)";
diff --git a/src/net/engine/Const.cs b/src/net/engine/Const.cs
index 212c64d0f1b..0ae5cfdf6c9 100644
--- a/src/net/engine/Const.cs
+++ b/src/net/engine/Const.cs
@@ -112,12 +112,15 @@ static SpecialNames()
ExportingMethodsAvoidanceMap.Add("System.Threading.Thread", new string[] { "VolatileRead" });
ExportingMethodsAvoidanceMap.Add("System.Threading.Volatile", new string[] { "Read" });
ExportingMethodsAvoidanceMap.Add("System.Threading.Interlocked", new string[] { "Decrement", "Increment"
-#if NET6_0 || NET7_0
+#if NET6_0 || NET7_0 || NET8_0
, "Read"
#endif
});
-#if NET7_0
+#if NET7_0 || NET8_0
ExportingMethodsAvoidanceMap.Add("System.Runtime.InteropServices.JavaScript.JSMarshalerArgument", new string[] { "ToManaged" });
+#endif
+#if NET8_0
+ ExportingMethodsAvoidanceMap.Add("System.Runtime.InteropServices.Marshalling.IIUnknownInterfaceType", null);
#endif
DirectMappablePrimitives.Add("boolean", "java.util.concurrent.atomic.AtomicBoolean");
DirectMappablePrimitives.Add("byte", "java.util.concurrent.atomic.AtomicReference");
@@ -168,7 +171,7 @@ public static string GetRelativePath(string filespec, string folder)
public const string JCOBridgeEmbeddedFile = "JCOBridge.zip";
public const string JCOReflectorOptionsFile = "JCOReflectorOptions.java";
-#if NET6_0
+#if NET6_0 || NET7_0 || NET8_0
public static string[] JCOBridgeFiles = new string[]
{
Path.Combine("linux-arm", "J2CBridgeHostActivator.so"),
@@ -204,47 +207,18 @@ public static string GetRelativePath(string filespec, string folder)
"LicenseViewer.runtimeconfig.json",
"MachineIdGenerator.dll",
"MachineIdGenerator.runtimeconfig.json",
+#if NET6_0
"Microsoft.NET6.App.runtimeconfig.json",
"Microsoft.WindowsDesktop6.App.runtimeconfig.json",
- };
#elif NET7_0
- public static string[] JCOBridgeFiles = new string[]
- {
- Path.Combine("linux-arm", "J2CBridgeHostActivator.so"),
- Path.Combine("linux-arm", "libnethost.so"),
- Path.Combine("linux-arm64", "J2CBridgeHostActivator.so"),
- Path.Combine("linux-arm64", "libnethost.so"),
- Path.Combine("linux-x64", "J2CBridgeHostActivator.so"),
- Path.Combine("linux-x64", "libnethost.so"),
- Path.Combine("win-arm", "J2CBridgeHostActivator.dll"),
- Path.Combine("win-arm", "nethost.dll"),
- Path.Combine("win-arm64", "J2CBridgeHostActivator.dll"),
- Path.Combine("win-arm64", "nethost.dll"),
- Path.Combine("win-x64", "J2CBridgeHostActivator.dll"),
- Path.Combine("win-x64", "nethost.dll"),
- Path.Combine("win-x86", "J2CBridgeHostActivator.dll"),
- Path.Combine("win-x86", "nethost.dll"),
- "C2JBridge.dll",
- "C2JBridgeDesktop.dll",
- "IpAddressIdGenerator.dll",
- "IpAddressIdGenerator.runtimeconfig.json",
- "J2CBridge_Arm.dll",
- "J2CBridge_Arm.so",
- "J2CBridge_Arm64.dll",
- "J2CBridge_Arm64.so",
- "J2CBridge_x64.dll",
- "J2CBridge_x64.so",
- "J2CBridge_x86.dll",
- "JCOBridge.docs.jar",
- "JCOBridge.jar",
- "LicenseManagerUI.dll",
- "LicenseManagerUI.runtimeconfig.json",
- "LicenseViewer.dll",
- "LicenseViewer.runtimeconfig.json",
- "MachineIdGenerator.dll",
- "MachineIdGenerator.runtimeconfig.json",
"Microsoft.NET7.App.runtimeconfig.json",
"Microsoft.WindowsDesktop7.App.runtimeconfig.json",
+#elif NET8_0
+ "Microsoft.NET8.App.runtimeconfig.json",
+ "Microsoft.WindowsDesktop8.App.runtimeconfig.json",
+#else
+#error Unable to identify .NET engine
+#endif
};
#elif NETFRAMEWORK
public static string[] JCOBridgeFiles = new string[]
@@ -300,6 +274,10 @@ public class Framework
public const string Runtime = ".NET 7";
public const string RuntimeName = ".NETCoreApp";
public const string RuntimeFolder = "net7.0";
+#elif NET8_0
+ public const string Runtime = ".NET 8";
+ public const string RuntimeName = ".NETCoreApp";
+ public const string RuntimeFolder = "net8.0";
#elif NETFRAMEWORK
public const string Runtime = ".NET Framework";
public const string RuntimeName = ".NETFramework";
diff --git a/src/net/engine/JCOReflectorEngine.csproj b/src/net/engine/JCOReflectorEngine.csproj
index 84e82e5cca4..52e13cda3d1 100644
--- a/src/net/engine/JCOReflectorEngine.csproj
+++ b/src/net/engine/JCOReflectorEngine.csproj
@@ -7,10 +7,10 @@
Copyright © MASES s.r.l. 2023
MASES s.r.l.
MASES s.r.l.
- 1.13.0.0
+ 1.14.0.0
MASES.JCOReflectorEngine
true
- net462;net6.0;net7.0
+ net462;net6.0;net7.0;net8.0
..\..\..\bin\
true
true
@@ -105,6 +105,7 @@
+
@@ -114,7 +115,7 @@
-
+
All
None
diff --git a/src/net/engine/Reflector.cs b/src/net/engine/Reflector.cs
index 6e6a733967a..fcbcf3e66a9 100644
--- a/src/net/engine/Reflector.cs
+++ b/src/net/engine/Reflector.cs
@@ -1340,7 +1340,7 @@ static bool AvoidExportMethods(this Type type, MethodInfo method)
string[] methodNamesToCheck;
if (Const.SpecialNames.ExportingMethodsAvoidanceMap.TryGetValue(fullname, out methodNamesToCheck))
{
- return methodNamesToCheck.Contains(methodName);
+ return methodNamesToCheck != null && methodNamesToCheck.Contains(methodName);
}
return false;
@@ -2532,7 +2532,7 @@ static bool ExportingDelegate(this Type item, string destFolder, string assembly
var fileName = Path.Combine(pathToSaveTo, string.Format("I{0}.java", delegateName));
writeFile(fileName, interfaceStr);
- importsStr = importsStr + string.Format(Const.Imports.IMPORT, packageName, string.Format("I{0}", delegateName));
+ importsStr += string.Format(Const.Imports.IMPORT, packageName, string.Format("I{0}", delegateName));
string dynamicInvokeExecParamStr = dynamicInvokeExecParams.ToString();
var dynamicInvokeStr = dynamicInvokeTemplateToUse.Replace(Const.Methods.METHOD_JAVA_NAME, Const.SpecialNames.METHOD_DYNAMICINVOKE_NAME)
@@ -2771,6 +2771,7 @@ static string ExportImports(this IList imports)
subItem = item.GetElementType();
}
var name = subItem.Name;
+ if (string.IsNullOrWhiteSpace(name)) continue; // bypass empty name which leads to error in some cases
if (subItem.IsInterface)
{
if (subItem.IsManagedType(0, 1) && subItem != typeof(IEnumerator) && subItem != typeof(IEnumerable))