af 0.3.12.3 → 0.3.13.beta.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (557) hide show
  1. data/Rakefile +84 -2
  2. data/lib/cli.rb +2 -3
  3. data/lib/cli/commands/admin.rb +9 -6
  4. data/lib/cli/commands/apps.rb +180 -120
  5. data/lib/cli/commands/base.rb +8 -15
  6. data/lib/cli/commands/misc.rb +5 -4
  7. data/lib/cli/commands/services.rb +15 -16
  8. data/lib/cli/commands/user.rb +8 -4
  9. data/lib/cli/config.rb +30 -9
  10. data/lib/cli/core_ext.rb +331 -0
  11. data/lib/cli/frameworks.rb +23 -6
  12. data/lib/cli/runner.rb +4 -0
  13. data/lib/cli/services_helper.rb +8 -2
  14. data/lib/cli/usage.rb +4 -3
  15. data/lib/cli/version.rb +1 -1
  16. data/lib/vmc/client.rb +11 -3
  17. data/lib/vmc/const.rb +3 -2
  18. data/spec/assets/service_gateway_fail.txt +9 -0
  19. data/spec/assets/tests/LICENSE +7136 -0
  20. data/spec/assets/tests/NOTICE +10 -0
  21. data/spec/assets/tests/README +21 -0
  22. data/spec/assets/tests/git/hooks-wrapper +9 -0
  23. data/spec/assets/tests/git/install-hook-symlinks +28 -0
  24. data/spec/assets/tests/git/tracked_hooks/pre-commit +11 -0
  25. data/spec/assets/tests/grails/guestbook/README +8 -0
  26. data/spec/assets/tests/grails/guestbook/Rakefile +28 -0
  27. data/spec/assets/tests/grails/guestbook/application.properties +8 -0
  28. data/spec/assets/tests/grails/guestbook/grails-app/conf/BootStrap.groovy +7 -0
  29. data/spec/assets/tests/grails/guestbook/grails-app/conf/BuildConfig.groovy +31 -0
  30. data/spec/assets/tests/grails/guestbook/grails-app/conf/Config.groovy +90 -0
  31. data/spec/assets/tests/grails/guestbook/grails-app/conf/DataSource.groovy +32 -0
  32. data/spec/assets/tests/grails/guestbook/grails-app/conf/UrlMappings.groovy +13 -0
  33. data/spec/assets/tests/grails/guestbook/grails-app/conf/spring/resources.groovy +3 -0
  34. data/spec/assets/tests/grails/guestbook/grails-app/controllers/com/vmware/appcloud/testapps/grails/guestbook/GuestController.groovy +100 -0
  35. data/spec/assets/tests/grails/guestbook/grails-app/domain/com/vmware/appcloud/testapps/grails/guestbook/Guest.groovy +6 -0
  36. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages.properties +55 -0
  37. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_da.properties +56 -0
  38. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_de.properties +55 -0
  39. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_es.properties +30 -0
  40. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_fr.properties +19 -0
  41. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_it.properties +19 -0
  42. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_ja.properties +19 -0
  43. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_nl.properties +55 -0
  44. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_pt_BR.properties +34 -0
  45. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_pt_PT.properties +34 -0
  46. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_ru.properties +31 -0
  47. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_th.properties +35 -0
  48. data/spec/assets/tests/grails/guestbook/grails-app/i18n/messages_zh_CN.properties +18 -0
  49. data/spec/assets/tests/grails/guestbook/grails-app/views/error.gsp +54 -0
  50. data/spec/assets/tests/grails/guestbook/grails-app/views/guest/create.gsp +49 -0
  51. data/spec/assets/tests/grails/guestbook/grails-app/views/guest/edit.gsp +53 -0
  52. data/spec/assets/tests/grails/guestbook/grails-app/views/guest/list.gsp +53 -0
  53. data/spec/assets/tests/grails/guestbook/grails-app/views/guest/show.gsp +58 -0
  54. data/spec/assets/tests/grails/guestbook/grails-app/views/index.gsp +100 -0
  55. data/spec/assets/tests/grails/guestbook/grails-app/views/layouts/main.gsp +17 -0
  56. data/spec/assets/tests/grails/guestbook/pom.xml +316 -0
  57. data/spec/assets/tests/grails/guestbook/src/main/webapp/WEB-INF/web.xml +0 -0
  58. data/spec/assets/tests/grails/guestbook/stacktrace.log +0 -0
  59. data/spec/assets/tests/grails/guestbook/test/unit/com/vmware/appcloud/testapps/grails/guestbook/GuestControllerTests.groovy +17 -0
  60. data/spec/assets/tests/grails/guestbook/test/unit/com/vmware/appcloud/testapps/grails/guestbook/GuestTests.groovy +17 -0
  61. data/spec/assets/tests/grails/guestbook/web-app/WEB-INF/applicationContext.xml +42 -0
  62. data/spec/assets/tests/grails/guestbook/web-app/WEB-INF/sitemesh.xml +14 -0
  63. data/spec/assets/tests/grails/guestbook/web-app/WEB-INF/tld/c.tld +563 -0
  64. data/spec/assets/tests/grails/guestbook/web-app/WEB-INF/tld/fmt.tld +671 -0
  65. data/spec/assets/tests/grails/guestbook/web-app/WEB-INF/tld/grails.tld +550 -0
  66. data/spec/assets/tests/grails/guestbook/web-app/WEB-INF/tld/spring.tld +311 -0
  67. data/spec/assets/tests/grails/guestbook/web-app/css/main.css +273 -0
  68. data/spec/assets/tests/grails/guestbook/web-app/images/favicon.ico +0 -0
  69. data/spec/assets/tests/grails/guestbook/web-app/images/grails_logo.jpg +0 -0
  70. data/spec/assets/tests/grails/guestbook/web-app/images/grails_logo.png +0 -0
  71. data/spec/assets/tests/grails/guestbook/web-app/images/leftnav_btm.png +0 -0
  72. data/spec/assets/tests/grails/guestbook/web-app/images/leftnav_midstretch.png +0 -0
  73. data/spec/assets/tests/grails/guestbook/web-app/images/leftnav_top.png +0 -0
  74. data/spec/assets/tests/grails/guestbook/web-app/images/skin/database_add.png +0 -0
  75. data/spec/assets/tests/grails/guestbook/web-app/images/skin/database_delete.png +0 -0
  76. data/spec/assets/tests/grails/guestbook/web-app/images/skin/database_edit.png +0 -0
  77. data/spec/assets/tests/grails/guestbook/web-app/images/skin/database_save.png +0 -0
  78. data/spec/assets/tests/grails/guestbook/web-app/images/skin/database_table.png +0 -0
  79. data/spec/assets/tests/grails/guestbook/web-app/images/skin/exclamation.png +0 -0
  80. data/spec/assets/tests/grails/guestbook/web-app/images/skin/house.png +0 -0
  81. data/spec/assets/tests/grails/guestbook/web-app/images/skin/information.png +0 -0
  82. data/spec/assets/tests/grails/guestbook/web-app/images/skin/shadow.jpg +0 -0
  83. data/spec/assets/tests/grails/guestbook/web-app/images/skin/sorted_asc.gif +0 -0
  84. data/spec/assets/tests/grails/guestbook/web-app/images/skin/sorted_desc.gif +0 -0
  85. data/spec/assets/tests/grails/guestbook/web-app/images/spinner.gif +0 -0
  86. data/spec/assets/tests/grails/guestbook/web-app/images/springsource.png +0 -0
  87. data/spec/assets/tests/grails/guestbook/web-app/js/application.js +13 -0
  88. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/animation.js +7 -0
  89. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/builder.js +136 -0
  90. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/controls.js +965 -0
  91. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/dragdrop.js +974 -0
  92. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/effects.js +1123 -0
  93. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/prototype.js +4874 -0
  94. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/rico.js +2691 -0
  95. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/scriptaculous.js +68 -0
  96. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/slider.js +275 -0
  97. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/sound.js +59 -0
  98. data/spec/assets/tests/grails/guestbook/web-app/js/prototype/unittest.js +568 -0
  99. data/spec/assets/tests/java_web/java_tiny_app/Java_tiny_app.iml +29 -0
  100. data/spec/assets/tests/java_web/java_tiny_app/README +9 -0
  101. data/spec/assets/tests/java_web/java_tiny_app/pom.xml +15 -0
  102. data/spec/assets/tests/java_web/java_tiny_app/src/main/java/com/vmware/appcloud/testapps/javatinyapp/MainServlet.java +31 -0
  103. data/spec/assets/tests/java_web/java_tiny_app/src/main/webapp/WEB-INF/web.xml +23 -0
  104. data/spec/assets/tests/java_web/java_tiny_app/target/JavaTinyApp-1.0.war +0 -0
  105. data/spec/assets/tests/java_web/java_tiny_app/target/JavaTinyApp-1.0/WEB-INF/classes/com/vmware/appcloud/testapps/javatinyapp/MainServlet.class +0 -0
  106. data/spec/assets/tests/java_web/java_tiny_app/target/JavaTinyApp-1.0/WEB-INF/web.xml +23 -0
  107. data/spec/assets/tests/java_web/java_tiny_app/target/classes/com/vmware/appcloud/testapps/javatinyapp/MainServlet.class +0 -0
  108. data/spec/assets/tests/java_web/java_tiny_app/target/maven-archiver/pom.properties +5 -0
  109. data/spec/assets/tests/lift/hello_lift/README +8 -0
  110. data/spec/assets/tests/lift/hello_lift/pom.xml +209 -0
  111. data/spec/assets/tests/lift/hello_lift/project/build.properties +7 -0
  112. data/spec/assets/tests/lift/hello_lift/project/build/LiftProject.scala +9 -0
  113. data/spec/assets/tests/lift/hello_lift/src/main/resources/props/default.props +1 -0
  114. data/spec/assets/tests/lift/hello_lift/src/main/scala/bootstrap/liftweb/Boot.scala +71 -0
  115. data/spec/assets/tests/lift/hello_lift/src/main/scala/com/vmware/appcloud/lib/DepencyFactory.scala +57 -0
  116. data/spec/assets/tests/lift/hello_lift/src/main/scala/com/vmware/appcloud/model/User.scala +38 -0
  117. data/spec/assets/tests/lift/hello_lift/src/main/scala/com/vmware/appcloud/snippet/HelloWorld.scala +25 -0
  118. data/spec/assets/tests/lift/hello_lift/src/main/webapp/WEB-INF/web.xml +21 -0
  119. data/spec/assets/tests/lift/hello_lift/src/main/webapp/images/ajax-loader.gif +0 -0
  120. data/spec/assets/tests/lift/hello_lift/src/main/webapp/index.html +9 -0
  121. data/spec/assets/tests/lift/hello_lift/src/main/webapp/static/index.html +5 -0
  122. data/spec/assets/tests/lift/hello_lift/src/main/webapp/templates-hidden/default.html +99 -0
  123. data/spec/assets/tests/lift/hello_lift/src/main/webapp/templates-hidden/wizard-all.html +23 -0
  124. data/spec/assets/tests/lift/hello_lift/src/packageLinkDefs.properties +7 -0
  125. data/spec/assets/tests/lift/hello_lift/src/test/scala/LiftConsole.scala +15 -0
  126. data/spec/assets/tests/lift/hello_lift/src/test/scala/RunWebApp.scala +33 -0
  127. data/spec/assets/tests/lift/hello_lift/src/test/scala/com/vmware/appcloud/AppTest.scala +85 -0
  128. data/spec/assets/tests/lift/hello_lift/src/test/scala/com/vmware/appcloud/snippet/HelloWorldTest.scala +46 -0
  129. data/spec/assets/tests/lift/hello_lift/target/classes.timestamp +1 -0
  130. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$1.class +0 -0
  131. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$2.class +0 -0
  132. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$boot$1.class +0 -0
  133. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$boot$2.class +0 -0
  134. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$boot$3.class +0 -0
  135. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$boot$4.class +0 -0
  136. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$boot$5.class +0 -0
  137. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$boot$6.class +0 -0
  138. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$boot$7.class +0 -0
  139. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$sitemap$1$1.class +0 -0
  140. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot$$anonfun$sitemap$1$2.class +0 -0
  141. data/spec/assets/tests/lift/hello_lift/target/classes/bootstrap/liftweb/Boot.class +0 -0
  142. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/lib/DependencyFactory$.class +0 -0
  143. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/lib/DependencyFactory$time$$anonfun$$init$$1.class +0 -0
  144. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/lib/DependencyFactory$time$.class +0 -0
  145. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/lib/DependencyFactory.class +0 -0
  146. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/model/User$.class +0 -0
  147. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/model/User$textArea$.class +0 -0
  148. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/model/User.class +0 -0
  149. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/snippet/HelloWorld$$anonfun$howdy$1.class +0 -0
  150. data/spec/assets/tests/lift/hello_lift/target/classes/com/vmware/appcloud/snippet/HelloWorld.class +0 -0
  151. data/spec/assets/tests/lift/hello_lift/target/classes/props/default.props +1 -0
  152. data/spec/assets/tests/lift/hello_lift/target/maven-archiver/pom.properties +5 -0
  153. data/spec/assets/tests/lift/hello_lift/target/packageLinkDefs.properties +7 -0
  154. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0.war +0 -0
  155. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$1.class +0 -0
  156. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$2.class +0 -0
  157. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$boot$1.class +0 -0
  158. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$boot$2.class +0 -0
  159. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$boot$3.class +0 -0
  160. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$boot$4.class +0 -0
  161. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$boot$5.class +0 -0
  162. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$boot$6.class +0 -0
  163. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$boot$7.class +0 -0
  164. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$sitemap$1$1.class +0 -0
  165. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot$$anonfun$sitemap$1$2.class +0 -0
  166. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/bootstrap/liftweb/Boot.class +0 -0
  167. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/lib/DependencyFactory$.class +0 -0
  168. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/lib/DependencyFactory$time$$anonfun$$init$$1.class +0 -0
  169. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/lib/DependencyFactory$time$.class +0 -0
  170. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/lib/DependencyFactory.class +0 -0
  171. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/model/User$.class +0 -0
  172. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/model/User$textArea$.class +0 -0
  173. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/model/User.class +0 -0
  174. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/snippet/HelloWorld$$anonfun$howdy$1.class +0 -0
  175. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/com/vmware/appcloud/snippet/HelloWorld.class +0 -0
  176. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/classes/props/default.props +1 -0
  177. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/activation-1.1.jar +0 -0
  178. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/commons-codec-1.4.jar +0 -0
  179. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/commons-fileupload-1.2.2.jar +0 -0
  180. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/derby-10.7.1.1.jar +0 -0
  181. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/h2-1.2.138.jar +0 -0
  182. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/htmlparser-1.2.1.jar +0 -0
  183. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/joda-time-1.6.2.jar +0 -0
  184. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-actor_2.8.1-2.3.jar +0 -0
  185. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-common_2.8.1-2.3.jar +0 -0
  186. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-db_2.8.1-2.3.jar +0 -0
  187. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-json_2.8.1-2.3.jar +0 -0
  188. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-mapper_2.8.1-2.3.jar +0 -0
  189. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-proto_2.8.1-2.3.jar +0 -0
  190. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-util_2.8.1-2.3.jar +0 -0
  191. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/lift-webkit_2.8.1-2.3.jar +0 -0
  192. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/logback-classic-0.9.26.jar +0 -0
  193. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/logback-core-0.9.26.jar +0 -0
  194. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/mail-1.4.1.jar +0 -0
  195. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/paranamer-2.3.jar +0 -0
  196. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/scala-library-2.8.1.jar +0 -0
  197. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/lib/slf4j-api-1.6.1.jar +0 -0
  198. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/WEB-INF/web.xml +21 -0
  199. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/images/ajax-loader.gif +0 -0
  200. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/index.html +9 -0
  201. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/static/index.html +5 -0
  202. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/templates-hidden/default.html +99 -0
  203. data/spec/assets/tests/lift/hello_lift/target/scala_lift-1.0/templates-hidden/wizard-all.html +23 -0
  204. data/spec/assets/tests/lift/hello_lift/target/test-classes.timestamp +1 -0
  205. data/spec/assets/tests/lift/hello_lift/target/test-classes/LiftConsole$.class +0 -0
  206. data/spec/assets/tests/lift/hello_lift/target/test-classes/LiftConsole.class +0 -0
  207. data/spec/assets/tests/lift/hello_lift/target/test-classes/RunWebApp$.class +0 -0
  208. data/spec/assets/tests/lift/hello_lift/target/test-classes/RunWebApp.class +0 -0
  209. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/AppTest$$anonfun$wellFormed$1$1.class +0 -0
  210. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/AppTest$.class +0 -0
  211. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/AppTest.class +0 -0
  212. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$1.class +0 -0
  213. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$3.class +0 -0
  214. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$2.class +0 -0
  215. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$7$$anonfun$apply$8.class +0 -0
  216. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$7.class +0 -0
  217. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$9$$anonfun$apply$10.class +0 -0
  218. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$9$$anonfun$apply$4.class +0 -0
  219. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6$$anonfun$apply$9.class +0 -0
  220. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1$$anonfun$apply$6.class +0 -0
  221. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$1.class +0 -0
  222. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$executeExpectations$1$$anonfun$apply$5.class +0 -0
  223. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$$anonfun$executeExpectations$1.class +0 -0
  224. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs$.class +0 -0
  225. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecs.class +0 -0
  226. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecsAsTest.class +0 -0
  227. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecsRunner$.class +0 -0
  228. data/spec/assets/tests/lift/hello_lift/target/test-classes/com/vmware/appcloud/snippet/HelloWorldTestSpecsRunner.class +0 -0
  229. data/spec/assets/tests/node/hello_vcap/app.js +16 -0
  230. data/spec/assets/tests/rails3/hello_vcap/Gemfile +8 -0
  231. data/spec/assets/tests/rails3/hello_vcap/Gemfile.lock +85 -0
  232. data/spec/assets/tests/rails3/hello_vcap/README +256 -0
  233. data/spec/assets/tests/rails3/hello_vcap/Rakefile +7 -0
  234. data/spec/assets/tests/rails3/hello_vcap/app/controllers/application_controller.rb +3 -0
  235. data/spec/assets/tests/rails3/hello_vcap/app/controllers/root_controller.rb +13 -0
  236. data/spec/assets/tests/rails3/hello_vcap/app/helpers/application_helper.rb +2 -0
  237. data/spec/assets/tests/rails3/hello_vcap/app/helpers/root_helper.rb +2 -0
  238. data/spec/assets/tests/rails3/hello_vcap/app/models/widget.rb +2 -0
  239. data/spec/assets/tests/rails3/hello_vcap/app/views/layouts/application.html.erb +11 -0
  240. data/spec/assets/tests/rails3/hello_vcap/app/views/root/index.html.erb +5 -0
  241. data/spec/assets/tests/rails3/hello_vcap/config.ru +4 -0
  242. data/spec/assets/tests/rails3/hello_vcap/config/application.rb +42 -0
  243. data/spec/assets/tests/rails3/hello_vcap/config/boot.rb +13 -0
  244. data/spec/assets/tests/rails3/hello_vcap/config/database.yml +12 -0
  245. data/spec/assets/tests/rails3/hello_vcap/config/environment.rb +5 -0
  246. data/spec/assets/tests/rails3/hello_vcap/config/environments/development.rb +26 -0
  247. data/spec/assets/tests/rails3/hello_vcap/config/environments/production.rb +49 -0
  248. data/spec/assets/tests/rails3/hello_vcap/config/environments/test.rb +35 -0
  249. data/spec/assets/tests/rails3/hello_vcap/config/initializers/backtrace_silencers.rb +7 -0
  250. data/spec/assets/tests/rails3/hello_vcap/config/initializers/inflections.rb +10 -0
  251. data/spec/assets/tests/rails3/hello_vcap/config/initializers/mime_types.rb +5 -0
  252. data/spec/assets/tests/rails3/hello_vcap/config/initializers/secret_token.rb +7 -0
  253. data/spec/assets/tests/rails3/hello_vcap/config/initializers/session_store.rb +8 -0
  254. data/spec/assets/tests/rails3/hello_vcap/config/locales/en.yml +5 -0
  255. data/spec/assets/tests/rails3/hello_vcap/config/routes.rb +61 -0
  256. data/spec/assets/tests/rails3/hello_vcap/db/migrate/20101108182500_create_widgets.rb +13 -0
  257. data/spec/assets/tests/rails3/hello_vcap/db/schema.rb +21 -0
  258. data/spec/assets/tests/rails3/hello_vcap/db/seeds.rb +7 -0
  259. data/spec/assets/tests/rails3/hello_vcap/public/404.html +26 -0
  260. data/spec/assets/tests/rails3/hello_vcap/public/422.html +26 -0
  261. data/spec/assets/tests/rails3/hello_vcap/public/500.html +26 -0
  262. data/spec/assets/tests/rails3/hello_vcap/public/favicon.ico +0 -0
  263. data/spec/assets/tests/rails3/hello_vcap/public/images/rails.png +0 -0
  264. data/spec/assets/tests/rails3/hello_vcap/public/javascripts/application.js +0 -0
  265. data/spec/assets/tests/rails3/hello_vcap/public/robots.txt +5 -0
  266. data/spec/assets/tests/rails3/hello_vcap/script/rails +6 -0
  267. data/spec/assets/tests/rails3/hello_vcap/test/functional/root_controller_test.rb +14 -0
  268. data/spec/assets/tests/rails3/hello_vcap/test/performance/browsing_test.rb +9 -0
  269. data/spec/assets/tests/rails3/hello_vcap/test/test_helper.rb +13 -0
  270. data/spec/assets/tests/rails3/hello_vcap/test/unit/helpers/root_helper_test.rb +4 -0
  271. data/spec/assets/tests/rails3/hello_vcap/test/unit/widget_test.rb +12 -0
  272. data/spec/assets/tests/sinatra/hello_vcap/foo.rb +13 -0
  273. data/spec/assets/tests/spring/auto-reconfig-missing-deps-test-app/pom.xml +247 -0
  274. data/spec/assets/tests/spring/auto-reconfig-missing-deps-test-app/src/main/java/org/cloudfoundry/test/DefaultController.java +40 -0
  275. data/spec/assets/tests/spring/auto-reconfig-missing-deps-test-app/src/main/resources/META-INF/spring/root-context.xml +27 -0
  276. data/spec/assets/tests/spring/auto-reconfig-missing-deps-test-app/src/main/resources/log4j.xml +41 -0
  277. data/spec/assets/tests/spring/auto-reconfig-missing-deps-test-app/src/main/webapp/META-INF/MANIFEST.MF +2 -0
  278. data/spec/assets/tests/spring/auto-reconfig-missing-deps-test-app/src/main/webapp/WEB-INF/spring/servlet-context.xml +22 -0
  279. data/spec/assets/tests/spring/auto-reconfig-missing-deps-test-app/src/main/webapp/WEB-INF/web.xml +30 -0
  280. data/spec/assets/tests/spring/auto-reconfig-test-app/pom.xml +374 -0
  281. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/java/org/cloudfoundry/test/ServiceController.java +122 -0
  282. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/java/org/cloudfoundry/test/ServiceHolder.java +97 -0
  283. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/java/org/cloudfoundry/test/TestApplicationContextInitializer.java +45 -0
  284. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/resources/META-INF/spring/database.properties +4 -0
  285. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/resources/META-INF/spring/root-context.xml +86 -0
  286. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/resources/log4j.xml +41 -0
  287. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/webapp/META-INF/MANIFEST.MF +2 -0
  288. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/webapp/WEB-INF/spring/servlet-context.xml +22 -0
  289. data/spec/assets/tests/spring/auto-reconfig-test-app/src/main/webapp/WEB-INF/web.xml +34 -0
  290. data/spec/assets/tests/spring/roo-guestbook/README +4 -0
  291. data/spec/assets/tests/spring/roo-guestbook/pom.xml +493 -0
  292. data/spec/assets/tests/spring/roo-guestbook/src/main/java/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest.java +13 -0
  293. data/spec/assets/tests/spring/roo-guestbook/src/main/java/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_Configurable.aj +12 -0
  294. data/spec/assets/tests/spring/roo-guestbook/src/main/java/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_Entity.aj +106 -0
  295. data/spec/assets/tests/spring/roo-guestbook/src/main/java/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_JavaBean.aj +18 -0
  296. data/spec/assets/tests/spring/roo-guestbook/src/main/java/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_ToString.aj +18 -0
  297. data/spec/assets/tests/spring/roo-guestbook/src/main/java/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController.java +12 -0
  298. data/spec/assets/tests/spring/roo-guestbook/src/main/java/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController_Roo_Controller.aj +115 -0
  299. data/spec/assets/tests/spring/roo-guestbook/src/main/resources/META-INF/persistence.xml +15 -0
  300. data/spec/assets/tests/spring/roo-guestbook/src/main/resources/META-INF/spring/applicationContext.xml +63 -0
  301. data/spec/assets/tests/spring/roo-guestbook/src/main/resources/META-INF/spring/database.properties +6 -0
  302. data/spec/assets/tests/spring/roo-guestbook/src/main/resources/log4j.properties +17 -0
  303. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/classes/alt.properties +1 -0
  304. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/classes/standard.properties +1 -0
  305. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/i18n/application.properties +11 -0
  306. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/i18n/messages.properties +99 -0
  307. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/layouts/default.jspx +27 -0
  308. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/layouts/layouts.xml +19 -0
  309. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/spring/webmvc-config.xml +73 -0
  310. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/create.tagx +29 -0
  311. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/dependency.tagx +25 -0
  312. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/checkbox.tagx +35 -0
  313. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/column.tagx +28 -0
  314. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/datetime.tagx +75 -0
  315. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/display.tagx +51 -0
  316. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/editor.tagx +46 -0
  317. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/input.tagx +87 -0
  318. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/reference.tagx +42 -0
  319. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/select.tagx +99 -0
  320. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/simple.tagx +35 -0
  321. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/table.tagx +138 -0
  322. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/fields/textarea.tagx +47 -0
  323. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/find.tagx +29 -0
  324. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/list.tagx +31 -0
  325. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/show.tagx +101 -0
  326. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/form/update.tagx +42 -0
  327. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/menu/category.tagx +25 -0
  328. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/menu/item.tagx +29 -0
  329. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/menu/menu.tagx +13 -0
  330. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/util/language.tagx +31 -0
  331. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/util/load-scripts.tagx +28 -0
  332. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/util/pagination.tagx +87 -0
  333. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/util/panel.tagx +32 -0
  334. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/util/placeholder.tagx +4 -0
  335. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/tags/util/theme.tagx +36 -0
  336. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/dataAccessFailure.jspx +29 -0
  337. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/footer.jspx +36 -0
  338. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/guests/create.jspx +8 -0
  339. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/guests/list.jspx +9 -0
  340. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/guests/show.jspx +7 -0
  341. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/guests/update.jspx +7 -0
  342. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/guests/views.xml +16 -0
  343. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/header.jspx +10 -0
  344. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/index-template.jspx +10 -0
  345. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/index.jspx +13 -0
  346. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/menu.jspx +11 -0
  347. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/resourceNotFound.jspx +28 -0
  348. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/uncaughtException.jspx +28 -0
  349. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/views/views.xml +24 -0
  350. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/WEB-INF/web.xml +94 -0
  351. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/add.png +0 -0
  352. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/banner-graphic.png +0 -0
  353. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/create.png +0 -0
  354. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/delete.png +0 -0
  355. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/en.png +0 -0
  356. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/favicon.ico +0 -0
  357. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/list.png +0 -0
  358. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/resultset_first.png +0 -0
  359. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/resultset_last.png +0 -0
  360. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/resultset_next.png +0 -0
  361. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/resultset_previous.png +0 -0
  362. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/show.png +0 -0
  363. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/springsource-logo.png +0 -0
  364. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/images/update.png +0 -0
  365. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/styles/alt.css +362 -0
  366. data/spec/assets/tests/spring/roo-guestbook/src/main/webapp/styles/standard.css +366 -0
  367. data/spec/assets/tests/spring/roo-guestbook/target/classes/META-INF/aop-ajc.xml +10 -0
  368. data/spec/assets/tests/spring/roo-guestbook/target/classes/META-INF/persistence.xml +15 -0
  369. data/spec/assets/tests/spring/roo-guestbook/target/classes/META-INF/spring/applicationContext.xml +63 -0
  370. data/spec/assets/tests/spring/roo-guestbook/target/classes/META-INF/spring/database.properties +6 -0
  371. data/spec/assets/tests/spring/roo-guestbook/target/classes/builddef.lst +18 -0
  372. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest.class +0 -0
  373. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_Configurable.class +0 -0
  374. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_Entity.class +0 -0
  375. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_JavaBean.class +0 -0
  376. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_ToString.class +0 -0
  377. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController$1.class +0 -0
  378. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController.class +0 -0
  379. data/spec/assets/tests/spring/roo-guestbook/target/classes/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController_Roo_Controller.class +0 -0
  380. data/spec/assets/tests/spring/roo-guestbook/target/classes/log4j.properties +17 -0
  381. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT.war +0 -0
  382. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/META-INF/aop-ajc.xml +10 -0
  383. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/META-INF/persistence.xml +15 -0
  384. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/META-INF/spring/applicationContext.xml +63 -0
  385. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/META-INF/spring/database.properties +6 -0
  386. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/alt.properties +1 -0
  387. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/builddef.lst +18 -0
  388. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest.class +0 -0
  389. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_Configurable.class +0 -0
  390. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_Entity.class +0 -0
  391. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_JavaBean.class +0 -0
  392. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/domain/Guest_Roo_ToString.class +0 -0
  393. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController$1.class +0 -0
  394. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController.class +0 -0
  395. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/com/vmware/appcloud/testapps/roo/guestbook/web/GuestController_Roo_Controller.class +0 -0
  396. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/log4j.properties +17 -0
  397. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/classes/standard.properties +1 -0
  398. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/i18n/application.properties +11 -0
  399. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/i18n/messages.properties +99 -0
  400. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/layouts/default.jspx +27 -0
  401. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/layouts/layouts.xml +19 -0
  402. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/antlr-2.7.6.jar +0 -0
  403. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/aopalliance-1.0.jar +0 -0
  404. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/aspectjrt-1.6.10.jar +0 -0
  405. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/aspectjweaver-1.6.10.jar +0 -0
  406. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/cglib-nodep-2.2.jar +0 -0
  407. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/commons-beanutils-1.8.0.jar +0 -0
  408. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/commons-collections-3.1.jar +0 -0
  409. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/commons-dbcp-1.3.jar +0 -0
  410. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/commons-digester-2.0.jar +0 -0
  411. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/commons-fileupload-1.2.1.jar +0 -0
  412. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/commons-pool-1.5.4.jar +0 -0
  413. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/dom4j-1.6.1.jar +0 -0
  414. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/flexjson-2.0.jar +0 -0
  415. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/hibernate-annotations-3.5.5-Final.jar +0 -0
  416. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/hibernate-commons-annotations-3.2.0.Final.jar +0 -0
  417. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/hibernate-core-3.5.5-Final.jar +0 -0
  418. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/hibernate-entitymanager-3.5.5-Final.jar +0 -0
  419. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/hibernate-jpa-2.0-api-1.0.0.Final.jar +0 -0
  420. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/hibernate-validator-4.1.0.Final.jar +0 -0
  421. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/hsqldb-1.8.0.10.jar +0 -0
  422. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/javassist-3.9.0.GA.jar +0 -0
  423. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/jcl-over-slf4j-1.6.1.jar +0 -0
  424. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/joda-time-1.6.jar +0 -0
  425. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/jstl-1.2.jar +0 -0
  426. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/jta-1.1.jar +0 -0
  427. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/log4j-1.2.16.jar +0 -0
  428. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/slf4j-api-1.6.1.jar +0 -0
  429. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/slf4j-log4j12-1.6.1.jar +0 -0
  430. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-aop-3.0.5.RELEASE.jar +0 -0
  431. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-asm-3.0.5.RELEASE.jar +0 -0
  432. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-aspects-3.0.5.RELEASE.jar +0 -0
  433. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-beans-3.0.5.RELEASE.jar +0 -0
  434. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-context-3.0.5.RELEASE.jar +0 -0
  435. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-context-support-3.0.5.RELEASE.jar +0 -0
  436. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-core-3.0.5.RELEASE.jar +0 -0
  437. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-expression-3.0.5.RELEASE.jar +0 -0
  438. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-jdbc-3.0.5.RELEASE.jar +0 -0
  439. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-js-resources-2.2.0.RELEASE.jar +0 -0
  440. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-orm-3.0.5.RELEASE.jar +0 -0
  441. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-tx-3.0.5.RELEASE.jar +0 -0
  442. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-web-3.0.5.RELEASE.jar +0 -0
  443. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/spring-webmvc-3.0.5.RELEASE.jar +0 -0
  444. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/tiles-api-2.2.1.jar +0 -0
  445. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/tiles-core-2.2.1.jar +0 -0
  446. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/tiles-jsp-2.2.1.jar +0 -0
  447. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/tiles-servlet-2.2.1.jar +0 -0
  448. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/tiles-template-2.2.1.jar +0 -0
  449. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/validation-api-1.0.0.GA.jar +0 -0
  450. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/lib/xml-apis-1.0.b2.jar +0 -0
  451. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/spring/webmvc-config.xml +73 -0
  452. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/create.tagx +29 -0
  453. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/dependency.tagx +25 -0
  454. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/checkbox.tagx +35 -0
  455. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/column.tagx +28 -0
  456. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/datetime.tagx +75 -0
  457. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/display.tagx +51 -0
  458. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/editor.tagx +46 -0
  459. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/input.tagx +87 -0
  460. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/reference.tagx +42 -0
  461. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/select.tagx +99 -0
  462. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/simple.tagx +35 -0
  463. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/table.tagx +138 -0
  464. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/fields/textarea.tagx +47 -0
  465. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/find.tagx +29 -0
  466. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/list.tagx +31 -0
  467. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/show.tagx +101 -0
  468. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/form/update.tagx +42 -0
  469. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/menu/category.tagx +25 -0
  470. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/menu/item.tagx +29 -0
  471. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/menu/menu.tagx +13 -0
  472. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/util/language.tagx +31 -0
  473. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/util/load-scripts.tagx +28 -0
  474. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/util/pagination.tagx +87 -0
  475. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/util/panel.tagx +32 -0
  476. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/util/placeholder.tagx +4 -0
  477. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/tags/util/theme.tagx +36 -0
  478. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/dataAccessFailure.jspx +29 -0
  479. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/footer.jspx +36 -0
  480. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/guests/create.jspx +8 -0
  481. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/guests/list.jspx +9 -0
  482. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/guests/show.jspx +7 -0
  483. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/guests/update.jspx +7 -0
  484. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/guests/views.xml +16 -0
  485. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/header.jspx +10 -0
  486. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/index-template.jspx +10 -0
  487. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/index.jspx +13 -0
  488. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/menu.jspx +11 -0
  489. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/resourceNotFound.jspx +28 -0
  490. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/uncaughtException.jspx +28 -0
  491. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/views/views.xml +24 -0
  492. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/WEB-INF/web.xml +94 -0
  493. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/add.png +0 -0
  494. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/banner-graphic.png +0 -0
  495. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/create.png +0 -0
  496. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/delete.png +0 -0
  497. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/en.png +0 -0
  498. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/favicon.ico +0 -0
  499. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/list.png +0 -0
  500. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/resultset_first.png +0 -0
  501. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/resultset_last.png +0 -0
  502. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/resultset_next.png +0 -0
  503. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/resultset_previous.png +0 -0
  504. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/show.png +0 -0
  505. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/springsource-logo.png +0 -0
  506. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/images/update.png +0 -0
  507. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/styles/alt.css +362 -0
  508. data/spec/assets/tests/spring/roo-guestbook/target/guestbook-roo-0.1.0.BUILD-SNAPSHOT/styles/standard.css +366 -0
  509. data/spec/assets/tests/spring/roo-guestbook/target/maven-archiver/pom.properties +5 -0
  510. data/spec/assets/tests/spring/roo-guestbook/target/war/work/webapp-cache.xml +2461 -0
  511. data/spec/assets/tests/spring/spring-osgi-hello/pom.xml +233 -0
  512. data/spec/assets/tests/spring/spring-osgi-hello/src/main/java/org/cloudfoundry/osgi/HomeController.java +39 -0
  513. data/spec/assets/tests/spring/spring-osgi-hello/src/main/resources/log4j.xml +41 -0
  514. data/spec/assets/tests/spring/spring-osgi-hello/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml +28 -0
  515. data/spec/assets/tests/spring/spring-osgi-hello/src/main/webapp/WEB-INF/spring/root-context.xml +8 -0
  516. data/spec/assets/tests/spring/spring-osgi-hello/src/main/webapp/WEB-INF/views/home.jsp +14 -0
  517. data/spec/assets/tests/spring/spring-osgi-hello/src/main/webapp/WEB-INF/web.xml +33 -0
  518. data/spec/assets/tests/spring/spring-osgi-hello/src/test/resources/log4j.xml +41 -0
  519. data/spec/assets/tests/spring/spring-osgi-hello/target/classes/META-INF/aop-ajc.xml +5 -0
  520. data/spec/assets/tests/spring/spring-osgi-hello/target/classes/builddef.lst +10 -0
  521. data/spec/assets/tests/spring/spring-osgi-hello/target/classes/log4j.xml +41 -0
  522. data/spec/assets/tests/spring/spring-osgi-hello/target/classes/org/cloudfoundry/osgi/HomeController.class +0 -0
  523. data/spec/assets/tests/spring/spring-osgi-hello/target/hello.war +0 -0
  524. data/spec/assets/tests/spring/spring-osgi-hello/target/maven-archiver/pom.properties +5 -0
  525. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/classes/META-INF/aop-ajc.xml +5 -0
  526. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/classes/builddef.lst +10 -0
  527. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/classes/log4j.xml +41 -0
  528. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/classes/org/cloudfoundry/osgi/HomeController.class +0 -0
  529. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/aopalliance-1.0.jar +0 -0
  530. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/aspectjrt-1.6.9.jar +0 -0
  531. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/commons-logging-1.1.1.jar +0 -0
  532. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/javax.inject-1.jar +0 -0
  533. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/jcl-over-slf4j-1.5.10.jar +0 -0
  534. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/jstl-1.2.jar +0 -0
  535. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/log4j-1.2.15.jar +0 -0
  536. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/slf4j-api-1.5.10.jar +0 -0
  537. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/slf4j-log4j12-1.5.10.jar +0 -0
  538. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-aop-3.0.5.RELEASE.jar +0 -0
  539. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-asm-3.0.5.RELEASE.jar +0 -0
  540. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-beans-3.0.5.RELEASE.jar +0 -0
  541. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-context-3.0.5.RELEASE.jar +0 -0
  542. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-context-support-3.0.5.RELEASE.jar +0 -0
  543. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-core-3.0.5.RELEASE.jar +0 -0
  544. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-expression-3.0.5.RELEASE.jar +0 -0
  545. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-web-3.0.5.RELEASE.jar +0 -0
  546. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/lib/spring-webmvc-3.0.5.RELEASE.jar +0 -0
  547. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/spring/appServlet/servlet-context.xml +28 -0
  548. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/spring/root-context.xml +8 -0
  549. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/views/home.jsp +14 -0
  550. data/spec/assets/tests/spring/spring-osgi-hello/target/osgi-1.0.0-BUILD-SNAPSHOT/WEB-INF/web.xml +33 -0
  551. data/spec/assets/tests/spring/spring-osgi-hello/target/test-classes/log4j.xml +41 -0
  552. data/spec/spec_helper.rb +2 -0
  553. data/spec/unit/cli_opts_spec.rb +17 -0
  554. data/spec/unit/client_spec.rb +13 -0
  555. data/spec/unit/frameworks_spec.rb +94 -0
  556. data/spec/unit/io_spec.rb +192 -0
  557. metadata +618 -74
@@ -1,7 +1,6 @@
1
1
 
2
2
  require 'rubygems'
3
3
  require 'terminal-table/import'
4
- require 'highline/import'
5
4
 
6
5
  module VMC::Cli
7
6
 
@@ -15,16 +14,10 @@ module VMC::Cli
15
14
  @no_prompt = @options[:noprompts]
16
15
  @prompt_ok = !no_prompt
17
16
 
18
- # Fix for system ruby and Highline (stdin) on MacOSX
19
- if RUBY_PLATFORM =~ /darwin/ && RUBY_VERSION == '1.8.7' && RUBY_PATCHLEVEL <= 174
20
- HighLine.track_eof = false
21
- end
22
-
23
17
  # Suppress colorize on Windows systems for now.
24
- if !!RUBY_PLATFORM['mingw'] || !!RUBY_PLATFORM['mswin32'] || !!RUBY_PLATFORM['cygwin']
18
+ if WINDOWS
25
19
  VMC::Cli::Config.colorize = false
26
20
  end
27
-
28
21
  end
29
22
 
30
23
  def client
@@ -36,18 +29,19 @@ module VMC::Cli
36
29
  end
37
30
 
38
31
  def client_info
39
- return @client_info if @client_info
40
- @client_info = client.info
32
+ @client_info ||= client.info
41
33
  end
42
34
 
43
35
  def target_url
44
- return @target_url if @target_url
45
- @target_url = VMC::Cli::Config.target_url
36
+ @target_url ||= VMC::Cli::Config.target_url
37
+ end
38
+
39
+ def target_base
40
+ @target_base ||= VMC::Cli::Config.suggest_url
46
41
  end
47
42
 
48
43
  def auth_token
49
- return @auth_token if @auth_token
50
- @auth_token = VMC::Cli::Config.auth_token
44
+ @auth_token ||= VMC::Cli::Config.auth_token
51
45
  end
52
46
 
53
47
  def runtimes_info
@@ -72,7 +66,6 @@ module VMC::Cli
72
66
  end
73
67
  @frameworks
74
68
  end
75
-
76
69
  end
77
70
  end
78
71
  end
@@ -2,7 +2,7 @@ module VMC::Cli::Command
2
2
 
3
3
  class Misc < Base
4
4
  def version
5
- say "vmc #{VMC::Cli::VERSION}"
5
+ say "af #{VMC::Cli::VERSION}"
6
6
  end
7
7
 
8
8
  def target
@@ -30,9 +30,10 @@ module VMC::Cli::Command
30
30
  client = VMC::Client.new(target_url)
31
31
  unless client.target_valid?
32
32
  if prompt_ok
33
- display "Host is not valid: '#{target_url}'".red
34
- show_response = ask "Would you like see the response [yN]? "
35
- display "\n<<<\n#{client.raw_info}\n>>>\n" if show_response.upcase == 'Y'
33
+ display "Host is not available or is not valid: '#{target_url}'".red
34
+ show_response = ask "Would you like see the response?",
35
+ :default => false
36
+ display "\n<<<\n#{client.raw_info}\n>>>\n" if show_response
36
37
  end
37
38
  exit(false)
38
39
  else
@@ -20,15 +20,15 @@ module VMC::Cli::Command
20
20
  unless no_prompt || service
21
21
  services = client.services_info
22
22
  err 'No services available to provision' if services.empty?
23
- choose do |menu|
24
- menu.prompt = 'Please select one you wish to provision: '
25
- menu.select_by = :index_or_name
26
- services.each do |service_type, value|
27
- value.each do |vendor, version|
28
- menu.choice(vendor.to_s) { service = vendor.to_s }
29
- end
30
- end
31
- end
23
+ service = ask(
24
+ "Which service would you like to provision?",
25
+ { :indexed => true,
26
+ :choices =>
27
+ services.values.collect { |type|
28
+ type.keys.collect(&:to_s)
29
+ }.flatten
30
+ }
31
+ )
32
32
  end
33
33
  name = @options[:name] unless name
34
34
  unless name
@@ -44,13 +44,12 @@ module VMC::Cli::Command
44
44
  unless no_prompt || service
45
45
  user_services = client.services
46
46
  err 'No services available to delete' if user_services.empty?
47
- choose do |menu|
48
- menu.prompt = 'Please select one you wish to delete: '
49
- menu.select_by = :index_or_name
50
- user_services.each do |s|
51
- menu.choice(s[:name]) { service = s[:name] }
52
- end
53
- end
47
+ service = ask(
48
+ "Which service would you like to delete?",
49
+ { :indexed => true,
50
+ :choices => user_services.collect { |s| s[:name] }
51
+ }
52
+ )
54
53
  end
55
54
  err "Service name required." unless service
56
55
  display "Deleting service [#{service}]: ", false
@@ -13,8 +13,12 @@ module VMC::Cli::Command
13
13
  email = @options[:email] unless email
14
14
  password = @options[:password]
15
15
  tries ||= 0
16
- email = ask("Email: ") unless no_prompt || email
17
- password = ask("Password: ") {|q| q.echo = '*'} unless no_prompt || password
16
+
17
+ unless no_prompt
18
+ email ||= ask("Email")
19
+ password ||= ask("Password", :echo => "*")
20
+ end
21
+
18
22
  err "Need a valid email" unless email
19
23
  err "Need a password" unless password
20
24
  login_and_save_token(email, password)
@@ -39,8 +43,8 @@ module VMC::Cli::Command
39
43
  err "Need to be logged in to change password." unless email
40
44
  say "Changing password for '#{email}'\n"
41
45
  unless no_prompt
42
- password = ask("New Password: ") {|q| q.echo = '*'}
43
- password2 = ask("Verify Password: ") {|q| q.echo = '*'}
46
+ password = ask "New Password", :echo => "*"
47
+ password2 = ask "Verify Password", :echo => "*"
44
48
  err "Passwords did not match, try again" if password != password2
45
49
  end
46
50
  err "Password required" unless password
@@ -20,13 +20,12 @@ module VMC::Cli
20
20
  attr_accessor :output
21
21
  attr_accessor :trace
22
22
  attr_accessor :nozip
23
- attr_reader :suggest_url
24
23
 
25
24
  def target_url
26
25
  return @target_url if @target_url
27
26
  target_file = File.expand_path(TARGET_FILE)
28
27
  if File.exists? target_file
29
- @target_url = File.read(target_file).strip!
28
+ @target_url = lock_and_read(target_file).strip!
30
29
  ha = @target_url.split('.')
31
30
  ha.shift
32
31
  @suggest_url = ha.join('.')
@@ -40,16 +39,20 @@ module VMC::Cli
40
39
  @target_url
41
40
  end
42
41
 
42
+ def suggest_url
43
+ target_url
44
+ @suggest_url
45
+ end
46
+
43
47
  def store_target(target_host)
44
48
  target_file = File.expand_path(TARGET_FILE)
45
- File.open(target_file, 'w+') { |f| f.puts target_host }
46
- FileUtils.chmod 0600, target_file
49
+ lock_and_write(target_file, target_host)
47
50
  end
48
51
 
49
52
  def all_tokens
50
53
  token_file = File.expand_path(TOKEN_FILE)
51
54
  return nil unless File.exists? token_file
52
- contents = File.read(token_file).strip
55
+ contents = lock_and_read(token_file).strip
53
56
  JSON.parse(contents)
54
57
  end
55
58
 
@@ -69,20 +72,19 @@ module VMC::Cli
69
72
  tokens = all_tokens || {}
70
73
  tokens[target_url] = token
71
74
  token_file = File.expand_path(TOKEN_FILE)
72
- File.open(token_file, 'w+') { |f| f.write(tokens.to_json) }
73
- FileUtils.chmod 0600, token_file
75
+ lock_and_write(token_file, tokens.to_json)
74
76
  end
75
77
 
76
78
  def instances
77
79
  instances_file = File.expand_path(INSTANCES_FILE)
78
80
  return nil unless File.exists? instances_file
79
- contents = File.read(instances_file).strip
81
+ contents = lock_and_read(instances_file).strip
80
82
  JSON.parse(contents)
81
83
  end
82
84
 
83
85
  def store_instances(instances)
84
86
  instances_file = File.expand_path(INSTANCES_FILE)
85
- File.open(instances_file, 'w') { |f| f.write(instances.to_json) }
87
+ lock_and_write(instances_file, instances.to_json)
86
88
  end
87
89
 
88
90
  def aliases
@@ -100,6 +102,25 @@ module VMC::Cli
100
102
  File.open(aliases_file, 'wb') {|f| f.write(aliases.to_yaml)}
101
103
  end
102
104
 
105
+ def lock_and_read(file)
106
+ File.open(file, "r") {|f|
107
+ f.flock(File::LOCK_EX)
108
+ contents = f.read
109
+ f.flock(File::LOCK_UN)
110
+ contents
111
+ }
112
+ end
113
+
114
+ def lock_and_write(file, contents)
115
+ File.open(file, File::RDWR | File::CREAT, 0600) {|f|
116
+ f.flock(File::LOCK_EX)
117
+ f.rewind
118
+ f.puts contents
119
+ f.flush
120
+ f.truncate(f.pos)
121
+ f.flock(File::LOCK_UN)
122
+ }
123
+ end
103
124
  end
104
125
 
105
126
  def initialize(work_dir = Dir.pwd)
@@ -38,6 +38,10 @@ module VMCExtensions
38
38
  raise VMC::Cli::CliExit, "#{prefix}#{message}"
39
39
  end
40
40
 
41
+ def warn(msg)
42
+ say "#{"[WARNING]".yellow} #{msg}"
43
+ end
44
+
41
45
  def quit(message = nil)
42
46
  raise VMC::Cli::GracefulExit, message
43
47
  end
@@ -65,6 +69,333 @@ module VMCExtensions
65
69
  return sprintf("%.#{prec}fG", size/(1024.0*1024.0*1024.0))
66
70
  end
67
71
 
72
+ # general-purpose interaction
73
+ #
74
+ # `question' is the prompt (without ": " at the end)
75
+ # `options' is a hash containing:
76
+ # :input - the input source (defaults to STDIN)
77
+ # :default - the default value, also used to attempt type conversion
78
+ # of the answer (e.g. numeric/boolean)
79
+ # :choices - a list of strings to choose from
80
+ # :indexed - whether to allow choosing from `:choices' by their index,
81
+ # best for when there are many choices
82
+ # :echo - a string to echo when showing the input;
83
+ # used for things like censoring password inpt
84
+ # :callback - a block used to override certain actions
85
+ #
86
+ # takes 4 arguments:
87
+ # action: the event, e.g. :up or [:key, X] where X is a
88
+ # string containing a single character
89
+ # answer: the current answer to the question; you'll
90
+ # probably mutate this
91
+ # position: the current offset from the start of the
92
+ # answer string, e.g. when typing in the middle
93
+ # of the input, this will be where you insert
94
+ # characters
95
+ # echo: the :echo option above, may be nil
96
+ #
97
+ # the block should return the updated `position', or nil if
98
+ # it didn't handle the event
99
+ def ask(question, options = {})
100
+ default = options[:default]
101
+ choices = options[:choices]
102
+ indexed = options[:indexed]
103
+ callback = options[:callback]
104
+ input = options[:input] || STDIN
105
+ echo = options[:echo]
106
+
107
+ if choices
108
+ VMCExtensions.ask_choices(input, question, default, choices, indexed, echo, &callback)
109
+ else
110
+ VMCExtensions.ask_default(input, question, default, echo, &callback)
111
+ end
112
+ end
113
+
114
+ ESCAPES = {
115
+ "[A" => :up, "H" => :up,
116
+ "[B" => :down, "P" => :down,
117
+ "[C" => :right, "M" => :right,
118
+ "[D" => :left, "K" => :left,
119
+ "[3~" => :delete, "S" => :delete,
120
+ "[H" => :home, "G" => :home,
121
+ "[F" => :end, "O" => :end
122
+ }
123
+
124
+ def handle_action(which, ans, pos, echo = nil)
125
+ if block_given?
126
+ res = yield which, ans, pos, echo
127
+ return res unless res.nil?
128
+ end
129
+
130
+ case which
131
+ when :up
132
+ # nothing
133
+
134
+ when :down
135
+ # nothing
136
+
137
+ when :tab
138
+ # nothing
139
+
140
+ when :right
141
+ unless pos == ans.size
142
+ display censor(ans[pos .. pos], echo), false
143
+ return pos + 1
144
+ end
145
+
146
+ when :left
147
+ unless pos == 0
148
+ display "\b", false
149
+ return pos - 1
150
+ end
151
+
152
+ when :delete
153
+ unless pos == ans.size
154
+ ans.slice!(pos, 1)
155
+ if WINDOWS
156
+ rest = ans[pos .. -1]
157
+ display(censor(rest, echo) + " \b" + ("\b" * rest.size), false)
158
+ else
159
+ display("\e[P", false)
160
+ end
161
+ end
162
+
163
+ when :home
164
+ display("\b" * pos, false)
165
+ return 0
166
+
167
+ when :end
168
+ display(censor(ans[pos .. -1], echo), false)
169
+ return ans.size
170
+
171
+ when :backspace
172
+ if pos > 0
173
+ ans.slice!(pos - 1, 1)
174
+
175
+ if WINDOWS
176
+ rest = ans[pos - 1 .. -1]
177
+ display("\b" + censor(rest, echo) + " \b" + ("\b" * rest.size), false)
178
+ else
179
+ display("\b\e[P", false)
180
+ end
181
+
182
+ return pos - 1
183
+ end
184
+
185
+ when :interrupt
186
+ raise Interrupt.new
187
+
188
+ when :eof
189
+ return false if ans.empty?
190
+
191
+ when :kill_word
192
+ if pos > 0
193
+ start = /[^\s]*\s*$/ =~ ans[0 .. pos]
194
+ length = pos - start
195
+ ans.slice!(start, length)
196
+ display("\b" * length + " " * length + "\b" * length, false)
197
+ return start
198
+ end
199
+
200
+ when Array
201
+ case which[0]
202
+ when :key
203
+ c = which[1]
204
+ rest = ans[pos .. -1]
205
+
206
+ ans.insert(pos, c)
207
+
208
+ display(censor(c + rest, echo) + ("\b" * rest.size), false)
209
+
210
+ return pos + 1
211
+ end
212
+ end
213
+
214
+ pos
215
+ end
216
+
217
+ def censor(str, with)
218
+ return str unless with
219
+ with * str.size
220
+ end
221
+
222
+ # ask a simple question, maybe with a default answer
223
+ #
224
+ # reads character-by-character, handling backspaces, and sending each
225
+ # character to a block if provided
226
+ def self.ask_default(input, question, default = nil, echo = nil, &callback)
227
+ while true
228
+ prompt(question, default)
229
+
230
+ ans = ""
231
+ pos = 0
232
+ escaped = false
233
+ escape_seq = ""
234
+
235
+ with_char_io(input) do
236
+ until pos == false or (c = get_character(input)) =~ /[\r\n]/
237
+ if c == "\e" || c == "\xE0"
238
+ escaped = true
239
+ elsif escaped
240
+ escape_seq << c
241
+
242
+ if cmd = ESCAPES[escape_seq]
243
+ pos = handle_action(cmd, ans, pos, echo, &callback)
244
+ escaped, escape_seq = false, ""
245
+ elsif ESCAPES.select { |k, v| k.start_with? escape_seq }.empty?
246
+ escaped, escape_seq = false, ""
247
+ end
248
+ elsif c == "\177" or c == "\b" # backspace
249
+ pos = handle_action(:backspace, ans, pos, echo, &callback)
250
+ elsif c == "\x01"
251
+ pos = handle_action(:home, ans, pos, echo, &callback)
252
+ elsif c == "\x03"
253
+ pos = handle_action(:interrupt, ans, pos, echo, &callback)
254
+ elsif c == "\x04"
255
+ pos = handle_action(:eof, ans, pos, echo, &callback)
256
+ elsif c == "\x05"
257
+ pos = handle_action(:end, ans, pos, echo, &callback)
258
+ elsif c == "\x17"
259
+ pos = handle_action(:kill_word, ans, pos, echo, &callback)
260
+ elsif c == "\t"
261
+ pos = handle_action(:tab, ans, pos, echo, &callback)
262
+ elsif c < " "
263
+ # ignore
264
+ else
265
+ pos = handle_action([:key, c], ans, pos, echo, &callback)
266
+ end
267
+ end
268
+ end
269
+
270
+ display "\n", false
271
+
272
+ if ans.empty?
273
+ return default unless default.nil?
274
+ else
275
+ return match_type(ans, default)
276
+ end
277
+ end
278
+ end
279
+
280
+ def self.ask_choices(input, question, default, choices, indexed = false, echo = nil, &callback)
281
+ msg = question.dup
282
+
283
+ if indexed
284
+ choices.each.with_index do |o, i|
285
+ say "#{i + 1}: #{o}"
286
+ end
287
+ else
288
+ msg << " (#{choices.collect(&:inspect).join ", "})"
289
+ end
290
+
291
+ while true
292
+ ans = ask_default(input, msg, default, echo, &callback)
293
+
294
+ matches = choices.select { |x| x.start_with? ans }
295
+
296
+ if matches.size == 1
297
+ return matches.first
298
+ elsif indexed and ans =~ /^\d+$/ and res = choices.to_a[ans.to_i - 1]
299
+ return res
300
+ elsif matches.size > 1
301
+ warn "Please disambiguate: #{matches.join " or "}?"
302
+ else
303
+ warn "Unknown answer, please try again!"
304
+ end
305
+ end
306
+ end
307
+
308
+ # display a question and show the default value
309
+ def self.prompt(question, default = nil)
310
+ msg = question.dup
311
+
312
+ case default
313
+ when true
314
+ msg << " [Yn]"
315
+ when false
316
+ msg << " [yN]"
317
+ else
318
+ msg << " [#{default.inspect}]" if default
319
+ end
320
+
321
+ display "#{msg}: ", false
322
+ end
323
+
324
+ # try to make `str' be the same class as `x'
325
+ def self.match_type(str, x)
326
+ case x
327
+ when Integer
328
+ str.to_i
329
+ when true, false
330
+ str.upcase.start_with? "Y"
331
+ else
332
+ str
333
+ end
334
+ end
335
+
336
+ # definitions for reading character-by-character
337
+ begin
338
+ require "Win32API"
339
+
340
+ def self.with_char_io(input)
341
+ yield
342
+ end
343
+
344
+ def self.get_character(input)
345
+ if input == STDIN
346
+ begin
347
+ Win32API.new("msvcrt", "_getch", [], "L").call.chr
348
+ rescue
349
+ Win32API.new("crtdll", "_getch", [], "L").call.chr
350
+ end
351
+ else
352
+ input.getc.chr
353
+ end
354
+ end
355
+ rescue LoadError
356
+ begin
357
+ require "termios"
358
+
359
+ def self.with_char_io(input)
360
+ return yield unless input.tty?
361
+
362
+ before = Termios.getattr(input)
363
+
364
+ new = before.dup
365
+ new.c_lflag &= ~(Termios::ECHO | Termios::ICANON)
366
+ new.c_cc[Termios::VMIN] = 1
367
+
368
+ begin
369
+ Termios.setattr(input, Termios::TCSANOW, new)
370
+ yield
371
+ ensure
372
+ Termios.setattr(input, Termios::TCSANOW, before)
373
+ end
374
+ end
375
+
376
+ def self.get_character(input)
377
+ input.getc.chr
378
+ end
379
+ rescue LoadError
380
+ # set tty modes for the duration of a block, restoring them afterward
381
+ def self.with_char_io(input)
382
+ return yield unless input.tty?
383
+
384
+ begin
385
+ before = `stty -g`
386
+ system("stty raw -echo -icanon isig")
387
+ yield
388
+ ensure
389
+ system("stty #{before}")
390
+ end
391
+ end
392
+
393
+ # this assumes we're wrapped in #with_stty
394
+ def self.get_character(input)
395
+ input.getc.chr
396
+ end
397
+ end
398
+ end
68
399
  end
69
400
 
70
401
  module VMCStringExtensions