Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1507 commits
Select commit Hold shift + click to select a range
dd041d2
[build] Remove support for JDK 8. (#1120)
jonpryor Jun 2, 2023
34043e8
[generator] Remove support for --codegen-target=XamarinAndroid (#1121)
jpobst Jun 5, 2023
b7ea6e9
Localized file check-in by OneLocBuild Task: Build definition ID 1226…
vs-mobiletools-engineering-service2 Jun 6, 2023
38165c5
[build] Require JDK 11 as our minimum. (#1123)
jpobst Jun 8, 2023
e508388
Bump to xamarin/xamarin-android-tools/main@3cee10b (#1124)
dependabot[bot] Jun 16, 2023
b116a4b
[generator] Override methods should match base deprecated info (#1130)
jpobst Jul 12, 2023
65515ad
[Java.Interop.Tools.JavaSource] Improve `<a>` parsing (#1126)
pjcollins Jul 12, 2023
c796272
[Java.Interop.Tools.JavaSource] Improve `<code>` parsing (#1125)
pjcollins Jul 12, 2023
7ff2bd0
[tests] add category for tests that fail under LLVM (#1131)
jonathanpeppers Jul 19, 2023
2d65b24
[generator] Prevent BG8A08 warning when using `ns-replace` (#1136)
jpobst Aug 7, 2023
7943c4e
[build] set `$(DisableTransitiveFrameworkReferenceDownloads)`=true (#…
jonathanpeppers Aug 23, 2023
dd0c073
Revert "[build] Enable NuGet's Central Package Management (#1114)" (#…
jonathanpeppers Aug 23, 2023
e8b671a
[build] Add support for JDK 17 (#1141)
jonpryor Sep 1, 2023
172835e
Bump to xamarin/xamarin-android-tools/main@9c50a2d (#1140)
dependabot[bot] Sep 11, 2023
9b7d821
[JavaTypeSystem] Add JavaFieldModel.ToString(). (#1144)
jpobst Sep 14, 2023
db9c789
Bump to xamarin/xamarin-android-tools/main@8a971d9 (#1146)
dependabot[bot] Sep 29, 2023
ae98412
[build] introduce `xamarin-android-tools.override.props` (#1148)
jonathanpeppers Sep 29, 2023
009f9c0
[generator] generator --lang-features=do-not-fix-obsolete-overrides (…
jpobst Oct 2, 2023
356da20
[generator] restore `[RegisterAttribute]` for *Implementor types (#1149)
jonathanpeppers Oct 9, 2023
6dd42b7
[class-parse] Add Kotlin metadata to `-dump`. (#1150)
jpobst Oct 16, 2023
5537aec
[Xamarin.Android.Tools.Bytecode] Kotlin internal prop visibility (#1151)
jpobst Oct 26, 2023
cf60cef
[generator] `generator --lang-features=emit-legacy-interface-invokers…
jonpryor Oct 26, 2023
141517b
[Xamarin.Android.Tools.Bytecode] Kotlin unsigned internal props (#1156)
jpobst Nov 3, 2023
cb45bd7
[Java.Interop] Allow JniRuntime init from JavaVM* and JNIEnv* (#1158)
jonpryor Nov 9, 2023
46de596
[Java.Interop.Tools.JavaCallableWrappers] [Export]+params (#1161)
jonpryor Nov 13, 2023
c6faab7
[jcw-gen, jnimarshalmethod-gen] Native method consistency (#1160)
jonpryor Nov 13, 2023
a96095f
[generator] `[JniConstructorSignature]` on bound constructors (#1162)
jonpryor Nov 14, 2023
d065495
Bump to xamarin/xamarin-android-tools/main@8d38281 (#1163)
dependabot[bot] Nov 17, 2023
5402879
[jnimarshalmethod-gen] JavaInterop1 marshal methods (#1164)
jonpryor Nov 20, 2023
28427f5
Rename com.xamarin.java_interop package to net.dot.jni (#1166)
jonpryor Nov 22, 2023
2cb069b
[Java.Base] Update reference API (#1167)
jonpryor Nov 24, 2023
28626da
[Java.Interop] Use PublicApiAnalyzers to ensure we do not break API (…
jpobst Dec 1, 2023
75b3b3b
[Java.Interop] Avoid `Type.GetType()` in `ManagedPeer` (#1168)
jonpryor Dec 2, 2023
680e36c
Bump to xamarin/xamarin-android-tools/main@4889bf0 (#1172)
dependabot[bot] Dec 2, 2023
d6765e8
[invocation-overhead] Add generated source files (#1175)
jpobst Dec 11, 2023
e04feb6
[ci] Add API Scan job (#1178)
pjcollins Jan 10, 2024
48638af
Bump to xamarin/xamarin-android-tools/main@ed102fc (#1182)
dependabot[bot] Jan 26, 2024
b68d4c0
[Java.Interop] Typemap support for JavaObject & `[JniTypeSignature]` …
jonpryor Feb 2, 2024
cf278fa
[Java.Interop.Tools.Cecil] `DirectoryAssemblyResolver` symbol loads (…
jonathanpeppers Feb 7, 2024
3dd68c0
[build] Target `net8.0` (#1186)
jonpryor Feb 8, 2024
7fc49c2
Bump to xamarin/xamarin-android-tools/main@a698a33 (#1189)
dependabot[bot] Feb 9, 2024
29b7ced
[Java.Interop] address some "easy" trimmer warnings (#1184)
jonathanpeppers Feb 13, 2024
9720f77
[Java.Interop] ignore remaining trimming warnings (#1190)
jonathanpeppers Feb 14, 2024
a61bf6d
[Java.Interop] use `Type.GetType()` to find `MarshalMemberBuilder` (#…
jonathanpeppers Feb 15, 2024
1d7b9c2
[Java.Interop] restore `IL2035` suppression (#1195)
jonathanpeppers Feb 20, 2024
4f77b00
[Java.Interop.Tools.JavaCallableWrappers] Refactor (#1174)
jpobst Feb 21, 2024
2ac2857
[Java.Interop.Tools.TypeNameMappings] fix trimmer warnings (#1194)
jonathanpeppers Feb 21, 2024
8103340
Bump to xamarin/xamarin-android-tools/main@37d79c9 (#1196)
dependabot[bot] Feb 22, 2024
61f30ac
[Hello-NativeAOTFromJNI] Add NativeAOT sample (#1153)
jonpryor Feb 22, 2024
2826303
[Java.Interop.Tools.JavaCallableWrappers] fix net8.0 targeting in XA …
jonathanpeppers Feb 23, 2024
eb2e444
[Java.Interop.Tools.TypeNameMappings] fix `ToJniName()` (#1198)
jonathanpeppers Feb 24, 2024
ae72bde
[Java.Interop.Tools.TypeNameMappings] introduce project for net8.0 (#…
jonathanpeppers Feb 27, 2024
50beac7
[generator] Extend `skipInvokerMethods` support to interfaces. (#1202)
jpobst Mar 6, 2024
4187b74
[ci] Build dotnet release branches and PRs against dotnet release bra…
jpobst Mar 7, 2024
381ad0e
[Java.Interop.Tools.Maven] Initial commit. (#1179)
jpobst Mar 11, 2024
7d1c41f
[Java.Interop] suppress IL3050 with `#pragma` (#1201)
jonathanpeppers Mar 11, 2024
d1b463c
[build] Automatically add NullableAttributes.cs for netstandard2.0 (#…
jpobst Mar 11, 2024
04415e9
[Java.Interop] supress one instance of IL2072 (#1205)
jonathanpeppers Mar 13, 2024
25f0de8
[ci] Use managed identity for API Scan (#1207)
pjcollins Mar 26, 2024
cfde8a8
Bump external/xamarin-android-tools from `37d79c9` to `05f9a90` (#1212)
dependabot[bot] Apr 12, 2024
411ea1c
[.github] Lock closed issues and PRs after 30 days of inactivity. (#1…
jpobst Apr 12, 2024
7334284
[Xamain.Android.Tools.Bytecode] Hide private Kotlin default ctors (#1…
jpobst Apr 15, 2024
b1fffd0
Bump external/xamarin-android-tools from `05f9a90` to `c8a5b5b` (#1216)
dependabot[bot] Apr 17, 2024
7177d55
Bump to xamarin/xamarin-android-tools/main@1ea4e35 (#1217)
dependabot[bot] May 3, 2024
a134a0a
[Hello-NativeAOTFromAndroid] Add NativeAOT+Android sample (#1218)
jonpryor May 8, 2024
77579e9
[ci] Update OneLocBuildToken (#1220)
MSylvia May 22, 2024
9539d23
[java-source-utils] Ignore CodeQL SM00697 java/path-injection-local (…
jonpryor May 23, 2024
9118d39
Bump to xamarin/xamarin-android-tools/main@137ad81 (#1221)
dependabot[bot] May 23, 2024
11cf7d3
Force loc task pool image to windows (#1223)
MSylvia May 24, 2024
371d7fe
Update README.md (#1227)
pjcollins Jun 13, 2024
68d32f8
Update dotnet/android-tools submodule (#1228)
pjcollins Jun 13, 2024
35e327c
Revert "Update dotnet/android-tools submodule (#1228)" (#1229)
pjcollins Jun 13, 2024
7d9441b
[ci] Use macOS 13 Ventura build agents (#1235)
pjcollins Jul 1, 2024
cbf1c2d
[ci] Add dependabot branches to build triggers (#1233)
pjcollins Jul 5, 2024
b16045a
Bump to dotnet/android-tools/main@3debf8e0 (#1236)
jonpryor Jul 5, 2024
5d7d820
[Java.Interop] Add `IJavaPeerable.JavaAs()` extension method (#1234)
jonpryor Jul 8, 2024
13fd2f6
[build] Improve support for building on GitHub Codespaces (#1241)
jonpryor Aug 9, 2024
e9d7acb
[generator] Fix potential callback naming conflict (#1239)
jpobst Aug 9, 2024
a49d949
Bump to dotnet/android-tools/main@7ec795c (#1240)
dependabot[bot] Aug 9, 2024
d176835
[ci] Pin .NET 8 to '8.0.303' (#1245)
jpobst Aug 20, 2024
1a1fee4
[generator] [Register] interface alternatives into a dummy package (#…
jpobst Aug 21, 2024
4e15193
[Java.Interop] Remove support for NewObjectRequired (#1247)
jonpryor Aug 21, 2024
4537bd1
Bump to dotnet/android-tools/main@6575743 (#1246)
dependabot[bot] Aug 21, 2024
a7dc093
Bump external/xamarin-android-tools from `6575743` to `11fad9d` (#1250)
dependabot[bot] Sep 10, 2024
88fcd7e
[Java.Interop] Add `[RequiresDynamicCode]` attribute (#1252)
jonathanpeppers Sep 23, 2024
fb46666
Bump to dotnet/android-tools/main@ab2165d (#1251)
dependabot[bot] Sep 23, 2024
a528aae
[Java.Runtime.Environment] Remove decl for java_interop_strdup (#1256)
filipnavara Sep 24, 2024
2e837a1
[build] `main` *conceptually* targets .NET 9 (#1259)
jonpryor Sep 25, 2024
72ba729
[generator] Add support for `skipInterfaceMethods` (#1265)
jpobst Oct 17, 2024
18cdb7a
[generator] Fix exception caused by incorrect nested type name. (#1267)
jpobst Oct 21, 2024
e3fdb46
[generator] Only use `[JniTypeSignatureAttribute]` for `JavaInterop1`…
jpobst Oct 21, 2024
7dc3e41
[generator] Fix StackOverflow when copying DIM via private interfaces…
jpobst Oct 21, 2024
610efdc
[generator-Tests] Enable JavaInterop1 Integration output tests (#1271)
jonpryor Oct 22, 2024
9d33fb6
[Java.Base] Update to Microsoft.DotNet.GenAPI 8.0.0-beta.24516.1 (#1272)
jonpryor Oct 22, 2024
1dd3de5
Bump to dotnet/android-tools/main@60fae19 (#1270)
dependabot[bot] Oct 23, 2024
8dc3cdb
[generator-Tests] bind java.util.List (#1273)
jonpryor Oct 24, 2024
8edd538
[Java.Base] Bind package java.util.concurrent (#1274)
jonpryor Oct 28, 2024
daf7896
[Java.Interop] Add JniIdentityHashCode to ObjectDisposedException (#1…
jonpryor Nov 8, 2024
952130c
[Java.Interop.BootstrapTasks] Filter out invalid JDKs (#1278)
jonpryor Nov 13, 2024
9f760b3
[generator] Remove `JNINativeWrapper.CreateDelegate` from bindings (#…
jpobst Dec 4, 2024
6f72ce3
[build] `main` *conceptually* targets .NET 10 (#1283)
jonpryor Dec 5, 2024
c88ce06
[generator] Add `[UnmanagedFunctionPointer]` to `_JniMarshal*` decls …
jpobst Dec 5, 2024
ecd4923
[Java.Interop] Add JniTypeSignatureAttribute.InvokerType (#1284)
jonpryor Dec 9, 2024
6c11f90
Bump to dotnet/android-tools/main@f62cd09f (#1282)
dependabot[bot] Dec 9, 2024
198526e
[Java.Interop] remove `DynamicallyAccessedMemberTypes.Interfaces` (#1…
jonathanpeppers Dec 18, 2024
67499dd
[Java.Interop.Tools.JavaSource] Support html tags with attributes (#1…
pjcollins Jan 7, 2025
7958ed6
[build] Add support for JDK 21 (#1287)
jonpryor Jan 8, 2025
9acdd0d
[java-source-utils] Flush VSCode changes (#1289)
jonpryor Jan 9, 2025
3be2b5f
[build] Prefer JDK-17 (#1291)
jonpryor Jan 11, 2025
25d0762
[ci] Fail build if any git tracked files were modified. (#1288)
jpobst Jan 14, 2025
313c7b9
[Java.Interop] `Java.Lang.Object, Mono.Android` Unification Changes (…
jonpryor Jan 16, 2025
3b8095a
Bump to dotnet/android-tools/main@36e574c2 (#1294)
dependabot[bot] Jan 19, 2025
b944fad
[ci] Add dev/* branches to CI trigger (#1297)
pjcollins Jan 29, 2025
e616033
[Java.Interop] Add JniRuntime.JniValueManager.GetPeer() (#1295)
jonpryor Jan 30, 2025
1cd4127
[ci] Move build pipeline to dnceng-public (#1299)
pjcollins Jan 30, 2025
b62b730
[Java.Interop] Add `JniRuntime.JniValueManager.TryCreatePeer()` (#1301)
jonpryor Feb 3, 2025
cce0e9e
[jcw-gen] Use `+` for nested types, not `/` (#1304)
jonpryor Feb 6, 2025
5f0dd60
[tests] fix `NU1510` warning as error (#1306)
jonathanpeppers Feb 11, 2025
7de9c03
[generator] Avoid non-blittable types in native callback methods (#1296)
jpobst Feb 11, 2025
12f133c
[Java.Interop] GetSimpleReferences(): fallback for GetTypeSignatures(…
jonpryor Feb 12, 2025
37a0f5f
[Java.Interop] CreatePeer() must satisfy targetType (#1308)
jonpryor Feb 15, 2025
f8fe5a7
[build] Target net9.0 (#1279)
jpobst Feb 18, 2025
bd2768d
[generator] Add support for emitting `[UnsupportedOSPlatform]` (#1307)
jpobst Feb 20, 2025
174b1fd
[Java.Interop] .GetTypeSignature() supports unsigned types (#1312)
jonpryor Feb 21, 2025
f72f1cd
[generator] Don't mark a method as `[UnsupportedOSPlatform]` if it ov…
jpobst Feb 24, 2025
48dd5f3
Bump to dotnet/android-tools/main@ac8d0ee (#1311)
dependabot[bot] Feb 24, 2025
0aeccfc
[Java.Interop.GenericMarshaler] fix trimmer warnings (#1314)
jonathanpeppers Feb 26, 2025
02ec234
[Hello-Java.Base] Add support for Java Callable Wrappers (#1315)
jonpryor Feb 26, 2025
acbeba3
[tests] fix trimmer warnings in Java.Interop-Tests (#1318)
jonathanpeppers Mar 5, 2025
df19eb8
[java-interop] Resuscitate MonoVM GC Bridge (#1316)
jonpryor Mar 7, 2025
32a2bb2
[Hello-Java.Base] MonoVM + peer collection (#1319)
jonpryor Mar 7, 2025
af3833d
[Hello-NativeAOTFromAndroid] Add instructions for building on Windows…
jonpryor Mar 11, 2025
f150111
Standardize `$(LangVersion)` in `netstandard2.0` projects (#1322)
jpobst Mar 12, 2025
e5e1000
[JavaCallableWrappers] Add XML import/export. (#1317)
jpobst Mar 17, 2025
d5761a8
[Java.Interop] Use `Class.forName()` as fallback to load Java classes…
jonpryor Mar 20, 2025
ed7fe03
[Java.Interop] JniValueManager.CreatePeer() tries more types (#1328)
simonrozsival Mar 27, 2025
335b279
Bump to dotnet/android-tools/main@0658bc6 (#1327)
dependabot[bot] Mar 28, 2025
fe6dbf8
[JavaCallableWrappers] Remove `was_scanned` from XML import/export (#…
jpobst Apr 8, 2025
cddb7e8
[Java.Interop] JNIEnv::NewObject and Replaceable instances (#1323)
jonpryor Apr 15, 2025
1ed4981
[Java.Interop-Tests] use `#if !NO_GC_BRIDGE_SUPPORT` for some tests (…
jonathanpeppers May 5, 2025
06b2c0c
Pull in updated `NullableAttributes` from `dotnet/runtime`. (#1333)
jpobst May 7, 2025
4129822
[Java.Interop] Generic Type Definitions are allowed (#1336)
jonpryor May 22, 2025
f9f97b9
Bump to dotnet/android-tools/main@c482ef4 (#1330)
dependabot[bot] Jun 3, 2025
39beaf4
Bump to dotnet/android-tools/main@7889061 (#1337)
dependabot[bot] Jun 5, 2025
5a54035
[tests] Best effort to await GC bridge processing in CoreCLR (#1338)
simonrozsival Jun 9, 2025
91ac18e
Bump to dotnet/android-tools/main@d4b5529 (#1340)
dependabot[bot] Jun 9, 2025
f2c90b4
[Java.Interop] JNI handles are now in a "control block" (#1339)
jonathanpeppers Jun 12, 2025
c94ca47
[copilot] add a comprehensive `copilot-instructions.md` (#1342)
Copilot Jun 16, 2025
7156249
[copilot] setup `.github/workflows/copilot-setup-steps.yml` (#1344)
Copilot Jun 16, 2025
e466592
Bump to dotnet/android-tools/main@8a09cf7 (#1345)
dependabot[bot] Jun 30, 2025
5bcb248
[Java.Interop.Tools.JavaCallableWrappers] check if type cannot be res…
jonathanpeppers Jul 17, 2025
d6f8be9
[Xamarin.Android.Tools.Bytecode] add `org.jspecify.annotations.NonNul…
jonathanpeppers Jul 23, 2025
b66144c
Bump to dotnet/android-tools/main@68ea438 (#1350)
dependabot[bot] Jul 23, 2025
5526adc
Bump to dotnet/android-tools/main@c4cb3db (#1352)
dependabot[bot] Aug 11, 2025
1791fc3
[generator] Don't avoid blittable types for fields (#1353)
jonpryor Aug 12, 2025
de1ef8a
[tests] *Actually* test `char` behavior (#1354)
jonpryor Aug 12, 2025
825f097
Bump to dotnet/android-tools/main@31609ca (#1356)
dependabot[bot] Aug 27, 2025
f245be9
[build] remove old Xamarin.Android build settings (#1358)
jonathanpeppers Aug 28, 2025
6d49641
[generator] Support major.minor API levels (#1360)
jonpryor Sep 8, 2025
579c6c4
Bump to dotnet/android-tools/main@2609c38 (#1362)
dependabot[bot] Sep 10, 2025
22dc7a3
[Java.Interop.Tools.Generator] Improve ExtractApiLevel() resiliency (…
jonpryor Sep 19, 2025
53bb941
[generator] `FixupMethodOverrides()` checks properties (#1366)
jonathanpeppers Sep 23, 2025
f589ffa
Bump to dotnet/android-tools/main@8722663 (#1368)
dependabot[bot] Oct 16, 2025
981c901
[Java.Interop.Tools.JavaCallableWrappers] Improve missing attribute (…
jonpryor Oct 20, 2025
b27357f
Bump to dotnet/android-tools/main@c8b05f6 (#1370)
dependabot[bot] Oct 21, 2025
86ab909
Bump to dotnet/android-tools/main@ca74eba (#1371)
dependabot[bot] Oct 23, 2025
a938180
[Java.Interop] Improve RegisterNativeMembers() error reporting (#1372)
jonpryor Oct 29, 2025
8426adf
[build] Change `$(JavacClasspathSeparator)` to `$(JavaPathSeparator)`…
Mliybs Nov 5, 2025
b60dca8
Bump to dotnet/android-tools/main@fb95edd (#1375)
dependabot[bot] Jan 22, 2026
8ba64be
[build] target `$(TargetFramework)=net10.0` (#1377)
jonathanpeppers Jan 26, 2026
dd9001b
[‎Java.Interop.Tools.JavaCallableWrappers] Auto-generate package name…
Copilot Jan 26, 2026
c6aa72c
Bump to dotnet/android-tools@604940c (#1378)
dependabot[bot] Jan 28, 2026
1d8e7de
Bump to dotnet/android-tools/main@ebd3aaf (#1379)
dependabot[bot] Feb 6, 2026
72e6600
Bump to dotnet/android-tools/main@062cc29 (#1380)
dependabot[bot] Feb 26, 2026
d0d4c57
Bump to dotnet/android-tools/main@c6fc83d (#1381)
dependabot[bot] Feb 26, 2026
2858bc0
Bump to dotnet/android-tools/main@e0a9393 (#1382)
dependabot[bot] Mar 2, 2026
80a6703
Bump dotnet/android-tools/main@6a6de1f (#1383)
dependabot[bot] Mar 3, 2026
f00e281
Bump to dotnet/android-tools/main@d3c269d (#1384)
dependabot[bot] Mar 6, 2026
71b6028
Bump to dotnet/android-tools/main@1a26c0c (#1386)
dependabot[bot] Mar 12, 2026
ca32732
[tests] Add `NativeAOTIgnore` to JNI method remapping tests (#1389)
Copilot Mar 13, 2026
81597cf
[tests] Add NativeAOTIgnore to InvokeVirtualFromConstructorTests (#1390)
jonathanpeppers Mar 16, 2026
a397c33
Bump to dotnet/android-tools/main@091e3a6 (#1387)
dependabot[bot] Mar 16, 2026
3c1e2fb
Add RegisterNatives overload for raw function pointers (#1391)
simonrozsival Mar 19, 2026
8da0ece
Add build-and-test agent skill for Copilot CLI (#1392)
simonrozsival Mar 19, 2026
d128e00
Bump to dotnet/android-tools/main@2bea0eb (#1394)
dependabot[bot] Mar 19, 2026
f768470
Add `ReadOnlySpan<byte>` overloads for JNI member lookups (#1393)
simonrozsival Mar 20, 2026
55465e5
[gitignore] Add `build/` and `local.properties` to `Hello-NativeAOTFr…
Copilot Mar 20, 2026
69bd23b
Bump to dotnet/android-tools/main@ec5040a (#1397)
dependabot[bot] Mar 23, 2026
e989dea
Fix UTF-8 JNI lookup tests for Android (#1398)
simonrozsival Mar 23, 2026
88c1b75
Fix GetFieldID UTF-8 test for Android (#1399)
simonrozsival Mar 25, 2026
20daa19
Bump to dotnet/android-tools/main@a428178 (#1400)
dependabot[bot] Apr 3, 2026
e4e4ee1
[Java.Interop.Tools.Cecil] Fix retry logic in `ReadAssembly()` to ski…
jonathanpeppers Apr 14, 2026
7814212
Bump to dotnet/android-tools/main@d222cfe (#1402)
dependabot[bot] Apr 15, 2026
26b55f0
[ci] Use `PublishTestResults@2` instead of `DotNetCoreCLI@2` built-in…
jonathanpeppers Apr 15, 2026
85642ff
[Java.Interop] fix global ref leak in ConstructPeer (#1403)
jonathanpeppers Apr 16, 2026
092922e
[Java.Interop] Fix UTF-8 JniType class lookup fallback (#1407)
simonrozsival Apr 17, 2026
20cf061
[Java.Interop] Convert dot-separated class names before calling FindC…
simonrozsival Apr 20, 2026
121552f
[tests] Make `JavaObject` finalizer tests deterministic (#1408)
simonrozsival Apr 21, 2026
3def3ca
[Java.Interop] Defer exception creation in `TryLoadClassWithFallback`…
simonrozsival Apr 21, 2026
a6e0aa3
[Java.Interop] Fix RawCallStaticObjectMethodA PInvoke call (#1411)
jonathanpeppers Apr 22, 2026
168a755
Bump to dotnet/android-tools/main@e873716 (#1412)
dependabot[bot] Apr 23, 2026
97cd886
Remove `$(AndroidGenerateJniMarshalMethods)` support (#1405)
jonathanpeppers Apr 27, 2026
79aba74
Bump to dotnet/android-tools/main@2fd1240 (#1413)
dependabot[bot] Apr 27, 2026
b980d46
Bump to dotnet/android-tools/main@ed6aab1 (#1414)
dependabot[bot] Apr 28, 2026
9610365
[Hello-Java.Base] Add missing jcw-gen project dependency (#1418)
jonathanpeppers May 4, 2026
49eee8c
Bump to dotnet/android-tools/main@2b9c8c2 (#1419)
dependabot[bot] May 4, 2026
0c9b671
[copilot] Add `java-interop-reviewer` skill for PR code reviews (#1417)
jonathanpeppers May 5, 2026
3423bb6
[github] Add /review agentic workflow for java-interop-reviewer (#1420)
jonathanpeppers May 6, 2026
2b7d36a
Bump to dotnet/android-tools/main@7d0e083 (#1421)
dependabot[bot] May 6, 2026
bab5fca
Fix FileStream leak in ClassPath.IsJmodFile (#1424)
jonathanpeppers May 12, 2026
25dc436
Update README.md: .NET 10 and dotnet/android refs (#1423)
jonathanpeppers May 12, 2026
5bffd99
Bump to dotnet/android-tools/main@8a58f4f (#1427)
dependabot[bot] May 13, 2026
65508d3
Change the signature of JniValueManager.ActivatePeer (#1429)
simonrozsival May 21, 2026
643f853
[Java.Interop] Use function pointers for JavaVM invoker (#1433)
simonrozsival May 26, 2026
069fec6
[Java.Interop] Add ManagedPeer native registration feature switch (#1…
simonrozsival May 26, 2026
1121262
[tests] Use simple assertion for ManagedPeer test (#1435)
simonrozsival May 27, 2026
bdf1538
Bump to dotnet/android-tools/main@3c95718 (#1436)
dependabot[bot] Jun 2, 2026
b0b3e72
[tests] Replace [TestFixtureSetUp]/[TestFixtureTearDown] with [OneTim…
jonathanpeppers Jun 2, 2026
87b8f85
Bump to dotnet/android-tools/main@5165523 (#1438)
dependabot[bot] Jun 3, 2026
4ab9b5b
[generator] Drop Kotlin hash-mangled siblings that collide on the C# …
jonathanpeppers Jun 3, 2026
19a699f
Add NuGet ecosystem to Dependabot configuration (#1439)
jonathanpeppers Jun 4, 2026
5764c7a
Bump the nuget-dependencies group with 15 updates (#1443)
dependabot[bot] Jun 5, 2026
35aac8a
[tests] Add missing jcw-gen project dependency to Java.Base-Tests (#1…
jonathanpeppers Jun 8, 2026
fef94ad
[Java.Interop] Remove JniObjectReference SafeHandle backend (#1446)
simonrozsival Jun 8, 2026
b079c35
Remove Java.Interop.GenericMarshaler (#1450)
simonrozsival Jun 9, 2026
10382a5
[Java.Interop] Remove legacy `NET` preprocessor paths (#1451)
simonrozsival Jun 9, 2026
f929d92
Split reflection-based JniTypeManager and JniValueManager behavior (#…
simonrozsival Jun 9, 2026
b9db229
Remove Java.Interop.Dynamic (#1449)
simonrozsival Jun 9, 2026
419e746
[JniValueManager] Make TryConstructPeer virtual (#1456)
simonrozsival Jun 12, 2026
14a8af7
Upgrade gh-aw to v0.79.6 and recompile workflows (#1460)
jonathanpeppers Jun 12, 2026
5e5c280
Bump to dotnet/android-tools/main@1fb68b6 (#1457)
dependabot[bot] Jun 12, 2026
1e0c5e6
[ci] Update agentic workflows to claude-opus-4.8 (#1461)
jonathanpeppers Jun 12, 2026
e766476
Remove NuGet dependency grouping from Dependabot config (#1459)
jonathanpeppers Jun 15, 2026
12ba82c
[Java.Interop] Make JavaProxyObject.RegisterNativeMembers private aga…
simonrozsival Jun 16, 2026
6fde761
Use GITHUB_TOKEN for Copilot CLI inference in agentic workflows (#1469)
jonathanpeppers Jun 16, 2026
ab173b2
Disable daily AIC guardrail for PR reviewer workflow (#1471)
jonathanpeppers Jun 16, 2026
c3a9279
Fix PR reviewer auth by capping max-ai-credits at 100M instead of -1 …
jonathanpeppers Jun 16, 2026
f30568b
Revert "copilot-requests: write" opt-in for Copilot CLI inference (#1…
jonathanpeppers Jun 16, 2026
0b8b7cc
[generator] Stop generating dead Java.Interop.__TypeRegistrations (#1…
simonrozsival Jun 16, 2026
7cca9c8
[generator] Phase 2: Kotlin @JvmInline value class projection (#1440)
jonathanpeppers Jun 16, 2026
a961e99
[TrimmableTypeMap] adjust base JniValueManager and JniTypeManager for…
simonrozsival Jun 17, 2026
f63eab9
Reduce generated JNI callback IL size (#1452)
simonrozsival Jun 17, 2026
7d4bb46
Scope gh-aw workflow secrets to GITHUB_TOKEN (#1475)
jonathanpeppers Jun 17, 2026
7f49164
Bump to dotnet/android-tools/main@132f790 (#1477)
dependabot[bot] Jun 18, 2026
359b764
[tests] Exclude value marshaler tests from trimmable typemap (#1478)
simonrozsival Jun 22, 2026
efd4e72
[Java.Interop.Tools.Maven] Assert resolved cache paths stay under Cac…
jonathanpeppers Jun 23, 2026
748e962
[Java.Interop.Tools.Maven] Validate Artifact coordinates (#1479)
jonathanpeppers Jun 23, 2026
e7284da
Remove external/Java.Interop submodule in preparation for in-tree merge
jonathanpeppers Jun 25, 2026
ec38a73
Merge dotnet/java-interop history under external/Java.Interop
jonathanpeppers Jun 25, 2026
516f111
Add Java.Interop CI stage and merge follow-ups
jonathanpeppers Jun 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@
path = external/debugger-libs
url = https://github.com/mono/debugger-libs
branch = main
[submodule "external/Java.Interop"]
path = external/Java.Interop
url = https://github.com/dotnet/java-interop
branch = main
[submodule "external/libunwind"]
path = external/libunwind
url = https://github.com/libunwind/libunwind.git
Expand All @@ -37,3 +33,7 @@
[submodule "external/termux-elf-cleaner"]
path = external/termux-elf-cleaner
url = https://github.com/termux/termux-elf-cleaner
[submodule "external/Java.Interop/external/xamarin-android-tools"]
path = external/Java.Interop/external/xamarin-android-tools
url = https://github.com/xamarin/xamarin-android-tools.git
branch = main
13 changes: 13 additions & 0 deletions build-tools/automation/azure-pipelines-public.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,19 @@ stages:
parameters:
condition: true

# Java.Interop Tests Stage
- template: /build-tools/automation/yaml-templates/stage-java-interop-tests.yaml@self
parameters:
windowsPool:
name: $(NetCorePublicPoolName)
demands:
- ImageOverride -equals $(WindowsPoolImageNetCorePublic)
macPool:
name: AcesShared
demands:
- ImageOverride -equals ACES_VM_SharedPool_Tahoe
os: macOS

# MAUI Tests Stage
- stage: maui_tests
displayName: MAUI Tests
Expand Down
2 changes: 2 additions & 0 deletions build-tools/automation/azure-pipelines.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,8 @@ extends:
parameters:
usesCleanImages: ${{ parameters.macTestAgentsUseCleanImages }}

- template: /build-tools/automation/yaml-templates/stage-java-interop-tests.yaml@self

- stage: maui_tests
displayName: MAUI Tests
dependsOn: mac_build
Expand Down
4 changes: 2 additions & 2 deletions build-tools/automation/yaml-templates/cache-gradle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ parameters:

steps:
- script: |
git submodule status --cached external/Java.Interop > $(Agent.TempDirectory)/java-interop-submodule-hash.txt
git log -1 --format=%H external/Java.Interop > $(Agent.TempDirectory)/java-interop-submodule-hash.txt
echo "##vso[task.setvariable variable=GRADLE_CACHE_DIR]$HOME/.gradle/caches"
workingDirectory: ${{ parameters.xaSourcePath }}
displayName: prepare Gradle cache variables
condition: ne(variables['Agent.OS'], 'Windows_NT')

- pwsh: |
git submodule status --cached external/Java.Interop > $(Agent.TempDirectory)/java-interop-submodule-hash.txt
git log -1 --format=%H external/Java.Interop > $(Agent.TempDirectory)/java-interop-submodule-hash.txt
$gradleCacheDir = Join-Path $env:USERPROFILE ".gradle\caches"
Write-Host "##vso[task.setvariable variable=GRADLE_CACHE_DIR]$gradleCacheDir"
workingDirectory: ${{ parameters.xaSourcePath }}
Expand Down
100 changes: 100 additions & 0 deletions build-tools/automation/yaml-templates/stage-java-interop-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Java.Interop tests stage
#
# Mirrors the two jobs from
# external/Java.Interop/build-tools/automation/azure-pipelines.yaml
# (windows_dotnet_build, mac_dotnet_build) so that the Java.Interop
# build + tests continue to run as part of dotnet/android CI now that
# Java.Interop has been merged in-tree.
#
# Referenced from both:
# - build-tools/automation/azure-pipelines.yaml (official / 1ES)
# - build-tools/automation/azure-pipelines-public.yaml (public PR validation)

parameters:
- name: stageName
type: string
default: java_interop_tests
- name: dependsOn
type: object
default: []
- name: condition
type: string
default: succeeded()
- name: windowsPool
type: object
default:
name: Azure Pipelines
vmImage: $(HostedWinImage)
- name: macPool
type: object
default:
name: Azure Pipelines
vmImage: $(HostedMacImage)

stages:
- stage: ${{ parameters.stageName }}
displayName: Java.Interop Tests
dependsOn: ${{ parameters.dependsOn }}
condition: ${{ parameters.condition }}
variables:
# Variables consumed by external/Java.Interop/build-tools/automation/templates/*.yaml.
# Defined at stage scope so they don't conflict with dotnet/android-wide
# variables (e.g. DotNetTargetFramework=net11.0).
DotNetCoreVersion: $(DotNetSdkVersion).x
DotNetTargetFramework: $(DotNetStableTargetFramework)
NetCoreTargetFrameworkPathSuffix: -$(DotNetStableTargetFramework)
Build.Configuration: Release
RunningOnCI: true
jobs:

# Check - "Xamarin.Android (Java.Interop Tests Windows - .NET)"
- job: java_interop_windows_dotnet_build
displayName: Windows - .NET
pool: ${{ parameters.windowsPool }}
timeoutInMinutes: 60
workspace:
clean: all
steps:
- checkout: self
submodules: recursive
clean: true

- template: /external/Java.Interop/build-tools/automation/templates/install-dependencies.yaml@self

- template: /external/Java.Interop/build-tools/automation/templates/core-build.yaml@self

- template: /external/Java.Interop/build-tools/automation/templates/core-tests.yaml@self
parameters:
runNativeDotnetTests: true
nativeAotRid: win-x64
platformName: .NET - Windows

- template: /external/Java.Interop/build-tools/automation/templates/fail-on-dirty-tree.yaml@self

- template: /external/Java.Interop/build-tools/automation/templates/fail-on-issue.yaml@self

# Check - "Xamarin.Android (Java.Interop Tests Mac - .NET)"
- job: java_interop_mac_dotnet_build
displayName: Mac - .NET
pool: ${{ parameters.macPool }}
timeoutInMinutes: 20
workspace:
clean: all
steps:
- checkout: self
submodules: recursive
clean: true

- template: /external/Java.Interop/build-tools/automation/templates/install-dependencies.yaml@self

- template: /external/Java.Interop/build-tools/automation/templates/core-build.yaml@self

- template: /external/Java.Interop/build-tools/automation/templates/core-tests.yaml@self
parameters:
runNativeTests: true
nativeAotRid: osx-x64
platformName: .NET - MacOS

- template: /external/Java.Interop/build-tools/automation/templates/fail-on-dirty-tree.yaml@self

- template: /external/Java.Interop/build-tools/automation/templates/fail-on-issue.yaml@self
5 changes: 2 additions & 3 deletions build-tools/scripts/XAVersionInfo.targets
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@
<!-- If anything changes in this list, make sure to update:
src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets (the _GenerateXACommonProps target)
-->
<_SubmoduleBranchInfo Include="external/Java.Interop">
<OutputPropertyName>_BuildInfo_JavaInteropCommit</OutputPropertyName>
</_SubmoduleBranchInfo>
<!-- Java.Interop is no longer a submodule; it lives in-tree under
external/Java.Interop/. Its commit is the dotnet/android commit. -->
<_SubmoduleBranchInfo Include="external/xamarin-android-tools">
<OutputPropertyName>_BuildInfo_XamarinAndroidToolsCommit</OutputPropertyName>
</_SubmoduleBranchInfo>
Expand Down
1 change: 0 additions & 1 deletion external/Java.Interop
Submodule Java.Interop deleted from 704936
34 changes: 34 additions & 0 deletions external/Java.Interop/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/dotnet
{
"name": "Linux Universal Image",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/universal:2-linux"

// Features to add to the dev container. More info: https://containers.dev/features.
, "features": {
"ghcr.io/devcontainers/features/java:1": {
"version": "17",
"jdkDistro": "ms"
}
}

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [5000, 5001],
// "portsAttributes": {
// "5001": {
// "protocol": "https"
// }
// }

// Use 'postCreateCommand' to run commands after the container is created.
// Have GitHub Codespaces checkout all submodules
// https://github.com/orgs/community/discussions/25429
, "postCreateCommand": "git submodule update --init --recursive"

// Configure tool-specific properties.
// "customizations": {},

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
Loading
Loading