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