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
data/Rakefile CHANGED
@@ -2,8 +2,7 @@ require 'rake'
2
2
  require 'spec/rake/spectask'
3
3
 
4
4
  desc "Run specs"
5
- task :spec do
6
- sh('bundle install')
5
+ task :spec => :build do
7
6
  Spec::Rake::SpecTask.new('spec') do |t|
8
7
  t.spec_opts = %w(-fs -c)
9
8
  t.spec_files = FileList['spec/**/*_spec.rb']
@@ -15,3 +14,86 @@ task :test => :spec
15
14
  desc "Synonym for spec"
16
15
  task :tests => :spec
17
16
  task :default => :spec
17
+
18
+ def tests_path
19
+ if @tests_path == nil
20
+ @tests_path = File.join(Dir.pwd, "spec/assets/tests")
21
+ end
22
+ @tests_path
23
+ end
24
+ TESTS_PATH = tests_path
25
+
26
+ BUILD_ARTIFACT = File.join(Dir.pwd, "spec/assets/.build")
27
+
28
+ TESTS_TO_BUILD = ["#{TESTS_PATH}/java_web/java_tiny_app",
29
+ # "#{TESTS_PATH}/grails/guestbook",
30
+ "#{TESTS_PATH}/lift/hello_lift",
31
+ "#{TESTS_PATH}/spring/roo-guestbook",
32
+ "#{TESTS_PATH}/spring/spring-osgi-hello",
33
+ ]
34
+
35
+ desc "Build the tests. If the git hash associated with the test assets has not changed, nothing is built. To force a build, invoke 'rake build[--force]'"
36
+ task :build, [:force] do |t, args|
37
+ sh('bundle install')
38
+ sh('git submodule update --init')
39
+ puts "\nBuilding tests"
40
+ if build_required? args.force
41
+ ENV['MAVEN_OPTS']="-XX:MaxPermSize=256M"
42
+ TESTS_TO_BUILD.each do |test|
43
+ puts "\tBuilding '#{test}'"
44
+ Dir.chdir test do
45
+ sh('mvn package -DskipTests') do |success, exit_code|
46
+ unless success
47
+ clear_build_artifact
48
+ do_mvn_clean('-q')
49
+ fail "\tFailed to build #{test} - aborting build"
50
+ end
51
+ end
52
+ end
53
+ puts "\tCompleted building '#{test}'"
54
+ end
55
+ save_git_hash
56
+ else
57
+ puts "Built artifacts in sync with test assets - no build required"
58
+ end
59
+ end
60
+
61
+ desc "Clean the build artifacts"
62
+ task :clean do
63
+ puts "\nCleaning tests"
64
+ clear_build_artifact
65
+ TESTS_TO_BUILD.each do |test|
66
+ puts "\tCleaning '#{test}'"
67
+ Dir.chdir test do
68
+ do_mvn_clean
69
+ end
70
+ puts "\tCompleted cleaning '#{test}'"
71
+ end
72
+ end
73
+
74
+ def build_required? (force_build=nil)
75
+ if File.exists?(BUILD_ARTIFACT) == false or (force_build and force_build == "--force")
76
+ return true
77
+ end
78
+ Dir.chdir(tests_path) do
79
+ saved_git_hash = IO.readlines(BUILD_ARTIFACT)[0].split[0]
80
+ git_hash = `git rev-parse --short=8 --verify HEAD`
81
+ saved_git_hash.to_s.strip != git_hash.to_s.strip
82
+ end
83
+ end
84
+
85
+ def save_git_hash
86
+ Dir.chdir(tests_path) do
87
+ git_hash = `git rev-parse --short=8 --verify HEAD`
88
+ File.open(BUILD_ARTIFACT, 'w') {|f| f.puts("#{git_hash}")}
89
+ end
90
+ end
91
+
92
+ def clear_build_artifact
93
+ puts "\tClearing build artifact #{BUILD_ARTIFACT}"
94
+ File.unlink BUILD_ARTIFACT if File.exists? BUILD_ARTIFACT
95
+ end
96
+
97
+ def do_mvn_clean options=nil
98
+ sh("mvn clean #{options}")
99
+ end
data/lib/cli.rb CHANGED
@@ -1,12 +1,11 @@
1
-
2
1
  ROOT = File.expand_path(File.dirname(__FILE__))
2
+ WINDOWS = !!(RUBY_PLATFORM =~ /mingw|mswin32|cygwin/)
3
3
 
4
- module VMC
5
4
 
5
+ module VMC
6
6
  autoload :Client, "#{ROOT}/vmc/client"
7
7
 
8
8
  module Cli
9
-
10
9
  autoload :Config, "#{ROOT}/cli/config"
11
10
  autoload :Framework, "#{ROOT}/cli/frameworks"
12
11
  autoload :Runner, "#{ROOT}/cli/runner"
@@ -22,12 +22,12 @@ module VMC::Cli::Command
22
22
  alias :users :list_users
23
23
 
24
24
  def add_user(email=nil)
25
- email = @options[:email] unless email
25
+ email ||= @options[:email]
26
+ email ||= ask("Email") unless no_prompt
26
27
  password = @options[:password]
27
- email = ask("Email: ") unless no_prompt || email
28
28
  unless no_prompt || password
29
- password = ask("Password: ") {|q| q.echo = '*'}
30
- password2 = ask("Verify Password: ") {|q| q.echo = '*'}
29
+ password = ask("Password", :echo => "*")
30
+ password2 = ask("Verify Password", :echo => "*")
31
31
  err "Passwords did not match, try again" if password != password2
32
32
  end
33
33
  err "Need a valid email" unless email
@@ -53,8 +53,11 @@ module VMC::Cli::Command
53
53
 
54
54
  if (apps && !apps.empty?)
55
55
  unless no_prompt
56
- proceed = ask("\nDeployed applications and associated services will be DELETED, continue? [yN]: ")
57
- err "Aborted" if proceed.upcase != 'Y'
56
+ proceed = ask(
57
+ "\nDeployed applications and associated services will be DELETED, continue?",
58
+ :default => false
59
+ )
60
+ err "Aborted" unless proceed
58
61
  end
59
62
  cmd = Apps.new(@options)
60
63
  apps.each { |app| cmd.delete_app(app[:name], true) }
@@ -44,6 +44,28 @@ module VMC::Cli::Command
44
44
  return display "Application '#{appname}' could not be found".red if app.nil?
45
45
  return display "Application '#{appname}' already started".yellow if app[:state] == 'STARTED'
46
46
 
47
+ if @options[:debug]
48
+ runtimes = client.runtimes_info
49
+ return display "Cannot get runtime information." unless runtimes
50
+
51
+ runtime = runtimes[app[:staging][:stack].to_sym]
52
+ return display "Unknown runtime." unless runtime
53
+
54
+ unless runtime[:debug_modes] and runtime[:debug_modes].include? @options[:debug]
55
+ modes = runtime[:debug_modes] || []
56
+
57
+ display "\nApplication '#{appname}' cannot start in '#{@options[:debug]}' mode"
58
+
59
+ if push
60
+ display "Try `vmc start' with one of the following modes: #{modes.inspect}"
61
+ else
62
+ display "Available modes: #{modes.inspect}"
63
+ end
64
+
65
+ return
66
+ end
67
+ end
68
+
47
69
  banner = 'Staging Application: '
48
70
  display banner, false
49
71
 
@@ -57,6 +79,7 @@ module VMC::Cli::Command
57
79
  end
58
80
 
59
81
  app[:state] = 'STARTED'
82
+ app[:debug] = @options[:debug]
60
83
  client.update_app(appname, app)
61
84
 
62
85
  Thread.kill(t)
@@ -79,10 +102,9 @@ module VMC::Cli::Command
79
102
  # Check for the existance of crashes
80
103
  display "\nError: Application [#{appname}] failed to start, logs information below.\n".red
81
104
  grab_crash_logs(appname, '0', true)
82
- if push
105
+ if push and !no_prompt
83
106
  display "\n"
84
- should_delete = ask 'Should I delete the application? (Y/n)? ' unless no_prompt
85
- delete_app(appname, false) unless no_prompt || should_delete.upcase == 'N'
107
+ delete_app(appname, false) if ask "Delete the application?", :default => true
86
108
  end
87
109
  failed = true
88
110
  break
@@ -130,14 +152,11 @@ module VMC::Cli::Command
130
152
  mem = current_mem = mem_quota_to_choice(app[:resources][:memory])
131
153
  memsize = normalize_mem(memsize) if memsize
132
154
 
133
- unless memsize
134
- choose do |menu|
135
- menu.layout = :one_line
136
- menu.prompt = "Update Memory Reservation? [Current:#{current_mem}] "
137
- menu.default = current_mem
138
- mem_choices.each { |choice| menu.choice(choice) { memsize = choice } }
139
- end
140
- end
155
+ memsize ||= ask(
156
+ "Update Memory Reservation?",
157
+ :default => current_mem,
158
+ :choices => mem_choices
159
+ )
141
160
 
142
161
  mem = mem_choice_to_quota(mem)
143
162
  memsize = mem_choice_to_quota(memsize)
@@ -184,11 +203,7 @@ module VMC::Cli::Command
184
203
  def delete(appname=nil)
185
204
  force = @options[:force]
186
205
  if @options[:all]
187
- should_delete = force && no_prompt ? 'Y' : 'N'
188
- unless no_prompt || force
189
- should_delete = ask 'Delete ALL Applications and Services? (y/N)? '
190
- end
191
- if should_delete.upcase == 'Y'
206
+ if no_prompt || force || ask("Delete ALL applications and services?", :default => false)
192
207
  apps = client.apps
193
208
  apps.each { |app| delete_app(app[:name], force) }
194
209
  end
@@ -202,21 +217,34 @@ module VMC::Cli::Command
202
217
  app = client.app_info(appname)
203
218
  services_to_delete = []
204
219
  app_services = app[:services]
220
+ services_apps_hash = provisioned_services_apps_hash
205
221
  app_services.each { |service|
206
- del_service = force && no_prompt ? 'Y' : 'N'
222
+ del_service = force && no_prompt
207
223
  unless no_prompt || force
208
- del_service = ask("Provisioned service [#{service}] detected, would you like to delete it? [yN]: ")
224
+ del_service = ask(
225
+ "Provisioned service [#{service}] detected, would you like to delete it?",
226
+ :default => false
227
+ )
228
+
229
+ if del_service
230
+ apps_using_service = services_apps_hash[service].reject!{ |app| app == appname}
231
+ if apps_using_service.size > 0
232
+ del_service = ask(
233
+ "Provisioned service [#{service}] is also used by #{apps_using_service.size == 1 ? "app" : "apps"} #{apps_using_service.entries}, are you sure you want to delete it?",
234
+ :default => false
235
+ )
236
+ end
237
+ end
209
238
  end
210
- services_to_delete << service if del_service.upcase == 'Y'
239
+ services_to_delete << service if del_service
211
240
  }
241
+
212
242
  display "Deleting application [#{appname}]: ", false
213
243
  client.delete_app(appname)
214
244
  display 'OK'.green
215
245
 
216
246
  services_to_delete.each do |s|
217
- display "Deleting service [#{s}]: ", false
218
- client.delete_service(s)
219
- display 'OK'.green
247
+ delete_service_banner(s)
220
248
  end
221
249
  end
222
250
 
@@ -344,10 +372,10 @@ module VMC::Cli::Command
344
372
  no_start = @options[:nostart]
345
373
 
346
374
  path = @options[:path] || '.'
347
- appname = @options[:name] unless appname
348
- url = @options[:url]
375
+ appname ||= @options[:name]
349
376
  mem, memswitch = nil, @options[:mem]
350
377
  memswitch = normalize_mem(memswitch) if memswitch
378
+ url = @options[:url]
351
379
 
352
380
  # Check app existing upfront if we have appname
353
381
  app_checked = false
@@ -367,52 +395,57 @@ module VMC::Cli::Command
367
395
  end
368
396
 
369
397
  unless no_prompt || @options[:path]
370
- proceed = ask('Would you like to deploy from the current directory? [Yn]: ')
371
- if proceed.upcase == 'N'
372
- path = ask('Please enter in the deployment path: ')
398
+ unless ask('Would you like to deploy from the current directory?', :default => true)
399
+ path = ask('Please enter in the deployment path')
373
400
  end
374
401
  end
375
402
 
376
403
  path = File.expand_path(path)
377
404
  check_deploy_directory(path)
378
405
 
379
- appname = ask("Application Name: ") unless no_prompt || appname
406
+ appname ||= ask("Application Name") unless no_prompt
380
407
  err "Application Name required." if appname.nil? || appname.empty?
381
408
 
382
- unless app_checked
383
- err "Application '#{appname}' already exists, use update or delete." if app_exists?(appname)
409
+ if !app_checked and app_exists?(appname)
410
+ err "Application '#{appname}' already exists, use update or delete."
384
411
  end
385
412
 
413
+ default_url = "#{appname}.#{VMC::Cli::Config.suggest_url}"
414
+
386
415
  unless no_prompt || url
387
- url = ask("Application Deployed URL: '#{appname}.#{VMC::Cli::Config.suggest_url}'? ")
416
+ url = ask(
417
+ "Application Deployed URL",
418
+ :default => default_url
419
+ )
388
420
 
389
- # common error case is for prompted users to answer y or Y or yes or YES to this ask() resulting in an
390
- # unintended URL of y. Special case this common error
391
- if YES_SET.member?(url)
392
- #silently revert to the stock url
393
- url = "#{appname}.#{VMC::Cli::Config.suggest_url}"
394
- end
421
+ # common error case is for prompted users to answer y or Y or yes or
422
+ # YES to this ask() resulting in an unintended URL of y. Special case
423
+ # this common error
424
+ url = nil if YES_SET.member? url
395
425
  end
396
426
 
397
- url = "#{appname}.#{VMC::Cli::Config.suggest_url}" if url.nil? || url.empty?
427
+ url ||= default_url
398
428
 
399
429
  # Detect the appropriate framework.
400
430
  framework = nil
401
431
  unless ignore_framework
402
432
  framework = VMC::Cli::Framework.detect(path)
403
- framework_correct = ask("Detected a #{framework}, is this correct? [Yn]: ") if prompt_ok && framework
404
- framework_correct ||= 'y'
405
- if prompt_ok && (framework.nil? || framework_correct.upcase == 'N')
433
+
434
+ if prompt_ok and framework
435
+ framework_correct =
436
+ ask("Detected a #{framework}, is this correct?", :default => true)
437
+ end
438
+
439
+ if prompt_ok && (framework.nil? || !framework_correct)
406
440
  display "#{"[WARNING]".yellow} Can't determine the Application Type." unless framework
407
- framework = nil if framework_correct.upcase == 'N'
408
- choose do |menu|
409
- menu.layout = :one_line
410
- menu.prompt = "Select Application Type: "
411
- menu.default = framework
412
- VMC::Cli::Framework.known_frameworks.each do |f|
413
- menu.choice(f) { framework = VMC::Cli::Framework.lookup(f) }
414
- end
415
- end
441
+ framework = VMC::Cli::Framework.lookup(
442
+ ask(
443
+ "Select Application Type",
444
+ { :indexed => true,
445
+ :choices => VMC::Cli::Framework.known_frameworks
446
+ }
447
+ )
448
+ )
416
449
  display "Selected #{framework}"
417
450
  end
418
451
  # Framework override, deprecated
@@ -422,18 +455,14 @@ module VMC::Cli::Command
422
455
  end
423
456
 
424
457
  err "Application Type undetermined for path '#{path}'" unless framework
425
- unless memswitch
426
- mem = framework.memory
427
- if prompt_ok
428
- choose do |menu|
429
- menu.layout = :one_line
430
- menu.prompt = "Memory Reservation [Default:#{mem}] "
431
- menu.default = mem
432
- mem_choices.each { |choice| menu.choice(choice) { mem = choice } }
433
- end
434
- end
435
- else
458
+
459
+ if memswitch
436
460
  mem = memswitch
461
+ elsif prompt_ok
462
+ mem = ask("Memory Reservation",
463
+ :default => framework.memory, :choices => mem_choices)
464
+ else
465
+ mem = framework.memory
437
466
  end
438
467
 
439
468
  # Set to MB number
@@ -465,8 +494,8 @@ module VMC::Cli::Command
465
494
  unless no_prompt || @options[:noservices]
466
495
  services = client.services_info
467
496
  unless services.empty?
468
- proceed = ask("Would you like to bind any services to '#{appname}'? [yN]: ")
469
- bind_services(appname, services) if proceed.upcase == 'Y'
497
+ proceed = ask("Would you like to bind any services to '#{appname}'?", :default => false)
498
+ bind_services(appname, services) if proceed
470
499
  end
471
500
  end
472
501
 
@@ -600,18 +629,23 @@ module VMC::Cli::Command
600
629
 
601
630
  end
602
631
 
632
+ # If no resource needs to be sent, add an empty file to ensure we have
633
+ # a multi-part request that is expected by nginx fronting the CC.
634
+ if VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
635
+ Dir.chdir(explode_dir) do
636
+ File.new(".__empty__", "w")
637
+ end
638
+ end
603
639
  # Perform Packing of the upload bits here.
604
- unless VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
605
- display ' Packing application: ', false
606
- VMC::Cli::ZipUtil.pack(explode_dir, upload_file)
607
- display 'OK'.green
640
+ display ' Packing application: ', false
641
+ VMC::Cli::ZipUtil.pack(explode_dir, upload_file)
642
+ display 'OK'.green
608
643
 
609
- upload_size = File.size(upload_file);
610
- if upload_size > 1024*1024
611
- upload_size = (upload_size/(1024.0*1024.0)).round.to_s + 'M'
612
- elsif upload_size > 0
613
- upload_size = (upload_size/1024.0).round.to_s + 'K'
614
- end
644
+ upload_size = File.size(upload_file);
645
+ if upload_size > 1024*1024
646
+ upload_size = (upload_size/(1024.0*1024.0)).round.to_s + 'M'
647
+ elsif upload_size > 0
648
+ upload_size = (upload_size/1024.0).round.to_s + 'K'
615
649
  else
616
650
  upload_size = '0K'
617
651
  end
@@ -619,11 +653,9 @@ module VMC::Cli::Command
619
653
  upload_str = " Uploading (#{upload_size}): "
620
654
  display upload_str, false
621
655
 
622
- unless VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
623
- FileWithPercentOutput.display_str = upload_str
624
- FileWithPercentOutput.upload_size = File.size(upload_file);
625
- file = FileWithPercentOutput.open(upload_file, 'rb')
626
- end
656
+ FileWithPercentOutput.display_str = upload_str
657
+ FileWithPercentOutput.upload_size = File.size(upload_file);
658
+ file = FileWithPercentOutput.open(upload_file, 'rb')
627
659
 
628
660
  client.upload_app(appname, file, appcloud_resources)
629
661
  display 'OK'.green if VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
@@ -640,63 +672,76 @@ module VMC::Cli::Command
640
672
 
641
673
  def choose_existing_service(appname, user_services)
642
674
  return unless prompt_ok
643
- selected = false
644
- choose do |menu|
645
- menu.header = "The following provisioned services are available"
646
- menu.prompt = 'Please select one you wish to provision: '
647
- menu.select_by = :index_or_name
648
- user_services.each do |s|
649
- menu.choice(s[:name]) do
650
- display "Binding Service: ", false
651
- client.bind_service(s[:name], appname)
652
- display 'OK'.green
653
- selected = true
654
- end
655
- end
656
- end
657
- selected
675
+
676
+ display "The following provisioned services are available"
677
+ name = ask(
678
+ "Please select one you which to prevision",
679
+ { :indexed => true,
680
+ :choices => user_services.collect { |s| s[:name] }
681
+ }
682
+ )
683
+
684
+ bind_service_banner(name, appname, false)
685
+
686
+ true
658
687
  end
659
688
 
660
689
  def choose_new_service(appname, services)
661
690
  return unless prompt_ok
662
- choose do |menu|
663
- menu.header = "The following system services are available"
664
- menu.prompt = 'Please select one you wish to provision: '
665
- menu.select_by = :index_or_name
666
- service_choices = []
667
- services.each do |service_type, value|
668
- value.each do |vendor, version|
669
- service_choices << vendor
670
- end
671
- end
672
- service_choices.sort! {|a, b| a.to_s <=> b.to_s }
673
- service_choices.each do |vendor|
674
- menu.choice(vendor) do
675
- default_name = random_service_name(vendor)
676
- service_name = ask("Specify the name of the service [#{default_name}]: ")
677
- service_name = default_name if service_name.empty?
678
- create_service_banner(vendor, service_name)
679
- bind_service_banner(service_name, appname)
680
- end
681
- end
682
- end
691
+
692
+ display "The following system services are available"
693
+
694
+ vendor = ask(
695
+ "Please select one you wish to provision",
696
+ { :indexed => true,
697
+ :choices =>
698
+ services.values.collect { |type|
699
+ type.keys.collect(&:to_s)
700
+ }.flatten.sort!
701
+ }
702
+ )
703
+
704
+ default_name = random_service_name(vendor)
705
+ service_name = ask("Specify the name of the service",
706
+ :default => default_name)
707
+
708
+ create_service_banner(vendor, service_name)
709
+ bind_service_banner(service_name, appname)
683
710
  end
684
711
 
685
712
  def bind_services(appname, services)
686
713
  user_services = client.services
714
+
687
715
  selected_existing = false
688
716
  unless no_prompt || user_services.empty?
689
- use_existing = ask "Would you like to use an existing provisioned service [yN]? "
690
- if use_existing.upcase == 'Y'
717
+ if ask("Would you like to use an existing provisioned service?",
718
+ :default => false)
691
719
  selected_existing = choose_existing_service(appname, user_services)
692
720
  end
693
721
  end
722
+
694
723
  # Create a new service and bind it here
695
724
  unless selected_existing
696
725
  choose_new_service(appname, services)
697
726
  end
698
727
  end
699
728
 
729
+ def provisioned_services_apps_hash
730
+ apps = client.apps
731
+ services_apps_hash = {}
732
+ apps.each {|app|
733
+ app[:services].each { |svc|
734
+ svc_apps = services_apps_hash[svc]
735
+ unless svc_apps
736
+ svc_apps = Set.new
737
+ services_apps_hash[svc] = svc_apps
738
+ end
739
+ svc_apps.add(app[:name])
740
+ } unless app[:services] == nil
741
+ }
742
+ services_apps_hash
743
+ end
744
+
700
745
  def check_app_limit
701
746
  usage = client_info[:usage]
702
747
  limits = client_info[:limits]
@@ -771,9 +816,19 @@ module VMC::Cli::Command
771
816
  return display "No running instances for [#{appname}]".yellow if instances_info.empty?
772
817
 
773
818
  instances_table = table do |t|
774
- t.headings = 'Index', 'State', 'Start Time'
819
+ show_debug = instances_info.any? { |e| e[:debug_port] }
820
+
821
+ headings = ['Index', 'State', 'Start Time']
822
+ headings << 'Debug IP' if show_debug
823
+ headings << 'Debug Port' if show_debug
824
+
825
+ t.headings = headings
826
+
775
827
  instances_info.each do |entry|
776
- t << [entry[:index], entry[:state], Time.at(entry[:since]).strftime("%m/%d/%Y %I:%M%p")]
828
+ row = [entry[:index], entry[:state], Time.at(entry[:since]).strftime("%m/%d/%Y %I:%M%p")]
829
+ row << entry[:debug_ip] if show_debug
830
+ row << entry[:debug_port] if show_debug
831
+ t << row
777
832
  end
778
833
  end
779
834
  display "\n"
@@ -825,12 +880,17 @@ module VMC::Cli::Command
825
880
  case health(app)
826
881
  when 'N/A'
827
882
  # Health manager not running.
828
- err "\Application '#{appname}'s state is undetermined, not enough information available." if error_on_health
883
+ err "\nApplication '#{appname}'s state is undetermined, not enough information available." if error_on_health
829
884
  return false
830
885
  when 'RUNNING'
831
886
  return true
832
887
  else
833
- return false
888
+ if app[:meta][:debug] == "suspend"
889
+ display "\nApplication [#{appname}] has started in a mode that is waiting for you to trigger startup."
890
+ return true
891
+ else
892
+ return false
893
+ end
834
894
  end
835
895
  end
836
896