diff options
-rw-r--r-- | csharp/README.md | 95 | ||||
-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) | bin | 4754 -> 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) | bin | 11695 -> 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) | bin | 2807 -> 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) | bin | 6439 -> 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) | bin | 7028 -> 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) | bin | 17898 -> 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) | bin | 12827 -> 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) | bin | 33484 -> 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) | bin | 19380 -> 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) | bin | 52285 -> 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) | bin | 6143 -> 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) | bin | 13916 -> 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) | bin | 31561 -> 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) | bin | 1218 -> 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) | bin | 2536 -> 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) | bin | 5566 -> 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) | bin | 6555 -> 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) | bin | 15240 -> 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) | bin | 39781 -> 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) | bin | 2772 -> 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) | bin | 5904 -> 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) | bin | 13344 -> 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) | bin | 394 -> 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) | bin | 9693 -> 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) | bin | 1245 -> 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) | bin | 1141 -> 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) | bin | 2468 -> 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) | bin | 4740 -> 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) | bin | 394 -> 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) | bin | 9693 -> 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) | bin | 1245 -> 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) | bin | 392 -> 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) | bin | 836 -> 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) | bin | 1742 -> 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) | bin | 3654 -> 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) | bin | 2988 -> 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) | bin | 6555 -> 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) | bin | 15240 -> 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) | bin | 2504 -> 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) | bin | 70429 -> 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) | bin | 3773 -> 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) | bin | 4750 -> 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) | bin | 4692 -> 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) | bin | 5192 -> 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) | bin | 1313 -> 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) | bin | 845 -> 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) | bin | 1101 -> 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) | bin | 1761 -> 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) | bin | 2537 -> 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) | bin | 2332 -> 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) | bin | 2454 -> 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) | bin | 2758 -> 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) | bin | 8884 -> 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) | bin | 10710 -> 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) | bin | 34540 -> 34540 bytes | |||
-rw-r--r-- | csharp/test/xamarin/controller.iOS/Resources/Default.png (renamed from csharp/xamarin/controller/controller.iOS/Resources/Default.png) | bin | 7243 -> 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) | bin | 8368 -> 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.csproj | 92 | ||||
-rw-r--r-- | csharp/xamarin/README.md | 69 | ||||
-rw-r--r-- | csharp/xamarin/controller/controller/controller.csproj | 92 | ||||
-rw-r--r-- | java-compat/.gitignore | 1 | ||||
-rw-r--r-- | java-compat/README.md | 189 | ||||
-rw-r--r-- | java-compat/android/.gitignore | 8 | ||||
-rw-r--r-- | java-compat/android/Makefile | 34 | ||||
-rw-r--r-- | java-compat/android/README.md | 133 | ||||
-rw-r--r-- | java-compat/android/build.gradle | 36 | ||||
-rw-r--r-- | java-compat/android/gradle/dex.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/gradle/library.gradle | 27 | ||||
-rw-r--r-- | java-compat/android/gradle/tests.gradle | 53 | ||||
-rw-r--r-- | java-compat/android/settings.gradle | 40 | ||||
-rw-r--r-- | java-compat/android/src/Glacier2/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/Ice/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/IceBT/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/IceBox/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/IceDiscovery/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/IceGrid/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/IceLocatorDiscovery/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/IcePatch2/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/src/IceStorm/build.gradle | 24 | ||||
-rw-r--r-- | java-compat/android/test/build.gradle | 72 | ||||
-rw-r--r-- | java-compat/settings.gradle | 9 | ||||
-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) | bin | 54712 -> 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.bks | bin | 0 -> 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) | bin | 3180 -> 3180 bytes | |||
-rw-r--r-- | java-compat/test/android/controller/src/main/res/raw/server.bks | bin | 0 -> 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.gradle | 8 | ||||
-rw-r--r-- | java-compat/test/ejb/README.md | 73 | ||||
-rw-r--r-- | java-compat/test/ejb/src/common/com/zeroc/ice/IceAdapter.java | 52 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/META-INF/jboss.xml | 9 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Client.java | 68 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseI.java | 35 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/DatabaseServer.java | 43 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Init.java | 18 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/InitBean.java | 44 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/Service.java | 22 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceBean.java | 50 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb1/com/zeroc/ejb/ServiceI.java | 41 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/META-INF/jboss.xml | 9 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Client.java | 68 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseI.java | 35 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/DatabaseServer.java | 43 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Init.java | 18 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/InitBean.java | 44 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/Service.java | 22 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceBean.java | 86 | ||||
-rw-r--r-- | java-compat/test/ejb/src/ejb2/com/zeroc/ejb/ServiceI.java | 41 | ||||
-rw-r--r-- | java-compat/test/ejb/src/resources/jndi.properties | 3 | ||||
-rw-r--r-- | java-compat/test/ejb/src/slice/common.ice | 18 | ||||
-rw-r--r-- | java-compat/test/ejb/src/slice/ejb1.ice | 40 | ||||
-rw-r--r-- | java-compat/test/ejb/src/slice/ejb2.ice | 42 | ||||
-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.java | 1155 | ||||
-rw-r--r-- | java-compat/test/lambda/src/main/java/Ice/invoke/lambda/AllTests.java | 201 | ||||
-rw-r--r-- | java-compat/test/lambda/src/main/java/Ice/operations/lambda/OnewaysLambdaAMI.java | 158 | ||||
-rw-r--r-- | java-compat/test/lambda/src/main/java/Ice/operations/lambda/TwowaysLambdaAMI.java | 1432 | ||||
-rw-r--r-- | java-compat/test/lambda/src/main/java/Ice/optional/lambda/AllTests.java | 791 | ||||
-rw-r--r-- | java/.gitignore | 1 | ||||
-rw-r--r-- | java/.settings/org.eclipse.jdt.core.prefs | 384 | ||||
-rw-r--r-- | java/.settings/org.eclipse.jdt.ui.prefs | 3 | ||||
-rw-r--r-- | java/README.md | 165 | ||||
-rw-r--r-- | java/android/.gitignore | 8 | ||||
-rw-r--r-- | java/android/Makefile | 34 | ||||
-rw-r--r-- | java/android/README.md | 133 | ||||
-rwxr-xr-x | java/android/build.gradle | 36 | ||||
-rw-r--r-- | java/android/controller/build.gradle | 84 | ||||
-rwxr-xr-x | java/android/gradle/GRADLE_LICENSE | 16 | ||||
-rw-r--r-- | java/android/gradle/library.gradle | 27 | ||||
-rw-r--r-- | java/android/gradle/tests.gradle | 56 | ||||
-rw-r--r-- | java/android/settings.gradle | 30 | ||||
-rw-r--r-- | java/android/src/Ice/build.gradle | 23 | ||||
-rw-r--r-- | java/android/src/IceDiscovery/build.gradle | 23 | ||||
-rw-r--r-- | java/android/src/IceSSL/build.gradle | 23 | ||||
-rw-r--r-- | java/android/test/build.gradle | 69 | ||||
-rw-r--r-- | java/android/test/slice.gradle | 69 | ||||
-rw-r--r-- | java/settings.gradle | 3 | ||||
-rw-r--r-- | java/test/android/allTests.py (renamed from csharp/xamarin/ios/allTests.py) | 0 | ||||
-rw-r--r-- | java/test/android/controller/build.gradle | 104 | ||||
-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) | bin | 54329 -> 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.bks | bin | 0 -> 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) | bin | 3180 -> 3180 bytes | |||
-rw-r--r-- | java/test/android/controller/src/main/res/raw/server.bks | bin | 0 -> 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.py | 10 | ||||
-rw-r--r-- | scripts/Util.py | 39 |
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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-mdpi/icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-mdpi/icon.png Binary files differindex 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 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 Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xhdpi/Icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xhdpi/Icon.png Binary files differindex 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 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 Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxhdpi/Icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxhdpi/Icon.png Binary files differindex 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 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 Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.Android/Resources/mipmap-xxxhdpi/Icon.png b/csharp/test/xamarin/controller.Android/Resources/mipmap-xxxhdpi/Icon.png Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-200.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/LargeTile.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/LargeTile.scale-400.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-100.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-200.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SmallTile.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/SmallTile.scale-400.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-100.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-200.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/SplashScreen.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/SplashScreen.scale-400.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-100.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-200.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square150x150Logo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/Square150x150Logo.scale-400.png Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-100.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-200.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.scale-400.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-16.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-16.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-256.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-256.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Square44x44Logo.targetsize-48.png b/csharp/test/xamarin/controller.UWP/Assets/Square44x44Logo.targetsize-48.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.backup.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.backup.png Binary files differindex a197aaf558f..a197aaf558f 100644 --- a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.backup.png +++ b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.backup.png diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-100.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-200.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/StoreLogo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/StoreLogo.scale-400.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-100.png b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-100.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-200.png b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-200.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.UWP/Assets/Wide310x150Logo.scale-400.png b/csharp/test/xamarin/controller.UWP/Assets/Wide310x150Logo.scale-400.png Binary files differindex 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 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 Binary files differindex 02b4b7c574e..02b4b7c574e 100644 --- a/csharp/xamarin/controller/controller.UWP/controller.UWP_TemporaryKey.pfx +++ b/csharp/test/xamarin/controller.UWP/controller.UWP_TemporaryKey.pfx 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait.png b/csharp/test/xamarin/controller.iOS/Resources/Default-Portrait.png Binary files differindex 5d0d1ab4c6d..5d0d1ab4c6d 100644 --- a/csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait.png +++ b/csharp/test/xamarin/controller.iOS/Resources/Default-Portrait.png diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default-Portrait@2x.png b/csharp/test/xamarin/controller.iOS/Resources/Default-Portrait@2x.png Binary files differindex 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 diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default.png b/csharp/test/xamarin/controller.iOS/Resources/Default.png Binary files differindex b74643c0aa3..b74643c0aa3 100644 --- a/csharp/xamarin/controller/controller.iOS/Resources/Default.png +++ b/csharp/test/xamarin/controller.iOS/Resources/Default.png diff --git a/csharp/xamarin/controller/controller.iOS/Resources/Default@2x.png b/csharp/test/xamarin/controller.iOS/Resources/Default@2x.png Binary files differindex dbd6bd3e864..dbd6bd3e864 100644 --- a/csharp/xamarin/controller/controller.iOS/Resources/Default@2x.png +++ b/csharp/test/xamarin/controller.iOS/Resources/Default@2x.png 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 Binary files differindex fba809c6963..fba809c6963 100644 --- a/java-compat/android/gradle/wrapper/gradle-wrapper.jar +++ b/java-compat/test/android/controller/gradle/wrapper/gradle-wrapper.jar 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 Binary files differnew file mode 100644 index 00000000000..7a5b88d45c1 --- /dev/null +++ b/java-compat/test/android/controller/src/main/res/raw/client.bks 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 Binary files differindex 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 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 Binary files differnew file mode 100644 index 00000000000..2da60311b53 --- /dev/null +++ b/java-compat/test/android/controller/src/main/res/raw/server.bks 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 Binary files differindex 01b8bf6b1f9..7a3265ee94c 100644 --- a/java/android/gradle/wrapper/gradle-wrapper.jar +++ b/java/test/android/controller/gradle/wrapper/gradle-wrapper.jar 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 Binary files differnew file mode 100644 index 00000000000..7a5b88d45c1 --- /dev/null +++ b/java/test/android/controller/src/main/res/raw/client.bks diff --git a/java/android/controller/src/main/res/raw/icon.png b/java/test/android/controller/src/main/res/raw/icon.png Binary files differindex 75024841d32..75024841d32 100644 --- a/java/android/controller/src/main/res/raw/icon.png +++ b/java/test/android/controller/src/main/res/raw/icon.png diff --git a/java/test/android/controller/src/main/res/raw/server.bks b/java/test/android/controller/src/main/res/raw/server.bks Binary files differnew file mode 100644 index 00000000000..2da60311b53 --- /dev/null +++ b/java/test/android/controller/src/main/res/raw/server.bks 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): |