Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@

### Core Libraries (`src/`)
- **`Java.Interop/`**: Main JNI binding library with core types and runtime
- **`Java.Interop.Dynamic/`**: C# 4.0 `dynamic` provider for runtime method invocation
- **`Java.Interop.Export/`**: `[Export]` attribute support for exposing managed methods to Java
- **`Java.Runtime.Environment/`**: JVM loading and lifecycle management
- **`Java.Base/`**: Bindings for core Java types (`java.lang.*`, etc.)
Expand Down
1 change: 0 additions & 1 deletion .github/skills/build-and-test/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ dotnet test tests/<TestProject>/<TestProject>.csproj
Common test projects:
- `Java.Interop-Tests` — core JNI binding tests (largest suite)
- `Java.Interop.Export-Tests` — export attribute tests
- `Java.Interop.Dynamic-Tests` — dynamic invocation tests
- `Java.Base-Tests` — Java.Base binding tests
- `generator-Tests` — C# binding generator tests
- `Java.Interop.Tools.JavaCallableWrappers-Tests` — JCW generation tests
Expand Down
14 changes: 4 additions & 10 deletions Documentation/Architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,16 +85,10 @@ The problem with Xamarin.Android is a lack of flexibility:
JNI glue code elsewhere (the desktop JVM?).
* An incomplete binding ABI restricts fully embracing AOT

Relatedly, there has long been a desire to provide a
[C# 4 `dynamic` provider][Java.Interop.Dynamic] to permit invoking Java methods
without requiring a separately generated binding assembly. `dynamic` providers,
in turn, implement the [IDynamicMetaObjectProvider][IDynamicMetaObjectProvider]
interface, which is based ~entirely upon
[System.Linq.Expressions][System.Linq.Expressions], which *also* supports
generating IL for execution at runtime (or saving to disk).

[Java.Interop.Dynamic]: src/Java.Interop.Dynamic
[IDynamicMetaObjectProvider]: https://msdn.microsoft.com/en-us/library/system.dynamic.idynamicmetaobjectprovider%28v=vs.110%29.aspx
Relatedly, there has long been a desire to embrace
[System.Linq.Expressions][System.Linq.Expressions], which supports generating IL
for execution at runtime (or saving to disk).
Comment thread
simonrozsival marked this conversation as resolved.

[System.Linq.Expressions]: https://msdn.microsoft.com/en-us/library/system.linq.expressions.aspx

Thus, the solution to *all our problems*? *Embrace* `System.Linq.Expressions`.
Expand Down
3 changes: 1 addition & 2 deletions Documentation/BuildConfiguration.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,10 @@ The following **make**(1) variables may be specified:
* `$(TESTS)`: Which unit tests to execute. Useful in conjunction with the
`make run-tests` target:

make run-tests TESTS=bin/Debug/Java.Interop.Dynamic-Tests.dll
make run-tests TESTS=bin/Debug/Java.Interop-Tests.dll

* `$(V)`: If set to a non-empty string, adds `/v:diag` to `$(MSBUILD_FLAGS)`
invocations.
* `$(MSBUILD)`: The MSBuild build tool to execute for builds.
Default value is `xbuild`.


14 changes: 0 additions & 14 deletions Java.Interop.sln
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop", "src\Java.In
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "java-interop", "src\java-interop\java-interop.csproj", "{BB0AB9F7-0979-41A7-B7A9-877260655F94}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop.Dynamic", "src\Java.Interop.Dynamic\Java.Interop.Dynamic.csproj", "{AD4468F8-8883-434B-9D4C-E1801BB3B52A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop.Tools.JavaSource", "src\Java.Interop.Tools.JavaSource\Java.Interop.Tools.JavaSource.csproj", "{5C0B3562-8DA0-4726-9762-75B9709ED6B7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Desktop", "Desktop", "{0998E45F-8BCE-4791-A944-962CD54E2D80}"
Expand All @@ -39,8 +37,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestJVM", "tests\TestJVM\Te
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop-Tests", "tests\Java.Interop-Tests\Java.Interop-Tests.csproj", "{04E28441-36FF-4964-ADD7-EFBB47CCE406}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop.Dynamic-Tests", "tests\Java.Interop.Dynamic-Tests\Java.Interop.Dynamic-Tests.csproj", "{82B1DD53-69CA-4A61-B6B1-F06F1525EF4D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "logcat-parse-Tests", "tests\logcat-parse-Tests\logcat-parse-Tests.csproj", "{DB05D566-0BA0-4935-868D-689E2F03688E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Android.Tools.Bytecode-Tests", "tests\Xamarin.Android.Tools.Bytecode-Tests\Xamarin.Android.Tools.Bytecode-Tests.csproj", "{C9FA4492-DEB0-4932-A6B8-E2C4E0581692}"
Expand Down Expand Up @@ -139,10 +135,6 @@ Global
{BB0AB9F7-0979-41A7-B7A9-877260655F94}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB0AB9F7-0979-41A7-B7A9-877260655F94}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BB0AB9F7-0979-41A7-B7A9-877260655F94}.Release|Any CPU.Build.0 = Release|Any CPU
{AD4468F8-8883-434B-9D4C-E1801BB3B52A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AD4468F8-8883-434B-9D4C-E1801BB3B52A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AD4468F8-8883-434B-9D4C-E1801BB3B52A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AD4468F8-8883-434B-9D4C-E1801BB3B52A}.Release|Any CPU.Build.0 = Release|Any CPU
{5C0B3562-8DA0-4726-9762-75B9709ED6B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5C0B3562-8DA0-4726-9762-75B9709ED6B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5C0B3562-8DA0-4726-9762-75B9709ED6B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -175,10 +167,6 @@ Global
{04E28441-36FF-4964-ADD7-EFBB47CCE406}.Debug|Any CPU.Build.0 = Debug|Any CPU
{04E28441-36FF-4964-ADD7-EFBB47CCE406}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04E28441-36FF-4964-ADD7-EFBB47CCE406}.Release|Any CPU.Build.0 = Release|Any CPU
{82B1DD53-69CA-4A61-B6B1-F06F1525EF4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{82B1DD53-69CA-4A61-B6B1-F06F1525EF4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82B1DD53-69CA-4A61-B6B1-F06F1525EF4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82B1DD53-69CA-4A61-B6B1-F06F1525EF4D}.Release|Any CPU.Build.0 = Release|Any CPU
{DB05D566-0BA0-4935-868D-689E2F03688E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB05D566-0BA0-4935-868D-689E2F03688E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB05D566-0BA0-4935-868D-689E2F03688E}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -313,7 +301,6 @@ Global
{D14A1B5C-2060-4930-92BE-F7190256C735} = {C8F58966-94BF-407F-914A-8654F8B8AE3B}
{94BD81F7-B06F-4295-9636-F8A3B6BDC762} = {4C173212-371D-45D8-BA83-9226194F48DC}
{BB0AB9F7-0979-41A7-B7A9-877260655F94} = {4C173212-371D-45D8-BA83-9226194F48DC}
{AD4468F8-8883-434B-9D4C-E1801BB3B52A} = {4C173212-371D-45D8-BA83-9226194F48DC}
{5C0B3562-8DA0-4726-9762-75B9709ED6B7} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
{5887B410-D448-4257-A46B-EAC03C80BE93} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
{B17475BC-45A2-47A3-B8FC-62F3A0959EE0} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
Expand All @@ -322,7 +309,6 @@ Global
{41DFB021-F795-4EB6-8E53-0D069C0BED9F} = {0998E45F-8BCE-4791-A944-962CD54E2D80}
{A76309AB-98AC-4AE2-BA30-75481420C52F} = {271C9F30-F679-4793-942B-0D9527CB3E2F}
{04E28441-36FF-4964-ADD7-EFBB47CCE406} = {271C9F30-F679-4793-942B-0D9527CB3E2F}
{82B1DD53-69CA-4A61-B6B1-F06F1525EF4D} = {271C9F30-F679-4793-942B-0D9527CB3E2F}
{DB05D566-0BA0-4935-868D-689E2F03688E} = {271C9F30-F679-4793-942B-0D9527CB3E2F}
{C9FA4492-DEB0-4932-A6B8-E2C4E0581692} = {271C9F30-F679-4793-942B-0D9527CB3E2F}
{891F2E04-5614-4A26-A78F-3778025ECF43} = {271C9F30-F679-4793-942B-0D9527CB3E2F}
Expand Down
2 changes: 0 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ NET_SUFFIX = -net7.0

TESTS = \
bin/Test$(CONFIGURATION)/Java.Interop-Tests.dll \
bin/Test$(CONFIGURATION)/Java.Interop.Dynamic-Tests.dll \
bin/Test$(CONFIGURATION)/Java.Interop.Tools.JavaCallableWrappers-Tests.dll \
bin/Test$(CONFIGURATION)/Java.Interop.Tools.JavaSource-Tests.dll \
bin/Test$(CONFIGURATION)/logcat-parse-Tests.dll \
Expand Down Expand Up @@ -95,7 +94,6 @@ bin/Test$$(CONFIGURATION)/$(1)-Tests.dll: $(wildcard src/$(1)/*/*.cs src/$(1)/Te
endef # TestAssemblyTemplate

$(eval $(call TestAssemblyTemplate,Java.Interop))
$(eval $(call TestAssemblyTemplate,Java.Interop.Dynamic))
$(eval $(call TestAssemblyTemplate,Java.Interop.Export))
$(eval $(call TestAssemblyTemplate,Java.Interop.Tools.JavaCallableWrappers))

Expand Down
5 changes: 3 additions & 2 deletions build-tools/automation/templates/core-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,11 @@ steps:

- template: run-dotnet-test.yaml
parameters:
testRunTitle: Java.Interop.Dynamic (${{ parameters.platformName }})
testAssemblyName: Java.Interop.Dynamic-Tests
testRunTitle: Java.Interop-Performance ($(DotNetTargetFramework) - ${{ parameters.platformName }})
testAssemblyName: Java.Interop-PerformanceTests
condition: eq('${{ parameters.runNativeTests }}', 'true')
retryCount: 1
extraArguments: --logger "console;verbosity=detailed"

- template: run-dotnet-test.yaml
parameters:
Expand Down
26 changes: 0 additions & 26 deletions src/Java.Interop.Dynamic/Java.Interop.Dynamic.csproj

This file was deleted.

146 changes: 0 additions & 146 deletions src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaClass.cs

This file was deleted.

Loading