summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--csharp/README.md95
-rw-r--r--csharp/msbuild/ice.xamarin.test.sln (renamed from csharp/xamarin/controller.sln)8
-rw-r--r--csharp/test/xamarin/controller.Android/Assets/AboutAssets.txt (renamed from csharp/xamarin/controller/controller.Android/Assets/AboutAssets.txt)0
-rw-r--r--csharp/test/xamarin/controller.Android/MainActivity.cs (renamed from csharp/xamarin/controller/controller.Android/MainActivity.cs)0
-rw-r--r--csharp/test/xamarin/controller.Android/Properties/AndroidManifest.xml (renamed from csharp/xamarin/controller/controller.Android/Properties/AndroidManifest.xml)0
-rw-r--r--csharp/test/xamarin/controller.Android/Properties/AssemblyInfo.cs (renamed from csharp/xamarin/controller/controller.Android/Properties/AssemblyInfo.cs)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/AboutResources.txt (renamed from csharp/xamarin/controller/controller.Android/Resources/AboutResources.txt)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/Resource.designer.cs (renamed from csharp/xamarin/controller/controller.Android/Resources/Resource.designer.cs)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/layout/Tabbar.axml (renamed from csharp/xamarin/controller/controller.Android/Resources/layout/Tabbar.axml)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/layout/Toolbar.axml (renamed from csharp/xamarin/controller/controller.Android/Resources/layout/Toolbar.axml)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-anydpi-v26/icon.xml (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-anydpi-v26/icon.xml)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-anydpi-v26/icon_round.xml (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-anydpi-v26/icon_round.xml)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-hdpi/Icon.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-hdpi/Icon.png)bin4754 -> 4754 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-hdpi/launcher_foreground.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-hdpi/launcher_foreground.png)bin11695 -> 11695 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-mdpi/icon.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-mdpi/icon.png)bin2807 -> 2807 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-mdpi/launcher_foreground.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-mdpi/launcher_foreground.png)bin6439 -> 6439 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-xhdpi/Icon.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-xhdpi/Icon.png)bin7028 -> 7028 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-xhdpi/launcher_foreground.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-xhdpi/launcher_foreground.png)bin17898 -> 17898 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-xxhdpi/Icon.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-xxhdpi/Icon.png)bin12827 -> 12827 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-xxhdpi/launcher_foreground.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-xxhdpi/launcher_foreground.png)bin33484 -> 33484 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-xxxhdpi/Icon.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-xxxhdpi/Icon.png)bin19380 -> 19380 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png (renamed from csharp/xamarin/controller/controller.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png)bin52285 -> 52285 bytes
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/values/colors.xml (renamed from csharp/xamarin/controller/controller.Android/Resources/values/colors.xml)0
-rw-r--r--csharp/test/xamarin/controller.Android/Resources/values/styles.xml (renamed from csharp/xamarin/controller/controller.Android/Resources/values/styles.xml)0
-rw-r--r--[-rwxr-xr-x]csharp/test/xamarin/controller.Android/allTests.py (renamed from java/android/allTests.py)2
-rw-r--r--csharp/test/xamarin/controller.Android/controller.Android.csproj (renamed from csharp/xamarin/controller/controller.Android/controller.Android.csproj)14
-rw-r--r--csharp/test/xamarin/controller.UWP/App.xaml (renamed from csharp/xamarin/controller/controller.UWP/App.xaml)0
-rw-r--r--csharp/test/xamarin/controller.UWP/App.xaml.cs (renamed from csharp/xamarin/controller/controller.UWP/App.xaml.cs)0
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-100.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-100.png)bin6143 -> 6143 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-200.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-200.png)bin13916 -> 13916 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-400.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-400.png)bin31561 -> 31561 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-100.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-100.png)bin1218 -> 1218 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-200.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-200.png)bin2536 -> 2536 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-400.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-400.png)bin5566 -> 5566 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-100.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-100.png)bin6555 -> 6555 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-200.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-200.png)bin15240 -> 15240 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-400.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-400.png)bin39781 -> 39781 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-100.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-100.png)bin2772 -> 2772 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-200.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-200.png)bin5904 -> 5904 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-400.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-400.png)bin13344 -> 13344 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png)bin394 -> 394 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png)bin9693 -> 9693 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png)bin1245 -> 1245 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-100.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-100.png)bin1141 -> 1141 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-200.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-200.png)bin2468 -> 2468 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-400.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-400.png)bin4740 -> 4740 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-16.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-16.png)bin394 -> 394 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-256.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-256.png)bin9693 -> 9693 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-48.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-48.png)bin1245 -> 1245 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/StoreLogo.backup.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.backup.png)bin392 -> 392 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-100.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-100.png)bin836 -> 836 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-200.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-200.png)bin1742 -> 1742 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-400.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-400.png)bin3654 -> 3654 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-100.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-100.png)bin2988 -> 2988 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-200.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-200.png)bin6555 -> 6555 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-400.png (renamed from csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-400.png)bin15240 -> 15240 bytes
-rw-r--r--csharp/test/xamarin/controller.UWP/MainPage.xaml (renamed from csharp/xamarin/controller/controller.UWP/MainPage.xaml)0
-rw-r--r--csharp/test/xamarin/controller.UWP/MainPage.xaml.cs (renamed from csharp/xamarin/controller/controller.UWP/MainPage.xaml.cs)0
-rw-r--r--csharp/test/xamarin/controller.UWP/Package.appxmanifest (renamed from csharp/xamarin/controller/controller.UWP/Package.appxmanifest)0
-rw-r--r--csharp/test/xamarin/controller.UWP/Properties/AssemblyInfo.cs (renamed from csharp/xamarin/controller/controller.UWP/Properties/AssemblyInfo.cs)0
-rw-r--r--csharp/test/xamarin/controller.UWP/Properties/Default.rd.xml (renamed from csharp/xamarin/controller/controller.UWP/Properties/Default.rd.xml)0
-rw-r--r--[-rwxr-xr-x]csharp/test/xamarin/controller.UWP/allTests.py (renamed from java-compat/android/allTests.py)2
-rw-r--r--csharp/test/xamarin/controller.UWP/controller.UWP.csproj (renamed from csharp/xamarin/controller/controller.UWP/controller.UWP.csproj)8
-rw-r--r--csharp/test/xamarin/controller.UWP/controller.UWP_TemporaryKey.pfx (renamed from csharp/xamarin/controller/controller.UWP/controller.UWP_TemporaryKey.pfx)bin2504 -> 2504 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/AppDelegate.cs (renamed from csharp/xamarin/controller/controller.iOS/AppDelegate.cs)0
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json)0
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png)bin70429 -> 70429 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png)bin3773 -> 3773 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png)bin4750 -> 4750 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png)bin4692 -> 4692 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png)bin5192 -> 5192 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png)bin1313 -> 1313 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png)bin845 -> 845 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png)bin1101 -> 1101 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png)bin1761 -> 1761 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png)bin2537 -> 2537 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png)bin2332 -> 2332 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png)bin2454 -> 2454 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png (renamed from csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png)bin2758 -> 2758 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Entitlements.plist (renamed from csharp/xamarin/controller/controller.iOS/Entitlements.plist)0
-rw-r--r--csharp/test/xamarin/controller.iOS/Info.plist (renamed from csharp/xamarin/controller/controller.iOS/Info.plist)0
-rw-r--r--csharp/test/xamarin/controller.iOS/Main.cs (renamed from csharp/xamarin/controller/controller.iOS/Main.cs)0
-rw-r--r--csharp/test/xamarin/controller.iOS/Properties/AssemblyInfo.cs (renamed from csharp/xamarin/controller/controller.iOS/Properties/AssemblyInfo.cs)0
-rw-r--r--csharp/test/xamarin/controller.iOS/Resources/Default-568h@2x.png (renamed from csharp/xamarin/controller/controller.iOS/Resources/Default-568h@2x.png)bin8884 -> 8884 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Resources/Default-Portrait.png (renamed from csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait.png)bin10710 -> 10710 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Resources/Default-Portrait@2x.png (renamed from csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait@2x.png)bin34540 -> 34540 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Resources/Default.png (renamed from csharp/xamarin/controller/controller.iOS/Resources/Default.png)bin7243 -> 7243 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Resources/Default@2x.png (renamed from csharp/xamarin/controller/controller.iOS/Resources/Default@2x.png)bin8368 -> 8368 bytes
-rw-r--r--csharp/test/xamarin/controller.iOS/Resources/LaunchScreen.storyboard (renamed from csharp/xamarin/controller/controller.iOS/Resources/LaunchScreen.storyboard)0
-rw-r--r--csharp/test/xamarin/controller.iOS/allTests.py (renamed from csharp/xamarin/uwp/allTests.py)2
-rw-r--r--csharp/test/xamarin/controller.iOS/controller.iOS.csproj (renamed from csharp/xamarin/controller/controller.iOS/controller.iOS.csproj)4
-rw-r--r--csharp/test/xamarin/controller/App.xaml (renamed from csharp/xamarin/controller/controller/App.xaml)0
-rw-r--r--csharp/test/xamarin/controller/App.xaml.cs (renamed from csharp/xamarin/controller/controller/App.xaml.cs)0
-rw-r--r--csharp/test/xamarin/controller/MainPage.xaml (renamed from csharp/xamarin/controller/controller/MainPage.xaml)0
-rw-r--r--csharp/test/xamarin/controller/MainPage.xaml.cs (renamed from csharp/xamarin/controller/controller/MainPage.xaml.cs)0
-rw-r--r--csharp/test/xamarin/controller/controller.csproj92
-rw-r--r--csharp/xamarin/README.md69
-rw-r--r--csharp/xamarin/controller/controller/controller.csproj92
-rw-r--r--java-compat/.gitignore1
-rw-r--r--java-compat/README.md189
-rw-r--r--java-compat/android/.gitignore8
-rw-r--r--java-compat/android/Makefile34
-rw-r--r--java-compat/android/README.md133
-rw-r--r--java-compat/android/build.gradle36
-rw-r--r--java-compat/android/gradle/dex.gradle24
-rw-r--r--java-compat/android/gradle/library.gradle27
-rw-r--r--java-compat/android/gradle/tests.gradle53
-rw-r--r--java-compat/android/settings.gradle40
-rw-r--r--java-compat/android/src/Glacier2/build.gradle24
-rw-r--r--java-compat/android/src/Ice/build.gradle24
-rw-r--r--java-compat/android/src/IceBT/build.gradle24
-rw-r--r--java-compat/android/src/IceBox/build.gradle24
-rw-r--r--java-compat/android/src/IceDiscovery/build.gradle24
-rw-r--r--java-compat/android/src/IceGrid/build.gradle24
-rw-r--r--java-compat/android/src/IceLocatorDiscovery/build.gradle24
-rw-r--r--java-compat/android/src/IcePatch2/build.gradle24
-rw-r--r--java-compat/android/src/IceStorm/build.gradle24
-rw-r--r--java-compat/android/test/build.gradle72
-rw-r--r--java-compat/settings.gradle9
-rw-r--r--java-compat/test/android/allTests.py (renamed from csharp/xamarin/android/allTests.py)0
-rw-r--r--java-compat/test/android/controller/build.gradle (renamed from java-compat/android/controller/build.gradle)52
-rw-r--r--java-compat/test/android/controller/gradle.properties (renamed from java-compat/android/gradle.properties)17
-rw-r--r--[-rwxr-xr-x]java-compat/test/android/controller/gradle/GRADLE_LICENSE (renamed from java-compat/android/gradle/GRADLE_LICENSE)0
-rw-r--r--java-compat/test/android/controller/gradle/wrapper/gradle-wrapper.jar (renamed from java-compat/android/gradle/wrapper/gradle-wrapper.jar)bin54712 -> 54712 bytes
-rw-r--r--java-compat/test/android/controller/gradle/wrapper/gradle-wrapper.properties (renamed from java-compat/android/gradle/wrapper/gradle-wrapper.properties)0
-rw-r--r--[-rwxr-xr-x]java-compat/test/android/controller/gradlew (renamed from java-compat/android/gradlew)0
-rw-r--r--java-compat/test/android/controller/gradlew.bat (renamed from java-compat/android/gradlew.bat)0
-rw-r--r--java-compat/test/android/controller/proguard.cfg (renamed from java-compat/android/controller/proguard.cfg)0
-rw-r--r--java-compat/test/android/controller/src/main/AndroidManifest.xml (renamed from java-compat/android/controller/src/main/AndroidManifest.xml)0
-rw-r--r--java-compat/test/android/controller/src/main/assets/.gitignore (renamed from java-compat/android/controller/src/main/assets/.gitignore)0
-rw-r--r--java-compat/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java (renamed from java-compat/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java)0
-rw-r--r--java-compat/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java (renamed from java-compat/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java)0
-rw-r--r--java-compat/test/android/controller/src/main/res/layout/main.xml (renamed from java-compat/android/controller/src/main/res/layout/main.xml)0
-rw-r--r--java-compat/test/android/controller/src/main/res/raw/client.bksbin0 -> 3524 bytes
-rw-r--r--java-compat/test/android/controller/src/main/res/raw/icon.png (renamed from java-compat/android/controller/src/main/res/raw/icon.png)bin3180 -> 3180 bytes
-rw-r--r--java-compat/test/android/controller/src/main/res/raw/server.bksbin0 -> 3558 bytes
-rw-r--r--java-compat/test/android/controller/src/main/res/values/strings.xml (renamed from java-compat/android/controller/src/main/res/values/strings.xml)0
-rw-r--r--java-compat/test/build.gradle8
-rw-r--r--java-compat/test/ejb/README.md73
-rw-r--r--java-compat/test/ejb/src/common/com/zeroc/ice/IceAdapter.java52
-rw-r--r--java-compat/test/ejb/src/ejb1/META-INF/jboss.xml9
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Client.java68
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseI.java35
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseServer.java43
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Init.java18
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/InitBean.java44
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Service.java22
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceBean.java50
-rw-r--r--java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceI.java41
-rw-r--r--java-compat/test/ejb/src/ejb2/META-INF/jboss.xml9
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Client.java68
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseI.java35
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseServer.java43
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Init.java18
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/InitBean.java44
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Service.java22
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceBean.java86
-rw-r--r--java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceI.java41
-rw-r--r--java-compat/test/ejb/src/resources/jndi.properties3
-rw-r--r--java-compat/test/ejb/src/slice/common.ice18
-rw-r--r--java-compat/test/ejb/src/slice/ejb1.ice40
-rw-r--r--java-compat/test/ejb/src/slice/ejb2.ice42
-rw-r--r--java-compat/test/lambda/build.gradle (renamed from java/android/src/IceBT/build.gradle)23
-rw-r--r--java-compat/test/lambda/src/main/java/Ice/ami/lambda/AMI.java1155
-rw-r--r--java-compat/test/lambda/src/main/java/Ice/invoke/lambda/AllTests.java201
-rw-r--r--java-compat/test/lambda/src/main/java/Ice/operations/lambda/OnewaysLambdaAMI.java158
-rw-r--r--java-compat/test/lambda/src/main/java/Ice/operations/lambda/TwowaysLambdaAMI.java1432
-rw-r--r--java-compat/test/lambda/src/main/java/Ice/optional/lambda/AllTests.java791
-rw-r--r--java/.gitignore1
-rw-r--r--java/.settings/org.eclipse.jdt.core.prefs384
-rw-r--r--java/.settings/org.eclipse.jdt.ui.prefs3
-rw-r--r--java/README.md165
-rw-r--r--java/android/.gitignore8
-rw-r--r--java/android/Makefile34
-rw-r--r--java/android/README.md133
-rwxr-xr-xjava/android/build.gradle36
-rw-r--r--java/android/controller/build.gradle84
-rwxr-xr-xjava/android/gradle/GRADLE_LICENSE16
-rw-r--r--java/android/gradle/library.gradle27
-rw-r--r--java/android/gradle/tests.gradle56
-rw-r--r--java/android/settings.gradle30
-rw-r--r--java/android/src/Ice/build.gradle23
-rw-r--r--java/android/src/IceDiscovery/build.gradle23
-rw-r--r--java/android/src/IceSSL/build.gradle23
-rw-r--r--java/android/test/build.gradle69
-rw-r--r--java/android/test/slice.gradle69
-rw-r--r--java/settings.gradle3
-rw-r--r--java/test/android/allTests.py (renamed from csharp/xamarin/ios/allTests.py)0
-rw-r--r--java/test/android/controller/build.gradle104
-rw-r--r--java/test/android/controller/gradle.properties (renamed from java/android/gradle.properties)2
-rw-r--r--java/test/android/controller/gradle/wrapper/gradle-wrapper.jar (renamed from java/android/gradle/wrapper/gradle-wrapper.jar)bin54329 -> 54708 bytes
-rw-r--r--java/test/android/controller/gradle/wrapper/gradle-wrapper.properties (renamed from java/android/gradle/wrapper/gradle-wrapper.properties)3
-rw-r--r--[-rwxr-xr-x]java/test/android/controller/gradlew (renamed from java/android/gradlew)0
-rw-r--r--java/test/android/controller/gradlew.bat (renamed from java/android/gradlew.bat)0
-rw-r--r--java/test/android/controller/src/main/AndroidManifest.xml (renamed from java/android/controller/src/main/AndroidManifest.xml)0
-rw-r--r--java/test/android/controller/src/main/assets/.gitignore (renamed from java/android/controller/src/main/assets/.gitignore)0
-rw-r--r--java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java (renamed from java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java)0
-rw-r--r--java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java (renamed from java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java)0
-rw-r--r--java/test/android/controller/src/main/res/layout/main.xml (renamed from java/android/controller/src/main/res/layout/main.xml)0
-rw-r--r--java/test/android/controller/src/main/res/raw/client.bksbin0 -> 3524 bytes
-rw-r--r--java/test/android/controller/src/main/res/raw/icon.png (renamed from java/android/controller/src/main/res/raw/icon.png)bin3180 -> 3180 bytes
-rw-r--r--java/test/android/controller/src/main/res/raw/server.bksbin0 -> 3558 bytes
-rw-r--r--java/test/android/controller/src/main/res/values/strings.xml (renamed from java/android/controller/src/main/res/values/strings.xml)0
-rw-r--r--scripts/Component.py10
-rw-r--r--scripts/Util.py39
205 files changed, 4425 insertions, 2911 deletions
diff --git a/csharp/README.md b/csharp/README.md
index bd3836b7ad7..cd7cf90f2e5 100644
--- a/csharp/README.md
+++ b/csharp/README.md
@@ -15,6 +15,7 @@ resulting binaries. As an alternative, you can download and install the
* [Compiling Ice for \.NET on Linux or macOS](#compiling-ice-for-net-on-linux-or-macos)
* [Running the Tests](#running-the-tests)
* [NuGet Package](#nuget-package)
+* [Building Ice for Xamarin Test Suite](#buildin-ice-for-xamarin-test-suite)
## Building on Windows
@@ -170,6 +171,100 @@ This creates `zeroc.ice.net\zeroc.ice.net.nupkg`.
*Temporary limitation: you currently cannot create NuGet packages on Linux and macOS.*
+## Building Ice for Xamarin Test Suite
+
+The `msbuild\ice.xamarin.test.sln` Visual Studio solution allows building
+the Ice test suite as a Xamarin application that can be deployed to iOS, Android
+or UWP platforms.
+
+The Xamarin test suite use the Ice assemblies for .NET Standard 2.0. either
+from the source distribution that must be build before this application or
+using the zeroc.ice.net NuGet package.
+
+### Building on Windows
+
+#### Windows Build Requirements
+
+* Visual Studio 2017 with following workloads:
+ * Universal Windows Platform development
+ * Mobile development with .NET
+ * .NET Core cross-platform development
+
+#### Building the Android test controller
+
+Open a Visual Studio 2017 command prompt:
+
+```
+MSBuild msbuild\msbuild.xamarin.test.sln /t:NuGetRestore
+MSBuild test\xamarin\controller.Android\controller.Android.csproj /t:SignAndroidPackage /p:Configuration=Release /p:Platform=AnyCPU
+```
+
+#### Building the UWP test controller
+
+Open a Visual Studio 2017 command prompt:
+
+```
+MSBuild msbuild\msbuild.xamarin.test.sln /t:NuGetRestore
+MSBuild test\xamarin\controller.UWP\controller.UWP.csproj /p:Configuration=Release
+```
+
+#### Running the Android test suite
+
+```
+set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\tools\bin;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
+
+cd csharp\test\xamarin\controller.Android
+python allTests.py --androidemulator --controller-app --config Release --platform x64
+```
+
+#### Running the UWP test suite
+
+```
+cd csharp\test\xamarin\controller.UWP
+python allTests.py --controller-app --config Release --platform x64
+```
+
+### Building on macOS
+
+#### macOS Build Requirements
+
+* Visual Studio for Mac
+
+#### Building the Android test controller
+
+```
+nuget restore msbuild/ice.xamarin.test.sln
+msbuild test/xamarin/controller.Android/controller.Android.csproj /t:SignAndroidPackage /p:Configuration=Release
+```
+
+#### Building the iOS test controller
+
+```
+nuget restore msbuild/ice.xamarin.test.sln
+msbuild test/xamarin/controller.iOS/controller.iOS.csproj /p:Configuration=Release
+```
+
+#### Running the Android test suite
+
+```
+export PATH=~/Library/Android/sdk/tools/bin:$PATH
+export PATH=~/Library/Android/sdk/platform-tools:$PATH
+export PATH=~/Library/Android/sdk/emulator:$PATH
+
+cd csharp/test/xamarin/controller.Android
+python allTests.py --androidemulator --controller-app --config Release --platform x64
+```
+
+#### Running the iOS test suite
+
+```
+cd csharp/test/xamarin/controller.iOS
+python allTests.py --controller-app --platform iphonesimulator --config Release
+```
+
[1]: https://zeroc.com/distributions/ice
[2]: https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0
[3]: https://doc.zeroc.com/display/Rel/Supported+Platforms+for+Ice+3.7.1
diff --git a/csharp/xamarin/controller.sln b/csharp/msbuild/ice.xamarin.test.sln
index 6d93faedf17..337eb7d207d 100644
--- a/csharp/xamarin/controller.sln
+++ b/csharp/msbuild/ice.xamarin.test.sln
@@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27703.2035
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "controller.Android", "controller\controller.Android\controller.Android.csproj", "{62B1BE59-435A-480B-8807-03A42623BA1A}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "controller.Android", "..\test\xamarin\controller.Android\controller.Android.csproj", "{62B1BE59-435A-480B-8807-03A42623BA1A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "controller.iOS", "controller\controller.iOS\controller.iOS.csproj", "{FD70EC29-8D51-4F4F-8AD7-64170F22575D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "controller.iOS", "..\test\xamarin\controller.iOS\controller.iOS.csproj", "{FD70EC29-8D51-4F4F-8AD7-64170F22575D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "controller.UWP", "controller\controller.UWP\controller.UWP.csproj", "{00218ACB-5695-4935-BAE1-F47B13989E9B}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "controller.UWP", "..\test\xamarin\controller.UWP\controller.UWP.csproj", "{00218ACB-5695-4935-BAE1-F47B13989E9B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "controller", "controller\controller\controller.csproj", "{0578CEE2-EF1E-496E-ABF4-5F9A70E888D4}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "controller", "..\test\xamarin\controller\controller.csproj", "{0578CEE2-EF1E-496E-ABF4-5F9A70E888D4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "testcommon", "..\test\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj", "{A62BF5E3-AD66-4EDB-9BBA-3E9BD6148425}"
EndProject
diff --git a/csharp/xamarin/controller/controller.Android/Assets/AboutAssets.txt b/csharp/test/xamarin/controller.Android/Assets/AboutAssets.txt
index e69de29bb2d..e69de29bb2d 100644
--- a/csharp/xamarin/controller/controller.Android/Assets/AboutAssets.txt
+++ b/csharp/test/xamarin/controller.Android/Assets/AboutAssets.txt
diff --git a/csharp/xamarin/controller/controller.Android/MainActivity.cs b/csharp/test/xamarin/controller.Android/MainActivity.cs
index 5540cbd2e99..5540cbd2e99 100644
--- a/csharp/xamarin/controller/controller.Android/MainActivity.cs
+++ b/csharp/test/xamarin/controller.Android/MainActivity.cs
diff --git a/csharp/xamarin/controller/controller.Android/Properties/AndroidManifest.xml b/csharp/test/xamarin/controller.Android/Properties/AndroidManifest.xml
index 0353a49cedc..0353a49cedc 100644
--- a/csharp/xamarin/controller/controller.Android/Properties/AndroidManifest.xml
+++ b/csharp/test/xamarin/controller.Android/Properties/AndroidManifest.xml
diff --git a/csharp/xamarin/controller/controller.Android/Properties/AssemblyInfo.cs b/csharp/test/xamarin/controller.Android/Properties/AssemblyInfo.cs
index de09f50d2a4..de09f50d2a4 100644
--- a/csharp/xamarin/controller/controller.Android/Properties/AssemblyInfo.cs
+++ b/csharp/test/xamarin/controller.Android/Properties/AssemblyInfo.cs
diff --git a/csharp/xamarin/controller/controller.Android/Resources/AboutResources.txt b/csharp/test/xamarin/controller.Android/Resources/AboutResources.txt
index 9fda45577e3..9fda45577e3 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/AboutResources.txt
+++ b/csharp/test/xamarin/controller.Android/Resources/AboutResources.txt
diff --git a/csharp/xamarin/controller/controller.Android/Resources/Resource.designer.cs b/csharp/test/xamarin/controller.Android/Resources/Resource.designer.cs
index 77a5715f1f6..77a5715f1f6 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/Resource.designer.cs
+++ b/csharp/test/xamarin/controller.Android/Resources/Resource.designer.cs
diff --git a/csharp/xamarin/controller/controller.Android/Resources/layout/Tabbar.axml b/csharp/test/xamarin/controller.Android/Resources/layout/Tabbar.axml
index ad1f87d817c..ad1f87d817c 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/layout/Tabbar.axml
+++ b/csharp/test/xamarin/controller.Android/Resources/layout/Tabbar.axml
diff --git a/csharp/xamarin/controller/controller.Android/Resources/layout/Toolbar.axml b/csharp/test/xamarin/controller.Android/Resources/layout/Toolbar.axml
index 3a1989a8749..3a1989a8749 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/layout/Toolbar.axml
+++ b/csharp/test/xamarin/controller.Android/Resources/layout/Toolbar.axml
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-anydpi-v26/icon.xml b/csharp/test/xamarin/controller.Android/Resources/mipmap-anydpi-v26/icon.xml
index 1abd99deb05..1abd99deb05 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-anydpi-v26/icon.xml
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-anydpi-v26/icon.xml
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-anydpi-v26/icon_round.xml b/csharp/test/xamarin/controller.Android/Resources/mipmap-anydpi-v26/icon_round.xml
index 1abd99deb05..1abd99deb05 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-anydpi-v26/icon_round.xml
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-anydpi-v26/icon_round.xml
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-hdpi/Icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-hdpi/Icon.png
index 4623ca2c42f..4623ca2c42f 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-hdpi/Icon.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-hdpi/Icon.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-hdpi/launcher_foreground.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-hdpi/launcher_foreground.png
index a89e5bbce62..a89e5bbce62 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-hdpi/launcher_foreground.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-hdpi/launcher_foreground.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-mdpi/icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-mdpi/icon.png
index 9b1d25e25de..9b1d25e25de 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-mdpi/icon.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-mdpi/icon.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-mdpi/launcher_foreground.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-mdpi/launcher_foreground.png
index 431a8a053d0..431a8a053d0 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-mdpi/launcher_foreground.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-mdpi/launcher_foreground.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xhdpi/Icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xhdpi/Icon.png
index 844dfe544ec..844dfe544ec 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xhdpi/Icon.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-xhdpi/Icon.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xhdpi/launcher_foreground.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xhdpi/launcher_foreground.png
index 9e9e4f8e4cd..9e9e4f8e4cd 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xhdpi/launcher_foreground.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-xhdpi/launcher_foreground.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxhdpi/Icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxhdpi/Icon.png
index e20ec9ae226..e20ec9ae226 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxhdpi/Icon.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxhdpi/Icon.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxhdpi/launcher_foreground.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxhdpi/launcher_foreground.png
index 5f1e1356eb6..5f1e1356eb6 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxhdpi/launcher_foreground.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxhdpi/launcher_foreground.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxxhdpi/Icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxxhdpi/Icon.png
index 8a08bf75e7a..8a08bf75e7a 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxxhdpi/Icon.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxxhdpi/Icon.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png
index aca9f8d1c0b..aca9f8d1c0b 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png
+++ b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.Android/Resources/values/colors.xml b/csharp/test/xamarin/controller.Android/Resources/values/colors.xml
index d9f6e0baf9a..d9f6e0baf9a 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/values/colors.xml
+++ b/csharp/test/xamarin/controller.Android/Resources/values/colors.xml
diff --git a/csharp/xamarin/controller/controller.Android/Resources/values/styles.xml b/csharp/test/xamarin/controller.Android/Resources/values/styles.xml
index 43b0a58c197..43b0a58c197 100644
--- a/csharp/xamarin/controller/controller.Android/Resources/values/styles.xml
+++ b/csharp/test/xamarin/controller.Android/Resources/values/styles.xml
diff --git a/java/android/allTests.py b/csharp/test/xamarin/controller.Android/allTests.py
index b5a6b3c4ec4..c56c479b245 100755..100644
--- a/java/android/allTests.py
+++ b/csharp/test/xamarin/controller.Android/allTests.py
@@ -9,7 +9,7 @@
# **********************************************************************
import os, sys
-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "scripts"))
+sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", "scripts"))
from Util import runTestsWithPath
diff --git a/csharp/xamarin/controller/controller.Android/controller.Android.csproj b/csharp/test/xamarin/controller.Android/controller.Android.csproj
index d8e65bb5858..cfbe6b6a4e3 100644
--- a/csharp/xamarin/controller/controller.Android/controller.Android.csproj
+++ b/csharp/test/xamarin/controller.Android/controller.Android.csproj
@@ -80,12 +80,12 @@
</Otherwise>
</Choose>
<ItemGroup>
- <PackageReference Include="Xamarin.Forms" Version="3.0.0.561731" />
- <PackageReference Include="Xamarin.Android.Support.Design" Version="27.0.2" />
- <PackageReference Include="Xamarin.Android.Support.v7.AppCompat" Version="27.0.2" />
- <PackageReference Include="Xamarin.Android.Support.v4" Version="27.0.2" />
- <PackageReference Include="Xamarin.Android.Support.v7.CardView" Version="27.0.2" />
- <PackageReference Include="Xamarin.Android.Support.v7.MediaRouter" Version="27.0.2" />
+ <PackageReference Include="Xamarin.Forms" Version="3.1.0.697729" />
+ <PackageReference Include="Xamarin.Android.Support.Design" Version="27.0.2.1" />
+ <PackageReference Include="Xamarin.Android.Support.v7.AppCompat" Version="27.0.2.1" />
+ <PackageReference Include="Xamarin.Android.Support.v4" Version="27.0.2.1" />
+ <PackageReference Include="Xamarin.Android.Support.v7.CardView" Version="27.0.2.1" />
+ <PackageReference Include="Xamarin.Android.Support.v7.MediaRouter" Version="27.0.2.1" />
</ItemGroup>
<ItemGroup>
<Compile Include="MainActivity.cs" />
@@ -123,7 +123,7 @@
<Folder Include="Resources\drawable\" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\..\..\test\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj">
+ <ProjectReference Include="..\..\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj">
<Project>{a62bf5e3-ad66-4edb-9bba-3e9bd6148425}</Project>
<Name>testcommon</Name>
</ProjectReference>
diff --git a/csharp/xamarin/controller/controller.UWP/App.xaml b/csharp/test/xamarin/controller.UWP/App.xaml
index 95640f76f68..95640f76f68 100644
--- a/csharp/xamarin/controller/controller.UWP/App.xaml
+++ b/csharp/test/xamarin/controller.UWP/App.xaml
diff --git a/csharp/xamarin/controller/controller.UWP/App.xaml.cs b/csharp/test/xamarin/controller.UWP/App.xaml.cs
index 886e3b69150..886e3b69150 100644
--- a/csharp/xamarin/controller/controller.UWP/App.xaml.cs
+++ b/csharp/test/xamarin/controller.UWP/App.xaml.cs
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-100.png
index c3e93b09cc8..c3e93b09cc8 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-100.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-100.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-200.png
index 2709372a29f..2709372a29f 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-200.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-200.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-400.png
index ff031995a08..ff031995a08 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-400.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-400.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-100.png
index 41108536abd..41108536abd 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-100.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-100.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-200.png
index c63509583af..c63509583af 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-200.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-200.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-400.png
index e28c05283ee..e28c05283ee 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-400.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-400.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-100.png
index eacdf203d4c..eacdf203d4c 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-100.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-100.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-200.png
index caa5fc9cb67..caa5fc9cb67 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-200.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-200.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-400.png
index 16d97844daf..16d97844daf 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-400.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-400.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-100.png
index c1709f2b8b4..c1709f2b8b4 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-100.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-100.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-200.png
index 48732ffe3a8..48732ffe3a8 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-200.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-200.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-400.png
index 95456beb908..95456beb908 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-400.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-400.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
index 0c6fd15fa31..0c6fd15fa31 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
index 6635c80f61a..6635c80f61a 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
index ee58ea6df88..ee58ea6df88 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-100.png
index 06fc87c130f..06fc87c130f 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-100.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-100.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-200.png
index eaf27573f8c..eaf27573f8c 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-200.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-200.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-400.png
index 8a4ee54f9ef..8a4ee54f9ef 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-400.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-400.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-16.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-16.png
index 0c6fd15fa31..0c6fd15fa31 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-16.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-16.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-256.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-256.png
index 6635c80f61a..6635c80f61a 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-256.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-256.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-48.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-48.png
index ee58ea6df88..ee58ea6df88 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-48.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-48.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.backup.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.backup.png
index a197aaf558f..a197aaf558f 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.backup.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.backup.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-100.png
index 4fbbc70d82b..4fbbc70d82b 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-100.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-100.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-200.png
index 29db5019f6e..29db5019f6e 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-200.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-200.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-400.png
index 383ad6e49ca..383ad6e49ca 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-400.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-400.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-100.png
index 476954a0717..476954a0717 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-100.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-100.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-200.png
index eacdf203d4c..eacdf203d4c 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-200.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-200.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-400.png
index caa5fc9cb67..caa5fc9cb67 100644
--- a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-400.png
+++ b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-400.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.UWP/MainPage.xaml b/csharp/test/xamarin/controller.UWP/MainPage.xaml
index 2486eb8aee1..2486eb8aee1 100644
--- a/csharp/xamarin/controller/controller.UWP/MainPage.xaml
+++ b/csharp/test/xamarin/controller.UWP/MainPage.xaml
diff --git a/csharp/xamarin/controller/controller.UWP/MainPage.xaml.cs b/csharp/test/xamarin/controller.UWP/MainPage.xaml.cs
index 5d6d20d8b97..5d6d20d8b97 100644
--- a/csharp/xamarin/controller/controller.UWP/MainPage.xaml.cs
+++ b/csharp/test/xamarin/controller.UWP/MainPage.xaml.cs
diff --git a/csharp/xamarin/controller/controller.UWP/Package.appxmanifest b/csharp/test/xamarin/controller.UWP/Package.appxmanifest
index 413f180eecf..413f180eecf 100644
--- a/csharp/xamarin/controller/controller.UWP/Package.appxmanifest
+++ b/csharp/test/xamarin/controller.UWP/Package.appxmanifest
diff --git a/csharp/xamarin/controller/controller.UWP/Properties/AssemblyInfo.cs b/csharp/test/xamarin/controller.UWP/Properties/AssemblyInfo.cs
index 3943666426b..3943666426b 100644
--- a/csharp/xamarin/controller/controller.UWP/Properties/AssemblyInfo.cs
+++ b/csharp/test/xamarin/controller.UWP/Properties/AssemblyInfo.cs
diff --git a/csharp/xamarin/controller/controller.UWP/Properties/Default.rd.xml b/csharp/test/xamarin/controller.UWP/Properties/Default.rd.xml
index f49083102ed..f49083102ed 100644
--- a/csharp/xamarin/controller/controller.UWP/Properties/Default.rd.xml
+++ b/csharp/test/xamarin/controller.UWP/Properties/Default.rd.xml
diff --git a/java-compat/android/allTests.py b/csharp/test/xamarin/controller.UWP/allTests.py
index b5a6b3c4ec4..c56c479b245 100755..100644
--- a/java-compat/android/allTests.py
+++ b/csharp/test/xamarin/controller.UWP/allTests.py
@@ -9,7 +9,7 @@
# **********************************************************************
import os, sys
-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "scripts"))
+sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", "scripts"))
from Util import runTestsWithPath
diff --git a/csharp/xamarin/controller/controller.UWP/controller.UWP.csproj b/csharp/test/xamarin/controller.UWP/controller.UWP.csproj
index 5101ccaa4d5..1a1a1d6fd58 100644
--- a/csharp/xamarin/controller/controller.UWP/controller.UWP.csproj
+++ b/csharp/test/xamarin/controller.UWP/controller.UWP.csproj
@@ -21,7 +21,7 @@
<PackageCertificateThumbprint>28A113377FFC465A2670468B58F20BEBACAF4D9D</PackageCertificateThumbprint>
<AppxBundlePlatforms>x64</AppxBundlePlatforms>
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
- <AppxAutoIncrementPackageRevision>True</AppxAutoIncrementPackageRevision>
+ <AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
<AppxBundle>Never</AppxBundle>
<AppInstallerUpdateFrequency>1</AppInstallerUpdateFrequency>
<AppInstallerCheckForUpdateFrequency>OnApplicationRun</AppInstallerCheckForUpdateFrequency>
@@ -150,8 +150,8 @@
</Page>
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Xamarin.Forms" Version="3.0.0.561731" />
- <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.0.1" />
+ <PackageReference Include="Xamarin.Forms" Version="3.1.0.697729" />
+ <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.1.7" />
</ItemGroup>
<Choose>
<When Condition="'$(ICE_BIN_DIST)' == 'all'">
@@ -168,7 +168,7 @@
</Otherwise>
</Choose>
<ItemGroup>
- <ProjectReference Include="..\..\..\test\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj">
+ <ProjectReference Include="..\..\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj">
<Project>{a62bf5e3-ad66-4edb-9bba-3e9bd6148425}</Project>
<Name>testcommon</Name>
</ProjectReference>
diff --git a/csharp/xamarin/controller/controller.UWP/controller.UWP_TemporaryKey.pfx b/csharp/test/xamarin/controller.UWP/controller.UWP_TemporaryKey.pfx
index 02b4b7c574e..02b4b7c574e 100644
--- a/csharp/xamarin/controller/controller.UWP/controller.UWP_TemporaryKey.pfx
+++ b/csharp/test/xamarin/controller.UWP/controller.UWP_TemporaryKey.pfx
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/AppDelegate.cs b/csharp/test/xamarin/controller.iOS/AppDelegate.cs
index 1f4728470ab..1f4728470ab 100644
--- a/csharp/xamarin/controller/controller.iOS/AppDelegate.cs
+++ b/csharp/test/xamarin/controller.iOS/AppDelegate.cs
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
index 8db9066b38a..8db9066b38a 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png
index 9174c989a9c..9174c989a9c 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png
index 9c60a1761db..9c60a1761db 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png
index 448d6efb577..448d6efb577 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png
index 8524768f8d7..8524768f8d7 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png
index 60a64703c0f..60a64703c0f 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png
index 45268a641c5..45268a641c5 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png
index 6a6c77a8b4c..6a6c77a8b4c 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png
index cc7edcf5cb4..cc7edcf5cb4 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png
index 1ad04f004b6..1ad04f004b6 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png
index 2dd52620a8f..2dd52620a8f 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png
index b058cae2f44..b058cae2f44 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png
index 02e47a26115..02e47a26115 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png
index 4954a4bd33f..4954a4bd33f 100644
--- a/csharp/xamarin/controller/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png
+++ b/csharp/test/xamarin/controller.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Entitlements.plist b/csharp/test/xamarin/controller.iOS/Entitlements.plist
index 9ae599370b4..9ae599370b4 100644
--- a/csharp/xamarin/controller/controller.iOS/Entitlements.plist
+++ b/csharp/test/xamarin/controller.iOS/Entitlements.plist
diff --git a/csharp/xamarin/controller/controller.iOS/Info.plist b/csharp/test/xamarin/controller.iOS/Info.plist
index 6ac54ed218e..6ac54ed218e 100644
--- a/csharp/xamarin/controller/controller.iOS/Info.plist
+++ b/csharp/test/xamarin/controller.iOS/Info.plist
diff --git a/csharp/xamarin/controller/controller.iOS/Main.cs b/csharp/test/xamarin/controller.iOS/Main.cs
index 70afb4f1b8d..70afb4f1b8d 100644
--- a/csharp/xamarin/controller/controller.iOS/Main.cs
+++ b/csharp/test/xamarin/controller.iOS/Main.cs
diff --git a/csharp/xamarin/controller/controller.iOS/Properties/AssemblyInfo.cs b/csharp/test/xamarin/controller.iOS/Properties/AssemblyInfo.cs
index e1e48515913..e1e48515913 100644
--- a/csharp/xamarin/controller/controller.iOS/Properties/AssemblyInfo.cs
+++ b/csharp/test/xamarin/controller.iOS/Properties/AssemblyInfo.cs
diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default-568h@2x.png b/csharp/test/xamarin/controller.iOS/Resources/Default-568h@2x.png
index 26c6461e50a..26c6461e50a 100644
--- a/csharp/xamarin/controller/controller.iOS/Resources/Default-568h@2x.png
+++ b/csharp/test/xamarin/controller.iOS/Resources/Default-568h@2x.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait.png b/csharp/test/xamarin/controller.iOS/Resources/Default-Portrait.png
index 5d0d1ab4c6d..5d0d1ab4c6d 100644
--- a/csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait.png
+++ b/csharp/test/xamarin/controller.iOS/Resources/Default-Portrait.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait@2x.png b/csharp/test/xamarin/controller.iOS/Resources/Default-Portrait@2x.png
index 0ee2688e8f1..0ee2688e8f1 100644
--- a/csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait@2x.png
+++ b/csharp/test/xamarin/controller.iOS/Resources/Default-Portrait@2x.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default.png b/csharp/test/xamarin/controller.iOS/Resources/Default.png
index b74643c0aa3..b74643c0aa3 100644
--- a/csharp/xamarin/controller/controller.iOS/Resources/Default.png
+++ b/csharp/test/xamarin/controller.iOS/Resources/Default.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default@2x.png b/csharp/test/xamarin/controller.iOS/Resources/Default@2x.png
index dbd6bd3e864..dbd6bd3e864 100644
--- a/csharp/xamarin/controller/controller.iOS/Resources/Default@2x.png
+++ b/csharp/test/xamarin/controller.iOS/Resources/Default@2x.png
Binary files differ
diff --git a/csharp/xamarin/controller/controller.iOS/Resources/LaunchScreen.storyboard b/csharp/test/xamarin/controller.iOS/Resources/LaunchScreen.storyboard
index a639c2f1a5b..a639c2f1a5b 100644
--- a/csharp/xamarin/controller/controller.iOS/Resources/LaunchScreen.storyboard
+++ b/csharp/test/xamarin/controller.iOS/Resources/LaunchScreen.storyboard
diff --git a/csharp/xamarin/uwp/allTests.py b/csharp/test/xamarin/controller.iOS/allTests.py
index e3a2fc3d36f..c56c479b245 100644
--- a/csharp/xamarin/uwp/allTests.py
+++ b/csharp/test/xamarin/controller.iOS/allTests.py
@@ -9,7 +9,7 @@
# **********************************************************************
import os, sys
-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
+sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", "scripts"))
from Util import runTestsWithPath
diff --git a/csharp/xamarin/controller/controller.iOS/controller.iOS.csproj b/csharp/test/xamarin/controller.iOS/controller.iOS.csproj
index dd38ce358c3..a0698ea1ffd 100644
--- a/csharp/xamarin/controller/controller.iOS/controller.iOS.csproj
+++ b/csharp/test/xamarin/controller.iOS/controller.iOS.csproj
@@ -186,11 +186,11 @@
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Xamarin.Forms" Version="3.0.0.561731" />
+ <PackageReference Include="Xamarin.Forms" Version="3.1.0.697729" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
<ItemGroup>
- <ProjectReference Include="..\..\..\test\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj">
+ <ProjectReference Include="..\..\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj">
<Project>{a62bf5e3-ad66-4edb-9bba-3e9bd6148425}</Project>
<Name>testcommon</Name>
</ProjectReference>
diff --git a/csharp/xamarin/controller/controller/App.xaml b/csharp/test/xamarin/controller/App.xaml
index 559c3295a13..559c3295a13 100644
--- a/csharp/xamarin/controller/controller/App.xaml
+++ b/csharp/test/xamarin/controller/App.xaml
diff --git a/csharp/xamarin/controller/controller/App.xaml.cs b/csharp/test/xamarin/controller/App.xaml.cs
index 6e57ac575b0..6e57ac575b0 100644
--- a/csharp/xamarin/controller/controller/App.xaml.cs
+++ b/csharp/test/xamarin/controller/App.xaml.cs
diff --git a/csharp/xamarin/controller/controller/MainPage.xaml b/csharp/test/xamarin/controller/MainPage.xaml
index 1808b1ad40a..1808b1ad40a 100644
--- a/csharp/xamarin/controller/controller/MainPage.xaml
+++ b/csharp/test/xamarin/controller/MainPage.xaml
diff --git a/csharp/xamarin/controller/controller/MainPage.xaml.cs b/csharp/test/xamarin/controller/MainPage.xaml.cs
index bb34df2be02..bb34df2be02 100644
--- a/csharp/xamarin/controller/controller/MainPage.xaml.cs
+++ b/csharp/test/xamarin/controller/MainPage.xaml.cs
diff --git a/csharp/test/xamarin/controller/controller.csproj b/csharp/test/xamarin/controller/controller.csproj
new file mode 100644
index 00000000000..2a4684d6e5c
--- /dev/null
+++ b/csharp/test/xamarin/controller/controller.csproj
@@ -0,0 +1,92 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>netstandard2.0</TargetFramework>
+ </PropertyGroup>
+ <Import Project="..\..\..\msbuild\ice.common.props" />
+ <PropertyGroup>
+ <EnableDefaultCompileItems>true</EnableDefaultCompileItems>
+ </PropertyGroup>
+ <ItemGroup>
+ <Compile Remove="test\**" />
+ <EmbeddedResource Remove="test\**" />
+ <None Remove="test\**" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <PackageReference Include="Xamarin.Forms" Version="3.1.0.697729" />
+ <PackageReference Include="zeroc.icebuilder.msbuild" Version="5.0.4" />
+ <Compile Update="generated\Controller.cs">
+ <SliceCompileSource>..\..\..\..\scripts\Controller.ice</SliceCompileSource>
+ </Compile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Folder Include="generated\" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <SliceCompile Include="..\..\..\..\scripts\Controller.ice" Link="Controller.ice" />
+ </ItemGroup>
+
+ <Choose>
+ <When Condition="'$(ICE_BIN_DIST)' == 'all'">
+ <ItemGroup>
+ <PackageReference Include="zeroc.ice.net" Version="3.7.1" />
+ </ItemGroup>
+ </When>
+ <Otherwise>
+ <ItemGroup>
+ <Reference Include="..\..\..\lib\netstandard2.0\Ice.dll" />
+ <Reference Include="..\..\..\lib\netstandard2.0\IceSSL.dll" />
+ <Reference Include="..\..\..\lib\netstandard2.0\IceDiscovery.dll" />
+ </ItemGroup>
+ </Otherwise>
+ </Choose>
+
+ <ItemGroup>
+ <SliceCompile Remove="test\**" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <EmbeddedResource Include="..\..\..\..\certs\cacert.der" Link="cacert.der" />
+ <EmbeddedResource Include="..\..\..\..\certs\client.p12" Link="client.p12" />
+ <EmbeddedResource Include="..\..\..\..\certs\server.p12" Link="server.p12" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\..\Ice\acm\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\adapterDeactivation\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\admin\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\ami\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\binding\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\checksum\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\defaultServant\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\defaultValue\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\dictMapping\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\enums\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\exceptions\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\facets\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\hold\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\info\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\inheritance\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\interceptor\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\invoke\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\location\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\objects\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\operations\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\optional\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\packagemd\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\proxy\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\retry\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\scope\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\seqMapping\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\serialize\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\servantLocator\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\stream\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\threadPoolPriority\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\timeout\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\Ice\udp\msbuild\test\netstandard2.0\test.csproj" />
+ <ProjectReference Include="..\..\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj" />
+ </ItemGroup>
+</Project>
diff --git a/csharp/xamarin/README.md b/csharp/xamarin/README.md
deleted file mode 100644
index 5740f58a54f..00000000000
--- a/csharp/xamarin/README.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Building the Ice for Xamarin Test Suite
-
-This directory contains Visual Studio projects for building the Ice test
-suite as a Xamarin application that can be deployed to iOS, Android or UWP
-platforms.
-
-The Xamarin test suite use the Ice assemblies for .NET Standard 2.0. either
-from the source distribution that must be build before this application or
-using the zeroc.ice.net NuGet package.
-
-## Building on Windows
-
-### Windows Build Requirements
-
-* Visual Studio 2017 with following workloads:
- * Universal Windows Platform development
- * Mobile development with .NET
- * .NET Core cross-platform development
-
-### Building test applications
-
-Open and build `controller.sln` solution file wiht Visual Studio 2017
-
-### Running the Android test suite
-
-```
-set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\tools\bin;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
-
-cd csharp\xamarin\android
-python allTest.py --androidemulator --controller-app --config Release --platform x64
-```
-
-### Running the UWP test suite
-
-```
-cd csharp\xamarin\uwp
-python allTest.py --controller-app --config Release --platform x64
-```
-
-## Building on macOS
-
-### macOS Build Requirements
-
-* Visual Studio for Mac
-
-### Building test applications
-
-Open and build `controller.sln` solution file wiht Visual Studio for Mac
-
-### Running the Android test suite
-
-```
-export PATH=~/Library/Android/sdk/tools/bin:$PATH
-export PATH=~/Library/Android/sdk/platform-tools:$PATH
-export PATH=~/Library/Android/sdk/emulator:$PATH
-
-cd csharp\xamarin\android
-python allTest.py --androidemulator --controller-app --config Release --platform x64
-```
-
-### Running the iOS test suite
-
-```
-cd csharp\xamarin\ios
-python allTest.py --controller-app --platform iphonesimulator --config Release
-```
diff --git a/csharp/xamarin/controller/controller/controller.csproj b/csharp/xamarin/controller/controller/controller.csproj
deleted file mode 100644
index 40a202f0131..00000000000
--- a/csharp/xamarin/controller/controller/controller.csproj
+++ /dev/null
@@ -1,92 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
- <PropertyGroup>
- <TargetFramework>netstandard2.0</TargetFramework>
- </PropertyGroup>
- <Import Project="..\..\..\msbuild\ice.common.props" />
- <PropertyGroup>
- <EnableDefaultCompileItems>true</EnableDefaultCompileItems>
- </PropertyGroup>
- <ItemGroup>
- <Compile Remove="test\**" />
- <EmbeddedResource Remove="test\**" />
- <None Remove="test\**" />
- </ItemGroup>
-
- <ItemGroup>
- <PackageReference Include="Xamarin.Forms" Version="3.0.0.561731" />
- <PackageReference Include="zeroc.icebuilder.msbuild" Version="5.0.4" />
- <Compile Update="generated\Controller.cs">
- <SliceCompileSource>..\..\..\..\scripts\Controller.ice</SliceCompileSource>
- </Compile>
- </ItemGroup>
-
- <ItemGroup>
- <Folder Include="generated\" />
- </ItemGroup>
-
- <ItemGroup>
- <SliceCompile Include="..\..\..\..\scripts\Controller.ice" Link="Controller.ice" />
- </ItemGroup>
-
- <Choose>
- <When Condition="'$(ICE_BIN_DIST)' == 'all'">
- <ItemGroup>
- <PackageReference Include="zeroc.ice.net" Version="3.7.1" />
- </ItemGroup>
- </When>
- <Otherwise>
- <ItemGroup>
- <Reference Include="..\..\..\lib\netstandard2.0\Ice.dll" />
- <Reference Include="..\..\..\lib\netstandard2.0\IceSSL.dll" />
- <Reference Include="..\..\..\lib\netstandard2.0\IceDiscovery.dll" />
- </ItemGroup>
- </Otherwise>
- </Choose>
-
- <ItemGroup>
- <SliceCompile Remove="test\**" />
- </ItemGroup>
-
- <ItemGroup>
- <EmbeddedResource Include="..\..\..\..\certs\cacert.der" Link="cacert.der" />
- <EmbeddedResource Include="..\..\..\..\certs\client.p12" Link="client.p12" />
- <EmbeddedResource Include="..\..\..\..\certs\server.p12" Link="server.p12" />
- </ItemGroup>
-
- <ItemGroup>
- <ProjectReference Include="..\..\..\test\Ice\acm\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\adapterDeactivation\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\admin\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\ami\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\binding\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\checksum\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\defaultServant\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\defaultValue\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\dictMapping\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\enums\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\exceptions\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\facets\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\hold\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\info\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\inheritance\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\interceptor\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\invoke\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\location\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\objects\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\operations\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\optional\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\packagemd\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\proxy\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\retry\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\scope\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\seqMapping\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\serialize\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\servantLocator\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\stream\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\threadPoolPriority\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\timeout\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\Ice\udp\msbuild\test\netstandard2.0\test.csproj" />
- <ProjectReference Include="..\..\..\test\TestCommon\msbuild\testcommon\netstandard2.0\testcommon.csproj" />
- </ItemGroup>
-</Project>
diff --git a/java-compat/.gitignore b/java-compat/.gitignore
index 0f4b3c8bcf1..4aa7a266b6d 100644
--- a/java-compat/.gitignore
+++ b/java-compat/.gitignore
@@ -4,3 +4,4 @@ build
*.iml
*.dex
.idea
+local.properties \ No newline at end of file
diff --git a/java-compat/README.md b/java-compat/README.md
index 3407ef889e9..ae0689318cc 100644
--- a/java-compat/README.md
+++ b/java-compat/README.md
@@ -9,11 +9,10 @@ you prefer, you can also download a [binary distribution][1].
* [Java Version](#java-version)
* [Gradle](#gradle)
* [Bzip2 Compression](#bzip2-compression)
-* [Compiling Ice for Java](#compiling-ice-for-java)
- * [Preparing to Build](#preparing-to-build)
- * [Building Ice for Java](#building-ice-for-java-1)
-* [Installing Ice for Java](#installing-ice-for-java)
-* [Running the Java Tests](#running-the-java-tests)
+* [Building Ice for Java Compat](#building-ice-for-java-compat-1)
+* [Installing Ice for Java Compat](#installing-ice-for-java-compat)
+* [Running the Java Compat Tests](#running-the-java-compat-tests)
+* [Building the Ice for Android Tests](#building-the-ice-for-android-tests)
## Build Requirements
@@ -40,11 +39,9 @@ Make sure that the `javac` and `java` commands are present in your PATH.
### Gradle
Ice for Java uses the [Gradle][3] build system, and includes the Gradle wrapper
-version 2.4 in the distribution. You cannot build the Ice for Java source
-distribution without an Internet connection. Gradle will download all required
-packages automatically from ZeroC's Maven repository located at
-
- https://repo.zeroc.com/nexus/content/repositories/thirdparty
+in the distribution. You cannot build the Ice for Java source distribution without
+an Internet connection. Gradle will download all required packages automatically
+from Maven Central repository located at http://central.maven.org/maven2/
### Bzip2 Compression
@@ -53,7 +50,9 @@ with [Apache Commons Compress][4].
The Maven package id for the commons-compress JAR file is as follows:
- groupId=org.apache.commons, version=1.14, artifactId=commons-compress
+```
+groupId=org.apache.commons, version=1.14, artifactId=commons-compress
+```
The demos and tests are automatically setup to enable protocol compression by
adding the commons-compress JAR to the manifest class path. For your own
@@ -63,67 +62,77 @@ to enable protocol compression.
> *These classes are a pure Java implementation of the bzip2 algorithm and
therefore add significant latency to Ice requests.*
-## Compiling Ice for Java
-
-### Preparing to Build
+## Building Ice for Java
The build system requires the Slice to Java compiler from Ice for C++. If you
have not built Ice for C++ in this source distribution, you must set the
`ICE_HOME` environment variable with the path name of your Ice installation. For
example, on Linux:
- $ export ICE_HOME=/opt/Ice-3.7.1 (For local build)
- $ export ICE_HOME=/usr (For RPM installation)
+```
+export ICE_HOME=/opt/Ice-3.7.1 (For local build)
+export ICE_HOME=/usr (For RPM installation)
+```
On Windows:
- > set ICE_HOME=C:\Program Files\ZeroC\Ice-3.7.1 (MSI installation)
+```
+set ICE_HOME=C:\Program Files\ZeroC\Ice-3.7.1 (MSI installation)
+```
On Windows if you are using Ice for C++ from a source distribution, you must set
the `CPP_PLATFORM` and `CPP_CONFIGURATION` environment variables to match the
platform and configuration used in your C++ build:
- > set CPP_PLATFORM=x64
- > set CPP_CONFIGURATION=Debug
+```
+set CPP_PLATFORM=x64
+set CPP_CONFIGURATION=Debug
+```
The supported values for `CPP_PLATFORM` are `Win32` and `x64` and the supported
values for `CPP_CONFIGURATION` are `Debug` and `Release`.
-Before building Ice for Java, review the settings in the file
-`gradle.properties` and edit as necessary.
-
-### Building Ice for Java
+Before building Ice for Java, review the settings in the file `gradle.properties`
+and edit as necessary.
To build Ice, all services, and tests, run
- > gradlew build
+```
+gradlew build
+```
Upon completion, the Ice JAR and POM files are placed in the `lib` subdirectory.
If at any time you wish to discard the current build and start a new one, use
these commands:
- > gradlew clean
- > gradlew build
+```
+gradlew clean
+gradlew build
+```
## Installing Ice for Java
To install Ice for Java in the directory specified by the `prefix` variable in
`gradle.properties` run the following command:
- > gradlew install
+```
+gradlew install
+```
The installation installs the following JAR files to `<prefix>/lib`.
- glacier2-compat-3.7.1.jar
- ice-compat-3.7.1.jar
- icebox-compat-3.7.1.jar
- icebt-compat-3.7.1.jar
- icediscovery-compat-3.7.1.jar
- icegrid-compat-3.7.1.jar
- icelocatordiscovery-compat-3.7.1.jar
- icepatch2-compat-3.7.1.jar
- icestorm-compat-3.7.1.jar
+```
+glacier2-compat-3.7.1.jar
+ice-compat-3.7.1.jar
+icebox-compat-3.7.1.jar
+icebt-compat-3.7.1.jar
+icediscovery-compat-3.7.1.jar
+icegrid-compat-3.7.1.jar
+icelocatordiscovery-compat-3.7.1.jar
+icepatch2-compat-3.7.1.jar
+icestorm-compat-3.7.1.jar
+```
POM files are also installed for ease of deployment to a Maven-based
distribution system.
@@ -135,21 +144,121 @@ C++ distribution. If you have not built Ice for C++ in this source distribution
then you must set the `ICE_HOME` environment variable with the path name of your
Ice installation. On Linux or macOS:
- $ export ICE_HOME=/opt/Ice-3.7.1 (For local build)
- $ export ICE_HOME=/usr (For RPM installation)
+```
+export ICE_HOME=/opt/Ice-3.7.1 (For local build)
+export ICE_HOME=/usr (For RPM installation)
+```
On Windows:
- > set ICE_HOME=C:\Program Files\ZeroC\Ice-3.7.1
+```
+set ICE_HOME=C:\Program Files\ZeroC\Ice-3.7.1
+```
Python is required to run the test suite. To run the tests, open a command
window and change to the top-level directory. At the command prompt, execute:
- > python allTests.py
+```
+python allTests.py
+```
If everything worked out, you should see lots of `ok` messages. In case of a
failure, the tests abort with `failed`.
+## Building the Ice for Android Tests
+
+The `test/android/controller` directory contains an Android Studio project
+for the Ice test suite controller.
+
+### Build Requirements
+
+Building any Ice application for Android requires Android Studio and the Android
+SDK build tools. We tested with the following components:
+
+- Android Studio 3.0.1
+- Android SDK 21
+- Android Build Tools 27.0.1
+
+Ice requires at minimum API level 21:
+
+- Android 5 (API21)
+
+If you want to target a later version of the Android API level for the test
+suite, edit `test/android/controller/gradle.properties` and change the
+following variables:
+
+```
+ice_compileSdkVersion
+ice_minSdkVersion
+ice_targetSdkVersion
+```
+
+*NOTE: Do not use Android Studio to modify the project's settings.*
+
+### Building the Android Test Controller
+
+You must first build Ice for Java refer to [Building Ice for Java](#building-ice-for-java-1)
+for instructions, then follow these steps:
+
+1. Start Android Studio
+2. Select "Open an existing Android Studio project"
+3. Navigate to and select the "android" subdirectory
+4. Click OK and wait for the project to open and build
+
+## Running the Android Tests
+
+The Android Studio project contains a `controller` app for the Ice test
+suite. Prior to running the app, you must disable Android Studio's Instant Run
+feature, located in File / Settings / Build, Execution, Deployment /
+Instant Run.
+
+Tests are started from the dev machine using the `allTests.py` script, similar
+to the other language mappings. The script uses Ice for Python to communicate
+with the Android app, therefore you must build the [Python mapping]
+(../../python) before continuing.
+
+You also need to add the `tools\bin`, `platform-tools` and `emulator`
+directories from the Android SDK to your PATH. On macOS, you can use the
+following commands:
+
+```
+export PATH=~/Library/Android/sdk/tools/bin:$PATH
+export PATH=~/Library/Android/sdk/platform-tools:$PATH
+export PATH=~/Library/Android/sdk/emulator:$PATH
+```
+
+On Windows, you can use the following commands:
+
+```
+set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
+```
+
+Run the tests with the Android emulator by running the following command:
+
+```
+cd test/android
+python allTests.py --androidemulator --controller-app
+```
+
+To run the tests on a specific Android connected device, you can use the
+`--device` argument as shown below:
+
+```
+cd test/android
+python allTests.py --device=ZX1C2234XF --controller-app
+```
+
+You can see the list of connected devices with the `adb` command:
+
+```
+adb devices -l
+```
+
+To run the tests against a `controller` application started from Android
+Studio you should omit the `--controller-app` option from the commands above.
+
[1]: https://zeroc.com/distributions/ice
[2]: https://doc.zeroc.com/display/Rel/Supported+Platforms+for+Ice+3.7.1
[3]: https://gradle.org
diff --git a/java-compat/android/.gitignore b/java-compat/android/.gitignore
deleted file mode 100644
index 924783fa777..00000000000
--- a/java-compat/android/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-lib
-build
-.gradle
-local.properties
-*.bks
-*.iml
-/.idea
-test/src/
diff --git a/java-compat/android/Makefile b/java-compat/android/Makefile
deleted file mode 100644
index b38dc1d4ddc..00000000000
--- a/java-compat/android/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-#
-# This copy of Ice is licensed to you under the terms described in the
-# ICE_LICENSE file included in this distribution.
-#
-# **********************************************************************
-
-ifeq ($(ANDROID_SDK_ROOT),)
-$(error Please set ANDROID_SDK_ROOT to the Android SDK installation directory)
-endif
-
-ifeq ($(GRADLE),)
-GRADLE = ./gradlew
-endif
-
-all: local.properties
- $(GRADLE) $(GRADLEARGS) build
-
-tests: local.properties
- $(GRADLE) $(GRADLEARGS) :test:assemble
-
-srcs: local.properties
- $(GRADLE) $(GRADLEARGS) dist
-
-distclean clean: local.properties
- $(GRADLE) $(GRADLEARGS) clean
-
-local.properties:
- @echo sdk.dir=$(ANDROID_SDK_ROOT) > local.properties
-
-test::
- @python ./allTests.py --androidemulator --controller-app
diff --git a/java-compat/android/README.md b/java-compat/android/README.md
deleted file mode 100644
index bf6891745ba..00000000000
--- a/java-compat/android/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# Building the Ice for Android Test Suite
-
-This directory contains an Android Studio project for the Ice test suite. For
-ease of development and testing, this project also builds a subset of the Ice
-JAR files. This is not necessary for your own projects as it considerably
-complicates the project configuration.
-
-Building [Ice for Java](../README.md) is the only way to build all of the Ice
-JAR files from source. The JAR files produced by the Ice for Java build fully
-support Android. If you prefer, our [binary distributions][1] include
-pre-compiled JAR files.
-
-## Build Requirements
-
-### Android Development Tools
-
-Building any Ice application for Android requires Android Studio and the Android
-SDK build tools. We tested with the following components:
-
-- Android Studio 3.0.1
-- Android SDK 21
-- Android Build Tools 27.0.1
-
-Ice requires at minimum API level 21:
-
-- Android 5 (API21)
-
-If you want to target a later version of the Android API level for the test
-suite, edit `gradle.properties` and change the following variables:
-
-```
-ice_compileSdkVersion
-ice_minSdkVersion
-ice_targetSdkVersion
-```
-
-*NOTE: Do not use Android Studio to modify the project's settings.*
-
-### Slice to Java Compiler
-
-To build this project you'll need the Slice to Java compiler, which generates
-Java code from Slice definitions. The compiler is written in C++. If you have
-a suitable C++ development environment, you can build [Ice for C++](../../cpp)
-yourself. Otherwise, you can obtain the compiler by installing a
-[binary distribution][1].
-
-The project's Gradle-based build system will automatically search for the
-compiler in this repository and in the default installation directories used
-by the binary distributions for our supported platforms.
-
-### Bzip2 Compression
-
-Ice for Java supports protocol compression using the bzip2 classes included
-with [Apache Commons Compress][2].
-
-The Maven package id for the commons-compress JAR file is as follows:
-
-```
-groupId=org.apache.commons, version=1.14, artifactId=commons-compress
-```
-
-The demos and tests are automatically setup to enable protocol compression by
-adding the commons-compress JAR to the manifest class path. For your own
-applications you must add the commons-compress JAR to the application CLASSPATH
-to enable protocol compression.
-
-> *These classes are a pure Java implementation of the bzip2 algorithm and
-therefore add significant latency to Ice requests.*
-
-## Building the Project
-
-Follow these steps to open the project in Android Studio:
-
-1. Start Android Studio
-2. Select "Open an existing Android Studio project"
-3. Navigate to and select the "android" subdirectory
-4. Click OK and wait for the project to open and build
-
-## Running the Test Suite
-
-The Android Studio project contains a `testController` app for the Ice test
-suite. Prior to running the app, you must disable Android Studio's Instant Run
-feature, located in File / Settings / Build, Execution, Deployment /
-Instant Run.
-
-Tests are started from the dev machine using the `allTests.py` script, similar
-to the other language mappings. The script uses Ice for Python to communicate
-with the Android app, therefore you must build the [Python mapping]
-(../../python) before continuing.
-
-You also need to add the `tools\bin`, `platform-tools` and `emulator`
-directories from the Android SDK to your PATH. On macOS, you can use the
-following commands:
-
-```
-export PATH=~/Library/Android/sdk/tools/bin:$PATH
-export PATH=~/Library/Android/sdk/platform-tools:$PATH
-export PATH=~/Library/Android/sdk/emulator:$PATH
-```
-
-On Windows, you can use the following commands:
-
-```
-set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
-```
-
-Run the tests with the Android emulator by running the following command:
-
-```
-cd android
-python allTests.py --androidemulator --controller-app
-```
-
-To run the tests on a specific Android connected device, you can use the
-`--device` argument as shown below:
-
-```
-python allTests.py --device=ZX1C2234XF --controller-app
-```
-
-You can see the list of connected devices with the `adb` command:
-
-```
-adb devices -l
-```
-
-To run the tests against a `testController` application started from Android
-Studio you should omit the `--controller-app` option from the commands above.
-
-[1]: https://zeroc.com/distributions/ice
-[2]: https://commons.apache.org/proper/commons-compress/
diff --git a/java-compat/android/build.gradle b/java-compat/android/build.gradle
deleted file mode 100644
index 0ffbb425be1..00000000000
--- a/java-compat/android/build.gradle
+++ /dev/null
@@ -1,36 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-buildscript {
- repositories {
- jcenter()
- google()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.1.1'
- }
-}
-
-subprojects {
- project.ext.topSrcDir = "$rootProject.projectDir/../.."
-
- project.version = iceVersion
- project.group = "com.zeroc"
-
- apply plugin: 'idea'
-}
-
-//
-// Used to build the gradle wrapper to automatically download and install
-// the version of gradle needed to build Ice.
-//
-task wrapper(type: Wrapper) {
- gradleVersion = "4.7"
- distributionType = Wrapper.DistributionType.ALL
-}
diff --git a/java-compat/android/gradle/dex.gradle b/java-compat/android/gradle/dex.gradle
deleted file mode 100644
index 12df4f0aa30..00000000000
--- a/java-compat/android/gradle/dex.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-import org.apache.tools.ant.taskdefs.condition.Os
-
-// Discover the Android SDK home.
-// It either comes from the environment or from sdk.dir defined
-// in local.properties at the root of the android project.
-ext.androidSdkDir = System.env.ANDROID_HOME
-if(ext.androidSdkDir == null) {
- Properties localProps = new Properties()
- localProps.load(new FileInputStream(file("$rootProject.projectDir/local.properties")))
-
- ext.androidSdkDir = localProps['sdk.dir']
-}
-
-def cmdExt = Os.isFamily(Os.FAMILY_WINDOWS) ? '.bat' : ''
-ext.dxCmd = "${androidSdkDir}/build-tools/${ice_buildToolsVersion}/dx${cmdExt}"
diff --git a/java-compat/android/gradle/library.gradle b/java-compat/android/gradle/library.gradle
deleted file mode 100644
index c3a062041b8..00000000000
--- a/java-compat/android/gradle/library.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-jar {
- destinationDir = new File("${libDir}")
-}
-
-clean {
- delete("${libDir}/${jar.archiveName}")
-}
-
-task copyJars(type: Copy, dependsOn: jar) {
- from "${libDir}/${jar.archiveName}"
- into "${DESTDIR}${prefix}/lib"
-}
-task install(dependsOn: copyJars)
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
diff --git a/java-compat/android/gradle/tests.gradle b/java-compat/android/gradle/tests.gradle
deleted file mode 100644
index 25d5eafd8e8..00000000000
--- a/java-compat/android/gradle/tests.gradle
+++ /dev/null
@@ -1,53 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-ext.tests = [
- "Ice/acm",
- "Ice/adapterDeactivation",
- "Ice/admin",
- "Ice/ami",
- "Ice/background",
- "Ice/binding",
- "Ice/checksum",
- "Ice/classLoader",
- "Ice/custom",
- "Ice/defaultServant",
- "Ice/defaultValue",
- "Ice/dispatcher",
- "Ice/echo",
- "Ice/enums",
- "Ice/exceptions",
- "Ice/facets",
- "Ice/hash",
- "Ice/hold",
- "Ice/info",
- "Ice/inheritance",
- "Ice/interceptor",
- "Ice/interrupt",
- "Ice/invoke",
- "Ice/location",
- "Ice/networkProxy",
- "Ice/objects",
- "Ice/operations",
- "Ice/optional",
- "Ice/packagemd",
- "Ice/plugin",
- "Ice/properties",
- "Ice/proxy",
- "Ice/retry",
- "Ice/scope",
- "Ice/seqMapping",
- "Ice/serialize",
- "Ice/servantLocator",
- "Ice/slicing/exceptions",
- "Ice/slicing/objects",
- "Ice/stream",
- "Ice/threadPoolPriority",
- "Ice/timeout",
- "Ice/udp" ]
diff --git a/java-compat/android/settings.gradle b/java-compat/android/settings.gradle
deleted file mode 100644
index 847435fb19b..00000000000
--- a/java-compat/android/settings.gradle
+++ /dev/null
@@ -1,40 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
-
-// Main source
-include ':ice-compat'
-project(':ice-compat').projectDir = new File('src/Ice')
-include ':icebt-compat'
-project(':icebt-compat').projectDir = new File('src/IceBT')
-include ':icediscovery-compat'
-project(':icediscovery-compat').projectDir = new File('src/IceDiscovery')
-include ':icelocatordiscovery-compat'
-project(':icelocatordiscovery-compat').projectDir = new File('src/IceLocatorDiscovery')
-include ':icebox-compat'
-project(':icebox-compat').projectDir = new File('src/IceBox')
-include ':glacier2-compat'
-project(':glacier2-compat').projectDir = new File('src/Glacier2')
-include ':icepatch2-compat'
-project(':icepatch2-compat').projectDir = new File('src/IcePatch2')
-include ':icestorm-compat'
-project(':icestorm-compat').projectDir = new File('src/IceStorm')
-include ':icegrid-compat'
-project(':icegrid-compat').projectDir = new File('src/IceGrid')
-
-include ':test', ':testController'
-
-project(':test').projectDir = new File('test')
-project(':testController').projectDir = new File('controller')
-tests.each {
- def name = it.replace('/', '_')
- include ":test_${name}"
- project(":test_${name}").projectDir = new File("test/src/test_${name}")
-}
diff --git a/java-compat/android/src/Glacier2/build.gradle b/java-compat/android/src/Glacier2/build.gradle
deleted file mode 100644
index c16769b1d5d..00000000000
--- a/java-compat/android/src/Glacier2/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/Glacier2/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/Glacier2/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/Ice/build.gradle b/java-compat/android/src/Ice/build.gradle
deleted file mode 100644
index ce7e2dc6b34..00000000000
--- a/java-compat/android/src/Ice/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/Ice/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/Ice/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/IceBT/build.gradle b/java-compat/android/src/IceBT/build.gradle
deleted file mode 100644
index 2777c488f87..00000000000
--- a/java-compat/android/src/IceBT/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/IceBT/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/IceBT/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/IceBox/build.gradle b/java-compat/android/src/IceBox/build.gradle
deleted file mode 100644
index 1f62a05215b..00000000000
--- a/java-compat/android/src/IceBox/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/IceBox/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/IceBox/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/IceDiscovery/build.gradle b/java-compat/android/src/IceDiscovery/build.gradle
deleted file mode 100644
index c3a40009b42..00000000000
--- a/java-compat/android/src/IceDiscovery/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/IceDiscovery/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/IceDiscovery/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/IceGrid/build.gradle b/java-compat/android/src/IceGrid/build.gradle
deleted file mode 100644
index 50e8eb1be60..00000000000
--- a/java-compat/android/src/IceGrid/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/IceGrid/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/IceGrid/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/IceLocatorDiscovery/build.gradle b/java-compat/android/src/IceLocatorDiscovery/build.gradle
deleted file mode 100644
index 81220fbb3dd..00000000000
--- a/java-compat/android/src/IceLocatorDiscovery/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/IceLocatorDiscovery/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/IceLocatorDiscovery/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/IcePatch2/build.gradle b/java-compat/android/src/IcePatch2/build.gradle
deleted file mode 100644
index 49f263eadde..00000000000
--- a/java-compat/android/src/IcePatch2/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/IcePatch2/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/IcePatch2/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/src/IceStorm/build.gradle b/java-compat/android/src/IceStorm/build.gradle
deleted file mode 100644
index 39725c169b6..00000000000
--- a/java-compat/android/src/IceStorm/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$project.ext.topSrcDir/java-compat/src/IceStorm/build.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/src/IceStorm/src/main/java"
- }
- }
-}
diff --git a/java-compat/android/test/build.gradle b/java-compat/android/test/build.gradle
deleted file mode 100644
index cf4c8f87977..00000000000
--- a/java-compat/android/test/build.gradle
+++ /dev/null
@@ -1,72 +0,0 @@
- //**********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-ext.testDir = "$project.ext.topSrcDir/java-compat/test/src/main/java/test"
-apply from: "$project.ext.topSrcDir/java-compat/test/slice.gradle"
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
-
-sourceCompatibility = 1.7
-targetCompatibility = 1.7
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/test/src/main/java"
- include 'test/TestHelper.java'
- exclude 'test/Ice/**/lambda'
- }
- }
-}
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
-
-dependencies {
- compile localDependency('ice-compat')
-}
-
-jar {
- archiveName = "test.jar"
-}
-
-tests.each {
- def dirName = it
- def name = it.replace('/', '_')
-
- project(":test_${name}") {
- apply plugin: 'java'
- apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
- slice.compat = true
-
- sourceCompatibility = 1.7
- targetCompatibility = 1.7
-
- sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java-compat/test/src/main/java"
- include "test/${dirName}/**"
- exclude "test/${dirName}/lambda"
- srcDir "$rootProject.projectDir/test/build/generated-src/"
- include "test/${dirName}/**"
- }
- }
- }
-
- dependencies {
- compile project(':test')
- compile localDependency('ice-compat')
- }
- }
-}
diff --git a/java-compat/settings.gradle b/java-compat/settings.gradle
index 66e5d3c2af8..954c6326350 100644
--- a/java-compat/settings.gradle
+++ b/java-compat/settings.gradle
@@ -29,7 +29,12 @@ project(':icegrid-compat').projectDir = new File('src/IceGrid')
// Tests
include ':test'
+
include ':testPlugins'
project(':testPlugins').projectDir = new File('test/plugins')
-include ':testController'
-project(':testController').projectDir = new File('test/controller')
+
+if(org.gradle.internal.jvm.Jvm.current().getJavaVersion().toString().toFloat() >= 1.8f) {
+ include ':testLambda'
+ project(':testLambda').projectDir = new File('test/lambda')
+}
+
diff --git a/csharp/xamarin/android/allTests.py b/java-compat/test/android/allTests.py
index e3a2fc3d36f..e3a2fc3d36f 100644
--- a/csharp/xamarin/android/allTests.py
+++ b/java-compat/test/android/allTests.py
diff --git a/java-compat/android/controller/build.gradle b/java-compat/test/android/controller/build.gradle
index bdfadf75f93..31239891410 100644
--- a/java-compat/android/controller/build.gradle
+++ b/java-compat/test/android/controller/build.gradle
@@ -7,14 +7,33 @@
//
// **********************************************************************
+buildscript {
+ repositories {
+ jcenter()
+ google()
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.1.4'
+ classpath "gradle.plugin.com.zeroc.gradle.ice-builder:slice:1.4.5"
+ }
+}
+
apply plugin: 'com.android.application'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-slice.compat = true
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
+apply plugin: "com.zeroc.gradle.ice-builder.slice"
slice {
+ compat = true
+ cppConfiguration = this.cppConfiguration
+ cppPlatform = this.cppPlatform
+ if(!System.env.ICE_BIN_DIST?.split(" ").find{ it == 'all' || it.contains('java')}) {
+ iceHome = this.hasProperty('iceHome') ? this.iceHome
+ : System.getenv("ICE_HOME") != null ? System.env.ICE_HOME : new File("$rootProject.projectDir/../../../..").getCanonicalPath()
+ }
java {
- files = fileTree(dir: "$project.ext.topSrcDir/scripts/", includes: ['*.ice'])
+ files = fileTree(dir: "$rootProject.projectDir/../../../../scripts/", includes: ['*.ice'])
}
}
@@ -50,14 +69,9 @@ android {
}
}
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
-
task copyBksTask(type: Copy) {
- from "${project.ext.topSrcDir}/certs/client.bks"
- from "${project.ext.topSrcDir}/certs/server.bks"
+ from "${rootProject.projectDir}/../../../../certs/client.bks"
+ from "${rootProject.projectDir}/../../../../certs/server.bks"
into "src/main/res/raw"
}
preBuild.dependsOn(copyBksTask)
@@ -67,14 +81,20 @@ clean {
delete("src/main/res/raw/server.bks")
}
+ext.localDependency = { artifact ->
+ if(project.slice.srcDist || System.env.ICE_BIN_DIST == "cpp") {
+ return "com.zeroc:${artifact}:${iceVersion}"
+ }
+ else {
+ return files("${rootProject.projectDir}/../../../lib/${artifact}-${iceVersion}.jar")
+ }
+}
+
dependencies {
+ implementation localDependency('glacier2-compat')
implementation localDependency('ice-compat')
implementation localDependency('icediscovery-compat')
implementation localDependency('icebt-compat')
- implementation project(':test')
- tests.each {
- def name = it.replace('/', '_')
- implementation project(":test_${name}")
- }
+ implementation files("${rootProject.projectDir}/../../../lib/test.jar")
runtimeOnly "org.apache.commons:commons-compress:1.14"
}
diff --git a/java-compat/android/gradle.properties b/java-compat/test/android/controller/gradle.properties
index 807bb10f867..418e6ca031e 100644
--- a/java-compat/android/gradle.properties
+++ b/java-compat/test/android/controller/gradle.properties
@@ -25,23 +25,6 @@ ice_targetSdkVersion = 21
// iceHome =
//
-// Set the version of the Ice Builder to use for building. It must be set to debian
-// when using the gradle-ice-builder-plugin package on Debian.
-//
-iceBuilderVersion = 1.4.5
-
-//
-// Set the builder artifact class path. It must be set to com.zeroc.gradle.ice-builder
-// when using the gradle-ice-builder-plugin package.
-//
-iceBuilderClassPath = gradle.plugin.com.zeroc.gradle.ice-builder
-
-//
-// Set the location of a local Ice Builder for Gradle source directory
-//
-iceBuilderHome =
-
-//
// Gradle build properties
//
// org.gradle.daemon = false
diff --git a/java-compat/android/gradle/GRADLE_LICENSE b/java-compat/test/android/controller/gradle/GRADLE_LICENSE
index 80e31a864a8..80e31a864a8 100755..100644
--- a/java-compat/android/gradle/GRADLE_LICENSE
+++ b/java-compat/test/android/controller/gradle/GRADLE_LICENSE
diff --git a/java-compat/android/gradle/wrapper/gradle-wrapper.jar b/java-compat/test/android/controller/gradle/wrapper/gradle-wrapper.jar
index fba809c6963..fba809c6963 100644
--- a/java-compat/android/gradle/wrapper/gradle-wrapper.jar
+++ b/java-compat/test/android/controller/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/java-compat/android/gradle/wrapper/gradle-wrapper.properties b/java-compat/test/android/controller/gradle/wrapper/gradle-wrapper.properties
index a5c1ee514ac..a5c1ee514ac 100644
--- a/java-compat/android/gradle/wrapper/gradle-wrapper.properties
+++ b/java-compat/test/android/controller/gradle/wrapper/gradle-wrapper.properties
diff --git a/java-compat/android/gradlew b/java-compat/test/android/controller/gradlew
index cccdd3d517f..cccdd3d517f 100755..100644
--- a/java-compat/android/gradlew
+++ b/java-compat/test/android/controller/gradlew
diff --git a/java-compat/android/gradlew.bat b/java-compat/test/android/controller/gradlew.bat
index f9553162f12..f9553162f12 100644
--- a/java-compat/android/gradlew.bat
+++ b/java-compat/test/android/controller/gradlew.bat
diff --git a/java-compat/android/controller/proguard.cfg b/java-compat/test/android/controller/proguard.cfg
index 401a8392e7a..401a8392e7a 100644
--- a/java-compat/android/controller/proguard.cfg
+++ b/java-compat/test/android/controller/proguard.cfg
diff --git a/java-compat/android/controller/src/main/AndroidManifest.xml b/java-compat/test/android/controller/src/main/AndroidManifest.xml
index 20a819e4cad..20a819e4cad 100644
--- a/java-compat/android/controller/src/main/AndroidManifest.xml
+++ b/java-compat/test/android/controller/src/main/AndroidManifest.xml
diff --git a/java-compat/android/controller/src/main/assets/.gitignore b/java-compat/test/android/controller/src/main/assets/.gitignore
index 2cbf86bc394..2cbf86bc394 100644
--- a/java-compat/android/controller/src/main/assets/.gitignore
+++ b/java-compat/test/android/controller/src/main/assets/.gitignore
diff --git a/java-compat/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java b/java-compat/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
index 85b478e0621..85b478e0621 100644
--- a/java-compat/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
+++ b/java-compat/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
diff --git a/java-compat/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java b/java-compat/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
index 78c207a517c..78c207a517c 100644
--- a/java-compat/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
+++ b/java-compat/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
diff --git a/java-compat/android/controller/src/main/res/layout/main.xml b/java-compat/test/android/controller/src/main/res/layout/main.xml
index df4c8db98c7..df4c8db98c7 100644
--- a/java-compat/android/controller/src/main/res/layout/main.xml
+++ b/java-compat/test/android/controller/src/main/res/layout/main.xml
diff --git a/java-compat/test/android/controller/src/main/res/raw/client.bks b/java-compat/test/android/controller/src/main/res/raw/client.bks
new file mode 100644
index 00000000000..7a5b88d45c1
--- /dev/null
+++ b/java-compat/test/android/controller/src/main/res/raw/client.bks
Binary files differ
diff --git a/java-compat/android/controller/src/main/res/raw/icon.png b/java-compat/test/android/controller/src/main/res/raw/icon.png
index 75024841d32..75024841d32 100644
--- a/java-compat/android/controller/src/main/res/raw/icon.png
+++ b/java-compat/test/android/controller/src/main/res/raw/icon.png
Binary files differ
diff --git a/java-compat/test/android/controller/src/main/res/raw/server.bks b/java-compat/test/android/controller/src/main/res/raw/server.bks
new file mode 100644
index 00000000000..2da60311b53
--- /dev/null
+++ b/java-compat/test/android/controller/src/main/res/raw/server.bks
Binary files differ
diff --git a/java-compat/android/controller/src/main/res/values/strings.xml b/java-compat/test/android/controller/src/main/res/values/strings.xml
index f96e345d87f..f96e345d87f 100644
--- a/java-compat/android/controller/src/main/res/values/strings.xml
+++ b/java-compat/test/android/controller/src/main/res/values/strings.xml
diff --git a/java-compat/test/build.gradle b/java-compat/test/build.gradle
index ac1495990ea..9679e5d40b3 100644
--- a/java-compat/test/build.gradle
+++ b/java-compat/test/build.gradle
@@ -15,11 +15,11 @@ def hasLambda = org.gradle.internal.jvm.Jvm.current().getJavaVersion().toString(
sourceSets {
main {
java {
- if(!hasLambda) {
- exclude '**/lambda'
- }
+ exclude '**/lambda'
exclude 'plugins'
- exclude 'ejb'
+
+ sourceCompatibility = "1.7"
+ targetCompatibility = "1.7"
}
}
}
diff --git a/java-compat/test/ejb/README.md b/java-compat/test/ejb/README.md
deleted file mode 100644
index 1e51f6a8f9a..00000000000
--- a/java-compat/test/ejb/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-This test demonstrates the sharing of a single Ice object adapter for
-multiple EJBs.
-
-It setups 2 EJBs which both implement a similar service but with
-slightly different Slice types: the Account class in the first version
-has 1 string member and the second version has 2 string members:
-
-// Version 1
-class Account extends Base
-{
- string id;
-};
-
-// Version 2
-class Account extends Base
-{
- string id;
- string foo;
-};
-
-The Base class is defined in a Jar shared by both EJBs and install in
-the lib directory of the application server.
-
-Each EJB registers servants using the IceAdapter helper class. This
-helper manages the shared Ice object adapter.
-
-The helper registers the servant with the object adapter and uses a
-dispatch interceptor to setup the thread context class loader to
-ensure the servant invocations are un-marhsalled with the EJB class
-loader.
-
-With Ice 3.5, this interceptor will no longer be necessary, the Ice
-core will provide a property to enable the setting of the thread
-context class loader from the Ice core directly.
-
-Building the test
------------------
-
-Set the JBOSS_HOME environment variable to your jboss-eap-5.1/jboss-as
-directory, for example:
-
- $ export JBOSS_HOME=$HOME/EnterprisePlatform-5.1.2/jboss-eap-5.1/jboss-as/
-
-If Ice isn't installed in the default location set the ICE_HOME
-environment variable to your Ice 3.7.1 installation directory.
-
-Run ant to build and deploy the application:
-
- $ ant deploy
-
-This will deploy the following Jars to your JBoss server default
-configuration:
-
- $JBOSS_HOME/server/default/lib/Ice.jar
- $JBOSS_HOME/server/default/lib/ice-ejb-test-common.jar
- $JBOSS_HOME/server/default/deploy/ice-ejb-test-ejb1.jar
- $JBOSS_HOME/server/default/deploy/ice-ejb-test-ejb2.jar
-
-Run the clients
----------------
-
-To run the client for the first EJB version:
-
- $ ant run.client1
-
-For the second EJB version:
-
- $ ant run.client2
-
-Note that the clients uses the Java naming provier specified in
-src/resources/jndi.properties (jnp://127.0.0.1:1099) to obtain a
-reference on the initialization EJB of each service. The Ice object
-adapter listen on the port 10000 of the loopback interface.
diff --git a/java-compat/test/ejb/src/common/com/zeroc/ice/IceAdapter.java b/java-compat/test/ejb/src/common/com/zeroc/ice/IceAdapter.java
deleted file mode 100644
index 677d4ad76d3..00000000000
--- a/java-compat/test/ejb/src/common/com/zeroc/ice/IceAdapter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ice;
-
-public class IceAdapter
-{
- synchronized static public void
- add(Ice.Object servant, Ice.Identity id)
- {
- if(_objectAdapter == null)
- {
- Ice.InitializationData initData = new Ice.InitializationData();
- initData.properties = Ice.Util.createProperties();
- initData.properties.setProperty("Ice.Default.Package", "com.zeroc.ice");
- initData.properties.setProperty("Ice.UseApplicationClassLoader", "1");
- Ice.Communicator communicator = Ice.Util.initialize(initData);
- _objectAdapter = communicator.createObjectAdapterWithEndpoints("EJB", "tcp -h localhost -p 10000");
- _objectAdapter.activate();
- }
- ++_servantCount;
- _objectAdapter.add(servant, id);
- }
-
- synchronized static public void
- remove(Ice.Identity id)
- {
- assert _servantCount > 0;
- _objectAdapter.remove(id);
- if(--_servantCount == 0)
- {
- _objectAdapter.getCommunicator().destroy();
- _objectAdapter = null;
- }
- }
-
- synchronized static public Ice.ObjectPrx
- stringToProxy(String str)
- {
- assert _objectAdapter != null;
- return _objectAdapter.getCommunicator().stringToProxy(str);
- }
-
- static private Ice.ObjectAdapter _objectAdapter = null;
- static private int _servantCount;
-};
diff --git a/java-compat/test/ejb/src/ejb1/META-INF/jboss.xml b/java-compat/test/ejb/src/ejb1/META-INF/jboss.xml
deleted file mode 100644
index 8147b430d14..00000000000
--- a/java-compat/test/ejb/src/ejb1/META-INF/jboss.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<jboss>
- <loader-repository>
- com.zeroc.ejb1:loader=EJB1ClassLoader
- <loader-repository-config>
- java2ParentDelegation=false
- </loader-repository-config>
- </loader-repository>
-</jboss>
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Client.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Client.java
deleted file mode 100644
index 17e0ef838a8..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Client.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.naming.*;
-
-import com.zeroc.ice.Test.*;
-
-public class Client extends Ice.Application
-{
- public int
- run(String[] args)
- {
- System.out.print("initializing EJBs... ");
- System.out.flush();
- try
- {
- // Initialize the EJBs
- InitialContext ic = new InitialContext();
- Init init = (Init)ic.lookup("InitEJB1Service");
- init.init();
- }
- catch(Exception ex)
- {
- System.err.println("couldn't resolve init bean:\n" + ex);
- return 1;
- }
- System.out.println("ok");
-
- System.out.print("setting and getting account... ");
- System.out.flush();
- String str = "ejb1/service:tcp -h localhost -p 10000";
- ServicePrx proxy = ServicePrxHelper.checkedCast(communicator().stringToProxy(str));
- proxy.addAccount(new Account("id1"));
- Account s = proxy.getAccount("id1");
- if(!s.id.equals("id1"))
- {
- throw new RuntimeException("invalid value: " + s.id);
- }
-
- s = proxy.getAccount("id2");
- if(!s.id.equals("id2"))
- {
- throw new RuntimeException("invalid value: " + s.id);
- }
-
- System.out.println("ok");
- return 0;
- }
-
- public static void
- main(String[] args)
- {
- Client app = new Client();
- Ice.InitializationData initData = new Ice.InitializationData();
- initData.properties = Ice.Util.createProperties();
- initData.properties.setProperty("Ice.Default.Package", "com.zeroc.ice");
- int status = app.main("Client", args, initData);
- System.exit(status);
- }
-}
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseI.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseI.java
deleted file mode 100644
index e2ac85477a7..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseI.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import com.zeroc.ice.Test.*;
-
-public class DatabaseI extends _DatabaseDisp
-{
- public final Account
- getAccount(String id, Ice.Current current)
- throws AccountNotExistException
- {
- Account account = accounts.get(id);
- if(account == null)
- {
- throw new AccountNotExistException();
- }
- return account;
- }
-
- public final void
- addAccount(Account s, Ice.Current current)
- {
- accounts.put(s.id, s);
- }
-
- private java.util.Map<String, Account> accounts = new java.util.HashMap<String, Account>();
-}
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseServer.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseServer.java
deleted file mode 100644
index 6d42fc33777..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseServer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import com.zeroc.ice.Test.*;
-
-public class DatabaseServer extends Ice.Application
-{
- public int
- run(String[] args)
- {
- if(args.length > 0)
- {
- System.err.println(appName() + ": too many arguments");
- return 1;
- }
-
- Ice.ObjectAdapter adapter = communicator().createObjectAdapterWithEndpoints("DB", "tcp -h localhost -p 10001");
- adapter.add(new DatabaseI(), Ice.Util.stringToIdentity("db"));
- adapter.activate();
- communicator().waitForShutdown();
- return 0;
- }
-
- public static void
- main(String[] args)
- {
- Ice.InitializationData initData = new Ice.InitializationData();
- initData.properties = Ice.Util.createProperties();
- initData.properties.setProperty("Ice.Default.Package", "com.zeroc.ice");
-
- DatabaseServer app = new DatabaseServer();
- int status = app.main("Server", args, initData);
- System.exit(status);
- }
-}
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Init.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Init.java
deleted file mode 100644
index 3f7f95f5d9e..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Init.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.ejb.*;
-
-@Remote
-public interface Init
-{
- void init();
-}
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/InitBean.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/InitBean.java
deleted file mode 100644
index f808c56dbc0..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/InitBean.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.annotation.*;
-import javax.ejb.*;
-
-import com.zeroc.ice.IceAdapter;
-
-//
-// The initialization EJB is used to register Ice servants for each
-// the EJBs from this EJB3 Jar.
-//
-@Stateless(mappedName="InitEJB1Service", name="Init1")
-public class InitBean implements Init
-{
- private @EJB Service service;
-
- @PostConstruct
- public void
- create()
- {
- IceAdapter.add(new ServiceI(service), new Ice.Identity("service", "ejb1"));
- }
-
- @PreDestroy
- public void
- destroy()
- {
- IceAdapter.remove(new Ice.Identity("service", "ejb1"));
- }
-
- public void
- init()
- {
- }
-}
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Service.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Service.java
deleted file mode 100644
index b74ed39216d..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Service.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.ejb.Local;
-import com.zeroc.ice.Test.Account;
-import com.zeroc.ice.Test.AccountNotExistException;
-
-@Local
-public interface Service
-{
- Account getAccount(String id);
-
- void addAccount(Account s);
-}
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceBean.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceBean.java
deleted file mode 100644
index c0908b61bde..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceBean.java
+++ /dev/null
@@ -1,50 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.annotation.*;
-import javax.ejb.*;
-import com.zeroc.ice.IceAdapter;
-import com.zeroc.ice.Test.*;
-
-@Stateless(name="EJB1ServiceBean")
-public class ServiceBean implements Service
-{
- @PostConstruct
- public void
- create()
- {
- Ice.ObjectPrx db = IceAdapter.stringToProxy("db:tcp -h localhost -p 10001");
- database = DatabasePrxHelper.uncheckedCast(db);
- }
-
- public final Account
- getAccount(String id)
- {
- try
- {
- return database.getAccount(id);
- }
- catch(AccountNotExistException ex)
- {
- Account a = new Account(id);
- database.addAccount(a);
- return a;
- }
- }
-
- public final void
- addAccount(Account s)
- {
- database.addAccount(s);
- }
-
- private DatabasePrx database;
-}
diff --git a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceI.java b/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceI.java
deleted file mode 100644
index 2c9c2e752cc..00000000000
--- a/java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceI.java
+++ /dev/null
@@ -1,41 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.ejb.*;
-
-import com.zeroc.ice.Test._ServiceDisp;
-import com.zeroc.ice.Test.Account;
-import com.zeroc.ice.Test.AccountNotExistException;
-
-//
-// This Ice servant delegates the calls to the Service EJB
-//
-public class ServiceI extends _ServiceDisp
-{
- final private Service service;
-
- public ServiceI(Service service)
- {
- this.service = service;
- }
-
- public final Account
- getAccount(String id, Ice.Current current)
- {
- return service.getAccount(id);
- }
-
- public final void
- addAccount(Account s, Ice.Current current)
- {
- service.addAccount(s);
- }
-}
diff --git a/java-compat/test/ejb/src/ejb2/META-INF/jboss.xml b/java-compat/test/ejb/src/ejb2/META-INF/jboss.xml
deleted file mode 100644
index 23a2bb332a8..00000000000
--- a/java-compat/test/ejb/src/ejb2/META-INF/jboss.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<jboss>
- <loader-repository>
- com.zeroc.ejb2:loader=EJB2ClassLoader
- <loader-repository-config>
- java2ParentDelegation=false
- </loader-repository-config>
- </loader-repository>
-</jboss>
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Client.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Client.java
deleted file mode 100644
index 49627d55ed2..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Client.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.naming.*;
-
-import com.zeroc.ice.Test.*;
-
-public class Client extends Ice.Application
-{
- public int
- run(String[] args)
- {
- System.out.print("initializing EJBs... ");
- System.out.flush();
- try
- {
- // Initialize the EJBs
- InitialContext ic = new InitialContext();
- Init init = (Init)ic.lookup("InitEJB2Service");
- init.init();
- }
- catch(Exception ex)
- {
- System.err.println("couldn't resolve init bean:\n" + ex);
- return 1;
- }
- System.out.println("ok");
-
- System.out.print("setting and getting account... ");
- System.out.flush();
- String str = "ejb2/service:tcp -h localhost -p 10000";
- ServicePrx proxy = ServicePrxHelper.checkedCast(communicator().stringToProxy(str));
- proxy.addAccount(new Account("id1", "foo"));
- Account s = proxy.getAccount("id1");
- if(!s.id.equals("id1") || !s.foo.equals("foo"))
- {
- throw new RuntimeException("invalid value: " + s.id);
- }
-
- s = proxy.getAccount("id2");
- if(!s.id.equals("id2"))
- {
- throw new RuntimeException("invalid value: " + s.id);
- }
-
- System.out.println("ok");
- return 0;
- }
-
- public static void
- main(String[] args)
- {
- Client app = new Client();
- Ice.InitializationData initData = new Ice.InitializationData();
- initData.properties = Ice.Util.createProperties();
- initData.properties.setProperty("Ice.Default.Package", "com.zeroc.ice");
- int status = app.main("Client", args, initData);
- System.exit(status);
- }
-}
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseI.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseI.java
deleted file mode 100644
index 4de720032a4..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseI.java
+++ /dev/null
@@ -1,35 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import com.zeroc.ice.Test.*;
-
-public class DatabaseI extends _DatabaseDisp
-{
- public final Account
- getAccount(String id, Ice.Current current)
- throws AccountNotExistException
- {
- Account account = accounts.get(id);
- if(account == null)
- {
- throw new AccountNotExistException(id);
- }
- return account;
- }
-
- public final void
- addAccount(Account s, Ice.Current current)
- {
- accounts.put(s.id, s);
- }
-
- private java.util.Map<String, Account> accounts = new java.util.HashMap<String, Account>();
-}
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseServer.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseServer.java
deleted file mode 100644
index 62407922b05..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseServer.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import com.zeroc.ice.Test.*;
-
-public class DatabaseServer extends Ice.Application
-{
- public int
- run(String[] args)
- {
- if(args.length > 0)
- {
- System.err.println(appName() + ": too many arguments");
- return 1;
- }
-
- Ice.ObjectAdapter adapter = communicator().createObjectAdapterWithEndpoints("DB", "tcp -h localhost -p 10002");
- adapter.add(new DatabaseI(), Ice.Util.stringToIdentity("db"));
- adapter.activate();
- communicator().waitForShutdown();
- return 0;
- }
-
- public static void
- main(String[] args)
- {
- Ice.InitializationData initData = new Ice.InitializationData();
- initData.properties = Ice.Util.createProperties();
- initData.properties.setProperty("Ice.Default.Package", "com.zeroc.ice");
-
- DatabaseServer app = new DatabaseServer();
- int status = app.main("Server", args, initData);
- System.exit(status);
- }
-}
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Init.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Init.java
deleted file mode 100644
index 3f7f95f5d9e..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Init.java
+++ /dev/null
@@ -1,18 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.ejb.*;
-
-@Remote
-public interface Init
-{
- void init();
-}
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/InitBean.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/InitBean.java
deleted file mode 100644
index 96c7f440f97..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/InitBean.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.annotation.*;
-import javax.ejb.*;
-
-import com.zeroc.ice.IceAdapter;
-
-//
-// The initialization EJB is used to register Ice servants for each
-// the EJBs from this EJB3 Jar.
-//
-@Stateless(mappedName="InitEJB2Service", name="Init2")
-public class InitBean implements Init
-{
- private @EJB Service service;
-
- @PostConstruct
- public void
- create()
- {
- IceAdapter.add(new ServiceI(service), new Ice.Identity("service", "ejb2"));
- }
-
- @PreDestroy
- public void
- destroy()
- {
- IceAdapter.remove(new Ice.Identity("service", "ejb2"));
- }
-
- public void
- init()
- {
- }
-}
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Service.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Service.java
deleted file mode 100644
index b74ed39216d..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Service.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.ejb.Local;
-import com.zeroc.ice.Test.Account;
-import com.zeroc.ice.Test.AccountNotExistException;
-
-@Local
-public interface Service
-{
- Account getAccount(String id);
-
- void addAccount(Account s);
-}
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceBean.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceBean.java
deleted file mode 100644
index 358f4fe0de9..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceBean.java
+++ /dev/null
@@ -1,86 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.annotation.*;
-import javax.ejb.*;
-import com.zeroc.ice.IceAdapter;
-import com.zeroc.ice.Test.*;
-
-@Stateless(name="EJB2ServiceBean")
-public class ServiceBean implements Service
-{
- @PostConstruct
- public void
- create()
- {
- Ice.ObjectPrx db = IceAdapter.stringToProxy("db:tcp -h localhost -p 10002");
- database = DatabasePrxHelper.uncheckedCast(db);
- }
-
- public final Account
- getAccount(String id)
- {
- final AccountHolder holder = new AccountHolder();
- database.begin_getAccount(id, new Callback_Database_getAccount() {
- public void
- response(Account a)
- {
- synchronized(holder)
- {
- holder.value = a;
- holder.notify();
- }
- }
-
- public void
- exception(Ice.LocalException ex)
- {
- ex.printStackTrace();
- assert(false);
- }
-
- public void
- exception(Ice.UserException ex)
- {
- Account a = new Account(((AccountNotExistException)ex).id, "");
- database.begin_addAccount(a);
- synchronized(holder)
- {
- holder.value = a;
- holder.notify();
- }
- }
- });
-
- synchronized(holder)
- {
- while(holder.value == null)
- {
- try
- {
- holder.wait();
- }
- catch(InterruptedException ex)
- {
- }
- }
- }
- return holder.value;
- }
-
- public final void
- addAccount(Account s)
- {
- database.addAccount(s);
- }
-
- private DatabasePrx database;
-}
diff --git a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceI.java b/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceI.java
deleted file mode 100644
index 2c9c2e752cc..00000000000
--- a/java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceI.java
+++ /dev/null
@@ -1,41 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-package com.zeroc.ejb;
-
-import javax.ejb.*;
-
-import com.zeroc.ice.Test._ServiceDisp;
-import com.zeroc.ice.Test.Account;
-import com.zeroc.ice.Test.AccountNotExistException;
-
-//
-// This Ice servant delegates the calls to the Service EJB
-//
-public class ServiceI extends _ServiceDisp
-{
- final private Service service;
-
- public ServiceI(Service service)
- {
- this.service = service;
- }
-
- public final Account
- getAccount(String id, Ice.Current current)
- {
- return service.getAccount(id);
- }
-
- public final void
- addAccount(Account s, Ice.Current current)
- {
- service.addAccount(s);
- }
-}
diff --git a/java-compat/test/ejb/src/resources/jndi.properties b/java-compat/test/ejb/src/resources/jndi.properties
deleted file mode 100644
index dbd97ecf182..00000000000
--- a/java-compat/test/ejb/src/resources/jndi.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://127.0.0.1:1099
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
diff --git a/java-compat/test/ejb/src/slice/common.ice b/java-compat/test/ejb/src/slice/common.ice
deleted file mode 100644
index 6fd8204b136..00000000000
--- a/java-compat/test/ejb/src/slice/common.ice
+++ /dev/null
@@ -1,18 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-[["java:package:com.zeroc.ice"]]
-module Test
-{
-
-class Base
-{
-}
-
-}
diff --git a/java-compat/test/ejb/src/slice/ejb1.ice b/java-compat/test/ejb/src/slice/ejb1.ice
deleted file mode 100644
index 96f5c3be9f7..00000000000
--- a/java-compat/test/ejb/src/slice/ejb1.ice
+++ /dev/null
@@ -1,40 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include "common.ice"
-
-[["java:package:com.zeroc.ice"]]
-module Test
-{
-
-exception AccountNotExistException
-{
-}
-
-class Account extends Base
-{
- string id;
-}
-
-interface Database
-{
- void addAccount(Account s);
-
- Account getAccount(string id)
- throws AccountNotExistException;
-}
-
-interface Service
-{
- void addAccount(Account s);
-
- Account getAccount(string id);
-}
-
-}
diff --git a/java-compat/test/ejb/src/slice/ejb2.ice b/java-compat/test/ejb/src/slice/ejb2.ice
deleted file mode 100644
index 49ab55cc4aa..00000000000
--- a/java-compat/test/ejb/src/slice/ejb2.ice
+++ /dev/null
@@ -1,42 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include "common.ice"
-
-[["java:package:com.zeroc.ice"]]
-module Test
-{
-
-exception AccountNotExistException
-{
- string id;
-}
-
-class Account extends Base
-{
- string id;
- string foo;
-}
-
-interface Database
-{
- void addAccount(Account s);
-
- Account getAccount(string id)
- throws AccountNotExistException;
-}
-
-interface Service
-{
- void addAccount(Account s);
-
- Account getAccount(string id);
-}
-
-}
diff --git a/java/android/src/IceBT/build.gradle b/java-compat/test/lambda/build.gradle
index 3dd45462337..9f500d0bb76 100644
--- a/java/android/src/IceBT/build.gradle
+++ b/java-compat/test/lambda/build.gradle
@@ -7,17 +7,24 @@
//
// **********************************************************************
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/IceBT/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
sourceSets {
main {
java {
- srcDir "$project.ext.topSrcDir/java/src/IceBT/src/main/java"
+ srcDirs "$rootProject.projectDir/test/lambda"
}
}
}
+
+dependencies {
+ compile localDependency('ice-compat')
+ compile project(':test')
+}
+
+jar {
+ archiveName = "IceTestLambda.jar"
+ destinationDir = new File("$rootProject.projectDir/lib/")
+}
+
+clean {
+ delete("$rootProject.projectDir/lib/IceTestLambda.jar")
+}
diff --git a/java-compat/test/lambda/src/main/java/Ice/ami/lambda/AMI.java b/java-compat/test/lambda/src/main/java/Ice/ami/lambda/AMI.java
new file mode 100644
index 00000000000..e2d18f23939
--- /dev/null
+++ b/java-compat/test/lambda/src/main/java/Ice/ami/lambda/AMI.java
@@ -0,0 +1,1155 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package test.Ice.ami.lambda;
+
+import java.io.PrintWriter;
+
+import test.Ice.ami.Test.TestIntfPrx;
+import test.Ice.ami.Test.TestIntfPrxHelper;
+import test.Ice.ami.Test.TestIntfControllerPrx;
+import test.Ice.ami.Test.TestIntfControllerPrxHelper;
+import test.Ice.ami.Test.TestIntfException;
+import test.Ice.ami.Test.Callback_TestIntf_op;
+import test.Ice.ami.Test.Callback_TestIntf_opWithResult;
+import test.Ice.ami.Test.Callback_TestIntf_opWithUE;
+import test.Ice.ami.Test.Callback_TestIntf_opWithPayload;
+
+public class AMI
+{
+ private static void
+ test(boolean b)
+ {
+ if(!b)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+ private static class CallbackBase
+ {
+ CallbackBase()
+ {
+ _called = false;
+ }
+
+ public synchronized void check()
+ {
+ while(!_called)
+ {
+ try
+ {
+ wait();
+ }
+ catch(InterruptedException ex)
+ {
+ }
+ }
+
+ _called = false;
+ }
+
+ public synchronized void called()
+ {
+ assert(!_called);
+ _called = true;
+ notify();
+ }
+
+ private boolean _called;
+ }
+
+ static class AsyncCallback extends CallbackBase
+ {
+ public AsyncCallback()
+ {
+ }
+
+ public void
+ isA(Ice.AsyncResult result)
+ {
+ test(result.getProxy().end_ice_isA(result));
+ called();
+ }
+
+ public void
+ ping(Ice.AsyncResult result)
+ {
+ result.getProxy().end_ice_ping(result);
+ called();
+ }
+
+ public void
+ id(Ice.AsyncResult result)
+ {
+ test(result.getProxy().end_ice_id(result).equals("::Test::TestIntf"));
+ called();
+ }
+
+ public void
+ ids(Ice.AsyncResult result)
+ {
+ test(result.getProxy().end_ice_ids(result).length == 2);
+ called();
+ }
+
+ public void
+ connection(Ice.AsyncResult result)
+ {
+ test(result.getProxy().end_ice_getConnection(result) != null);
+ called();
+ }
+
+ public void
+ op(Ice.AsyncResult result)
+ {
+ TestIntfPrxHelper.uncheckedCast(result.getProxy()).end_op(result);
+ called();
+ }
+
+ public void
+ opWithResult(Ice.AsyncResult result)
+ {
+ test(TestIntfPrxHelper.uncheckedCast(result.getProxy()).end_opWithResult(result) == 15);
+ called();
+ }
+
+ public void
+ opWithUE(Ice.AsyncResult result)
+ {
+ try
+ {
+ TestIntfPrxHelper.uncheckedCast(result.getProxy()).end_opWithUE(result);
+ test(false);
+ }
+ catch(TestIntfException ex)
+ {
+ called();
+ }
+ catch(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+
+ public void
+ isAEx(Ice.AsyncResult result)
+ {
+ try
+ {
+ result.getProxy().end_ice_isA(result);
+ test(false);
+ }
+ catch(Ice.NoEndpointException ex)
+ {
+ called();
+ }
+ catch(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+
+ public void
+ pingEx(Ice.AsyncResult result)
+ {
+ try
+ {
+ result.getProxy().end_ice_ping(result);
+ test(false);
+ }
+ catch(Ice.NoEndpointException ex)
+ {
+ called();
+ }
+ catch(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+
+ public void
+ idEx(Ice.AsyncResult result)
+ {
+ try
+ {
+ result.getProxy().end_ice_id(result);
+ test(false);
+ }
+ catch(Ice.NoEndpointException ex)
+ {
+ called();
+ }
+ catch(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+
+ public void
+ idsEx(Ice.AsyncResult result)
+ {
+ try
+ {
+ result.getProxy().end_ice_ids(result);
+ test(false);
+ }
+ catch(Ice.NoEndpointException ex)
+ {
+ called();
+ }
+ catch(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+
+ public void
+ connectionEx(Ice.AsyncResult result)
+ {
+ try
+ {
+ result.getProxy().end_ice_getConnection(result);
+ test(false);
+ }
+ catch(Ice.NoEndpointException ex)
+ {
+ called();
+ }
+ catch(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+
+ public void
+ opEx(Ice.AsyncResult result)
+ {
+ try
+ {
+ TestIntfPrxHelper.uncheckedCast(result.getProxy()).end_op(result);
+ test(false);
+ }
+ catch(Ice.NoEndpointException ex)
+ {
+ called();
+ }
+ catch(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+ }
+
+ static class ResponseCallback extends CallbackBase
+ {
+ ResponseCallback()
+ {
+ }
+
+ public void
+ isA(boolean r)
+ {
+ test(r);
+ called();
+ }
+
+ public void
+ ping()
+ {
+ called();
+ }
+
+ public void
+ id(String id)
+ {
+ test(id.equals("::Test::TestIntf"));
+ called();
+ }
+
+ public void
+ ids(String[] ids)
+ {
+ test(ids.length == 2);
+ called();
+ }
+
+ public void
+ connection(Ice.Connection conn)
+ {
+ test(conn != null);
+ called();
+ }
+
+ public void
+ op()
+ {
+ called();
+ }
+
+ public void
+ opWithResult(int r)
+ {
+ test(r == 15);
+ called();
+ }
+
+ public void
+ opWithUE(Ice.UserException e)
+ {
+ try
+ {
+ throw e;
+ }
+ catch(TestIntfException ex)
+ {
+ called();
+ }
+ catch(Ice.UserException ex)
+ {
+ test(false);
+ }
+ }
+ }
+
+ static class ExceptionCallback extends CallbackBase
+ {
+ public ExceptionCallback()
+ {
+ }
+
+ public void
+ isA(boolean r)
+ {
+ test(false);
+ }
+
+ public void
+ ping()
+ {
+ test(false);
+ }
+
+ public void
+ id(String id)
+ {
+ test(false);
+ }
+
+ public void
+ ids(String[] ids)
+ {
+ test(false);
+ }
+
+ public void
+ connection(Ice.Connection conn)
+ {
+ test(false);
+ }
+
+ public void
+ op()
+ {
+ test(false);
+ }
+
+ public void
+ ex(Ice.Exception ex)
+ {
+ test(ex instanceof Ice.NoEndpointException);
+ called();
+ }
+
+ public void
+ noEx(Ice.Exception ex)
+ {
+ test(false);
+ }
+ }
+
+ static class SentCallback extends CallbackBase
+ {
+ SentCallback()
+ {
+ _thread = Thread.currentThread().getId();
+ }
+
+ public void
+ isA(boolean r)
+ {
+ }
+
+ public void
+ ping()
+ {
+ }
+
+ public void
+ id(String s)
+ {
+ }
+
+ public void
+ ids(String[] s)
+ {
+ }
+
+ public void
+ opAsync(Ice.AsyncResult r)
+ {
+ }
+
+ public void
+ op()
+ {
+ }
+
+ public void
+ ex(Ice.Exception ex)
+ {
+ }
+
+ public void
+ sent(Ice.AsyncResult r)
+ {
+ test(r.sentSynchronously() && _thread == Thread.currentThread().getId() ||
+ !r.sentSynchronously() && _thread != Thread.currentThread().getId());
+ called();
+ }
+
+ public void
+ sent(boolean ss)
+ {
+ test(ss && _thread == Thread.currentThread().getId() ||
+ !ss && _thread != Thread.currentThread().getId());
+ called();
+ }
+
+ long _thread;
+ }
+
+ static class FlushCallback extends CallbackBase
+ {
+ FlushCallback()
+ {
+ _thread = Thread.currentThread().getId();
+ }
+
+ public void
+ completedAsync(Ice.AsyncResult r)
+ {
+ test(false);
+ }
+
+ public void
+ exception(Ice.Exception ex)
+ {
+ test(false);
+ }
+
+ public void
+ sentAsync(Ice.AsyncResult r)
+ {
+ test((r.sentSynchronously() && _thread == Thread.currentThread().getId()) ||
+ (!r.sentSynchronously() && _thread != Thread.currentThread().getId()));
+ called();
+ }
+
+ public void
+ sent(boolean sentSynchronously)
+ {
+ test((sentSynchronously && _thread == Thread.currentThread().getId()) ||
+ (!sentSynchronously && _thread != Thread.currentThread().getId()));
+ called();
+ }
+
+ long _thread;
+ }
+
+ static class FlushExCallback extends CallbackBase
+ {
+ FlushExCallback()
+ {
+ }
+
+ public void
+ completedAsync(Ice.AsyncResult r)
+ {
+ try
+ {
+ if(r.getConnection() != null)
+ {
+ r.getConnection().end_flushBatchRequests(r);
+ }
+ else
+ {
+ r.getProxy().end_ice_flushBatchRequests(r);
+ }
+ test(false);
+ }
+ catch(Ice.Exception ex)
+ {
+ called();
+ }
+ }
+
+ public void
+ exception(Ice.Exception ex)
+ {
+ called();
+ }
+
+ public void
+ sentAsync(Ice.AsyncResult r)
+ {
+ test(false);
+ }
+
+ public void
+ sent(boolean sentSynchronously)
+ {
+ test(false);
+ }
+ }
+
+ enum ThrowType { LocalException, OtherException };
+
+ static class Thrower extends CallbackBase
+ {
+ public Thrower(ThrowType t)
+ {
+ _t = t;
+ }
+
+ public void
+ opAsync(Ice.AsyncResult r)
+ {
+ called();
+ throwEx();
+ }
+
+ public void
+ op()
+ {
+ called();
+ throwEx();
+ }
+
+ public void
+ noOp()
+ {
+ }
+
+ public void
+ ex(Ice.Exception ex)
+ {
+ called();
+ throwEx();
+ }
+
+ public void
+ sent(boolean ss)
+ {
+ called();
+ throwEx();
+ }
+
+ private void
+ throwEx()
+ {
+ switch(_t)
+ {
+ case LocalException:
+ {
+ throw new Ice.ObjectNotExistException();
+ }
+ case OtherException:
+ {
+ throw new RuntimeException();
+ }
+ default:
+ {
+ assert(false);
+ break;
+ }
+ }
+ }
+
+ ThrowType _t;
+ }
+
+ public static void
+ run(test.TestHelper helper, Ice.Communicator communicator, boolean collocated, TestIntfPrx p,
+ TestIntfControllerPrx testController)
+ {
+
+ PrintWriter out = helper.getWriter();
+
+ out.print("testing response callback... ");
+ out.flush();
+ {
+ final ResponseCallback cb = new ResponseCallback();
+ java.util.Map<String, String> ctx = new java.util.HashMap<String, String>();
+
+ p.begin_ice_isA("::Test::TestIntf",
+ (boolean r) -> cb.isA(r),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_ice_isA("::Test::TestIntf",
+ (boolean r) -> cb.isA(r),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_ice_ping(
+ () -> cb.ping(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_ice_ping(ctx,
+ () -> cb.ping(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_ice_id(
+ (String id) -> cb.id(id),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_ice_id(ctx,
+ (String id) -> cb.id(id),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_ice_ids(
+ (String[] ids) -> cb.ids(ids),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_ice_ids(ctx,
+ (String[] ids) -> cb.ids(ids),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ if(!collocated)
+ {
+ p.begin_ice_getConnection(
+ (Ice.Connection conn) -> cb.connection(conn),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ p.begin_op(
+ () -> cb.op(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_op(ctx,
+ () -> cb.op(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_opWithResult(
+ (int r) -> cb.opWithResult(r),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_opWithResult(ctx,
+ (int r) -> cb.opWithResult(r),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_opWithUE(
+ () -> test(false),
+ (Ice.UserException ex) -> cb.opWithUE(ex),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+
+ p.begin_opWithUE(ctx,
+ () -> test(false),
+ (Ice.UserException ex) -> cb.opWithUE(ex),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+ out.println("ok");
+
+ out.print("testing local exceptions with response callback... ");
+ out.flush();
+ {
+ TestIntfPrx i = TestIntfPrxHelper.uncheckedCast(p.ice_adapterId("dummy"));
+ final ExceptionCallback cb = new ExceptionCallback();
+
+ i.begin_ice_isA("::Test::TestIntf",
+ (boolean r) -> test(false),
+ (Ice.Exception ex) -> cb.ex(ex));
+ cb.check();
+
+ i.begin_ice_ping(
+ () -> test(false),
+ (Ice.Exception ex) -> cb.ex(ex));
+ cb.check();
+
+ i.begin_ice_id(
+ (String id) -> test(false),
+ (Ice.Exception ex) -> cb.ex(ex));
+ cb.check();
+
+ i.begin_ice_ids(
+ (String[] ids) -> test(false),
+ (Ice.Exception ex) -> cb.ex(ex));
+ cb.check();
+
+ if(!collocated)
+ {
+ i.begin_ice_getConnection(
+ (Ice.Connection conn) -> test(false),
+ (Ice.Exception ex) -> cb.ex(ex));
+ cb.check();
+ }
+
+ i.begin_op(
+ () -> test(false),
+ (Ice.Exception ex) -> cb.ex(ex));
+ cb.check();
+ }
+ out.println("ok");
+
+ out.print("testing sent callback... ");
+ out.flush();
+ {
+ final SentCallback cb = new SentCallback();
+
+ p.begin_ice_isA("",
+ (boolean r) -> cb.isA(r),
+ (Ice.Exception ex) -> cb.ex(ex),
+ (boolean ss) -> cb.sent(ss));
+ cb.check();
+
+ p.begin_ice_ping(
+ () -> cb.ping(),
+ (Ice.Exception ex) -> cb.ex(ex),
+ (boolean ss) -> cb.sent(ss));
+ cb.check();
+
+ p.begin_ice_id(
+ (String id) -> cb.id(id),
+ (Ice.Exception ex) -> cb.ex(ex),
+ (boolean ss) -> cb.sent(ss));
+ cb.check();
+
+ p.begin_ice_ids(
+ (String[] ids) -> cb.ids(ids),
+ (Ice.Exception ex) -> cb.ex(ex),
+ (boolean ss) -> cb.sent(ss));
+ cb.check();
+
+ p.begin_op(
+ () -> cb.op(),
+ (Ice.Exception ex) -> cb.ex(ex),
+ (boolean ss) -> cb.sent(ss));
+ cb.check();
+
+ java.util.List<SentCallback> cbs = new java.util.ArrayList<SentCallback>();
+ byte[] seq = new byte[10024];
+ new java.util.Random().nextBytes(seq); // Make sure the request doesn't compress too well.
+ Ice.AsyncResult r;
+ testController.holdAdapter();
+ try
+ {
+ do
+ {
+ final SentCallback cb2 = new SentCallback();
+ r = p.begin_opWithPayload(seq,
+ () -> {},
+ (Ice.Exception ex) -> cb2.ex(ex),
+ (boolean ss) -> cb2.sent(ss));
+ cbs.add(cb2);
+ }
+ while(r.sentSynchronously());
+ }
+ finally
+ {
+ testController.resumeAdapter();
+ }
+ for(SentCallback cb3 : cbs)
+ {
+ cb3.check();
+ }
+ }
+ out.println("ok");
+
+ out.print("testing unexpected exceptions from callback... ");
+ out.flush();
+ {
+ TestIntfPrx q = TestIntfPrxHelper.uncheckedCast(p.ice_adapterId("dummy"));
+ ThrowType throwEx[] = { ThrowType.LocalException, ThrowType.OtherException };
+
+ for(int i = 0; i < 2; ++i)
+ {
+ final Thrower cb = new Thrower(throwEx[i]);
+
+ p.begin_op(
+ () -> cb.op(),
+ null);
+ cb.check();
+
+ q.begin_op(
+ () -> cb.op(),
+ (Ice.Exception ex) -> cb.ex(ex));
+ cb.check();
+
+ p.begin_op(
+ () -> {},
+ (Ice.Exception ex) -> {},
+ (boolean ss) -> cb.sent(ss));
+ cb.check();
+ }
+ }
+ out.println("ok");
+
+ out.print("testing batch requests with proxy... ");
+ out.flush();
+ {
+ {
+ //
+ // Type-safe.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = (TestIntfPrx)p.ice_batchOneway();
+ b1.opBatch();
+ b1.opBatch();
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = b1.begin_ice_flushBatchRequests(
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent());
+ test(r.isCompleted());
+ test(p.waitForBatch(2));
+ }
+
+ if(p.ice_getConnection() != null)
+ {
+ //
+ // Type-safe exception.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = (TestIntfPrx)p.ice_batchOneway();
+ b1.opBatch();
+ b1.ice_getConnection().close(Ice.ConnectionClose.GracefullyWithWait);
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = b1.begin_ice_flushBatchRequests(
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent());
+ test(r.isCompleted());
+ test(p.waitForBatch(1));
+ }
+ }
+ out.println("ok");
+
+ if(p.ice_getConnection() != null)
+ {
+ out.print("testing batch requests with connection... ");
+ out.flush();
+ {
+ {
+ //
+ // Type-safe.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = TestIntfPrxHelper.uncheckedCast(p.ice_getConnection().createProxy(
+ p.ice_getIdentity()).ice_batchOneway());
+ b1.opBatch();
+ b1.opBatch();
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = b1.ice_getConnection().begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent());
+ test(r.isCompleted());
+ test(p.waitForBatch(2));
+
+ final FlushCallback cb2 = new FlushCallback();
+ Ice.AsyncResult r2 = b1.ice_getConnection().begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb2.exception(ex),
+ (boolean sentSynchronously) -> cb2.sent(sentSynchronously));
+ cb2.check();
+ test(r2.isSent());
+ test(r2.isCompleted());
+ }
+
+ {
+ //
+ // Type-safe exception.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = TestIntfPrxHelper.uncheckedCast(p.ice_getConnection().createProxy(
+ p.ice_getIdentity()).ice_batchOneway());
+ b1.opBatch();
+ b1.ice_getConnection().close(Ice.ConnectionClose.GracefullyWithWait);
+ final FlushExCallback cb = new FlushExCallback();
+ Ice.AsyncResult r = b1.ice_getConnection().begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(!r.isSent());
+ test(r.isCompleted());
+ test(p.opBatchCount() == 0);
+ }
+ }
+ out.println("ok");
+
+ out.print("testing batch requests with communicator... ");
+ out.flush();
+ {
+ {
+ //
+ // Type-safe - 1 connection.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = TestIntfPrxHelper.uncheckedCast(p.ice_getConnection().createProxy(
+ p.ice_getIdentity()).ice_batchOneway());
+ b1.opBatch();
+ b1.opBatch();
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = communicator.begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent());
+ test(r.isCompleted());
+ test(p.waitForBatch(2));
+ }
+
+ {
+ //
+ // Type-safe exception - 1 connection.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = TestIntfPrxHelper.uncheckedCast(p.ice_getConnection().createProxy(
+ p.ice_getIdentity()).ice_batchOneway());
+ b1.opBatch();
+ b1.ice_getConnection().close(Ice.ConnectionClose.GracefullyWithWait);
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = communicator.begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent()); // Exceptions are ignored!
+ test(r.isCompleted());
+ test(p.opBatchCount() == 0);
+ }
+
+ {
+ //
+ // 2 connections.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = TestIntfPrxHelper.uncheckedCast(p.ice_getConnection().createProxy(
+ p.ice_getIdentity()).ice_batchOneway());
+ TestIntfPrx b2 = TestIntfPrxHelper.uncheckedCast(
+ p.ice_connectionId("2").ice_getConnection().createProxy(p.ice_getIdentity()).ice_batchOneway());
+ b2.ice_getConnection(); // Ensure connection is established.
+ b1.opBatch();
+ b1.opBatch();
+ b2.opBatch();
+ b2.opBatch();
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = communicator.begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent());
+ test(r.isCompleted());
+ test(p.waitForBatch(4));
+ }
+
+ {
+ //
+ // Exception - 2 connections - 1 failure.
+ //
+ // All connections should be flushed even if there are failures on some connections.
+ // Exceptions should not be reported.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = TestIntfPrxHelper.uncheckedCast(p.ice_getConnection().createProxy(
+ p.ice_getIdentity()).ice_batchOneway());
+ TestIntfPrx b2 = TestIntfPrxHelper.uncheckedCast(
+ p.ice_connectionId("2").ice_getConnection().createProxy(p.ice_getIdentity()).ice_batchOneway());
+ b2.ice_getConnection(); // Ensure connection is established.
+ b1.opBatch();
+ b2.opBatch();
+ b1.ice_getConnection().close(Ice.ConnectionClose.GracefullyWithWait);
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = communicator.begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent()); // Exceptions are ignored!
+ test(r.isCompleted());
+ test(p.waitForBatch(1));
+ }
+
+ {
+ //
+ // Exception - 2 connections - 2 failures.
+ //
+ // The sent callback should be invoked even if all connections fail.
+ //
+ test(p.opBatchCount() == 0);
+ TestIntfPrx b1 = TestIntfPrxHelper.uncheckedCast(p.ice_getConnection().createProxy(
+ p.ice_getIdentity()).ice_batchOneway());
+ TestIntfPrx b2 = TestIntfPrxHelper.uncheckedCast(
+ p.ice_connectionId("2").ice_getConnection().createProxy(p.ice_getIdentity()).ice_batchOneway());
+ b2.ice_getConnection(); // Ensure connection is established.
+ b1.opBatch();
+ b2.opBatch();
+ b1.ice_getConnection().close(Ice.ConnectionClose.GracefullyWithWait);
+ b2.ice_getConnection().close(Ice.ConnectionClose.GracefullyWithWait);
+ final FlushCallback cb = new FlushCallback();
+ Ice.AsyncResult r = communicator.begin_flushBatchRequests(
+ Ice.CompressBatch.BasedOnProxy,
+ null,
+ (Ice.Exception ex) -> cb.exception(ex),
+ (boolean sentSynchronously) -> cb.sent(sentSynchronously));
+ cb.check();
+ test(r.isSent()); // Exceptions are ignored!
+ test(r.isCompleted());
+ test(p.opBatchCount() == 0);
+ }
+ }
+ out.println("ok");
+ }
+
+ out.print("testing null callbacks...");
+ try
+ {
+ IceInternal.Functional_VoidCallback response = null;
+ IceInternal.Functional_GenericCallback1<Ice.Exception> exception = null;
+ p.begin_ice_ping(response, exception);
+ test(false);
+ }
+ catch(IllegalArgumentException ex)
+ {
+ // Excepted when response and exception callback are both null.
+ }
+
+ try
+ {
+ p.begin_ice_ping(() -> {}, null);
+
+ }
+ catch(IllegalArgumentException ex)
+ {
+ test(false);
+ }
+
+ try
+ {
+ p.begin_ice_ping(null, (Ice.Exception ex) -> {});
+
+ }
+ catch(IllegalArgumentException ex)
+ {
+ test(false);
+ }
+
+ try
+ {
+ IceInternal.Functional_BoolCallback response = null;
+ IceInternal.Functional_GenericCallback1<Ice.Exception> exception = null;
+ p.begin_ice_isA("::Test::TestIntf", response, exception);
+ test(false);
+ }
+ catch(IllegalArgumentException ex)
+ {
+ // Excepted when response and exception callback are both null.
+ }
+
+ try
+ {
+ p.begin_ice_isA("::Test::TestIntf", (boolean v) -> {}, null);
+
+ }
+ catch(IllegalArgumentException ex)
+ {
+ test(false);
+ }
+
+ try
+ {
+ p.begin_ice_isA("::Test::TestIntf", null, (Ice.Exception ex) -> {});
+
+ }
+ catch(IllegalArgumentException ex)
+ {
+ test(false);
+ }
+
+ try
+ {
+ IceInternal.Functional_VoidCallback response = null;
+ p.begin_opWithUE(response, null, (Ice.Exception ex) -> {});
+ test(false);
+ }
+ catch(IllegalArgumentException ex)
+ {
+ // Excepted when response and exception callback are both null, for
+ // an operation that throws user exceptions both user exception callback
+ // an local exception callback must be present.
+ }
+
+ try
+ {
+ IceInternal.Functional_VoidCallback response = null;
+ p.begin_opWithUE(response, (Ice.UserException ex) -> {}, null);
+ test(false);
+ }
+ catch(IllegalArgumentException ex)
+ {
+ // Excepted when response and exception callback are both null, for
+ // an operation that throws user exceptions both user exception callback
+ // an local exception callback must be present.
+ }
+
+ try
+ {
+ IceInternal.Functional_VoidCallback response = null;
+ IceInternal.Functional_GenericCallback1<Ice.UserException> userException = null;
+ IceInternal.Functional_GenericCallback1<Ice.Exception> exception = null;
+ p.begin_opWithUE(response, userException, exception);
+ test(false);
+ }
+ catch(IllegalArgumentException ex)
+ {
+ // Excepted when response and exception callback are both null.
+ }
+ out.println("ok");
+ }
+}
diff --git a/java-compat/test/lambda/src/main/java/Ice/invoke/lambda/AllTests.java b/java-compat/test/lambda/src/main/java/Ice/invoke/lambda/AllTests.java
new file mode 100644
index 00000000000..0502460bd60
--- /dev/null
+++ b/java-compat/test/lambda/src/main/java/Ice/invoke/lambda/AllTests.java
@@ -0,0 +1,201 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package test.Ice.invoke.lambda;
+import java.io.PrintWriter;
+
+import test.Ice.invoke.Test.MyClassPrx;
+import test.Ice.invoke.Test.MyClassPrxHelper;
+import test.Ice.invoke.Test.MyException;
+
+public class AllTests
+{
+ final static String testString = "This is a test string";
+
+ private static void
+ test(boolean b)
+ {
+ if(!b)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+ private static class Callback
+ {
+ Callback()
+ {
+ _called = false;
+ }
+
+ public synchronized void check()
+ {
+ while(!_called)
+ {
+ try
+ {
+ wait();
+ }
+ catch(InterruptedException ex)
+ {
+ }
+ }
+
+ _called = false;
+ }
+
+ public synchronized void called()
+ {
+ assert(!_called);
+ _called = true;
+ notify();
+ }
+
+ private boolean _called;
+ }
+
+ private static class Callback_Object_opStringI
+ {
+ public Callback_Object_opStringI(Ice.Communicator communicator)
+ {
+ _communicator = communicator;
+ }
+
+ public void response(boolean ok, byte[] outEncaps)
+ {
+ if(ok)
+ {
+ Ice.InputStream inS = new Ice.InputStream(_communicator, outEncaps);
+ inS.startEncapsulation();
+ String s = inS.readString();
+ test(s.equals(testString));
+ s = inS.readString();
+ test(s.equals(testString));
+ inS.endEncapsulation();
+ callback.called();
+ }
+ else
+ {
+ test(false);
+ }
+ }
+
+ public void exception(Ice.Exception ex)
+ {
+ test(false);
+ }
+
+ public void sent(boolean sent)
+ {
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Ice.Communicator _communicator;
+ private Callback callback = new Callback();
+ }
+
+ private static class Callback_Object_opExceptionI
+ {
+ public Callback_Object_opExceptionI(Ice.Communicator communicator)
+ {
+ _communicator = communicator;
+ }
+
+ public void response(boolean ok, byte[] outEncaps)
+ {
+ if(ok)
+ {
+ test(false);
+ }
+ else
+ {
+ Ice.InputStream inS = new Ice.InputStream(_communicator, outEncaps);
+ inS.startEncapsulation();
+ try
+ {
+ inS.throwException();
+ }
+ catch(MyException ex)
+ {
+ inS.endEncapsulation();
+ callback.called();
+ }
+ catch(java.lang.Exception ex)
+ {
+ test(false);
+ }
+ }
+ }
+
+ public void exception(Ice.Exception ex)
+ {
+ test(false);
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ public void sent(boolean sent)
+ {
+ }
+
+ private Ice.Communicator _communicator;
+ private Callback callback = new Callback();
+ }
+
+ public static MyClassPrx
+ allTests(test.TestHelper helper)
+ {
+ Ice.Communicator communicator = helper.communicator();
+ PrintWriter out = helper.getWriter();
+ String ref = "test:" + helper.getTestEndpoint(0);
+ Ice.ObjectPrx base = communicator.stringToProxy(ref);
+ MyClassPrx cl = MyClassPrxHelper.checkedCast(base);
+ MyClassPrx oneway = MyClassPrxHelper.uncheckedCast(cl.ice_oneway());
+
+ out.print("testing asynchronous ice_invoke with lambda callbacks... ");
+ out.flush();
+
+ {
+ Ice.OutputStream outS = new Ice.OutputStream(communicator);
+ outS.startEncapsulation();
+ outS.writeString(testString);
+ outS.endEncapsulation();
+ byte[] inEncaps = outS.finished();
+
+ // begin_ice_invoke with Callback_Object_ice_invoke
+ Callback_Object_opStringI cb2 = new Callback_Object_opStringI(communicator);
+ cl.begin_ice_invoke("opString", Ice.OperationMode.Normal, inEncaps,
+ (boolean ret, byte[] outParams) -> cb2.response(ret, outParams),
+ (Ice.Exception ex) -> cb2.exception(ex),
+ (boolean sent) -> cb2.sent(sent));
+ cb2.check();
+ }
+
+ {
+ // begin_ice_invoke with Callback_Object_ice_invoke
+ Callback_Object_opExceptionI cb2 = new Callback_Object_opExceptionI(communicator);
+ cl.begin_ice_invoke("opException", Ice.OperationMode.Normal, null,
+ (boolean ret, byte[] outParams) -> cb2.response(ret, outParams),
+ (Ice.Exception ex) -> cb2.exception(ex),
+ (boolean sent) -> cb2.sent(sent));
+ cb2.check();
+ }
+
+ out.println("ok");
+
+ return cl;
+ }
+}
diff --git a/java-compat/test/lambda/src/main/java/Ice/operations/lambda/OnewaysLambdaAMI.java b/java-compat/test/lambda/src/main/java/Ice/operations/lambda/OnewaysLambdaAMI.java
new file mode 100644
index 00000000000..d37b3a0d2a8
--- /dev/null
+++ b/java-compat/test/lambda/src/main/java/Ice/operations/lambda/OnewaysLambdaAMI.java
@@ -0,0 +1,158 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package test.Ice.operations.lambda;
+
+import test.Ice.operations.Test.MyClassPrx;
+
+public class OnewaysLambdaAMI
+{
+ private static void
+ test(boolean b)
+ {
+ if(!b)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+ private static class Callback
+ {
+ Callback()
+ {
+ _called = false;
+ }
+
+ public synchronized void check()
+ {
+ while(!_called)
+ {
+ try
+ {
+ wait();
+ }
+ catch(InterruptedException ex)
+ {
+ }
+ }
+
+ _called = false;
+ }
+
+ public synchronized void called()
+ {
+ assert(!_called);
+ _called = true;
+ notify();
+ }
+
+ public void
+ sent(boolean sentSynchronously)
+ {
+ called();
+ }
+
+ void noException(Ice.Exception ex)
+ {
+ test(false);
+ }
+
+ private boolean _called;
+ }
+
+ public static void
+ onewaysLambdaAMI(test.TestHelper helper, MyClassPrx proxy)
+ {
+ MyClassPrx p = (MyClassPrx)proxy.ice_oneway();
+
+ {
+ final Callback cb = new Callback();
+ p.begin_ice_ping(
+ () -> test(false),
+ (Ice.Exception ex) -> cb.noException(ex),
+ (boolean sent) -> cb.sent(sent)
+ );
+ cb.check();
+ }
+
+ {
+ try
+ {
+ p.begin_ice_isA("::Test::MyClass");
+ test(false);
+ }
+ catch(java.lang.IllegalArgumentException ex)
+ {
+ }
+ }
+
+ {
+ try
+ {
+ p.begin_ice_id();
+ test(false);
+ }
+ catch(java.lang.IllegalArgumentException ex)
+ {
+ }
+ }
+
+ {
+ try
+ {
+ p.begin_ice_ids();
+ test(false);
+ }
+ catch(java.lang.IllegalArgumentException ex)
+ {
+ }
+ }
+
+ {
+ final Callback cb = new Callback();
+ p.begin_opVoid(
+ () -> test(false),
+ (Ice.Exception ex) -> cb.noException(ex),
+ (boolean sent) -> cb.sent(sent)
+ );
+ cb.check();
+ }
+
+ {
+ final Callback cb = new Callback();
+ p.begin_opIdempotent(
+ () -> test(false),
+ (Ice.Exception ex) -> cb.noException(ex),
+ (boolean sent) -> cb.sent(sent)
+ );
+ cb.check();
+ }
+
+ {
+ final Callback cb = new Callback();
+ p.begin_opNonmutating(
+ () -> test(false),
+ (Ice.Exception ex) -> cb.noException(ex),
+ (boolean sent) -> cb.sent(sent)
+ );
+ cb.check();
+ }
+
+ {
+ try
+ {
+ p.begin_opByte((byte)0xff, (byte)0x0f);
+ test(false);
+ }
+ catch(java.lang.IllegalArgumentException ex)
+ {
+ }
+ }
+ }
+}
diff --git a/java-compat/test/lambda/src/main/java/Ice/operations/lambda/TwowaysLambdaAMI.java b/java-compat/test/lambda/src/main/java/Ice/operations/lambda/TwowaysLambdaAMI.java
new file mode 100644
index 00000000000..dd8fb5b4c05
--- /dev/null
+++ b/java-compat/test/lambda/src/main/java/Ice/operations/lambda/TwowaysLambdaAMI.java
@@ -0,0 +1,1432 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package test.Ice.operations.lambda;
+
+import test.Ice.operations.Test.AnotherStruct;
+import test.Ice.operations.Test._MyClassDisp;
+import test.Ice.operations.Test.MyClassPrx;
+import test.Ice.operations.Test._MyDerivedClassDisp;
+import test.Ice.operations.Test.MyDerivedClassPrx;
+import test.Ice.operations.Test.MyDerivedClassPrxHelper;
+import test.Ice.operations.Test.MyEnum;
+import test.Ice.operations.Test.Structure;
+import test.Ice.operations.Test.MyStruct;
+
+import java.util.Map;
+
+public class TwowaysLambdaAMI
+{
+ private static void
+ test(boolean b)
+ {
+ if(!b)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+ private static class Callback
+ {
+ Callback()
+ {
+ _called = false;
+ }
+
+ public synchronized void check()
+ {
+ while(!_called)
+ {
+ try
+ {
+ wait();
+ }
+ catch(InterruptedException ex)
+ {
+ }
+ }
+
+ _called = false;
+ }
+
+ public synchronized void called()
+ {
+ assert(!_called);
+ _called = true;
+ notify();
+ }
+
+ private boolean _called;
+ }
+
+ private static class pingI
+ {
+ public void response()
+ {
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class isAI
+ {
+ public void response(boolean r)
+ {
+ test(r);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class idI
+ {
+ public void response(String id)
+ {
+ test(id.equals(_MyDerivedClassDisp.ice_staticId()));
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class idsI
+ {
+ public void response(String[] ids)
+ {
+ test(ids.length == 3);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opVoidI
+ {
+ public void response()
+ {
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opByteI
+ {
+ public void response(byte r, byte b)
+ {
+ test(b == (byte)0xf0);
+ test(r == (byte)0xff);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opBoolI
+ {
+ public void response(boolean r, boolean b)
+ {
+ test(b);
+ test(!r);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opShortIntLongI
+ {
+ public void response(long r, short s, int i, long l)
+ {
+ test(s == 10);
+ test(i == 11);
+ test(l == 12);
+ test(r == 12);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opFloatDoubleI
+ {
+ public void response(double r, float f, double d)
+ {
+ test(f == 3.14f);
+ test(d == 1.1E10);
+ test(r == 1.1E10);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opStringI
+ {
+ public void response(String r, String s)
+ {
+ test(s.equals("world hello"));
+ test(r.equals("hello world"));
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opMyEnumI
+ {
+ public void response(MyEnum r, MyEnum e)
+ {
+ test(e == MyEnum.enum2);
+ test(r == MyEnum.enum3);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opMyClassI
+ {
+ opMyClassI(Ice.Communicator communicator)
+ {
+ _communicator = communicator;
+ }
+
+ public void response(MyClassPrx r, MyClassPrx c1, MyClassPrx c2)
+ {
+ test(c1.ice_getIdentity().equals(Ice.Util.stringToIdentity("test")));
+ test(c2.ice_getIdentity().equals(Ice.Util.stringToIdentity("noSuchIdentity")));
+ test(r.ice_getIdentity().equals(Ice.Util.stringToIdentity("test")));
+ // We can't do the callbacks below in connection serialization mode.
+ if(_communicator.getProperties().getPropertyAsInt("Ice.ThreadPool.Client.Serialize") == 0)
+ {
+ r.opVoid();
+ c1.opVoid();
+ try
+ {
+ c2.opVoid();
+ test(false);
+ }
+ catch(Ice.ObjectNotExistException ex)
+ {
+ }
+ }
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ private Ice.Communicator _communicator;
+ }
+
+ private static class opStructI
+ {
+ opStructI(Ice.Communicator communicator)
+ {
+ _communicator = communicator;
+ }
+
+ public void response(Structure rso, Structure so)
+ {
+ test(rso.p == null);
+ test(rso.e == MyEnum.enum2);
+ test(rso.s.s.equals("def"));
+ test(so.e == MyEnum.enum3);
+ test(so.s.s.equals("a new string"));
+ // We can't do the callbacks below in connection serialization mode.
+ if(_communicator.getProperties().getPropertyAsInt("Ice.ThreadPool.Client.Serialize") == 0)
+ {
+ so.p.opVoid();
+ }
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ private Ice.Communicator _communicator;
+ }
+
+ private static class opByteSI
+ {
+ public void response(byte[] rso, byte[] bso)
+ {
+ test(bso.length == 4);
+ test(bso[0] == (byte)0x22);
+ test(bso[1] == (byte)0x12);
+ test(bso[2] == (byte)0x11);
+ test(bso[3] == (byte)0x01);
+ test(rso.length == 8);
+ test(rso[0] == (byte)0x01);
+ test(rso[1] == (byte)0x11);
+ test(rso[2] == (byte)0x12);
+ test(rso[3] == (byte)0x22);
+ test(rso[4] == (byte)0xf1);
+ test(rso[5] == (byte)0xf2);
+ test(rso[6] == (byte)0xf3);
+ test(rso[7] == (byte)0xf4);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opBoolSI
+ {
+ public void response(boolean[] rso, boolean[] bso)
+ {
+ test(bso.length == 4);
+ test(bso[0]);
+ test(bso[1]);
+ test(!bso[2]);
+ test(!bso[3]);
+ test(rso.length == 3);
+ test(!rso[0]);
+ test(rso[1]);
+ test(rso[2]);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opShortIntLongSI
+ {
+ public void response(long[] rso, short[] sso, int[] iso, long[] lso)
+ {
+ test(sso.length == 3);
+ test(sso[0] == 1);
+ test(sso[1] == 2);
+ test(sso[2] == 3);
+ test(iso.length == 4);
+ test(iso[0] == 8);
+ test(iso[1] == 7);
+ test(iso[2] == 6);
+ test(iso[3] == 5);
+ test(lso.length == 6);
+ test(lso[0] == 10);
+ test(lso[1] == 30);
+ test(lso[2] == 20);
+ test(lso[3] == 10);
+ test(lso[4] == 30);
+ test(lso[5] == 20);
+ test(rso.length == 3);
+ test(rso[0] == 10);
+ test(rso[1] == 30);
+ test(rso[2] == 20);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opFloatDoubleSI
+ {
+ public void response(double[] rso, float[] fso, double[] dso)
+ {
+ test(fso.length == 2);
+ test(fso[0] == 3.14f);
+ test(fso[1] == 1.11f);
+ test(dso.length == 3);
+ test(dso[0] == 1.3E10);
+ test(dso[1] == 1.2E10);
+ test(dso[2] == 1.1E10);
+ test(rso.length == 5);
+ test(rso[0] == 1.1E10);
+ test(rso[1] == 1.2E10);
+ test(rso[2] == 1.3E10);
+ test((float)rso[3] == 3.14f);
+ test((float)rso[4] == 1.11f);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opStringSI
+ {
+ public void response(String[] rso, String[] sso)
+ {
+ test(sso.length == 4);
+ test(sso[0].equals("abc"));
+ test(sso[1].equals("de"));
+ test(sso[2].equals("fghi"));
+ test(sso[3].equals("xyz"));
+ test(rso.length == 3);
+ test(rso[0].equals("fghi"));
+ test(rso[1].equals("de"));
+ test(rso[2].equals("abc"));
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opByteSSI
+ {
+ public void response(byte[][] rso, byte[][] bso)
+ {
+ test(bso.length == 2);
+ test(bso[0].length == 1);
+ test(bso[0][0] == (byte)0xff);
+ test(bso[1].length == 3);
+ test(bso[1][0] == (byte)0x01);
+ test(bso[1][1] == (byte)0x11);
+ test(bso[1][2] == (byte)0x12);
+ test(rso.length == 4);
+ test(rso[0].length == 3);
+ test(rso[0][0] == (byte)0x01);
+ test(rso[0][1] == (byte)0x11);
+ test(rso[0][2] == (byte)0x12);
+ test(rso[1].length == 1);
+ test(rso[1][0] == (byte)0xff);
+ test(rso[2].length == 1);
+ test(rso[2][0] == (byte)0x0e);
+ test(rso[3].length == 2);
+ test(rso[3][0] == (byte)0xf2);
+ test(rso[3][1] == (byte)0xf1);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opBoolSSI
+ {
+ public void response(boolean[][] rso, boolean[][] bso)
+ {
+ test(bso.length == 4);
+ test(bso[0].length == 1);
+ test(bso[0][0]);
+ test(bso[1].length == 1);
+ test(!bso[1][0]);
+ test(bso[2].length == 2);
+ test(bso[2][0]);
+ test(bso[2][1]);
+ test(bso[3].length == 3);
+ test(!bso[3][0]);
+ test(!bso[3][1]);
+ test(bso[3][2]);
+ test(rso.length == 3);
+ test(rso[0].length == 2);
+ test(rso[0][0]);
+ test(rso[0][1]);
+ test(rso[1].length == 1);
+ test(!rso[1][0]);
+ test(rso[2].length == 1);
+ test(rso[2][0]);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opShortIntLongSSI
+ {
+ public void response(long[][] rso, short[][] sso, int[][] iso, long[][] lso)
+ {
+ test(rso.length == 1);
+ test(rso[0].length == 2);
+ test(rso[0][0] == 496);
+ test(rso[0][1] == 1729);
+ test(sso.length == 3);
+ test(sso[0].length == 3);
+ test(sso[0][0] == 1);
+ test(sso[0][1] == 2);
+ test(sso[0][2] == 5);
+ test(sso[1].length == 1);
+ test(sso[1][0] == 13);
+ test(sso[2].length == 0);
+ test(iso.length == 2);
+ test(iso[0].length == 1);
+ test(iso[0][0] == 42);
+ test(iso[1].length == 2);
+ test(iso[1][0] == 24);
+ test(iso[1][1] == 98);
+ test(lso.length == 2);
+ test(lso[0].length == 2);
+ test(lso[0][0] == 496);
+ test(lso[0][1] == 1729);
+ test(lso[1].length == 2);
+ test(lso[1][0] == 496);
+ test(lso[1][1] == 1729);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opFloatDoubleSSI
+ {
+ public void response(double[][] rso, float[][] fso, double[][] dso)
+ {
+ test(fso.length == 3);
+ test(fso[0].length == 1);
+ test(fso[0][0] == 3.14f);
+ test(fso[1].length == 1);
+ test(fso[1][0] == 1.11f);
+ test(fso[2].length == 0);
+ test(dso.length == 1);
+ test(dso[0].length == 3);
+ test(dso[0][0] == 1.1E10);
+ test(dso[0][1] == 1.2E10);
+ test(dso[0][2] == 1.3E10);
+ test(rso.length == 2);
+ test(rso[0].length == 3);
+ test(rso[0][0] == 1.1E10);
+ test(rso[0][1] == 1.2E10);
+ test(rso[0][2] == 1.3E10);
+ test(rso[1].length == 3);
+ test(rso[1][0] == 1.1E10);
+ test(rso[1][1] == 1.2E10);
+ test(rso[1][2] == 1.3E10);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opStringSSI
+ {
+ public void response(String[][] rso, String[][] sso)
+ {
+ test(sso.length == 5);
+ test(sso[0].length == 1);
+ test(sso[0][0].equals("abc"));
+ test(sso[1].length == 2);
+ test(sso[1][0].equals("de"));
+ test(sso[1][1].equals("fghi"));
+ test(sso[2].length == 0);
+ test(sso[3].length == 0);
+ test(sso[4].length == 1);
+ test(sso[4][0].equals("xyz"));
+ test(rso.length == 3);
+ test(rso[0].length == 1);
+ test(rso[0][0].equals("xyz"));
+ test(rso[1].length == 0);
+ test(rso[2].length == 0);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opStringSSSI
+ {
+ public void response(String[][][] rsso, String[][][] ssso)
+ {
+ test(ssso.length == 5);
+ test(ssso[0].length == 2);
+ test(ssso[0][0].length == 2);
+ test(ssso[0][1].length == 1);
+ test(ssso[1].length == 1);
+ test(ssso[1][0].length == 1);
+ test(ssso[2].length == 2);
+ test(ssso[2][0].length == 2);
+ test(ssso[2][1].length == 1);
+ test(ssso[3].length == 1);
+ test(ssso[3][0].length == 1);
+ test(ssso[4].length == 0);
+ test(ssso[0][0][0].equals("abc"));
+ test(ssso[0][0][1].equals("de"));
+ test(ssso[0][1][0].equals("xyz"));
+ test(ssso[1][0][0].equals("hello"));
+ test(ssso[2][0][0].equals(""));
+ test(ssso[2][0][1].equals(""));
+ test(ssso[2][1][0].equals("abcd"));
+ test(ssso[3][0][0].equals(""));
+
+ test(rsso.length == 3);
+ test(rsso[0].length == 0);
+ test(rsso[1].length == 1);
+ test(rsso[1][0].length == 1);
+ test(rsso[2].length == 2);
+ test(rsso[2][0].length == 2);
+ test(rsso[2][1].length == 1);
+ test(rsso[1][0][0].equals(""));
+ test(rsso[2][0][0].equals(""));
+ test(rsso[2][0][1].equals(""));
+ test(rsso[2][1][0].equals("abcd"));
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opByteBoolDI
+ {
+ public void response(java.util.Map<Byte, Boolean> ro, java.util.Map<Byte, Boolean> _do)
+ {
+ java.util.Map<Byte, Boolean> di1 = new java.util.HashMap<Byte, Boolean>();
+ di1.put((byte)10, Boolean.TRUE);
+ di1.put((byte)100, Boolean.FALSE);
+ test(_do.equals(di1));
+ test(ro.size() == 4);
+ test(ro.get((byte)10).booleanValue() == true);
+ test(ro.get((byte)11).booleanValue() == false);
+ test(ro.get((byte)100).booleanValue() == false);
+ test(ro.get((byte)101).booleanValue() == true);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opShortIntDI
+ {
+ public void response(java.util.Map<Short, Integer> ro, java.util.Map<Short, Integer> _do)
+ {
+ java.util.Map<Short, Integer> di1 = new java.util.HashMap<Short, Integer>();
+ di1.put((short)110, -1);
+ di1.put((short)1100, 123123);
+ test(_do.equals(di1));
+ test(ro.size() == 4);
+ test(ro.get((short)110).intValue() == -1);
+ test(ro.get((short)111).intValue() == -100);
+ test(ro.get((short)1100).intValue() == 123123);
+ test(ro.get((short)1101).intValue() == 0);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opLongFloatDI
+ {
+ public void response(java.util.Map<Long, Float> ro, java.util.Map<Long, Float> _do)
+ {
+ java.util.Map<Long, Float> di1 = new java.util.HashMap<Long, Float>();
+ di1.put(999999110L, Float.valueOf((float)-1.1f));
+ di1.put(999999111L, Float.valueOf((float)123123.2f));
+ test(_do.equals(di1));
+ test(ro.size() == 4);
+ test(ro.get(999999110L).floatValue() == -1.1f);
+ test(ro.get(999999120L).floatValue() == -100.4f);
+ test(ro.get(999999111L).floatValue() == 123123.2f);
+ test(ro.get(999999130L).floatValue() == 0.5f);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opStringStringDI
+ {
+ public void response(java.util.Map<String, String> ro, java.util.Map<String, String> _do)
+ {
+ java.util.Map<String, String> di1 = new java.util.HashMap<String, String>();
+ di1.put("foo", "abc -1.1");
+ di1.put("bar", "abc 123123.2");
+ test(_do.equals(di1));
+ test(ro.size() == 4);
+ test(ro.get("foo").equals("abc -1.1"));
+ test(ro.get("FOO").equals("abc -100.4"));
+ test(ro.get("bar").equals("abc 123123.2"));
+ test(ro.get("BAR").equals("abc 0.5"));
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opStringMyEnumDI
+ {
+ public void response(java.util.Map<String, MyEnum> ro, java.util.Map<String, MyEnum> _do)
+ {
+ java.util.Map<String, MyEnum> di1 = new java.util.HashMap<String, MyEnum>();
+ di1.put("abc", MyEnum.enum1);
+ di1.put("", MyEnum.enum2);
+ test(_do.equals(di1));
+ test(ro.size() == 4);
+ test(ro.get("abc") == MyEnum.enum1);
+ test(ro.get("qwerty") == MyEnum.enum3);
+ test(ro.get("") == MyEnum.enum2);
+ test(ro.get("Hello!!") == MyEnum.enum2);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opMyEnumStringDI
+ {
+ public void response(java.util.Map<MyEnum, String> ro, java.util.Map<MyEnum, String> _do)
+ {
+ java.util.Map<MyEnum, String> di1 = new java.util.HashMap<MyEnum, String>();
+ di1.put(MyEnum.enum1, "abc");
+ test(_do.equals(di1));
+ test(ro.size() == 3);
+ test(ro.get(MyEnum.enum1).equals("abc"));
+ test(ro.get(MyEnum.enum2).equals("Hello!!"));
+ test(ro.get(MyEnum.enum3).equals("qwerty"));
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opMyStructMyEnumDI
+ {
+ public void response(java.util.Map<MyStruct, MyEnum> ro, java.util.Map<MyStruct, MyEnum> _do)
+ {
+ MyStruct s11 = new MyStruct(1, 1);
+ MyStruct s12 = new MyStruct(1, 2);
+ java.util.Map<MyStruct, MyEnum> di1 = new java.util.HashMap<MyStruct, MyEnum>();
+ di1.put(s11, MyEnum.enum1);
+ di1.put(s12, MyEnum.enum2);
+ test(_do.equals(di1));
+ MyStruct s22 = new MyStruct(2, 2);
+ MyStruct s23 = new MyStruct(2, 3);
+ test(ro.size() == 4);
+ test(ro.get(s11) == MyEnum.enum1);
+ test(ro.get(s12) == MyEnum.enum2);
+ test(ro.get(s22) == MyEnum.enum3);
+ test(ro.get(s23) == MyEnum.enum2);
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opIntSI
+ {
+ opIntSI(int l)
+ {
+ _l = l;
+ }
+
+ public void response(int[] r)
+ {
+ test(r.length == _l);
+ for(int j = 0; j < r.length; ++j)
+ {
+ test(r[j] == -j);
+ }
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private int _l;
+ private Callback callback = new Callback();
+ }
+
+ private static class opDerivedI
+ {
+ public void response()
+ {
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opDoubleMarshalingI
+ {
+ public void response()
+ {
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opIdempotentI
+ {
+ public void response()
+ {
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ private static class opNonmutatingI
+ {
+ public void response()
+ {
+ callback.called();
+ }
+
+ public void check()
+ {
+ callback.check();
+ }
+
+ private Callback callback = new Callback();
+ }
+
+ public static void
+ twowaysLambdaAMI(test.TestHelper helper, MyClassPrx p)
+ {
+ Ice.Communicator communicator = helper.communicator();
+
+ {
+ pingI cb = new pingI();
+ p.begin_ice_ping(() -> cb.response(), (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ isAI cb = new isAI();
+ p.begin_ice_isA(_MyClassDisp.ice_staticId(), (boolean r) -> cb.response(r), (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ idI cb = new idI();
+ p.begin_ice_id((String id) -> cb.response(id), (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ idsI cb = new idsI();
+ p.begin_ice_ids((String[] ids) -> cb.response(ids), (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opVoidI cb = new opVoidI();
+ p.begin_opVoid(() -> cb.response(), (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opByteI cb = new opByteI();
+ p.begin_opByte((byte)0xff, (byte)0x0f,
+ (byte p1, byte p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opBoolI cb = new opBoolI();
+ p.begin_opBool(true, false,
+ (boolean p1, boolean p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opShortIntLongI cb = new opShortIntLongI();
+ p.begin_opShortIntLong((short)10, 11, 12L,
+ (long p1, short p2, int p3, long p4) -> cb.response(p1, p2, p3, p4),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opFloatDoubleI cb = new opFloatDoubleI();
+ p.begin_opFloatDouble(3.14f, 1.1E10,
+ (double p1, float p2, double p3) -> cb.response(p1, p2, p3),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opStringI cb = new opStringI();
+ p.begin_opString("hello", "world",
+ (String p1, String p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opMyEnumI cb = new opMyEnumI();
+ p.begin_opMyEnum(MyEnum.enum2,
+ (MyEnum p1, MyEnum p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opMyClassI cb = new opMyClassI(communicator);
+ p.begin_opMyClass(p,
+ (MyClassPrx p1, MyClassPrx p2, MyClassPrx p3) -> cb.response(p1, p2, p3),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ Structure si1 = new Structure();
+ si1.p = p;
+ si1.e = MyEnum.enum3;
+ si1.s = new AnotherStruct();
+ si1.s.s = "abc";
+ Structure si2 = new Structure();
+ si2.p = null;
+ si2.e = MyEnum.enum2;
+ si2.s = new AnotherStruct();
+ si2.s.s = "def";
+
+ opStructI cb = new opStructI(communicator);
+ p.begin_opStruct(si1, si2,
+ (Structure p1, Structure p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final byte[] bsi1 =
+ {
+ (byte)0x01,
+ (byte)0x11,
+ (byte)0x12,
+ (byte)0x22
+ };
+ final byte[] bsi2 =
+ {
+ (byte)0xf1,
+ (byte)0xf2,
+ (byte)0xf3,
+ (byte)0xf4
+ };
+
+ opByteSI cb = new opByteSI();
+ p.begin_opByteS(bsi1, bsi2,
+ (byte[] p1, byte[] p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final boolean[] bsi1 = { true, true, false };
+ final boolean[] bsi2 = { false };
+
+ opBoolSI cb = new opBoolSI();
+ p.begin_opBoolS(bsi1, bsi2,
+ (boolean[] p1, boolean[] p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final short[] ssi = { 1, 2, 3 };
+ final int[] isi = { 5, 6, 7, 8 };
+ final long[] lsi = { 10, 30, 20 };
+
+ opShortIntLongSI cb = new opShortIntLongSI();
+ p.begin_opShortIntLongS(ssi, isi, lsi,
+ (long[] p1, short[] p2, int[] p3, long[] p4) -> cb.response(p1, p2, p3, p4),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final float[] fsi = { 3.14f, 1.11f };
+ final double[] dsi = { 1.1E10, 1.2E10, 1.3E10 };
+
+ opFloatDoubleSI cb = new opFloatDoubleSI();
+ p.begin_opFloatDoubleS(fsi, dsi,
+ (double[] p1, float[] p2, double[] p3) -> cb.response(p1, p2, p3),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final String[] ssi1 = { "abc", "de", "fghi" };
+ final String[] ssi2 = { "xyz" };
+
+ opStringSI cb = new opStringSI();
+ p.begin_opStringS(ssi1, ssi2,
+ (String[] p1, String[] p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final byte[][] bsi1 =
+ {
+ { (byte)0x01, (byte)0x11, (byte)0x12 },
+ { (byte)0xff }
+ };
+ final byte[][] bsi2 =
+ {
+ { (byte)0x0e },
+ { (byte)0xf2, (byte)0xf1 }
+ };
+
+ opByteSSI cb = new opByteSSI();
+ p.begin_opByteSS(bsi1, bsi2,
+ (byte[][] p1, byte[][] p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final boolean[][] bsi1 =
+ {
+ { true },
+ { false },
+ { true, true}
+ };
+
+ final boolean[][] bsi2 =
+ {
+ { false, false, true }
+ };
+
+ opBoolSSI cb = new opBoolSSI();
+ p.begin_opBoolSS(bsi1, bsi2,
+ (boolean[][] rso, boolean[][] bso) -> cb.response(rso, bso),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final short[][] ssi=
+ {
+ {1, 2, 5},
+ {13},
+ {}
+ };
+ final int[][] isi =
+ {
+ {24, 98},
+ {42}
+ };
+ final long[][] lsi =
+ {
+ {496, 1729},
+ };
+
+ opShortIntLongSSI cb = new opShortIntLongSSI();
+ p.begin_opShortIntLongSS(ssi, isi, lsi,
+ (long[][] rso, short[][] sso, int[][] iso, long[][] lso) -> cb.response(rso, sso, iso, lso),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+ {
+ final float[][] fsi =
+ {
+ { 3.14f },
+ { 1.11f },
+ { },
+ };
+ final double[][] dsi =
+ {
+ { 1.1E10, 1.2E10, 1.3E10 }
+ };
+
+ opFloatDoubleSSI cb = new opFloatDoubleSSI();
+ p.begin_opFloatDoubleSS(fsi, dsi,
+ (double[][] p1, float[][] p2, double[][] p3) -> cb.response(p1, p2, p3),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final String[][] ssi1 =
+ {
+ { "abc" },
+ { "de", "fghi" }
+ };
+ final String[][] ssi2 =
+ {
+ { },
+ { },
+ { "xyz" }
+ };
+
+ opStringSSI cb = new opStringSSI();
+ p.begin_opStringSS(ssi1, ssi2,
+ (String[][] p1, String[][] p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ final String[][][] sssi1 =
+ {
+ {
+ {
+ "abc", "de"
+ },
+ {
+ "xyz"
+ }
+ },
+ {
+ {
+ "hello"
+ }
+ }
+ };
+
+ final String[][][] sssi2 =
+ {
+ {
+ {
+ "", ""
+ },
+ {
+ "abcd"
+ }
+ },
+ {
+ {
+ ""
+ }
+ },
+ {
+ }
+ };
+
+ opStringSSSI cb = new opStringSSSI();
+ p.begin_opStringSSS(sssi1, sssi2,
+ (String[][][] p1, String[][][] p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ java.util.Map<Byte, Boolean> di1 = new java.util.HashMap<Byte, Boolean>();
+ di1.put((byte)10, Boolean.TRUE);
+ di1.put((byte)100, Boolean.FALSE);
+ java.util.Map<Byte, Boolean> di2 = new java.util.HashMap<Byte, Boolean>();
+ di2.put((byte)10, Boolean.TRUE);
+ di2.put((byte)11, Boolean.FALSE);
+ di2.put((byte)101, Boolean.TRUE);
+
+ opByteBoolDI cb = new opByteBoolDI();
+ p.begin_opByteBoolD(di1, di2,
+ (Map<Byte, Boolean> p1, Map<Byte, Boolean> p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ java.util.Map<Short, Integer> di1 = new java.util.HashMap<Short, Integer>();
+ di1.put((short)110, -1);
+ di1.put((short)1100, 123123);
+ java.util.Map<Short, Integer> di2 = new java.util.HashMap<Short, Integer>();
+ di2.put((short)110, -1);
+ di2.put((short)111, -100);
+ di2.put((short)1101, 0);
+
+ opShortIntDI cb = new opShortIntDI();
+ p.begin_opShortIntD(di1, di2,
+ (Map<Short, Integer> p1, Map<Short, Integer> p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ java.util.Map<Long, Float> di1 = new java.util.HashMap<Long, Float>();
+ di1.put(999999110L, Float.valueOf((float)-1.1f));
+ di1.put(999999111L, Float.valueOf((float)123123.2f));
+ java.util.Map<Long, Float> di2 = new java.util.HashMap<Long, Float>();
+ di2.put(999999110L, Float.valueOf((float)-1.1f));
+ di2.put(999999120L, Float.valueOf((float)-100.4f));
+ di2.put(999999130L, Float.valueOf((float)0.5f));
+
+ opLongFloatDI cb = new opLongFloatDI();
+ p.begin_opLongFloatD(di1, di2,
+ (Map<Long, Float> p1, Map<Long, Float> p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ java.util.Map<String, String> di1 = new java.util.HashMap<String, String>();
+ di1.put("foo", "abc -1.1");
+ di1.put("bar", "abc 123123.2");
+ java.util.Map<String, String> di2 = new java.util.HashMap<String, String>();
+ di2.put("foo", "abc -1.1");
+ di2.put("FOO", "abc -100.4");
+ di2.put("BAR", "abc 0.5");
+
+ opStringStringDI cb = new opStringStringDI();
+ p.begin_opStringStringD(di1, di2,
+ (Map<String, String> p1, Map<String, String> p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ java.util.Map<String, MyEnum> di1 = new java.util.HashMap<String, MyEnum>();
+ di1.put("abc", MyEnum.enum1);
+ di1.put("", MyEnum.enum2);
+ java.util.Map<String, MyEnum> di2 = new java.util.HashMap<String, MyEnum>();
+ di2.put("abc", MyEnum.enum1);
+ di2.put("qwerty", MyEnum.enum3);
+ di2.put("Hello!!", MyEnum.enum2);
+
+ opStringMyEnumDI cb = new opStringMyEnumDI();
+ p.begin_opStringMyEnumD(di1, di2,
+ (Map<String, MyEnum> p1, Map<String, MyEnum> p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ java.util.Map<MyEnum, String> di1 = new java.util.HashMap<MyEnum, String>();
+ di1.put(MyEnum.enum1, "abc");
+ java.util.Map<MyEnum, String> di2 = new java.util.HashMap<MyEnum, String>();
+ di2.put(MyEnum.enum2, "Hello!!");
+ di2.put(MyEnum.enum3, "qwerty");
+
+ opMyEnumStringDI cb = new opMyEnumStringDI();
+ p.begin_opMyEnumStringD(di1, di2,
+ (Map<MyEnum, String> p1, Map<MyEnum, String> p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ MyStruct s11 = new MyStruct(1, 1);
+ MyStruct s12 = new MyStruct(1, 2);
+ java.util.Map<MyStruct, MyEnum> di1 = new java.util.HashMap<MyStruct, MyEnum>();
+ di1.put(s11, MyEnum.enum1);
+ di1.put(s12, MyEnum.enum2);
+ MyStruct s22 = new MyStruct(2, 2);
+ MyStruct s23 = new MyStruct(2, 3);
+ java.util.Map<MyStruct, MyEnum> di2 = new java.util.HashMap<MyStruct, MyEnum>();
+ di2.put(s11, MyEnum.enum1);
+ di2.put(s22, MyEnum.enum3);
+ di2.put(s23, MyEnum.enum2);
+
+ opMyStructMyEnumDI cb = new opMyStructMyEnumDI();
+ p.begin_opMyStructMyEnumD(di1, di2,
+ (Map<MyStruct, MyEnum> p1, Map<MyStruct, MyEnum> p2) -> cb.response(p1, p2),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ int[] lengths = { 0, 1, 2, 126, 127, 128, 129, 253, 254, 255, 256, 257, 1000 };
+
+ for(int l : lengths)
+ {
+ int[] s = new int[l];
+ for(int i = 0; i < s.length; ++i)
+ {
+ s[i] = i;
+ }
+ opIntSI cb = new opIntSI(l);
+ p.begin_opIntS(s,
+ (int[] p1) -> cb.response(p1),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+ }
+
+ {
+ double d = 1278312346.0 / 13.0;
+ double[] ds = new double[5];
+ for(int i = 0; i < 5; i++)
+ {
+ ds[i] = d;
+ }
+ opDoubleMarshalingI cb = new opDoubleMarshalingI();
+ p.begin_opDoubleMarshaling(d, ds,
+ () -> cb.response(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opIdempotentI cb = new opIdempotentI();
+ p.begin_opIdempotent(
+ () -> cb.response(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ opNonmutatingI cb = new opNonmutatingI();
+ p.begin_opNonmutating(
+ () -> cb.response(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+
+ {
+ MyDerivedClassPrx derived = MyDerivedClassPrxHelper.checkedCast(p);
+ test(derived != null);
+ opDerivedI cb = new opDerivedI();
+ derived.begin_opDerived(
+ () -> cb.response(),
+ (Ice.Exception ex) -> test(false));
+ cb.check();
+ }
+ }
+}
diff --git a/java-compat/test/lambda/src/main/java/Ice/optional/lambda/AllTests.java b/java-compat/test/lambda/src/main/java/Ice/optional/lambda/AllTests.java
new file mode 100644
index 00000000000..49aaae9e148
--- /dev/null
+++ b/java-compat/test/lambda/src/main/java/Ice/optional/lambda/AllTests.java
@@ -0,0 +1,791 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+package test.Ice.optional.lambda;
+import java.io.PrintWriter;
+
+import test.Ice.optional.Test.*;
+import test.Ice.optional.SerializableClass;
+
+public class AllTests
+{
+ private static void
+ test(boolean b)
+ {
+ if(!b)
+ {
+ throw new RuntimeException();
+ }
+ }
+
+ private static class CallbackBase
+ {
+ CallbackBase()
+ {
+ _called = false;
+ }
+
+ public synchronized void check()
+ {
+ while(!_called)
+ {
+ try
+ {
+ wait();
+ }
+ catch(InterruptedException ex)
+ {
+ }
+ }
+
+ _called = false;
+ test(_value);
+ _value = false;
+ }
+
+ public synchronized void called(boolean value)
+ {
+ assert(!_called);
+ _value = value;
+ _called = true;
+ notify();
+ }
+
+ private boolean _value;
+ private boolean _called;
+ }
+
+ public static InitialPrx
+ allTests(test.TestHelper helper)
+ {
+ Ice.Communicator communicator = helper.communicator();
+ PrintWriter out = helper.getWriter();
+
+ String ref = "initial:" + helper.getTestEndpoint(0);
+ Ice.ObjectPrx base = communicator.stringToProxy(ref);
+
+ InitialPrx initial = InitialPrxHelper.uncheckedCast(base);
+
+ out.print("testing optional parameters with async lambda callbacks... ");
+ out.flush();
+ final boolean reqParams = initial.supportsRequiredParams();
+
+ final boolean supportsJavaSerializable = initial.supportsJavaSerializable();
+
+ {
+ Ice.ByteOptional p1 = new Ice.ByteOptional((byte)56);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opByte(p1.get(),
+ (Ice.ByteOptional ret, Ice.ByteOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opByte(p1,
+ (Ice.ByteOptional ret, Ice.ByteOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.BooleanOptional p1 = new Ice.BooleanOptional(true);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opBool(p1.get(),
+ (Ice.BooleanOptional ret, Ice.BooleanOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opBool(p1,
+ (Ice.BooleanOptional ret, Ice.BooleanOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.ShortOptional p1 = new Ice.ShortOptional((short)56);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opShort(p1.get(),
+ (Ice.ShortOptional ret, Ice.ShortOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opShort(p1,
+ (Ice.ShortOptional ret, Ice.ShortOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.IntOptional p1 = new Ice.IntOptional(56);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opInt(p1.get(),
+ (Ice.IntOptional ret, Ice.IntOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opInt(p1,
+ (Ice.IntOptional ret, Ice.IntOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.LongOptional p1 = new Ice.LongOptional(56);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opLong(p1.get(),
+ (Ice.LongOptional ret, Ice.LongOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opLong(p1,
+ (Ice.LongOptional ret, Ice.LongOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.FloatOptional p1 = new Ice.FloatOptional(1.0f);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFloat(p1.get(),
+ (Ice.FloatOptional ret, Ice.FloatOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFloat(p1,
+ (Ice.FloatOptional ret, Ice.FloatOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.DoubleOptional p1 = new Ice.DoubleOptional(1.0);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opDouble(p1.get(),
+ (Ice.DoubleOptional ret, Ice.DoubleOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opDouble(p1,
+ (Ice.DoubleOptional ret, Ice.DoubleOptional p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<String> p1 = new Ice.Optional<String>("test");
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opString(p1.get(),
+ (Ice.Optional<String> ret, Ice.Optional<String> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opString(p1,
+ (Ice.Optional<String> ret, Ice.Optional<String> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<MyEnum> p1 = new Ice.Optional<MyEnum>(MyEnum.MyEnumMember);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opMyEnum(p1.get(),
+ (Ice.Optional<MyEnum> ret, Ice.Optional<MyEnum> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opMyEnum(p1,
+ (Ice.Optional<MyEnum> ret, Ice.Optional<MyEnum> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get() == p2.get() && ret.get() == p1.get()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<SmallStruct> p1 = new Ice.Optional<SmallStruct>(new SmallStruct((byte)56));
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opSmallStruct(p1.get(),
+ (Ice.Optional<SmallStruct> ret, Ice.Optional<SmallStruct> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opSmallStruct(p1,
+ (Ice.Optional<SmallStruct> ret, Ice.Optional<SmallStruct> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<FixedStruct> p1 = new Ice.Optional<FixedStruct>(new FixedStruct((byte)56));
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFixedStruct(p1.get(),
+ (Ice.Optional<FixedStruct> ret, Ice.Optional<FixedStruct> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFixedStruct(p1,
+ (Ice.Optional<FixedStruct> ret, Ice.Optional<FixedStruct> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<VarStruct> p1 = new Ice.Optional<VarStruct>(new VarStruct("test"));
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opVarStruct(p1.get(),
+ (Ice.Optional<VarStruct> ret, Ice.Optional<VarStruct> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opVarStruct(p1,
+ (Ice.Optional<VarStruct> ret, Ice.Optional<VarStruct> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<OneOptional> p1 = new Ice.Optional<OneOptional>(new OneOptional(58));
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opOneOptional(p1.get(),
+ (Ice.Optional<OneOptional> ret, Ice.Optional<OneOptional> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().getA() == p2.get().getA() &&
+ ret.get().getA() == p1.get().getA()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opOneOptional(p1,
+ (Ice.Optional<OneOptional> ret, Ice.Optional<OneOptional> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().getA() == p2.get().getA() &&
+ ret.get().getA() == p1.get().getA()),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<OneOptionalPrx> p1 = new Ice.Optional<OneOptionalPrx>(
+ OneOptionalPrxHelper.uncheckedCast(communicator.stringToProxy("test")));
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opOneOptionalProxy(p1.get(),
+ (Ice.Optional<OneOptionalPrx> ret, Ice.Optional<OneOptionalPrx> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opOneOptionalProxy(p1,
+ (Ice.Optional<OneOptionalPrx> ret, Ice.Optional<OneOptionalPrx> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<byte[]> p1 = new Ice.Optional<byte[]>(new byte[100]);
+ java.util.Arrays.fill(p1.get(), (byte)56);
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opByteSeq(p1.get(),
+ (Ice.Optional<byte[]> ret, Ice.Optional<byte[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opByteSeq(p1,
+ (Ice.Optional<byte[]> ret, Ice.Optional<byte[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<boolean[]> p1 = new Ice.Optional<boolean[]>(new boolean[100]);
+ java.util.Arrays.fill(p1.get(), true);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opBoolSeq(p1.get(),
+ (Ice.Optional<boolean[]> ret, Ice.Optional<boolean[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opBoolSeq(p1,
+ (Ice.Optional<boolean[]> ret, Ice.Optional<boolean[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<short[]> p1 = new Ice.Optional<short[]>(new short[100]);
+ java.util.Arrays.fill(p1.get(), (short)56);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opShortSeq(p1.get(),
+ (Ice.Optional<short[]> ret, Ice.Optional<short[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opShortSeq(p1,
+ (Ice.Optional<short[]> ret, Ice.Optional<short[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<int[]> p1 = new Ice.Optional<int[]>(new int[100]);
+ java.util.Arrays.fill(p1.get(), 56);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opIntSeq(p1.get(),
+ (Ice.Optional<int[]> ret, Ice.Optional<int[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opIntSeq(p1,
+ (Ice.Optional<int[]> ret, Ice.Optional<int[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<long[]> p1 = new Ice.Optional<long[]>(new long[100]);
+ java.util.Arrays.fill(p1.get(), 56);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opLongSeq(p1.get(),
+ (Ice.Optional<long[]> ret, Ice.Optional<long[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opLongSeq(p1,
+ (Ice.Optional<long[]> ret, Ice.Optional<long[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<float[]> p1 = new Ice.Optional<float[]>(new float[100]);
+ java.util.Arrays.fill(p1.get(), 1.0f);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFloatSeq(p1.get(),
+ (Ice.Optional<float[]> ret, Ice.Optional<float[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ CallbackBase cb = new CallbackBase();
+ initial.begin_opFloatSeq(p1,
+ (Ice.Optional<float[]> ret, Ice.Optional<float[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<double[]> p1 = new Ice.Optional<double[]>(new double[100]);
+ java.util.Arrays.fill(p1.get(), 1.0);
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opDoubleSeq(p1.get(),
+ (Ice.Optional<double[]> ret, Ice.Optional<double[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ CallbackBase cb = new CallbackBase();
+ initial.begin_opDoubleSeq(p1,
+ (Ice.Optional<double[]> ret, Ice.Optional<double[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<String[]> p1 = new Ice.Optional<String[]>(new String[10]);
+ java.util.Arrays.fill(p1.get(), "test");
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opStringSeq(p1.get(),
+ (Ice.Optional<String[]> ret, Ice.Optional<String[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opStringSeq(p1,
+ (Ice.Optional<String[]> ret, Ice.Optional<String[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<SmallStruct[]> p1 = new Ice.Optional<SmallStruct[]>();
+ p1.set(new SmallStruct[10]);
+ for(int i = 0; i < p1.get().length; ++i)
+ {
+ p1.get()[i] = new SmallStruct();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opSmallStructSeq(p1.get(),
+ (Ice.Optional<SmallStruct[]> ret, Ice.Optional<SmallStruct[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opSmallStructSeq(p1,
+ (Ice.Optional<SmallStruct[]> ret, Ice.Optional<SmallStruct[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<java.util.List<SmallStruct>> p1 = new Ice.Optional<java.util.List<SmallStruct>>();
+ p1.set(new java.util.ArrayList<SmallStruct>());
+ for(int i = 0; i < 10; ++i)
+ {
+ p1.get().add(new SmallStruct());
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opSmallStructList(p1.get(),
+ (Ice.Optional<java.util.List<SmallStruct>> ret, Ice.Optional<java.util.List<SmallStruct>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ CallbackBase cb = new CallbackBase();
+ initial.begin_opSmallStructList(p1,
+ (Ice.Optional<java.util.List<SmallStruct>> ret, Ice.Optional<java.util.List<SmallStruct>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<FixedStruct[]> p1 = new Ice.Optional<FixedStruct[]>();
+ p1.set(new FixedStruct[10]);
+ for(int i = 0; i < p1.get().length; ++i)
+ {
+ p1.get()[i] = new FixedStruct();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFixedStructSeq(p1.get(),
+ (Ice.Optional<FixedStruct[]> ret, Ice.Optional<FixedStruct[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFixedStructSeq(p1,
+ (Ice.Optional<FixedStruct[]> ret, Ice.Optional<FixedStruct[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<java.util.List<FixedStruct>> p1 = new Ice.Optional<java.util.List<FixedStruct>>();
+ p1.set(new java.util.ArrayList<FixedStruct>());
+ for(int i = 0; i < 10; ++i)
+ {
+ p1.get().add(new FixedStruct());
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFixedStructList(p1.get(),
+ (Ice.Optional<java.util.List<FixedStruct>> ret, Ice.Optional<java.util.List<FixedStruct>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opFixedStructList(p1,
+ (Ice.Optional<java.util.List<FixedStruct>> ret, Ice.Optional<java.util.List<FixedStruct>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<VarStruct[]> p1 = new Ice.Optional<VarStruct[]>();
+ p1.set(new VarStruct[10]);
+ for(int i = 0; i < p1.get().length; ++i)
+ {
+ p1.get()[i] = new VarStruct("");
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opVarStructSeq(p1.get(),
+ (Ice.Optional<VarStruct[]> ret, Ice.Optional<VarStruct[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opVarStructSeq(p1,
+ (Ice.Optional<VarStruct[]> ret, Ice.Optional<VarStruct[]> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && java.util.Arrays.equals(ret.get(), p2.get()) &&
+ java.util.Arrays.equals(ret.get(), p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ if(supportsJavaSerializable)
+ {
+ Ice.Optional<SerializableClass> p1 = new Ice.Optional<SerializableClass>(new SerializableClass(58));
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opSerializable(p1.get(),
+ (Ice.Optional<SerializableClass> ret, Ice.Optional<SerializableClass> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opSerializable(p1,
+ (Ice.Optional<SerializableClass> ret, Ice.Optional<SerializableClass> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<java.util.Map<Integer, Integer>> p1 = new Ice.Optional<java.util.Map<Integer, Integer>>();
+ p1.set(new java.util.HashMap<Integer, Integer>());
+ p1.get().put(1, 2);
+ p1.get().put(2, 3);
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opIntIntDict(p1.get(),
+ (Ice.Optional<java.util.Map<Integer, Integer>> ret,
+ Ice.Optional<java.util.Map<Integer, Integer>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opIntIntDict(p1,
+ (Ice.Optional<java.util.Map<Integer, Integer>> ret,
+ Ice.Optional<java.util.Map<Integer, Integer>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ {
+ Ice.Optional<java.util.Map<String, Integer>> p1 = new Ice.Optional<java.util.Map<String, Integer>>();
+ p1.set(new java.util.HashMap<String, Integer>());
+ p1.get().put("1", 1);
+ p1.get().put("2", 2);
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opStringIntDict(p1.get(),
+ (Ice.Optional<java.util.Map<String, Integer>> ret,
+ Ice.Optional<java.util.Map<String, Integer>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+
+ {
+ final CallbackBase cb = new CallbackBase();
+ initial.begin_opStringIntDict(p1,
+ (Ice.Optional<java.util.Map<String, Integer>> ret,
+ Ice.Optional<java.util.Map<String, Integer>> p2) ->
+ cb.called(ret.isSet() && p2.isSet() && ret.get().equals(p2.get()) && ret.get().equals(p1.get())),
+ (Ice.Exception ex) -> cb.called(false));
+ cb.check();
+ }
+ }
+
+ out.println("ok");
+
+ return initial;
+ }
+}
diff --git a/java/.gitignore b/java/.gitignore
index 60093ca1326..a2b356f9e1b 100644
--- a/java/.gitignore
+++ b/java/.gitignore
@@ -3,3 +3,4 @@ build
.gradle
*.iml
.idea
+local.properties \ No newline at end of file
diff --git a/java/.settings/org.eclipse.jdt.core.prefs b/java/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 60617a4080a..00000000000
--- a/java/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,384 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.7
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=18
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=0
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=80
-org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
-org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
-org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
-org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=8
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=space
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_on_off_tags=false
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=false
-org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
-org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/java/.settings/org.eclipse.jdt.ui.prefs b/java/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 74e568e0217..00000000000
--- a/java/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-formatter_profile=_ZeroC
-formatter_settings_version=12
diff --git a/java/README.md b/java/README.md
index eb20642d368..3ebfde30437 100644
--- a/java/README.md
+++ b/java/README.md
@@ -12,11 +12,10 @@ you prefer, you can also download a [binary distribution][1].
* [JGoodies](#jgoodies)
* [ProGuard](#proguard)
* [Java Application Bundler](#java-application-bundler)
-* [Compiling Ice for Java](#compiling-ice-for-java)
- * [Preparing to Build](#preparing-to-build)
- * [Building Ice for Java](#building-ice-for-java-1)
+* [Building Ice for Java](#building-ice-for-java-1)
* [Installing Ice for Java](#installing-ice-for-java)
* [Running the Java Tests](#running-the-java-tests)
+* [Building the Ice for Android Tests](#building-the-ice-for-android-tests)
* [IceGrid GUI Tool](#icegrid-gui-tool)
## Build Requirements
@@ -50,12 +49,9 @@ JavaFX support, as the Metrics Graph feature is enabled dynamically.
### Gradle
Ice for Java uses the [Gradle][3] build system, and includes the Gradle wrapper
-version 2.4 in the distribution. You cannot build the Ice for Java source
-distribution without an Internet connection. Gradle will download all required
-distribution without an Internet connection. Gradle will download all required
-packages automatically from ZeroC's Maven repository located at
-
- https://repo.zeroc.com/nexus/content/repositories/thirdparty
+in the distribution. You cannot build the Ice for Java source distribution without
+an Internet connection. Gradle will download all required packages automatically
+from Maven Central repository located at http://central.maven.org/maven2/
### Bzip2 Compression
@@ -64,7 +60,9 @@ with [Apache Commons Compress][5].
The Maven package id for the commons-compress JAR file is as follows:
- groupId=org.apache.commons, version=1.14, artifactId=commons-compress
+```
+groupId=org.apache.commons, version=1.14, artifactId=commons-compress
+```
The demos and tests are automatically setup to enable protocol compression by
adding the commons-compress JAR to the manifest class path. For your own
@@ -79,13 +77,17 @@ therefore add significant latency to Ice requests.*
The IceGrid GUI tool uses the JGoodies libraries Forms and Looks. The following
versions were tested:
- JGoodies Forms 1.9.0
- JGoodies Looks 2.7.0
+```
+JGoodies Forms 1.9.0
+JGoodies Looks 2.7.0
+```
The Maven package ids for the JGoodies packages are as follows:
- groupId=com.jgoodies, version=1.9.0, artifactId=jgoodies-forms
- groupId=com.jgoodies, version=2.7.0, artifactId=jgoodies-looks
+```
+groupId=com.jgoodies, version=1.9.0, artifactId=jgoodies-forms
+groupId=com.jgoodies, version=2.7.0, artifactId=jgoodies-looks
+```
### ProGuard
@@ -94,7 +96,9 @@ GUI tool.
The Maven package id for the ProGuard package is as follows:
- groupId='net.sf.proguard', artifactId='proguard-gradle', version='6.0'
+```
+groupId='net.sf.proguard', artifactId='proguard-gradle', version='6.0'
+```
### Java Application Bundler
@@ -103,11 +107,11 @@ bundle for the IceGrid GUI tool.
The Maven package id for the application bundler package is as follows:
- groupId=com.oracle, version=1.0, artifactId=appbundler
-
-## Compiling Ice for Java
+```
+groupId=com.panayotis, version=1.0.2, artifactId=appbundler
+```
-### Preparing to Build
+## Building Ice for Java
The build system requires the Slice to Java compiler from Ice for C++. If you
have not built Ice for C++ in this source distribution, you must set the
@@ -136,10 +140,9 @@ set CPP_CONFIGURATION=Debug
The supported values for `CPP_PLATFORM` are `Win32` and `x64` and the supported
values for `CPP_CONFIGURATION` are `Debug` and `Release`.
-Before building Ice for Java, review the settings in the file
-`gradle.properties` and edit as necessary.
+Before building Ice for Java, review the settings in the file `gradle.properties`
+and edit as necessary.
-### Building Ice for Java
To build Ice, all services, and tests, run
```
@@ -165,17 +168,19 @@ gradlew install
The following JAR files will be installed to `<prefix>/lib`.
- glacier2-3.7.1.jar
- ice-3.7.1.jar
- icebox-3.7.1.jar
- icebt-3.7.1.jar
- icediscovery-3.7.1.jar
- icegrid-3.7.1.jar
- icegridgui.jar
- icelocatordiscovery-3.7.1.jar
- icepatch2-3.7.1.jar
- icessl-3.7.1.jar
- icestorm-3.7.1.jar
+```
+glacier2-3.7.1.jar
+ice-3.7.1.jar
+icebox-3.7.1.jar
+icebt-3.7.1.jar
+icediscovery-3.7.1.jar
+icegrid-3.7.1.jar
+icegridgui.jar
+icelocatordiscovery-3.7.1.jar
+icepatch2-3.7.1.jar
+icessl-3.7.1.jar
+icestorm-3.7.1.jar
+```
POM files are also installed for ease of deployment to a Maven-based
distribution system.
@@ -205,6 +210,100 @@ python allTests.py
If everything worked out, you should see lots of `ok` messages. In case of a
failure, the tests abort with `failed`.
+## Building the Ice for Android Tests
+
+The `test/android/controller` directory contains an Android Studio project for
+the Ice test suite controller.
+
+### Android Build Requirements
+
+Building any Ice application for Android requires Android Studio and the Android
+SDK build tools. We tested with the following components:
+
+- Android Studio 3.0.1
+- Android SDK 24
+- Android Build Tools 27.0.1
+
+Using Ice's Java mapping with Java 8 requires at minimum API level 24:
+
+- Android 7 (API24)
+
+If you want to target a later version of the Android API level for the test
+suite, edit `test/android/controller/gradle.properties` and change the
+following variables:
+
+```
+ice_compileSdkVersion
+ice_minSdkVersion
+ice_targetSdkVersion
+```
+
+*NOTE: Do not use Android Studio to modify the project's settings.*
+
+### Building the Android Test Controller
+
+You must first build Ice for Java refer to [Building Ice for Java](#building-ice-for-java-1)
+for instructions, then follow these steps:
+
+1. Start Android Studio
+2. Select "Open an existing Android Studio project"
+3. Navigate to and select the "java/test/android/controller" subdirectory
+4. Click OK and wait for the project to open and build
+
+### Running the Android Test Suite
+
+The Android Studio project contains a `controller` app for the Ice test
+suite. Prior to running the app, you must disable Android Studio's Instant Run
+feature, located in File / Settings / Build, Execution, Deployment /
+Instant Run.
+
+Tests are started from the dev machine using the `allTests.py` script, similar
+to the other language mappings. The script uses Ice for Python to communicate
+with the Android app, therefore you must build the [Python mapping]
+(../python) before continuing.
+
+You also need to add the `tools\bin`, `platform-tools` and `emulator`
+directories from the Android SDK to your PATH. On macOS, you can use the
+following commands:
+
+```
+export PATH=~/Library/Android/sdk/tools/bin:$PATH
+export PATH=~/Library/Android/sdk/platform-tools:$PATH
+export PATH=~/Library/Android/sdk/emulator:$PATH
+```
+
+On Windows, you can use the following commands:
+
+```
+set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
+set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
+```
+
+Run the tests with the Android emulator by running the following command:
+
+```
+cd test/android
+python allTests.py --androidemulator --controller-app
+```
+
+To run the tests on a specific Android connected device, you can use the
+`--device` argument as shown below:
+
+```
+cd test/android
+python allTests.py --device=ZX1C2234XF --controller-app
+```
+
+You can see the list of connected devices with the `adb` command:
+
+```
+adb devices -l
+```
+
+To run the tests against a `controller` application started from Android
+Studio you should omit the `--controller-app` option from the commands above.
+
## IceGrid GUI Tool
Ice for Java includes the IceGrid GUI tool. It can be found in the file
diff --git a/java/android/.gitignore b/java/android/.gitignore
deleted file mode 100644
index 924783fa777..00000000000
--- a/java/android/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-lib
-build
-.gradle
-local.properties
-*.bks
-*.iml
-/.idea
-test/src/
diff --git a/java/android/Makefile b/java/android/Makefile
deleted file mode 100644
index b38dc1d4ddc..00000000000
--- a/java/android/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# **********************************************************************
-#
-# Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-#
-# This copy of Ice is licensed to you under the terms described in the
-# ICE_LICENSE file included in this distribution.
-#
-# **********************************************************************
-
-ifeq ($(ANDROID_SDK_ROOT),)
-$(error Please set ANDROID_SDK_ROOT to the Android SDK installation directory)
-endif
-
-ifeq ($(GRADLE),)
-GRADLE = ./gradlew
-endif
-
-all: local.properties
- $(GRADLE) $(GRADLEARGS) build
-
-tests: local.properties
- $(GRADLE) $(GRADLEARGS) :test:assemble
-
-srcs: local.properties
- $(GRADLE) $(GRADLEARGS) dist
-
-distclean clean: local.properties
- $(GRADLE) $(GRADLEARGS) clean
-
-local.properties:
- @echo sdk.dir=$(ANDROID_SDK_ROOT) > local.properties
-
-test::
- @python ./allTests.py --androidemulator --controller-app
diff --git a/java/android/README.md b/java/android/README.md
deleted file mode 100644
index df7bb3f47de..00000000000
--- a/java/android/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# Building the Ice for Android Test Suite
-
-This directory contains an Android Studio project for the Ice test suite. For
-ease of development and testing, this project also builds a subset of the Ice
-JAR files. This is not necessary for your own projects as it considerably
-complicates the project configuration.
-
-Building [Ice for Java](../README.md) is the only way to build all of the Ice
-JAR files from source. The JAR files produced by the Ice for Java build fully
-support Android. If you prefer, our [binary distributions][1] include
-pre-compiled JAR files.
-
-## Build Requirements
-
-### Android Development Tools
-
-Building any Ice application for Android requires Android Studio and the Android
-SDK build tools. We tested with the following components:
-
-- Android Studio 3.0.1
-- Android SDK 24
-- Android Build Tools 27.0.1
-
-Using Ice's Java mapping with Java 8 requires at minimum API level 24:
-
-- Android 7 (API24)
-
-If you want to target a later version of the Android API level for the test
-suite, edit `gradle.properties` and change the following variables:
-
-```
-ice_compileSdkVersion
-ice_minSdkVersion
-ice_targetSdkVersion
-```
-
-*NOTE: Do not use Android Studio to modify the project's settings.*
-
-### Slice to Java Compiler
-
-To build this project you'll need the Slice to Java compiler, which generates
-Java code from Slice definitions. The compiler is written in C++. If you have
-a suitable C++ development environment, you can build [Ice for C++](../../cpp)
-yourself. Otherwise, you can obtain the compiler by installing a
-[binary distribution][1].
-
-The project's Gradle-based build system will automatically search for the
-compiler in this repository and in the default installation directories used
-by the binary distributions for our supported platforms.
-
-### Bzip2 Compression
-
-Ice for Java supports protocol compression using the bzip2 classes included
-with [Apache Commons Compress][2].
-
-The Maven package id for the commons-compress JAR file is as follows:
-
-```
-groupId=org.apache.commons, version=1.14, artifactId=commons-compress
-```
-
-The demos and tests are automatically setup to enable protocol compression by
-adding the commons-compress JAR to the manifest class path. For your own
-applications you must add the commons-compress JAR to the application CLASSPATH
-to enable protocol compression.
-
-> *These classes are a pure Java implementation of the bzip2 algorithm and
-therefore add significant latency to Ice requests.*
-
-## Building the Project
-
-Follow these steps to open the project in Android Studio:
-
-1. Start Android Studio
-2. Select "Open an existing Android Studio project"
-3. Navigate to and select the "android" subdirectory
-4. Click OK and wait for the project to open and build
-
-## Running the Test Suite
-
-The Android Studio project contains a `testController` app for the Ice test
-suite. Prior to running the app, you must disable Android Studio's Instant Run
-feature, located in File / Settings / Build, Execution, Deployment /
-Instant Run.
-
-Tests are started from the dev machine using the `allTests.py` script, similar
-to the other language mappings. The script uses Ice for Python to communicate
-with the Android app, therefore you must build the [Python mapping]
-(../../python) before continuing.
-
-You also need to add the `tools\bin`, `platform-tools` and `emulator`
-directories from the Android SDK to your PATH. On macOS, you can use the
-following commands:
-
-```
-export PATH=~/Library/Android/sdk/tools/bin:$PATH
-export PATH=~/Library/Android/sdk/platform-tools:$PATH
-export PATH=~/Library/Android/sdk/emulator:$PATH
-```
-
-On Windows, you can use the following commands:
-
-```
-set PATH=%LOCALAPPDATA%\Android\sdk\tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\platform-tools;%PATH%
-set PATH=%LOCALAPPDATA%\Android\sdk\emulator;%PATH%
-```
-
-Run the tests with the Android emulator by running the following command:
-
-```
-cd android
-python allTests.py --androidemulator --controller-app
-```
-
-To run the tests on a specific Android connected device, you can use the
-`--device` argument as shown below:
-
-```
-python allTests.py --device=ZX1C2234XF --controller-app
-```
-
-You can see the list of connected devices with the `adb` command:
-
-```
-adb devices -l
-```
-
-To run the tests against a `testController` application started from Android
-Studio you should omit the `--controller-app` option from the commands above.
-
-[1]: https://zeroc.com/distributions/ice
-[2]: https://commons.apache.org/proper/commons-compress/
diff --git a/java/android/build.gradle b/java/android/build.gradle
deleted file mode 100755
index cc783940b9f..00000000000
--- a/java/android/build.gradle
+++ /dev/null
@@ -1,36 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-buildscript {
- repositories {
- jcenter()
- google()
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:3.1.2'
- }
-}
-
-subprojects {
- project.ext.topSrcDir = "$rootProject.projectDir/../.."
-
- project.version = iceVersion
- project.group = "com.zeroc"
-
- apply plugin: 'idea'
-}
-
-//
-// Used to build the gradle wrapper to automatically download and install
-// the version of gradle needed to build Ice.
-//
-task wrapper(type: Wrapper) {
- gradleVersion = "4.7"
- distributionType = Wrapper.DistributionType.ALL
-}
diff --git a/java/android/controller/build.gradle b/java/android/controller/build.gradle
deleted file mode 100644
index e9083328403..00000000000
--- a/java/android/controller/build.gradle
+++ /dev/null
@@ -1,84 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'com.android.application'
-apply from: "$rootProject.projectDir/../gradle/ice.gradle"
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
-
-slice {
- java {
- files = fileTree(dir: "$rootProject.projectDir/../../scripts/", includes: ['*.ice'])
- }
-}
-
-repositories {
- jcenter()
- google()
-}
-
-android {
- compileSdkVersion 25
-
- defaultConfig {
- applicationId "com.zeroc.testcontroller"
- minSdkVersion ice_minSdkVersion.toInteger()
- targetSdkVersion ice_targetSdkVersion.toInteger()
- multiDexEnabled true // Necessary otherwise we'd exceed the 64K DEX limit.
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
- }
-
- buildTypes {
- debug {
- //
- // Set minifyEnabled to false because the test app loads classes dynamically.
- //
- minifyEnabled false
- }
-
- release {
- //
- // Set minifyEnabled to false because the test app loads classes dynamically.
- //
- minifyEnabled false
- }
- }
-}
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
-
-task copyBksTask(type: Copy) {
- from "${rootProject.projectDir}/../../certs/client.bks"
- from "${rootProject.projectDir}/../../certs/server.bks"
- into "src/main/res/raw"
-}
-preBuild.dependsOn(copyBksTask)
-
-clean {
- delete("src/main/res/raw/client.bks")
- delete("src/main/res/raw/server.bks")
-}
-
-dependencies {
- implementation localDependency('ice')
- implementation localDependency('icessl')
- implementation localDependency('icediscovery')
- implementation localDependency('icebt')
- implementation project(':test')
- tests.each {
- def name = it.replace('/', '_')
- implementation project(":test_${name}")
- }
- runtimeOnly "org.apache.commons:commons-compress:1.14"
-}
diff --git a/java/android/gradle/GRADLE_LICENSE b/java/android/gradle/GRADLE_LICENSE
deleted file mode 100755
index 80e31a864a8..00000000000
--- a/java/android/gradle/GRADLE_LICENSE
+++ /dev/null
@@ -1,16 +0,0 @@
-License Agreement for Gradle, including the Gradle Wrapper (gradlew)
---------------------------------------------------------------------
-
-Copyright 2007-2011 the original author or authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/java/android/gradle/library.gradle b/java/android/gradle/library.gradle
deleted file mode 100644
index c3a062041b8..00000000000
--- a/java/android/gradle/library.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-jar {
- destinationDir = new File("${libDir}")
-}
-
-clean {
- delete("${libDir}/${jar.archiveName}")
-}
-
-task copyJars(type: Copy, dependsOn: jar) {
- from "${libDir}/${jar.archiveName}"
- into "${DESTDIR}${prefix}/lib"
-}
-task install(dependsOn: copyJars)
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
diff --git a/java/android/gradle/tests.gradle b/java/android/gradle/tests.gradle
deleted file mode 100644
index 3112ef64caa..00000000000
--- a/java/android/gradle/tests.gradle
+++ /dev/null
@@ -1,56 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-ext.tests = [
- "Ice/acm",
- "Ice/adapterDeactivation",
- "Ice/admin",
- "Ice/ami",
- "Ice/background",
- "Ice/binding",
- "Ice/checksum",
- "Ice/classLoader",
- "Ice/custom",
- "Ice/defaultServant",
- "Ice/defaultValue",
- "Ice/dispatcher",
- //"Ice/echo",
- "Ice/enums",
- "Ice/exceptions",
- "Ice/facets",
- //"Ice/faultTolerance",
- //"Ice/hash",
- "Ice/hold",
- "Ice/info",
- "Ice/inheritance",
- "Ice/interceptor",
- "Ice/interrupt",
- "Ice/invoke",
- "Ice/location",
- //"Ice/metrics",
- //"Ice/networkProxy",
- "Ice/objects",
- "Ice/operations",
- "Ice/optional",
- "Ice/packagemd",
- //"Ice/plugin",
- //"Ice/properties",
- "Ice/proxy",
- "Ice/retry",
- "Ice/scope",
- "Ice/seqMapping",
- "Ice/serialize",
- "Ice/servantLocator",
- "Ice/slicing/exceptions",
- "Ice/slicing/objects",
- "Ice/stream",
- "Ice/threadPoolPriority",
- //"Ice/throughput",
- "Ice/timeout",
- "Ice/udp" ]
diff --git a/java/android/settings.gradle b/java/android/settings.gradle
deleted file mode 100644
index 3fb31cf2ad8..00000000000
--- a/java/android/settings.gradle
+++ /dev/null
@@ -1,30 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
-
-// Main source
-include ':ice'
-project(':ice').projectDir = new File('src/Ice')
-include ':icessl'
-project(':icessl').projectDir = new File('src/IceSSL')
-include ':icediscovery'
-project(':icediscovery').projectDir = new File('src/IceDiscovery')
-include ':icebt'
-project(':icebt').projectDir = new File('src/IceBT')
-
-include ':test', ':testController'
-
-project(':test').projectDir = new File('test')
-project(':testController').projectDir = new File('controller')
-tests.each {
- def name = it.replace("/", "_")
- include ":test_${name}"
- project(":test_${name}").projectDir = new File("test/src/test_${name}")
-}
diff --git a/java/android/src/Ice/build.gradle b/java/android/src/Ice/build.gradle
deleted file mode 100644
index fd6881ab6c0..00000000000
--- a/java/android/src/Ice/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/Ice/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java/src/Ice/src/main/java"
- }
- }
-}
diff --git a/java/android/src/IceDiscovery/build.gradle b/java/android/src/IceDiscovery/build.gradle
deleted file mode 100644
index 76a374183e5..00000000000
--- a/java/android/src/IceDiscovery/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/IceDiscovery/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java/src/IceDiscovery/src/main/java"
- }
- }
-}
diff --git a/java/android/src/IceSSL/build.gradle b/java/android/src/IceSSL/build.gradle
deleted file mode 100644
index 98e245d1c87..00000000000
--- a/java/android/src/IceSSL/build.gradle
+++ /dev/null
@@ -1,23 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$project.ext.topSrcDir/java/gradle/ice.gradle"
-apply from: "$project.ext.topSrcDir/java/src/IceSSL/build.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$project.ext.topSrcDir/java/src/IceSSL/src/main/java"
- }
- }
-}
diff --git a/java/android/test/build.gradle b/java/android/test/build.gradle
deleted file mode 100644
index 066aec819ec..00000000000
--- a/java/android/test/build.gradle
+++ /dev/null
@@ -1,69 +0,0 @@
- //**********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-apply plugin: 'java'
-apply from: "$rootProject.projectDir/../gradle/ice.gradle"
-ext.testDir = "$rootProject.projectDir/../test/src/main/java/test"
-apply from: "slice.gradle"
-apply from: "$rootProject.projectDir/gradle/tests.gradle"
-
-sourceCompatibility = iceSourceCompatibility
-targetCompatibility = iceTargetCompatibility
-
-sourceSets {
- main {
- java {
- srcDir "$rootProject.projectDir/../test/src/main/java"
- include 'test/TestHelper.java'
- }
- }
-}
-
-idea.module {
- excludeDirs -= file(buildDir)
- buildDir.listFiles({d, f ->f != 'generated-src'} as FilenameFilter).each { excludeDirs += it }
-}
-
-dependencies {
- compile localDependency('ice')
-}
-
-jar {
- archiveName = "test.jar"
-}
-
-tests.each {
- def dirName = it
- def name = it.replace('/', '_')
-
- project(":test_${name}") {
- apply plugin: 'java'
- apply from: "$rootProject.projectDir/../gradle/ice.gradle"
-
- sourceCompatibility = iceSourceCompatibility
- targetCompatibility = iceTargetCompatibility
-
- sourceSets {
- main {
- java {
- srcDir "$rootProject.projectDir/../test/src/main/java"
- include "test/${dirName}/**"
- srcDir "$rootProject.projectDir/test/build/generated-src/"
- include "test/${dirName}/**"
- }
- }
- }
-
- dependencies {
- compile project(':test')
- compile localDependency('ice')
- compile localDependency('icessl')
- }
- }
-}
diff --git a/java/android/test/slice.gradle b/java/android/test/slice.gradle
deleted file mode 100644
index 1e200104c10..00000000000
--- a/java/android/test/slice.gradle
+++ /dev/null
@@ -1,69 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-task testSliceTask {
- slice {
- java {
- set1 {
- files = fileTree(dir: testDir, includes:['Ice/acm/*.ice',
- 'Ice/adapterDeactivation/*.ice',
- 'Ice/ami/*.ice',
- 'Ice/admin/*.ice',
- 'Ice/background/*.ice',
- 'Ice/binding/*.ice',
- 'Ice/classLoader/*.ice',
- 'Ice/custom/*.ice',
- 'Ice/defaultServant/*.ice',
- 'Ice/defaultValue/*.ice',
- 'Ice/dispatcher/*.ice',
- 'Ice/enums/*.ice',
- 'Ice/exceptions/*.ice',
- 'Ice/facets/*.ice',
- 'Ice/hash/*.ice',
- 'Ice/hold/*.ice',
- 'Ice/info/*.ice',
- 'Ice/inheritance/*.ice',
- 'Ice/interceptor/*.ice',
- 'Ice/interrupt/*.ice',
- 'Ice/invoke/*.ice',
- 'Ice/location/*.ice',
- 'Ice/networkProxy/*.ice',
- 'Ice/objects/*.ice',
- 'Ice/operations/*.ice',
- 'Ice/optional/*.ice',
- 'Ice/proxy/*.ice',
- 'Ice/retry/*.ice',
- 'Ice/scope/*.ice',
- 'Ice/seqMapping/*.ice',
- 'Ice/serialize/*.ice',
- 'Ice/servantLocator/*.ice',
- 'Ice/slicing/exceptions/*.ice',
- 'Ice/slicing/objects/*.ice',
- 'Ice/stream/*.ice',
- 'Ice/threadPoolPriority/*.ice',
- 'Ice/timeout/*.ice',
- 'Ice/udp/*.ice'])
- }
- set2 {
- args = "--checksum test.Ice.checksum.Test.SliceChecksums"
- files = fileTree(dir: testDir, includes:['Ice/checksum/Test.ice',
- 'Ice/checksum/Types.ice'])
- }
- set3 {
- args = "--checksum test.Ice.checksum.server.Test.SliceChecksums"
- files = fileTree(dir: testDir, includes:['Ice/checksum/TestServer.ice',
- 'Ice/checksum/TypesServer.ice'])
- }
- set4 {
- include = ["${testDir}/Ice/packagemd"]
- files = fileTree(dir: testDir, includes:['Ice/packagemd/*.ice'])
- }
- }
- }
-}
diff --git a/java/settings.gradle b/java/settings.gradle
index cbe5d211f1f..15f061580ac 100644
--- a/java/settings.gradle
+++ b/java/settings.gradle
@@ -33,7 +33,6 @@ project(':IceGridGUI').projectDir = new File('src/IceGridGUI')
// Tests
include ':test'
+
include ':testPlugins'
project(':testPlugins').projectDir = new File('test/plugins')
-include ':testController'
-project(':testController').projectDir = new File('test/controller')
diff --git a/csharp/xamarin/ios/allTests.py b/java/test/android/allTests.py
index e3a2fc3d36f..e3a2fc3d36f 100644
--- a/csharp/xamarin/ios/allTests.py
+++ b/java/test/android/allTests.py
diff --git a/java/test/android/controller/build.gradle b/java/test/android/controller/build.gradle
new file mode 100644
index 00000000000..26678ed7018
--- /dev/null
+++ b/java/test/android/controller/build.gradle
@@ -0,0 +1,104 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+buildscript {
+ repositories {
+ jcenter()
+ google()
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.1.4'
+ classpath "gradle.plugin.com.zeroc.gradle.ice-builder:slice:1.4.5"
+ }
+}
+
+apply plugin: 'com.android.application'
+apply plugin: "com.zeroc.gradle.ice-builder.slice"
+
+slice {
+ cppConfiguration = this.cppConfiguration
+ cppPlatform = this.cppPlatform
+ if(!System.env.ICE_BIN_DIST?.split(" ").find{ it == 'all' || it.contains('java')}) {
+ iceHome = this.hasProperty('iceHome') ? this.iceHome
+ : System.getenv("ICE_HOME") != null ? System.env.ICE_HOME : new File("$rootProject.projectDir/../../../..").getCanonicalPath()
+ }
+ java {
+ files = fileTree(dir: "$rootProject.projectDir/../../../../scripts/", includes: ['*.ice'])
+ }
+}
+
+repositories {
+ jcenter()
+ google()
+}
+
+android {
+ compileSdkVersion ice_compileSdkVersion.toInteger()
+
+ defaultConfig {
+ applicationId "com.zeroc.testcontroller"
+ minSdkVersion ice_minSdkVersion.toInteger()
+ targetSdkVersion ice_targetSdkVersion.toInteger()
+ multiDexEnabled true // Necessary otherwise we'd exceed the 64K DEX limit.
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+ }
+
+ buildTypes {
+ debug {
+ //
+ // Set minifyEnabled to false because the test app loads classes dynamically.
+ //
+ minifyEnabled false
+ }
+
+ release {
+ //
+ // Set minifyEnabled to false because the test app loads classes dynamically.
+ //
+ minifyEnabled false
+ }
+ }
+}
+
+task copyBksTask(type: Copy) {
+ from "${rootProject.projectDir}/../../../../certs/client.bks"
+ from "${rootProject.projectDir}/../../../../certs/server.bks"
+ into "src/main/res/raw"
+}
+preBuild.dependsOn(copyBksTask)
+
+clean {
+ delete("src/main/res/raw/client.bks")
+ delete("src/main/res/raw/server.bks")
+}
+
+ext.localDependency = { artifact ->
+ if(project.slice.srcDist || System.env.ICE_BIN_DIST == "cpp") {
+ return "com.zeroc:${artifact}:${iceVersion}"
+ }
+ else {
+ return files("${rootProject.projectDir}/../../../lib/${artifact}-${iceVersion}.jar")
+ }
+}
+dependencies {
+ implementation localDependency("glacier2")
+ implementation localDependency("ice")
+ implementation localDependency("icessl")
+ implementation localDependency("icediscovery")
+ implementation localDependency("icebt")
+
+ implementation files("${rootProject.projectDir}/../../../lib/test.jar")
+ runtimeOnly "org.apache.commons:commons-compress:1.14"
+}
diff --git a/java/android/gradle.properties b/java/test/android/controller/gradle.properties
index c16ba7a92f3..6de9d9d6288 100644
--- a/java/android/gradle.properties
+++ b/java/test/android/controller/gradle.properties
@@ -13,7 +13,7 @@
iceVersion = 3.7.1
// The Android versions used for the Ice build.
-ice_compileSdkVersion = 24
+ice_compileSdkVersion = 25
ice_minSdkVersion = 24
ice_targetSdkVersion = 24
diff --git a/java/android/gradle/wrapper/gradle-wrapper.jar b/java/test/android/controller/gradle/wrapper/gradle-wrapper.jar
index 01b8bf6b1f9..7a3265ee94c 100644
--- a/java/android/gradle/wrapper/gradle-wrapper.jar
+++ b/java/test/android/controller/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/java/android/gradle/wrapper/gradle-wrapper.properties b/java/test/android/controller/gradle/wrapper/gradle-wrapper.properties
index 73bb13d5561..08a85d50451 100644
--- a/java/android/gradle/wrapper/gradle-wrapper.properties
+++ b/java/test/android/controller/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Mon Sep 10 16:52:39 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
diff --git a/java/android/gradlew b/java/test/android/controller/gradlew
index cccdd3d517f..cccdd3d517f 100755..100644
--- a/java/android/gradlew
+++ b/java/test/android/controller/gradlew
diff --git a/java/android/gradlew.bat b/java/test/android/controller/gradlew.bat
index f9553162f12..f9553162f12 100644
--- a/java/android/gradlew.bat
+++ b/java/test/android/controller/gradlew.bat
diff --git a/java/android/controller/src/main/AndroidManifest.xml b/java/test/android/controller/src/main/AndroidManifest.xml
index 20a819e4cad..20a819e4cad 100644
--- a/java/android/controller/src/main/AndroidManifest.xml
+++ b/java/test/android/controller/src/main/AndroidManifest.xml
diff --git a/java/android/controller/src/main/assets/.gitignore b/java/test/android/controller/src/main/assets/.gitignore
index 2cbf86bc394..2cbf86bc394 100644
--- a/java/android/controller/src/main/assets/.gitignore
+++ b/java/test/android/controller/src/main/assets/.gitignore
diff --git a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
index 87919488eaf..87919488eaf 100644
--- a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
+++ b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerActivity.java
diff --git a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
index d3582c03d7b..d3582c03d7b 100644
--- a/java/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
+++ b/java/test/android/controller/src/main/java/com/zeroc/testcontroller/ControllerApp.java
diff --git a/java/android/controller/src/main/res/layout/main.xml b/java/test/android/controller/src/main/res/layout/main.xml
index df4c8db98c7..df4c8db98c7 100644
--- a/java/android/controller/src/main/res/layout/main.xml
+++ b/java/test/android/controller/src/main/res/layout/main.xml
diff --git a/java/test/android/controller/src/main/res/raw/client.bks b/java/test/android/controller/src/main/res/raw/client.bks
new file mode 100644
index 00000000000..7a5b88d45c1
--- /dev/null
+++ b/java/test/android/controller/src/main/res/raw/client.bks
Binary files differ
diff --git a/java/android/controller/src/main/res/raw/icon.png b/java/test/android/controller/src/main/res/raw/icon.png
index 75024841d32..75024841d32 100644
--- a/java/android/controller/src/main/res/raw/icon.png
+++ b/java/test/android/controller/src/main/res/raw/icon.png
Binary files differ
diff --git a/java/test/android/controller/src/main/res/raw/server.bks b/java/test/android/controller/src/main/res/raw/server.bks
new file mode 100644
index 00000000000..2da60311b53
--- /dev/null
+++ b/java/test/android/controller/src/main/res/raw/server.bks
Binary files differ
diff --git a/java/android/controller/src/main/res/values/strings.xml b/java/test/android/controller/src/main/res/values/strings.xml
index f96e345d87f..f96e345d87f 100644
--- a/java/android/controller/src/main/res/values/strings.xml
+++ b/java/test/android/controller/src/main/res/values/strings.xml
diff --git a/scripts/Component.py b/scripts/Component.py
index 4b185eaf693..4144c75b8a6 100644
--- a/scripts/Component.py
+++ b/scripts/Component.py
@@ -264,18 +264,18 @@ elif not platform.hasDotNet():
#
try:
run("adb version")
- Mapping.add(os.path.join("java-compat", "android"), AndroidCompatMapping())
- Mapping.add(os.path.join("java", "android"), AndroidMapping())
+ Mapping.add(os.path.join("java-compat", "test", "android"), AndroidCompatMapping())
+ Mapping.add(os.path.join("java", "test", "android"), AndroidMapping())
if (isinstance(platform, Windows) and platform.getCompiler() == "VC141") or isinstance(platform, Darwin):
- Mapping.add(os.path.join("csharp", "xamarin", "android"), XamarinAndroidMapping())
+ Mapping.add(os.path.join("csharp", "test", "xamarin", "controller.Android"), XamarinAndroidMapping())
except:
pass
if isinstance(platform, Windows) and platform.getCompiler() == "VC141":
- Mapping.add(os.path.join("csharp", "xamarin", "uwp"), XamarinUWPMapping())
+ Mapping.add(os.path.join("csharp", "test", "xamarin", "controller.UWP"), XamarinUWPMapping())
if isinstance(platform, Darwin):
- Mapping.add(os.path.join("csharp", "xamarin", "ios"), XamarinIOSMapping())
+ Mapping.add(os.path.join("csharp", "test", "xamarin", "controller.iOS"), XamarinIOSMapping())
#
# Check if Matlab is installed and eventually add the Matlab mapping
diff --git a/scripts/Util.py b/scripts/Util.py
index 89a92ec87e8..3d282653d4e 100644
--- a/scripts/Util.py
+++ b/scripts/Util.py
@@ -2455,6 +2455,7 @@ class UWPProcessController(RemoteProcessController):
print("Registering application to run from layout...")
+ print(os.path.join(os.path.dirname(packageFullPath), "Dependencies", arch))
for root, dirs, files in os.walk(os.path.join(os.path.dirname(packageFullPath), "Dependencies", arch)):
for f in files:
self.installPackage(os.path.join(root, f), arch)
@@ -3105,6 +3106,12 @@ class JavaCompatMapping(JavaMapping):
"IceLocatorDiscovery" : "IceLocatorDiscovery.PluginFactory"
}[plugin]
+ def getEnv(self, process, current):
+ classPath = [os.path.join(self.path, "lib", "test.jar")]
+ if os.path.exists(os.path.join(self.path, "lib", "IceTestLambda.jar")):
+ classPath += [os.path.join(self.path, "lib", "IceTestLambda.jar")]
+ return { "CLASSPATH" : os.pathsep.join(classPath) }
+
def _getDefaultExe(self, processType, config=None):
return {
"client" : "Client",
@@ -3148,13 +3155,13 @@ class AndroidMappingMixin():
return props
def getTestsPath(self):
- return os.path.join(self.path, "../test/src/main/java/test")
+ return os.path.join(self.path, "../src/main/java/test")
def getCommonTestsPath(self):
- return os.path.join(self.path, "..", "..", "scripts", "tests")
+ return os.path.join(self.path, "..", "..", "..", "scripts", "tests")
def getApk(self, current):
- return os.path.join(self.getPath(), "controller", "build", "outputs", "apk", "debug", "testController-debug.apk")
+ return os.path.join(self.getPath(), "controller", "build", "outputs", "apk", "debug", "controller-debug.apk")
def getActivityName(self):
return "com.zeroc.testcontroller/.ControllerActivity"
@@ -3319,7 +3326,7 @@ class XamarinMapping(CSharpMapping):
return {"mx" : ["False"]} if current.config.protocol in ["ssl", "wss"] else {}
def getCommonTestsPath(self):
- return os.path.join(self.path, "..", "..", "..", "scripts", "tests")
+ return os.path.join(self.path, "..", "..", "..", "..", "scripts", "tests")
class XamarinAndroidMapping(AndroidMappingMixin, XamarinMapping):
@@ -3331,15 +3338,14 @@ class XamarinAndroidMapping(AndroidMappingMixin, XamarinMapping):
return "system-images;android-27;google_apis;x86"
def getTestsPath(self):
- return os.path.join(self.path, "../../test")
+ return os.path.join(self.path, "../..")
def getCommonTestsPath(self):
- return os.path.join(self.path, "..", "..", "..", "scripts", "tests")
+ return os.path.join(self.path, "..", "..", "..", "..", "scripts", "tests")
def getApk(self, current):
buildConfig = current.config.buildConfig
- return os.path.join(self.getPath(), "..", "controller", "controller.Android", "bin", buildConfig,
- "com.zeroc.testcontroller-Signed.apk")
+ return os.path.join(self.path, "bin", buildConfig, "com.zeroc.testcontroller-Signed.apk")
def getActivityName(self):
return "com.zeroc.testcontroller/controller.MainActivity"
@@ -3353,10 +3359,10 @@ class XamarinUWPMapping(XamarinMapping):
CSharpMapping.__init__(self)
def getTestsPath(self):
- return os.path.join(self.path, "../../test")
+ return os.path.join(self.path, "../..")
def getCommonTestsPath(self):
- return os.path.join(self.path, "..", "..", "..", "scripts", "tests")
+ return os.path.join(self.path, "..", "..", "..", "..", "scripts", "tests")
def getUWPPackageName(self):
return "ice-uwp-controller.xamarin"
@@ -3369,8 +3375,9 @@ class XamarinUWPMapping(XamarinMapping):
"X86" if platform == "Win32" else platform)
def getUWPPackageFullPath(self, platform, config):
- prefix = "controller.UWP_1.0.0.0_{0}{1}".format(platform, "_{0}".format(config) if config == "Debug" else "")
- return os.path.join(toplevel, "csharp", "xamarin", "controller", "controller.UWP", "AppPackages",
+ prefix = "controller.UWP_1.0.0.0_{0}{1}".format("X86" if platform == "Win32" else platform,
+ "_{0}".format(config) if config == "Debug" else "")
+ return os.path.join(toplevel, "csharp", "test", "xamarin", "controller.UWP", "AppPackages",
"{0}_Test".format(prefix), "{0}.appx".format(prefix))
class XamarinIOSMapping(XamarinMapping):
@@ -3379,10 +3386,10 @@ class XamarinIOSMapping(XamarinMapping):
CSharpMapping.__init__(self)
def getTestsPath(self):
- return os.path.join(self.path, "../../test")
+ return os.path.join(self.path, "../..")
def getCommonTestsPath(self):
- return os.path.join(self.path, "..", "..", "..", "scripts", "tests")
+ return os.path.join(self.path, "..", "..", "..", "..", "scripts", "tests")
def getIOSControllerIdentity(self, current):
if current.config.buildPlatform == "iphonesimulator":
@@ -3394,8 +3401,8 @@ class XamarinIOSMapping(XamarinMapping):
return "controller.iOS.app"
def getIOSAppFullPath(self, current):
- return os.path.join(self.getPath(), "..", "controller", "controller.iOS", "bin", "iPhoneSimulator",
- current.config.buildConfig, self.getIOSAppName(current))
+ return os.path.join(self.getPath(), "bin", "iPhoneSimulator", current.config.buildConfig,
+ self.getIOSAppName(current))
class CppBasedMapping(Mapping):