From 1b75598dfbf82cc90e7cba6285cd529ddd9e05fc Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Sun, 29 Mar 2026 03:53:26 +0200
Subject: [PATCH 01/13] Update to JCOBridge 2.6.7-beta
---
.github/workflows/build.yaml | 2 +-
.github/workflows/generateclasses.yaml | 2 +-
src/net/JNet/JNet.csproj | 2 +-
src/net/JNetReflector/JNetReflector.csproj | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index ba9d456ec42..5105ff58860 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -160,4 +160,4 @@ jobs:
secrets:
actor: ${{ github.actor }}
GITHUB_TOKEN_INHERITED: ${{ secrets.GITHUB_TOKEN }}
- JCOBRIDGE_ENCODED: ${{ secrets.JCOBRIDGE_ENCODED_2_6_6 }}
+ JCOBRIDGE_ENCODED: ${{ secrets.JCOBRIDGE_ENCODED_2_6_7 }}
diff --git a/.github/workflows/generateclasses.yaml b/.github/workflows/generateclasses.yaml
index c7ecbc7a3b6..e7566cfd2e2 100644
--- a/.github/workflows/generateclasses.yaml
+++ b/.github/workflows/generateclasses.yaml
@@ -25,7 +25,7 @@ jobs:
DOTNET_CreateDumpDiagnostics: 1
DOTNET_CreateDumpVerboseDiagnostics: 1
DOTNET_EnableCrashReport: 1
- JCOBRIDGE_LicensePath: ${{ secrets.JCOBRIDGE_ENCODED_2_6_6 }}
+ JCOBRIDGE_LicensePath: ${{ secrets.JCOBRIDGE_ENCODED_2_6_7 }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
diff --git a/src/net/JNet/JNet.csproj b/src/net/JNet/JNet.csproj
index 0fdaecf3501..71639f4280c 100644
--- a/src/net/JNet/JNet.csproj
+++ b/src/net/JNet/JNet.csproj
@@ -50,7 +50,7 @@
-
+
All
None
diff --git a/src/net/JNetReflector/JNetReflector.csproj b/src/net/JNetReflector/JNetReflector.csproj
index e82663377a2..92163bf650c 100644
--- a/src/net/JNetReflector/JNetReflector.csproj
+++ b/src/net/JNetReflector/JNetReflector.csproj
@@ -116,7 +116,7 @@
-
+
All
None
From 0d50c6de96df5752462dbf36099be090e4659e48 Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Sun, 29 Mar 2026 04:58:48 +0200
Subject: [PATCH 02/13] Update to beta1
---
src/net/JNet/Developed/.editorconfig | 4 ++++
src/net/JNet/JNet.csproj | 2 +-
src/net/JNet/Specific/AsyncEnumerable.cs | 2 +-
src/net/JNetReflector/JNetReflector.csproj | 2 +-
4 files changed, 7 insertions(+), 3 deletions(-)
create mode 100644 src/net/JNet/Developed/.editorconfig
diff --git a/src/net/JNet/Developed/.editorconfig b/src/net/JNet/Developed/.editorconfig
new file mode 100644
index 00000000000..cba3cf97dc9
--- /dev/null
+++ b/src/net/JNet/Developed/.editorconfig
@@ -0,0 +1,4 @@
+[*.cs]
+generated_code = true
+dotnet_analyzer_diagnostic.severity = none
+dotnet_diagnostic.CS0108.severity = none
diff --git a/src/net/JNet/JNet.csproj b/src/net/JNet/JNet.csproj
index 71639f4280c..e56de77699c 100644
--- a/src/net/JNet/JNet.csproj
+++ b/src/net/JNet/JNet.csproj
@@ -50,7 +50,7 @@
-
+
All
None
diff --git a/src/net/JNet/Specific/AsyncEnumerable.cs b/src/net/JNet/Specific/AsyncEnumerable.cs
index acd5ead247a..b4baba2711d 100644
--- a/src/net/JNet/Specific/AsyncEnumerable.cs
+++ b/src/net/JNet/Specific/AsyncEnumerable.cs
@@ -82,7 +82,7 @@ public ValueTask MoveNextAsync()
/// The class implementing
/// The type of objects to enumerate implementing
public abstract class JNetAsyncEnumerable : JVMBridgeBaseEnumerable, IAsyncEnumerable
- where TClass : JVMBridgeBase
+ where TClass : class, IJVMBridgeBase
{
///
/// Create an instance of
diff --git a/src/net/JNetReflector/JNetReflector.csproj b/src/net/JNetReflector/JNetReflector.csproj
index 92163bf650c..e40614d5a3e 100644
--- a/src/net/JNetReflector/JNetReflector.csproj
+++ b/src/net/JNetReflector/JNetReflector.csproj
@@ -116,7 +116,7 @@
-
+
All
None
From dc920101cf580d8ec1e08bf81c4f374559fa14fb Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Sun, 29 Mar 2026 05:13:25 +0200
Subject: [PATCH 03/13] JNetReflector distinguish JCOBridge base class
searching for AutoCloseable interface
---
src/net/JNetReflector/InternalExtensions.cs | 15 +++++++++------
src/net/JNetReflector/InternalMethods.cs | 6 +++---
.../Templates/AllPackageClassesStubClass.template | 2 +-
...geClassesStubClassInterfaceOrAbstract.template | 2 +-
.../AllPackageClassesStubClassListener.template | 2 +-
src/net/JNetReflector/Templates/Templates.cs | 2 +-
6 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/net/JNetReflector/InternalExtensions.cs b/src/net/JNetReflector/InternalExtensions.cs
index 8215dbffbd4..2522ff546b4 100644
--- a/src/net/JNetReflector/InternalExtensions.cs
+++ b/src/net/JNetReflector/InternalExtensions.cs
@@ -1421,7 +1421,7 @@ public static bool HasJVMBaseClassName(this Class entry, bool usedInGenerics, bo
}
}
- public static string JVMBaseClassName(this Class entry, bool usedInGenerics, bool isListener, bool camel, out bool baseClassIsJVMBridgeBase)
+ public static string JVMBaseClassName(this Class entry, bool isClassCloseable, bool usedInGenerics, bool isListener, bool camel, out bool baseClassIsJVMBridgeBase)
{
baseClassIsJVMBridgeBase = false;
if (isListener)
@@ -1436,7 +1436,8 @@ public static string JVMBaseClassName(this Class entry, bool usedInGenerics, boo
{
baseClassIsJVMBridgeBase = true;
string className = entry.JVMClassName(null, usedInGenerics, false);
- return string.Format("MASES.JCOBridge.C2JBridge.JVMBridgeBase<{0}>", className);
+ return isClassCloseable ? $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{className}>"
+ : $"MASES.JCOBridge.C2JBridge.JVMBridgeBaseCore<{className}>";
}
try
{
@@ -1513,7 +1514,8 @@ public static string JVMBaseClassName(this Class entry, bool usedInGenerics, boo
{
baseClassIsJVMBridgeBase = true;
string innerName = entry.JVMClassName(null, usedInGenerics, false);
- return string.Format("MASES.JCOBridge.C2JBridge.JVMBridgeBase<{0}>", innerName);
+ return isClassCloseable ? $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{innerName}>"
+ : $"MASES.JCOBridge.C2JBridge.JVMBridgeBaseCore<{innerName}>";
}
}
else if ((usedInGenerics || !entry.IsJVMGenericClass()) && superCls.IsJVMGenericClass())
@@ -1526,15 +1528,16 @@ public static string JVMBaseClassName(this Class entry, bool usedInGenerics, boo
{
baseClassIsJVMBridgeBase = true;
string className = entry.JVMClassName(null, usedInGenerics, false);
- return string.Format("MASES.JCOBridge.C2JBridge.JVMBridgeBase<{0}>", className);
+ return isClassCloseable ? $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{className}>"
+ : $"MASES.JCOBridge.C2JBridge.JVMBridgeBaseCore<{className}>";
}
}
- public static string JVMBaseInterfaceName(this Class entry, bool usedInGenerics, bool isListener, bool camel)
+ public static string JVMBaseInterfaceName(this Class entry, bool isClassCloseable, bool usedInGenerics, bool isListener, bool camel)
{
if (!entry.HasJVMBaseClassName(usedInGenerics, isListener, camel)) return string.Empty;
- var fName = entry.JVMBaseClassName(usedInGenerics, isListener, camel, out _);
+ var fName = entry.JVMBaseClassName(isClassCloseable, usedInGenerics, isListener, camel, out _);
return ToFullQualifiedInterfaceName(fName, camel);
}
diff --git a/src/net/JNetReflector/InternalMethods.cs b/src/net/JNetReflector/InternalMethods.cs
index 114df1f4fdf..46d8869c4a6 100644
--- a/src/net/JNetReflector/InternalMethods.cs
+++ b/src/net/JNetReflector/InternalMethods.cs
@@ -766,7 +766,7 @@ static void PrepareSingleClass(this Class jClass, IEnumerable classDefini
.Replace(AllPackageClasses.ClassStub.SIMPLECLASS, jClass.JVMClassName(null, false, false))
.Replace(AllPackageClasses.ClassStub.CLASS, jClass.JVMClassName(null, isGeneric, false))
.Replace(AllPackageClasses.ClassStub.HELP, jClass.JavadocHrefUrl(JNetReflectorCore.UseCamel))
- .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isGeneric, false, JNetReflectorCore.UseCamel, out _))
+ .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isClassCloseable, isGeneric, false, JNetReflectorCore.UseCamel, out _))
.Replace(AllPackageClasses.ClassStub.WHERECLAUSES, string.Empty);
}
else
@@ -779,7 +779,7 @@ static void PrepareSingleClass(this Class jClass, IEnumerable classDefini
.Replace(AllPackageClasses.ClassStub.CLASS, jClass.JVMClassName(new List>(), isGeneric, false))
.Replace(AllPackageClasses.ClassStub.CLASS_DIRECT, jClass.JVMClassName(new List>(), isGeneric, true))
.Replace(AllPackageClasses.ClassStub.HELP, jClass.JavadocHrefUrl(JNetReflectorCore.UseCamel))
- .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isGeneric, jClassIsListener, JNetReflectorCore.UseCamel, out bool baseClassIsJVMBridgeBase) + (isMainClass ? SpecialNames.MainClassPlaceHolder : string.Empty))
+ .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isClassCloseable, isGeneric, jClassIsListener, JNetReflectorCore.UseCamel, out bool baseClassIsJVMBridgeBase) + (isMainClass ? SpecialNames.MainClassPlaceHolder : string.Empty))
.Replace(AllPackageClasses.ClassStub.WHERECLAUSES, jClass.WhereClauses(isGeneric, JNetReflectorCore.UseCamel))
.Replace(AllPackageClasses.ClassStub.ISABSTRACT, isClassAbstract ? "true" : "false")
.Replace(AllPackageClasses.ClassStub.ISCLOSEABLE, isClassCloseable ? "true" : "false")
@@ -818,7 +818,7 @@ static void PrepareSingleClass(this Class jClass, IEnumerable classDefini
singleInterfaceStr = string.Empty;
if (createInterfaceData)
{
- string baseInterface = jClass.JVMBaseInterfaceName(isGeneric, jClassIsListener, JNetReflectorCore.UseCamel);
+ string baseInterface = jClass.JVMBaseInterfaceName(isClassCloseable, isGeneric, jClassIsListener, JNetReflectorCore.UseCamel);
if (!string.IsNullOrWhiteSpace(baseInterface))
{
baseInterface = " : " + baseInterface;
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template
index 3fcd612542c..f507a7916ec 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template
@@ -18,7 +18,7 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : ALLPACKAGE_CLAS
public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER(params object[] args) : base(args) { }
private static readonly global::System.Exception _LocalBridgeClazzException = null;
- private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);
+ private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBaseCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);
private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found.");
///
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template
index 9ca285705ca..eee269ccee5 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template
@@ -20,7 +20,7 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : ALLPACKAGE_CLAS
public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER(params object[] args) : base(args) { }
private static readonly global::System.Exception _LocalBridgeClazzException = null;
- private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);
+ private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBaseCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);
private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found.");
///
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
index db4f42d67f5..c5a98269c1e 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
@@ -46,7 +46,7 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_DIRECT_PLACEHOLDER : ALLPACKA
const string _bridgeClassName = "ALLPACKAGE_CLASSES_STUB_JAVACLASS_DIRECT_PLACEHOLDER";
private static readonly global::System.Exception _LocalBridgeClazzException = null;
- private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);
+ private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBaseCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);
private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found.");
///
diff --git a/src/net/JNetReflector/Templates/Templates.cs b/src/net/JNetReflector/Templates/Templates.cs
index 2970eff4f57..44fe9701535 100644
--- a/src/net/JNetReflector/Templates/Templates.cs
+++ b/src/net/JNetReflector/Templates/Templates.cs
@@ -160,7 +160,7 @@ public class ClassStub
public static string LISTENER_CLASS_BLOCK = " const string _bridgeClassName = \"ALLPACKAGE_CLASSES_STUB_JAVACLASS_PLACEHOLDER\";" + Environment.NewLine
+ " private static readonly global::System.Exception _LocalBridgeClazzException = null;" + Environment.NewLine
- + " private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);" + Environment.NewLine
+ + " private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBaseCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);" + Environment.NewLine
+ " private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($\"Class {_bridgeClassName} was not found.\");" + Environment.NewLine
+ " " + Environment.NewLine
+ " /// " + Environment.NewLine
From 74fd40b3a63fce3b16dc27dd1141c7c4e4280e4c Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Sun, 29 Mar 2026 05:25:54 +0200
Subject: [PATCH 04/13] Remove default constructor from templates and
introduces listeners with arguments
---
src/net/JNetReflector/InternalMethods.cs | 1 +
.../Templates/AllPackageClassesStubClass.template | 4 ----
...ckageClassesStubClassInterfaceOrAbstract.template | 5 -----
.../AllPackageClassesStubClassListener.template | 12 ++++--------
.../AllPackageClassesStubClassMainClass.template | 8 ++++----
5 files changed, 9 insertions(+), 21 deletions(-)
diff --git a/src/net/JNetReflector/InternalMethods.cs b/src/net/JNetReflector/InternalMethods.cs
index 46d8869c4a6..de7c95b9a1d 100644
--- a/src/net/JNetReflector/InternalMethods.cs
+++ b/src/net/JNetReflector/InternalMethods.cs
@@ -796,6 +796,7 @@ static void PrepareSingleClass(this Class jClass, IEnumerable classDefini
}
else
{
+ constructorClassBlock = jClass.AnalyzeConstructors(classDefinitions, isGeneric, true, baseClassIsJVMBridgeBase).AddTabLevel(1);
if (jClass.IsJVMClassWithCallbacks())
{
operatorClassBlock = jClass.AnalyzeOperators(classDefinitions, isGeneric, true).AddTabLevel(1);
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template
index f507a7916ec..d1881f3f20f 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template
@@ -4,10 +4,6 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : ALLPACKAGE_CLAS
{
const string _bridgeClassName = "ALLPACKAGE_CLASSES_STUB_JAVACLASS_PLACEHOLDER";
///
- /// Default constructor: even if the corresponding Java class does not have one, it is mandatory for JCOBridge
- ///
- public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER() { }
- ///
/// Internal constructor: used internally from JCOBridge
///
[global::System.Obsolete("This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")]
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template
index eee269ccee5..10a13ca363d 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template
@@ -4,11 +4,6 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : ALLPACKAGE_CLAS
{
const string _bridgeClassName = "ALLPACKAGE_CLASSES_STUB_JAVACLASS_PLACEHOLDER";
///
- /// Default constructor: even if the corresponding Java class does not have one, it is mandatory for JCOBridge
- ///
- [global::System.Obsolete("ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER class represents, in .NET, an instance of a JVM interface or abstract class. This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")]
- public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER() { }
- ///
/// Internal constructor: used internally from JCOBridge
///
[global::System.Obsolete("This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")]
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
index c5a98269c1e..aeb0bef5117 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
@@ -2,10 +2,6 @@
ALLPACKAGE_CLASSES_STUB_CLASS_DECORATION_PLACEHOLDER
public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : ALLPACKAGE_CLASSES_STUB_BASECLASS_PLACEHOLDER
{
- ///
- /// Default constructor: even if the corresponding Java class does not have one, it is mandatory for JCOBridge
- ///
- public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER() { InitializeHandlers(); }
///
/// Internal constructor: used internally from JCOBridge
///
@@ -28,15 +24,15 @@ ALLPACKAGE_CLASSES_STUB_LISTENER_CLASS_PLACEHOLDER
///
public partial class ALLPACKAGE_CLASSES_STUB_CLASS_DIRECT_PLACEHOLDER : ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER
{
- ///
- /// Default constructor: even if the corresponding Java class does not have one, it is mandatory for JCOBridge
- ///
- public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDERDirect() { }
///
/// Internal constructor: used internally from JCOBridge
///
[global::System.Obsolete("This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")]
public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDERDirect(IJVMBridgeBaseInitializer initializer) : base(initializer) { }
+ ///
+ /// Generic constructor: it is useful for JCOBridge when there is a derived class which needs to pass arguments to the highest JVMBridgeBase class
+ ///
+ public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER(params object[] args) : base(args) { }
///
public override bool AutoInit => false;
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassMainClass.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassMainClass.template
index 5749ca90021..d61d9679d8f 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassMainClass.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassMainClass.template
@@ -6,14 +6,14 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : MASES.JCOBridge
{
const string _bridgeClassName = "ALLPACKAGE_CLASSES_STUB_JAVACLASS_PLACEHOLDER";
///
- /// Initialize a new
- ///
- public ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER() { }
- ///
/// Internal constructor: used internally from JCOBridge
///
[global::System.Obsolete("This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")]
public ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER(IJVMBridgeBaseInitializer initializer) : base(initializer) { }
+ ///
+ /// Initialize a new
+ ///
+ public ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER(params object[] args) : base(args) { }
///
public override string BridgeClassName => _bridgeClassName;
From f80fd42b8de34d4acc968093cb3e3ca82f7961e7 Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Sun, 29 Mar 2026 06:09:56 +0200
Subject: [PATCH 05/13] Fix generation
---
.../Templates/AllPackageClassesStubClassListener.template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
index aeb0bef5117..d8a85ef0338 100644
--- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
+++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template
@@ -32,7 +32,7 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_DIRECT_PLACEHOLDER : ALLPACKA
///
/// Generic constructor: it is useful for JCOBridge when there is a derived class which needs to pass arguments to the highest JVMBridgeBase class
///
- public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER(params object[] args) : base(args) { }
+ public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDERDirect(params object[] args) : base(args) { }
///
public override bool AutoInit => false;
From 9abcdac2f4d7c10cefa14b5360fe4f343ffcb1ab Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Sun, 29 Mar 2026 06:58:44 +0200
Subject: [PATCH 06/13] Fix wrong exclude
---
.github/workflows/generateclasses.yaml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/generateclasses.yaml b/.github/workflows/generateclasses.yaml
index e7566cfd2e2..cde3f69ab0f 100644
--- a/.github/workflows/generateclasses.yaml
+++ b/.github/workflows/generateclasses.yaml
@@ -54,10 +54,10 @@ jobs:
run: mvn "-DbinFolderName=binReflector" --file ./src/jvm/jnetreflector/pom.xml --no-transfer-progress package
- name: Clear C# generated files
- run: Remove-Item .\src\net\JNet\Generated\* -Recurse -Force -Exclude README.md
+ run: Remove-Item .\src\net\JNet\Generated\* -Recurse -Force -Exclude README.md,.editorconfig
- name: Clear Java generated files
- run: Remove-Item .\src\jvm\jnet\src\main\java\org\mases\jnet\generated\* -Recurse -Force -Exclude README.md,.editorconfig
+ run: Remove-Item .\src\jvm\jnet\src\main\java\org\mases\jnet\generated\* -Recurse -Force -Exclude README.md
- run: dotnet build --no-incremental --configuration Release src\net\JNetReflector\JNetReflector.csproj
From 27dfc30ace32c73ae19cde853c0b3856ddf30b66 Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Sun, 29 Mar 2026 07:09:36 +0200
Subject: [PATCH 07/13] Default constructor, if available, shall be reflected
---
src/net/JNetReflector/InternalMethods.cs | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/net/JNetReflector/InternalMethods.cs b/src/net/JNetReflector/InternalMethods.cs
index de7c95b9a1d..1b8a773146a 100644
--- a/src/net/JNetReflector/InternalMethods.cs
+++ b/src/net/JNetReflector/InternalMethods.cs
@@ -950,7 +950,6 @@ static string AnalyzeConstructors(this Class classDefinition, IEnumerable
var paramCount = constructor.ParameterCount;
var methodNameOrigin = constructor.Name;
- if (paramCount == 0) continue; // default constructor managed from AllClasses template as default for any JCOBridge reflected class
bool isDeprecated = constructor.IsDeprecated();
if (!JNetReflectorCore.ReflectDeprecated && isDeprecated)
{
From 8c5c9861fa8b0213f559cd18effdaa007950f1f6 Mon Sep 17 00:00:00 2001
From: masesdevelopers <94312179+masesdevelopers@users.noreply.github.com>
Date: Mon, 30 Mar 2026 00:31:54 +0200
Subject: [PATCH 08/13] Update dispatch input
---
.github/workflows/build.yaml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 5105ff58860..08dd42868fb 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -151,8 +151,8 @@ jobs:
ExecuteOnMoreOSes: ${{ inputs.ExecuteOnMoreOSes || github.event_name == 'schedule' }}
ExecuteOnLargerJDKSet: ${{ inputs.ExecuteOnLargerJDKSet || github.ref_name == 'master' || github.event_name == 'schedule' }}
EnableLinuxTests: true
- EnableWindowsTests: ${{ inputs.ExecuteOnWindows || github.ref_name == 'master' || github.event_name == 'schedule' }}
- EnableMacOSTests: ${{ inputs.ExecuteOnMacOS || github.event_name == 'schedule' }}
+ EnableWindowsTests: ${{ inputs.EnableWindowsTests || github.ref_name == 'master' || github.event_name == 'schedule' }}
+ EnableMacOSTests: ${{ inputs.EnableMacOSTests || github.event_name == 'schedule' }}
ForceContinueOnError: ${{ inputs.ForceContinueOnError || false }}
EnableProcessDump: ${{ inputs.EnableProcessDump || '0' }}
ProcessDumpType: ${{ inputs.ProcessDumpType || '3' }}
From 74925922ecc0f8df9de76251178110fc389026cf Mon Sep 17 00:00:00 2001
From: MASES Public Developers Team
<94312179+masesdevelopers@users.noreply.github.com>
Date: Mon, 30 Mar 2026 03:46:19 +0200
Subject: [PATCH 09/13] Update to beta2
---
src/net/JNet/JNet.csproj | 2 +-
src/net/JNetReflector/JNetReflector.csproj | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/net/JNet/JNet.csproj b/src/net/JNet/JNet.csproj
index e56de77699c..8ff1d824630 100644
--- a/src/net/JNet/JNet.csproj
+++ b/src/net/JNet/JNet.csproj
@@ -50,7 +50,7 @@
-
+
All
None
diff --git a/src/net/JNetReflector/JNetReflector.csproj b/src/net/JNetReflector/JNetReflector.csproj
index e40614d5a3e..3e9488fb1c1 100644
--- a/src/net/JNetReflector/JNetReflector.csproj
+++ b/src/net/JNetReflector/JNetReflector.csproj
@@ -116,7 +116,7 @@
-
+
All
None
From 805d38c157dce625c4a5ee43f6e4d9f943eb7590 Mon Sep 17 00:00:00 2001
From: MASES Public Developers Team
<94312179+masesdevelopers@users.noreply.github.com>
Date: Tue, 31 Mar 2026 08:33:55 +0200
Subject: [PATCH 10/13] Update to beta 3
---
src/net/JNet/JNet.csproj | 2 +-
src/net/JNetReflector/JNetReflector.csproj | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/net/JNet/JNet.csproj b/src/net/JNet/JNet.csproj
index 8ff1d824630..dc7a37a1ffa 100644
--- a/src/net/JNet/JNet.csproj
+++ b/src/net/JNet/JNet.csproj
@@ -50,7 +50,7 @@
-
+
All
None
diff --git a/src/net/JNetReflector/JNetReflector.csproj b/src/net/JNetReflector/JNetReflector.csproj
index 3e9488fb1c1..ba8f35546a8 100644
--- a/src/net/JNetReflector/JNetReflector.csproj
+++ b/src/net/JNetReflector/JNetReflector.csproj
@@ -116,7 +116,7 @@
-
+
All
None
From a86b6ec1852852d68d129ad2b68247f5f83553e0 Mon Sep 17 00:00:00 2001
From: MASES Public Developers Team
<94312179+masesdevelopers@users.noreply.github.com>
Date: Tue, 31 Mar 2026 09:28:34 +0200
Subject: [PATCH 11/13] Update to beta 4
---
src/net/JNet/JNet.csproj | 2 +-
src/net/JNetReflector/JNetReflector.csproj | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/net/JNet/JNet.csproj b/src/net/JNet/JNet.csproj
index dc7a37a1ffa..544ef6f32ee 100644
--- a/src/net/JNet/JNet.csproj
+++ b/src/net/JNet/JNet.csproj
@@ -50,7 +50,7 @@
-
+
All
None
diff --git a/src/net/JNetReflector/JNetReflector.csproj b/src/net/JNetReflector/JNetReflector.csproj
index ba8f35546a8..8b68601acd6 100644
--- a/src/net/JNetReflector/JNetReflector.csproj
+++ b/src/net/JNetReflector/JNetReflector.csproj
@@ -116,7 +116,7 @@
-
+
All
None
From 54a1ab3c98ab60b6dd32781d4207f28399e620a7 Mon Sep 17 00:00:00 2001
From: MASES Public Developers Team
<94312179+masesdevelopers@users.noreply.github.com>
Date: Fri, 3 Apr 2026 04:42:13 +0200
Subject: [PATCH 12/13] Update to beta 5
---
src/net/JNet/JNet.csproj | 2 +-
src/net/JNetReflector/JNetReflector.csproj | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/net/JNet/JNet.csproj b/src/net/JNet/JNet.csproj
index 544ef6f32ee..1aa06c00651 100644
--- a/src/net/JNet/JNet.csproj
+++ b/src/net/JNet/JNet.csproj
@@ -50,7 +50,7 @@
-
+
All
None
diff --git a/src/net/JNetReflector/JNetReflector.csproj b/src/net/JNetReflector/JNetReflector.csproj
index 8b68601acd6..7b6fa3bd9a9 100644
--- a/src/net/JNetReflector/JNetReflector.csproj
+++ b/src/net/JNetReflector/JNetReflector.csproj
@@ -116,7 +116,7 @@
-
+
All
None
From 3d56a13ce8f6027676ed21bfd632e1b9c9819cc2 Mon Sep 17 00:00:00 2001
From: MASES Public Developers Team
<94312179+masesdevelopers@users.noreply.github.com>
Date: Fri, 3 Apr 2026 11:41:29 +0200
Subject: [PATCH 13/13] Update to beta 6
---
src/net/JNet/JNet.csproj | 2 +-
src/net/JNetReflector/JNetReflector.csproj | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/net/JNet/JNet.csproj b/src/net/JNet/JNet.csproj
index 1aa06c00651..84cefba520a 100644
--- a/src/net/JNet/JNet.csproj
+++ b/src/net/JNet/JNet.csproj
@@ -50,7 +50,7 @@
-
+
All
None
diff --git a/src/net/JNetReflector/JNetReflector.csproj b/src/net/JNetReflector/JNetReflector.csproj
index 7b6fa3bd9a9..2faaa8b2b94 100644
--- a/src/net/JNetReflector/JNetReflector.csproj
+++ b/src/net/JNetReflector/JNetReflector.csproj
@@ -116,7 +116,7 @@
-
+
All
None