detox 19.9.0 → 21.0.0-breaking.new-global-lifecycle.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (219) hide show
  1. package/Detox-android/com/wix/detox/{19.9.0/detox-19.9.0-javadoc.jar → 21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-javadoc.jar} +0 -0
  2. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-javadoc.jar.md5 +1 -0
  3. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-javadoc.jar.sha1 +1 -0
  4. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-javadoc.jar.sha256 +1 -0
  5. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-javadoc.jar.sha512 +1 -0
  6. package/Detox-android/com/wix/detox/{19.9.0/detox-19.9.0-sources.jar → 21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-sources.jar} +0 -0
  7. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-sources.jar.md5 +1 -0
  8. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-sources.jar.sha1 +1 -0
  9. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-sources.jar.sha256 +1 -0
  10. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0-sources.jar.sha512 +1 -0
  11. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.aar +0 -0
  12. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.aar.md5 +1 -0
  13. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.aar.sha1 +1 -0
  14. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.aar.sha256 +1 -0
  15. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.aar.sha512 +1 -0
  16. package/Detox-android/com/wix/detox/{19.9.0/detox-19.9.0.pom → 21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.pom} +2 -2
  17. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.pom.md5 +1 -0
  18. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.pom.sha1 +1 -0
  19. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.pom.sha256 +1 -0
  20. package/Detox-android/com/wix/detox/21.0.0-breaking.new-global-lifecycle.0/detox-21.0.0-breaking.new-global-lifecycle.0.pom.sha512 +1 -0
  21. package/Detox-android/com/wix/detox/maven-metadata.xml +4 -4
  22. package/Detox-android/com/wix/detox/maven-metadata.xml.md5 +1 -1
  23. package/Detox-android/com/wix/detox/maven-metadata.xml.sha1 +1 -1
  24. package/Detox-android/com/wix/detox/maven-metadata.xml.sha256 +1 -1
  25. package/Detox-android/com/wix/detox/maven-metadata.xml.sha512 +1 -1
  26. package/Detox-ios-src.tbz +0 -0
  27. package/Detox-ios.tbz +0 -0
  28. package/android/build.gradle +2 -2
  29. package/android/detox/build.gradle +2 -2
  30. package/android/detox/publish-pom.gradle +1 -5
  31. package/android/detox/publishing.gradle +7 -9
  32. package/android/detox/src/full/java/com/wix/detox/Detox.java +2 -59
  33. package/android/detox/src/full/java/com/wix/detox/NotificationDataParser.kt +3 -3
  34. package/android/detox/src/full/java/com/wix/detox/adapters/server/WebSocketClient.java +1 -3
  35. package/android/detox/src/full/java/com/wix/detox/espresso/DetoxAction.java +3 -1
  36. package/android/detox/src/full/java/com/wix/detox/espresso/UiAutomatorHelper.java +1 -1
  37. package/android/detox/src/full/java/com/wix/detox/espresso/matcher/ViewMatchers.kt +23 -16
  38. package/android/detox/src/full/java/com/wix/detox/reactnative/ReactNativeLoadingMonitor.kt +8 -54
  39. package/android/detox/src/main/java/com/wix/detox/common/DetoxErrors.java +1 -4
  40. package/android/detox/src/main/java/com/wix/detox/espresso/UiControllerSpy.kt +1 -2
  41. package/android/detox/src/main/java/com/wix/detox/espresso/action/AdjustSliderToPositionAction.kt +36 -0
  42. package/android/detox/src/{full → main}/java/com/wix/detox/espresso/action/GetAttributesAction.kt +1 -13
  43. package/android/detox/src/main/java/com/wix/detox/espresso/action/common/utils/UiControllerUtils.kt +1 -1
  44. package/android/detox/src/testFull/java/com/wix/detox/espresso/action/AdjustSliderToPositionActionTest.kt +59 -0
  45. package/android/detox/src/testFull/java/com/wix/detox/espresso/action/GetAttributesActionTest.kt +3 -15
  46. package/android/gradle/wrapper/gradle-wrapper.properties +1 -2
  47. package/android/gradlew +107 -181
  48. package/index.d.ts +208 -186
  49. package/index.js +1 -0
  50. package/internals.d.ts +124 -0
  51. package/internals.js +4 -0
  52. package/local-cli/build-framework-cache.js +2 -2
  53. package/local-cli/build.js +7 -8
  54. package/local-cli/build.test.js +46 -40
  55. package/local-cli/clean-framework-cache.js +3 -3
  56. package/local-cli/cli.js +0 -1
  57. package/local-cli/init.js +20 -55
  58. package/local-cli/templates/jest.js +9 -34
  59. package/local-cli/test.js +18 -282
  60. package/local-cli/test.test.js +332 -673
  61. package/local-cli/testCommand/TestRunnerCommand.js +157 -0
  62. package/local-cli/{utils/testCommandArgs.js → testCommand/builder.js} +10 -35
  63. package/local-cli/testCommand/middlewares.js +75 -0
  64. package/local-cli/{utils → testCommand}/warnings.js +0 -10
  65. package/local-cli/utils/jestInternals.js +13 -2
  66. package/local-cli/utils/yargsUtils.js +67 -0
  67. package/package.json +28 -22
  68. package/runners/deprecation.js +47 -0
  69. package/runners/jest/JestCircusEnvironment.js +3 -38
  70. package/runners/jest/adapter.d.ts +4 -10
  71. package/runners/jest/adapter.js +3 -6
  72. package/runners/jest/assignReporter.d.ts +4 -1
  73. package/runners/jest/assignReporter.js +3 -6
  74. package/runners/jest/deprecation.js +25 -0
  75. package/runners/jest/globalSetup.js +1 -0
  76. package/runners/jest/globalTeardown.js +1 -0
  77. package/runners/jest/index.js +21 -0
  78. package/runners/jest/reporter.js +1 -0
  79. package/runners/jest/reporters/DetoxReporter.js +5 -0
  80. package/runners/jest/specReporter.d.ts +4 -9
  81. package/runners/jest/specReporter.js +3 -10
  82. package/runners/jest/streamlineReporter.js +3 -22
  83. package/runners/jest/testEnvironment/index.js +155 -0
  84. package/runners/{jest-circus → jest/testEnvironment}/listeners/DetoxCoreListener.js +35 -17
  85. package/runners/{jest-circus → jest/testEnvironment}/listeners/DetoxInitErrorListener.js +1 -1
  86. package/runners/jest/testEnvironment/listeners/DetoxPlatformFilterListener.js +27 -0
  87. package/runners/jest/{SpecReporterImpl.js → testEnvironment/listeners/SpecReporter.js} +61 -7
  88. package/runners/jest/testEnvironment/listeners/WorkerAssignReporter.js +34 -0
  89. package/runners/jest/testEnvironment/listeners/index.js +13 -0
  90. package/runners/{jest-circus → jest/testEnvironment}/utils/assertExistingContext.js +2 -2
  91. package/runners/jest/testEnvironment/utils/assertJestCircus27.js +56 -0
  92. package/runners/jest/testEnvironment/utils/assertJestCircus27.test.js +23 -0
  93. package/runners/jest/{utils → testEnvironment/utils}/getFullTestName.js +0 -0
  94. package/runners/jest/{utils → testEnvironment/utils}/hasTimedOut.js +0 -0
  95. package/runners/jest/{utils → testEnvironment/utils}/index.js +0 -0
  96. package/runners/jest/{utils → testEnvironment/utils}/stdout.js +0 -0
  97. package/runners/jest-circus/environment/index.js +6 -0
  98. package/runners/jest-circus/index.js +1 -10
  99. package/runners/jest-circus/reporter.js +1 -0
  100. package/runners/migration.js +37 -0
  101. package/runners/mocha/DetoxMochaAdapter.js +3 -35
  102. package/runners/mocha/adapter.d.ts +4 -7
  103. package/runners/mocha/adapter.js +3 -5
  104. package/src/{Detox.js → DetoxWorker.js} +131 -164
  105. package/src/artifacts/ArtifactsManager.js +51 -2
  106. package/src/artifacts/log/android/ADBLogcatRecording.js +28 -11
  107. package/src/artifacts/providers/index.js +0 -4
  108. package/src/artifacts/utils/buildDefaultArtifactsRootDirpath.js +2 -4
  109. package/src/artifacts/utils/temporaryPath.js +2 -0
  110. package/src/client/AsyncWebSocket.js +1 -1
  111. package/src/client/actions/actions.js +2 -2
  112. package/src/configuration/collectCliConfig.js +2 -4
  113. package/src/configuration/composeAppsConfig.js +9 -67
  114. package/src/configuration/composeArtifactsConfig.js +6 -32
  115. package/src/configuration/composeBehaviorConfig.js +3 -13
  116. package/src/configuration/composeDeviceConfig.js +37 -62
  117. package/src/configuration/composeLoggerConfig.js +50 -0
  118. package/src/configuration/composeRunnerConfig.js +74 -14
  119. package/src/configuration/composeSessionConfig.js +1 -3
  120. package/src/configuration/index.js +24 -23
  121. package/src/configuration/utils/deviceAppTypes.js +0 -1
  122. package/src/devices/allocation/DeviceAllocator.js +3 -3
  123. package/src/devices/allocation/drivers/android/emulator/EmulatorAllocDriver.js +4 -3
  124. package/src/devices/allocation/drivers/android/emulator/EmulatorLauncher.js +2 -6
  125. package/src/devices/allocation/drivers/android/genycloud/GenyAllocDriver.js +0 -1
  126. package/src/devices/allocation/drivers/ios/SimulatorAllocDriver.js +1 -1
  127. package/src/devices/allocation/drivers/ios/SimulatorLauncher.js +3 -3
  128. package/src/devices/allocation/factories/index.js +0 -1
  129. package/src/devices/common/drivers/DeviceLauncher.js +2 -2
  130. package/src/devices/common/drivers/android/emulator/exec/EmulatorExec.js +1 -1
  131. package/src/devices/common/drivers/android/exec/ADB.js +0 -5
  132. package/src/devices/common/drivers/android/genycloud/services/GenyInstanceNaming.js +4 -9
  133. package/src/devices/common/drivers/ios/tools/AppleSimUtils.js +34 -9
  134. package/src/devices/lifecycle/GenyGlobalLifecycleHandler.js +1 -1
  135. package/src/devices/runtime/RuntimeDevice.js +69 -81
  136. package/src/devices/runtime/drivers/index.js +0 -1
  137. package/src/devices/runtime/drivers/ios/SimulatorDriver.js +3 -2
  138. package/src/devices/runtime/factories/ios.js +1 -8
  139. package/src/devices/runtime/utils/LaunchArgsEditor.js +4 -59
  140. package/src/devices/runtime/utils/Storage.js +4 -0
  141. package/src/environmentFactory.js +0 -8
  142. package/src/errors/DetoxConfigErrorComposer.js +76 -29
  143. package/src/errors/DetoxError.js +4 -0
  144. package/src/errors/DetoxRuntimeError.js +5 -5
  145. package/src/errors/index.js +2 -0
  146. package/src/ipc/IPCClient.js +117 -0
  147. package/src/ipc/IPCServer.js +87 -0
  148. package/src/ipc/state.js +76 -0
  149. package/src/logger/DetoxLogger.js +244 -0
  150. package/src/logger/DetoxTraceEventBuilder.js +21 -0
  151. package/src/logger/DetoxTracer.js +133 -0
  152. package/src/logger/TraceThreadDispatcher.js +52 -0
  153. package/src/{utils → logger}/customConsoleLogger.js +1 -1
  154. package/src/realms/DetoxConstants.js +13 -0
  155. package/src/realms/DetoxContext.js +170 -0
  156. package/src/realms/DetoxInternalsFacade.js +35 -0
  157. package/src/realms/DetoxPrimaryContext.js +229 -0
  158. package/src/realms/DetoxSecondaryContext.js +94 -0
  159. package/src/realms/index.js +10 -0
  160. package/src/realms/primary.js +3 -0
  161. package/src/realms/secondary.js +3 -0
  162. package/src/server/DetoxConnection.js +1 -1
  163. package/src/symbols.js +56 -0
  164. package/src/utils/ChromeTracingExporter.js +5 -6
  165. package/src/utils/Timer.js +14 -6
  166. package/{local-cli/utils/misc.js → src/utils/envUtils.js} +0 -9
  167. package/src/utils/logger.js +2 -162
  168. package/src/utils/shellUtils.js +18 -0
  169. package/src/utils/streamUtils.js +214 -0
  170. package/src/utils/trace.js +9 -44
  171. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-javadoc.jar.md5 +0 -1
  172. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-javadoc.jar.sha1 +0 -1
  173. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-javadoc.jar.sha256 +0 -1
  174. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-javadoc.jar.sha512 +0 -1
  175. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-sources.jar.md5 +0 -1
  176. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-sources.jar.sha1 +0 -1
  177. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-sources.jar.sha256 +0 -1
  178. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0-sources.jar.sha512 +0 -1
  179. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.aar +0 -0
  180. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.aar.md5 +0 -1
  181. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.aar.sha1 +0 -1
  182. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.aar.sha256 +0 -1
  183. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.aar.sha512 +0 -1
  184. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.pom.md5 +0 -1
  185. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.pom.sha1 +0 -1
  186. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.pom.sha256 +0 -1
  187. package/Detox-android/com/wix/detox/19.9.0/detox-19.9.0.pom.sha512 +0 -1
  188. package/android/detox/src/full/java/com/wix/detox/espresso/action/AdjustSliderToPositionAction.kt +0 -22
  189. package/android/detox/src/full/java/com/wix/detox/espresso/common/SliderHelper.kt +0 -75
  190. package/android/detox/src/main/java/com/wix/detox/espresso/action/common/ReflectUtils.kt +0 -10
  191. package/android/detox/src/testFull/java/com/wix/detox/espresso/common/SliderHelperTest.kt +0 -39
  192. package/local-cli/templates/mocha.js +0 -32
  193. package/local-cli/utils/splitArgv.js +0 -107
  194. package/runners/integration.js +0 -16
  195. package/runners/jest/DetoxAdapterCircus.js +0 -60
  196. package/runners/jest/DetoxAdapterImpl.js +0 -81
  197. package/runners/jest/DetoxAdapterJasmine.js +0 -67
  198. package/runners/jest/DetoxStreamlineJestReporter.js +0 -98
  199. package/runners/jest/FailingTestsReporter.js +0 -16
  200. package/runners/jest/SpecReporterCircus.js +0 -51
  201. package/runners/jest/SpecReporterJasmine.js +0 -39
  202. package/runners/jest/WorkerAssignReporterCircus.js +0 -17
  203. package/runners/jest/WorkerAssignReporterImpl.js +0 -21
  204. package/runners/jest/WorkerAssignReporterJasmine.js +0 -15
  205. package/runners/jest/runnerInfo.js +0 -9
  206. package/runners/jest-circus/environment.js +0 -206
  207. package/runners/jest-circus/utils/assertJestCircus26.js +0 -39
  208. package/runners/jest-circus/utils/wrapErrorWithNoopLifecycle.js +0 -14
  209. package/src/DetoxConstants.js +0 -13
  210. package/src/DetoxExportWrapper.js +0 -140
  211. package/src/artifacts/timeline/TimelineArtifactPlugin.js +0 -95
  212. package/src/devices/allocation/drivers/NoneAllocDriver.js +0 -10
  213. package/src/devices/allocation/factories/none.js +0 -11
  214. package/src/index.js +0 -6
  215. package/src/utils/MissingDetox.js +0 -78
  216. package/src/utils/fakeTimestampsProvider.js +0 -9
  217. package/src/utils/getWorkerId.js +0 -5
  218. package/src/utils/lastFailedTests.js +0 -38
  219. package/src/utils/sh.js +0 -18
@@ -0,0 +1,59 @@
1
+ package com.wix.detox.espresso.action
2
+
3
+ import android.view.View
4
+ import com.facebook.react.views.slider.ReactSlider
5
+ import com.facebook.react.views.slider.ReactSliderManager
6
+ import org.assertj.core.api.Assertions.assertThat
7
+ import org.hamcrest.Matcher
8
+ import org.junit.Before
9
+ import org.junit.Test
10
+ import org.mockito.kotlin.*
11
+
12
+ @Suppress("IllegalIdentifier")
13
+ class AdjustSliderToPositionActionTest {
14
+ val mockReactSliderManager: ReactSliderManager = mock()
15
+ var uut: AdjustSliderToPositionAction = spy(AdjustSliderToPositionAction(0.25, mockReactSliderManager))
16
+ private lateinit var mockReactSlider: ReactSlider
17
+
18
+ @Before
19
+ fun setup() {
20
+ mockReactSlider = mock {
21
+ on {progress}.thenReturn(250)
22
+ }
23
+ }
24
+
25
+ @Test
26
+ fun `should have correct description`() {
27
+ assertThat(uut.description).isEqualTo("adjustSliderToPosition")
28
+ }
29
+
30
+ @Test
31
+ fun `should have correct constraints`() {
32
+ val mockReactSlider: ReactSlider = mock()
33
+ val mockView: View = mock()
34
+ val mockIsDisplayed: Matcher<View?> = mock {
35
+ on {matches(any())}.thenReturn(true)
36
+ }
37
+ doReturn(mockIsDisplayed).whenever(uut).getIsDisplayed()
38
+
39
+ assertThat(uut.constraints).isNotNull
40
+ assertThat(uut.constraints!!.matches(null)).isFalse()
41
+ assertThat(uut.constraints!!.matches(1)).isFalse()
42
+ assertThat(uut.constraints!!.matches(mockReactSlider)).isTrue()
43
+ assertThat(uut.constraints!!.matches(mockView)).isFalse()
44
+ }
45
+
46
+ @Test
47
+ fun `should change progress of slider`() {
48
+ val mockReactSliderManager: ReactSliderManager = mock {
49
+ on{updateProperties(any(), any())}.thenAnswer{
50
+ doReturn(750).whenever(mockReactSlider).progress
51
+ }
52
+ }
53
+ uut = spy(AdjustSliderToPositionAction(0.75, mockReactSliderManager))
54
+ uut.perform(null, mockReactSlider)
55
+
56
+ verify(mockReactSliderManager, times(1)).updateProperties(any(), any())
57
+ assertThat(mockReactSlider.progress).isEqualTo(750)
58
+ }
59
+ }
@@ -4,7 +4,6 @@ import android.view.View
4
4
  import android.widget.CheckBox
5
5
  import android.widget.ProgressBar
6
6
  import android.widget.TextView
7
- import com.facebook.react.views.slider.ReactSlider
8
7
  import com.google.android.material.slider.Slider
9
8
  import org.assertj.core.api.Assertions.assertThat
10
9
  import org.json.JSONObject
@@ -180,7 +179,7 @@ class GetAttributesActionTest {
180
179
  }
181
180
 
182
181
  @Test
183
- fun `should return raw ProgressBar or SeekBar 'progress' via value attribute`() {
182
+ fun `should return ProgressBar (or SeekBar) "progress" via value attribute`() {
184
183
  val progressBar: ProgressBar = mock {
185
184
  on { progress } doReturn 42
186
185
  }
@@ -190,18 +189,7 @@ class GetAttributesActionTest {
190
189
  }
191
190
 
192
191
  @Test
193
- fun `should return RN-Slider via value attribute`() {
194
- val progressBar: ReactSlider = mock {
195
- on { max } doReturn 100
196
- on { progress } doReturn 50
197
- }
198
-
199
- val resultJson = perform(progressBar)
200
- assertThat(resultJson.opt("value")).isEqualTo(0.5)
201
- }
202
-
203
- @Test
204
- fun `should return material-Slider state through value attribute`() {
192
+ fun `should return Slider state through value attribute`() {
205
193
  val slider: Slider = mock {
206
194
  on { value } doReturn 0.42f
207
195
  }
@@ -237,7 +225,7 @@ class GetAttributesActionTest {
237
225
  }
238
226
 
239
227
  @Test
240
- fun `should return text hint via 'placeholder' attribute, if applicable`() {
228
+ fun `should return text hint via "placeholder" attribute, if applicable`() {
241
229
  val textViewWithHint: TextView = mock {
242
230
  on { hint } doReturn "hint-text-mock"
243
231
  }
@@ -3,5 +3,4 @@ distributionBase=GRADLE_USER_HOME
3
3
  distributionPath=wrapper/dists
4
4
  zipStoreBase=GRADLE_USER_HOME
5
5
  zipStorePath=wrapper/dists
6
- distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
7
-
6
+ distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
package/android/gradlew CHANGED
@@ -1,129 +1,74 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- #
4
- # Copyright © 2015-2021 the original authors.
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # https://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
3
  ##############################################################################
20
- #
21
- # Gradle start up script for POSIX generated by Gradle.
22
- #
23
- # Important for running:
24
- #
25
- # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
26
- # noncompliant, but you have some other compliant shell such as ksh or
27
- # bash, then to run this script, type that shell name before the whole
28
- # command line, like:
29
- #
30
- # ksh Gradle
31
- #
32
- # Busybox and similar reduced shells will NOT work, because this script
33
- # requires all of these POSIX shell features:
34
- # * functions;
35
- # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
36
- # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
37
- # * compound commands having a testable exit status, especially «case»;
38
- # * various built-in commands including «command», «set», and «ulimit».
39
- #
40
- # Important for patching:
41
- #
42
- # (2) This script targets any POSIX shell, so it avoids extensions provided
43
- # by Bash, Ksh, etc; in particular arrays are avoided.
44
- #
45
- # The "traditional" practice of packing multiple parameters into a
46
- # space-separated string is a well documented source of bugs and security
47
- # problems, so this is (mostly) avoided, by progressively accumulating
48
- # options in "$@", and eventually passing that to Java.
49
- #
50
- # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
51
- # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
52
- # see the in-line comments for details.
53
- #
54
- # There are tweaks for specific operating systems such as AIX, CygWin,
55
- # Darwin, MinGW, and NonStop.
56
- #
57
- # (3) This script is generated from the Groovy template
58
- # https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59
- # within the Gradle project.
60
- #
61
- # You can find Gradle at https://github.com/gradle/gradle/.
62
- #
4
+ ##
5
+ ## Gradle start up script for UN*X
6
+ ##
63
7
  ##############################################################################
64
8
 
65
- # Attempt to set APP_HOME
66
-
67
- # Resolve links: $0 may be a link
68
- app_path=$0
69
-
70
- # Need this for daisy-chained symlinks.
71
- while
72
- APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
73
- [ -h "$app_path" ]
74
- do
75
- ls=$( ls -ld "$app_path" )
76
- link=${ls#*' -> '}
77
- case $link in #(
78
- /*) app_path=$link ;; #(
79
- *) app_path=$APP_HOME$link ;;
80
- esac
81
- done
82
-
83
- APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
9
+ # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10
+ DEFAULT_JVM_OPTS=""
84
11
 
85
12
  APP_NAME="Gradle"
86
- APP_BASE_NAME=${0##*/}
87
-
88
- # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89
- DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
13
+ APP_BASE_NAME=`basename "$0"`
90
14
 
91
15
  # Use the maximum available, or set MAX_FD != -1 to use that value.
92
- MAX_FD=maximum
16
+ MAX_FD="maximum"
93
17
 
94
- warn () {
18
+ warn ( ) {
95
19
  echo "$*"
96
- } >&2
20
+ }
97
21
 
98
- die () {
22
+ die ( ) {
99
23
  echo
100
24
  echo "$*"
101
25
  echo
102
26
  exit 1
103
- } >&2
27
+ }
104
28
 
105
29
  # OS specific support (must be 'true' or 'false').
106
30
  cygwin=false
107
31
  msys=false
108
32
  darwin=false
109
- nonstop=false
110
- case "$( uname )" in #(
111
- CYGWIN* ) cygwin=true ;; #(
112
- Darwin* ) darwin=true ;; #(
113
- MSYS* | MINGW* ) msys=true ;; #(
114
- NONSTOP* ) nonstop=true ;;
33
+ case "`uname`" in
34
+ CYGWIN* )
35
+ cygwin=true
36
+ ;;
37
+ Darwin* )
38
+ darwin=true
39
+ ;;
40
+ MINGW* )
41
+ msys=true
42
+ ;;
115
43
  esac
116
44
 
117
- CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
45
+ # Attempt to set APP_HOME
46
+ # Resolve links: $0 may be a link
47
+ PRG="$0"
48
+ # Need this for relative symlinks.
49
+ while [ -h "$PRG" ] ; do
50
+ ls=`ls -ld "$PRG"`
51
+ link=`expr "$ls" : '.*-> \(.*\)$'`
52
+ if expr "$link" : '/.*' > /dev/null; then
53
+ PRG="$link"
54
+ else
55
+ PRG=`dirname "$PRG"`"/$link"
56
+ fi
57
+ done
58
+ SAVED="`pwd`"
59
+ cd "`dirname \"$PRG\"`/" >/dev/null
60
+ APP_HOME="`pwd -P`"
61
+ cd "$SAVED" >/dev/null
118
62
 
63
+ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
119
64
 
120
65
  # Determine the Java command to use to start the JVM.
121
66
  if [ -n "$JAVA_HOME" ] ; then
122
67
  if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
123
68
  # IBM's JDK on AIX uses strange locations for the executables
124
- JAVACMD=$JAVA_HOME/jre/sh/java
69
+ JAVACMD="$JAVA_HOME/jre/sh/java"
125
70
  else
126
- JAVACMD=$JAVA_HOME/bin/java
71
+ JAVACMD="$JAVA_HOME/bin/java"
127
72
  fi
128
73
  if [ ! -x "$JAVACMD" ] ; then
129
74
  die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@@ -132,7 +77,7 @@ Please set the JAVA_HOME variable in your environment to match the
132
77
  location of your Java installation."
133
78
  fi
134
79
  else
135
- JAVACMD=java
80
+ JAVACMD="java"
136
81
  which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137
82
 
138
83
  Please set the JAVA_HOME variable in your environment to match the
@@ -140,95 +85,76 @@ location of your Java installation."
140
85
  fi
141
86
 
142
87
  # Increase the maximum file descriptors if we can.
143
- if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144
- case $MAX_FD in #(
145
- max*)
146
- MAX_FD=$( ulimit -H -n ) ||
147
- warn "Could not query maximum file descriptor limit"
148
- esac
149
- case $MAX_FD in #(
150
- '' | soft) :;; #(
151
- *)
152
- ulimit -n "$MAX_FD" ||
153
- warn "Could not set maximum file descriptor limit to $MAX_FD"
154
- esac
88
+ if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89
+ MAX_FD_LIMIT=`ulimit -H -n`
90
+ if [ $? -eq 0 ] ; then
91
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92
+ MAX_FD="$MAX_FD_LIMIT"
93
+ fi
94
+ ulimit -n $MAX_FD
95
+ if [ $? -ne 0 ] ; then
96
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
97
+ fi
98
+ else
99
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100
+ fi
155
101
  fi
156
102
 
157
- # Collect all arguments for the java command, stacking in reverse order:
158
- # * args from the command line
159
- # * the main class name
160
- # * -classpath
161
- # * -D...appname settings
162
- # * --module-path (only if needed)
163
- # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
164
-
165
- # For Cygwin or MSYS, switch paths to Windows format before running java
166
- if "$cygwin" || "$msys" ; then
167
- APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
168
- CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
169
-
170
- JAVACMD=$( cygpath --unix "$JAVACMD" )
103
+ # For Darwin, add options to specify how the application appears in the dock
104
+ if $darwin; then
105
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106
+ fi
171
107
 
108
+ # For Cygwin, switch paths to Windows format before running java
109
+ if $cygwin ; then
110
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112
+ JAVACMD=`cygpath --unix "$JAVACMD"`
113
+
114
+ # We build the pattern for arguments to be converted via cygpath
115
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116
+ SEP=""
117
+ for dir in $ROOTDIRSRAW ; do
118
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
119
+ SEP="|"
120
+ done
121
+ OURCYGPATTERN="(^($ROOTDIRS))"
122
+ # Add a user-defined pattern to the cygpath arguments
123
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125
+ fi
172
126
  # Now convert the arguments - kludge to limit ourselves to /bin/sh
173
- for arg do
174
- if
175
- case $arg in #(
176
- -*) false ;; # don't mess with options #(
177
- /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
178
- [ -e "$t" ] ;; #(
179
- *) false ;;
180
- esac
181
- then
182
- arg=$( cygpath --path --ignore --mixed "$arg" )
127
+ i=0
128
+ for arg in "$@" ; do
129
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131
+
132
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134
+ else
135
+ eval `echo args$i`="\"$arg\""
183
136
  fi
184
- # Roll the args list around exactly as many times as the number of
185
- # args, so each arg winds up back in the position where it started, but
186
- # possibly modified.
187
- #
188
- # NB: a `for` loop captures its iteration list before it begins, so
189
- # changing the positional parameters here affects neither the number of
190
- # iterations, nor the values presented in `arg`.
191
- shift # remove old arg
192
- set -- "$@" "$arg" # push replacement arg
137
+ i=$((i+1))
193
138
  done
139
+ case $i in
140
+ (0) set -- ;;
141
+ (1) set -- "$args0" ;;
142
+ (2) set -- "$args0" "$args1" ;;
143
+ (3) set -- "$args0" "$args1" "$args2" ;;
144
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150
+ esac
194
151
  fi
195
152
 
196
- # Collect all arguments for the java command;
197
- # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
198
- # shell script including quotes and variable substitutions, so put them in
199
- # double quotes to make sure that they get re-expanded; and
200
- # * put everything else in single quotes, so that it's not re-expanded.
201
-
202
- set -- \
203
- "-Dorg.gradle.appname=$APP_BASE_NAME" \
204
- -classpath "$CLASSPATH" \
205
- org.gradle.wrapper.GradleWrapperMain \
206
- "$@"
207
-
208
- # Use "xargs" to parse quoted args.
209
- #
210
- # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
211
- #
212
- # In Bash we could simply go:
213
- #
214
- # readarray ARGS < <( xargs -n1 <<<"$var" ) &&
215
- # set -- "${ARGS[@]}" "$@"
216
- #
217
- # but POSIX shell has neither arrays nor command substitution, so instead we
218
- # post-process each arg (as a line of input to sed) to backslash-escape any
219
- # character that might be a shell metacharacter, then use eval to reverse
220
- # that process (while maintaining the separation between arguments), and wrap
221
- # the whole thing up as a single "set" statement.
222
- #
223
- # This will of course break if any of these variables contains a newline or
224
- # an unmatched quote.
225
- #
226
-
227
- eval "set -- $(
228
- printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
229
- xargs -n1 |
230
- sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
231
- tr '\n' ' '
232
- )" '"$@"'
233
-
234
- exec "$JAVACMD" "$@"
153
+ # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154
+ function splitJvmOpts() {
155
+ JVM_OPTS=("$@")
156
+ }
157
+ eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158
+ JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159
+
160
+ exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"