puppet 3.6.2-x86-mingw32 → 3.7.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (751) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +2 -3
  3. data/Gemfile +14 -10
  4. data/README.md +1 -1
  5. data/ext/build_defaults.yaml +16 -1
  6. data/ext/debian/control +3 -2
  7. data/ext/debian/puppet-common.dirs +1 -0
  8. data/ext/debian/puppet-common.postinst +8 -8
  9. data/ext/debian/puppet-common.postrm +2 -1
  10. data/ext/project_data.yaml +16 -12
  11. data/ext/rack/example-passenger-vhost.conf +2 -2
  12. data/ext/redhat/puppet.spec.erb +6 -3
  13. data/ext/windows/service/daemon.rb +47 -41
  14. data/install.rb +1 -1
  15. data/lib/puppet.rb +34 -24
  16. data/lib/puppet/application.rb +34 -1
  17. data/lib/puppet/application/agent.rb +9 -8
  18. data/lib/puppet/application/apply.rb +14 -5
  19. data/lib/puppet/application/doc.rb +4 -11
  20. data/lib/puppet/application/master.rb +19 -17
  21. data/lib/puppet/application/queue.rb +1 -1
  22. data/lib/puppet/application/resource.rb +0 -1
  23. data/lib/puppet/configurer.rb +39 -2
  24. data/lib/puppet/configurer/downloader.rb +5 -10
  25. data/lib/puppet/configurer/downloader_factory.rb +34 -0
  26. data/lib/puppet/configurer/plugin_handler.rb +11 -17
  27. data/lib/puppet/defaults.rb +244 -119
  28. data/lib/puppet/environments.rb +8 -0
  29. data/lib/puppet/external/nagios/base.rb +1 -1
  30. data/lib/puppet/external/pson/pure/generator.rb +1 -8
  31. data/lib/puppet/face/ca.rb +7 -0
  32. data/lib/puppet/face/file/download.rb +5 -2
  33. data/lib/puppet/face/file/store.rb +1 -1
  34. data/lib/puppet/face/instrumentation_data.rb +2 -1
  35. data/lib/puppet/face/instrumentation_listener.rb +2 -1
  36. data/lib/puppet/face/instrumentation_probe.rb +2 -1
  37. data/lib/puppet/face/module/build.rb +2 -2
  38. data/lib/puppet/face/module/generate.rb +20 -12
  39. data/lib/puppet/face/module/install.rb +4 -3
  40. data/lib/puppet/face/module/uninstall.rb +7 -0
  41. data/lib/puppet/face/module/upgrade.rb +11 -3
  42. data/lib/puppet/face/node/clean.rb +1 -1
  43. data/lib/puppet/face/parser.rb +99 -7
  44. data/lib/puppet/feature/base.rb +18 -12
  45. data/lib/puppet/feature/cfacter.rb +14 -0
  46. data/lib/puppet/feature/pe_license.rb +4 -0
  47. data/lib/puppet/file_bucket/dipper.rb +19 -12
  48. data/lib/puppet/file_bucket/file.rb +73 -10
  49. data/lib/puppet/file_serving/configuration/parser.rb +3 -3
  50. data/lib/puppet/file_system.rb +1 -1
  51. data/lib/puppet/file_system/file19.rb +41 -0
  52. data/lib/puppet/file_system/file19windows.rb +0 -1
  53. data/lib/puppet/file_system/uniquefile.rb +190 -0
  54. data/lib/puppet/forge.rb +34 -7
  55. data/lib/puppet/forge/errors.rb +5 -6
  56. data/lib/puppet/forge/repository.rb +14 -2
  57. data/lib/puppet/functions.rb +19 -12
  58. data/lib/puppet/functions/assert_type.rb +27 -10
  59. data/lib/puppet/functions/each.rb +111 -0
  60. data/lib/puppet/functions/epp.rb +54 -0
  61. data/lib/puppet/functions/filter.rb +113 -0
  62. data/lib/puppet/functions/inline_epp.rb +88 -0
  63. data/lib/puppet/functions/map.rb +97 -0
  64. data/lib/puppet/functions/match.rb +102 -0
  65. data/lib/puppet/functions/reduce.rb +94 -0
  66. data/lib/puppet/functions/slice.rb +126 -0
  67. data/lib/puppet/functions/with.rb +23 -0
  68. data/lib/puppet/indirector/catalog/compiler.rb +4 -4
  69. data/lib/puppet/indirector/data_binding/hiera.rb +2 -45
  70. data/lib/puppet/indirector/facts/couch.rb +3 -1
  71. data/lib/puppet/indirector/facts/facter.rb +52 -65
  72. data/lib/puppet/indirector/file_bucket_file/file.rb +6 -3
  73. data/lib/puppet/indirector/hiera.rb +48 -0
  74. data/lib/puppet/indirector/indirection.rb +1 -1
  75. data/lib/puppet/indirector/request.rb +9 -3
  76. data/lib/puppet/indirector/resource/ral.rb +1 -1
  77. data/lib/puppet/indirector/rest.rb +7 -3
  78. data/lib/puppet/loaders.rb +0 -1
  79. data/lib/puppet/module.rb +2 -1
  80. data/lib/puppet/module_tool.rb +2 -0
  81. data/lib/puppet/module_tool/applications/application.rb +4 -5
  82. data/lib/puppet/module_tool/applications/builder.rb +64 -5
  83. data/lib/puppet/module_tool/applications/uninstaller.rb +3 -2
  84. data/lib/puppet/module_tool/applications/unpacker.rb +14 -0
  85. data/lib/puppet/module_tool/applications/upgrader.rb +23 -13
  86. data/lib/puppet/module_tool/dependency.rb +12 -0
  87. data/lib/puppet/module_tool/errors/shared.rb +1 -1
  88. data/lib/puppet/module_tool/errors/upgrader.rb +20 -0
  89. data/lib/puppet/module_tool/installed_modules.rb +6 -1
  90. data/lib/puppet/module_tool/metadata.rb +53 -3
  91. data/lib/puppet/module_tool/modulefile.rb +1 -1
  92. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +7 -0
  93. data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +1 -1
  94. data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -17
  95. data/lib/puppet/module_tool/tar/mini.rb +20 -2
  96. data/lib/puppet/network/http.rb +5 -0
  97. data/lib/puppet/network/http/api/v1.rb +2 -2
  98. data/lib/puppet/network/http/api/v2/environments.rb +15 -1
  99. data/lib/puppet/network/http/connection.rb +54 -68
  100. data/lib/puppet/network/http/factory.rb +44 -0
  101. data/lib/puppet/network/http/handler.rb +12 -6
  102. data/lib/puppet/network/http/nocache_pool.rb +21 -0
  103. data/lib/puppet/network/http/pool.rb +120 -0
  104. data/lib/puppet/network/http/rack/rest.rb +3 -1
  105. data/lib/puppet/network/http/session.rb +17 -0
  106. data/lib/puppet/network/http/site.rb +39 -0
  107. data/lib/puppet/network/http/webrick/rest.rb +3 -1
  108. data/lib/puppet/network/http_pool.rb +3 -4
  109. data/lib/puppet/node.rb +19 -6
  110. data/lib/puppet/node/environment.rb +34 -8
  111. data/lib/puppet/parser/ast/collection.rb +4 -0
  112. data/lib/puppet/parser/ast/collexpr.rb +1 -1
  113. data/lib/puppet/parser/ast/node.rb +5 -0
  114. data/lib/puppet/parser/ast/pops_bridge.rb +49 -6
  115. data/lib/puppet/parser/compiler.rb +66 -38
  116. data/lib/puppet/parser/e4_parser_adapter.rb +2 -2
  117. data/lib/puppet/parser/files.rb +76 -33
  118. data/lib/puppet/parser/functions.rb +1 -7
  119. data/lib/puppet/parser/functions/assert_type.rb +31 -0
  120. data/lib/puppet/parser/functions/contain.rb +15 -5
  121. data/lib/puppet/parser/functions/create_resources.rb +5 -1
  122. data/lib/puppet/parser/functions/digest.rb +5 -0
  123. data/lib/puppet/parser/functions/each.rb +46 -107
  124. data/lib/puppet/parser/functions/epp.rb +13 -9
  125. data/lib/puppet/parser/functions/file.rb +20 -12
  126. data/lib/puppet/parser/functions/filter.rb +32 -88
  127. data/lib/puppet/parser/functions/include.rb +12 -24
  128. data/lib/puppet/parser/functions/inline_epp.rb +9 -12
  129. data/lib/puppet/parser/functions/lookup.rb +1 -1
  130. data/lib/puppet/parser/functions/map.rb +30 -83
  131. data/lib/puppet/parser/functions/match.rb +28 -0
  132. data/lib/puppet/parser/functions/reduce.rb +69 -98
  133. data/lib/puppet/parser/functions/require.rb +13 -5
  134. data/lib/puppet/parser/functions/search.rb +6 -1
  135. data/lib/puppet/parser/functions/slice.rb +35 -103
  136. data/lib/puppet/parser/functions/template.rb +12 -5
  137. data/lib/puppet/parser/functions/with.rb +21 -0
  138. data/lib/puppet/parser/lexer.rb +1 -1
  139. data/lib/puppet/parser/parser_factory.rb +21 -33
  140. data/lib/puppet/parser/resource.rb +2 -3
  141. data/lib/puppet/parser/scope.rb +85 -15
  142. data/lib/puppet/pops.rb +9 -11
  143. data/lib/puppet/pops/adapters.rb +2 -1
  144. data/lib/puppet/pops/binder/bindings_checker.rb +4 -4
  145. data/lib/puppet/pops/binder/bindings_factory.rb +6 -6
  146. data/lib/puppet/pops/binder/bindings_label_provider.rb +1 -1
  147. data/lib/puppet/pops/binder/bindings_loader.rb +2 -2
  148. data/lib/puppet/pops/binder/bindings_model.rb +58 -191
  149. data/lib/puppet/pops/binder/bindings_model_dumper.rb +1 -1
  150. data/lib/puppet/pops/binder/bindings_model_meta.rb +215 -0
  151. data/lib/puppet/pops/binder/injector.rb +9 -9
  152. data/lib/puppet/pops/binder/key_factory.rb +2 -2
  153. data/lib/puppet/pops/binder/lookup.rb +14 -6
  154. data/lib/puppet/pops/binder/producers.rb +9 -12
  155. data/lib/puppet/pops/evaluator/access_operator.rb +35 -29
  156. data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +175 -0
  157. data/lib/puppet/pops/evaluator/callable_signature.rb +1 -2
  158. data/lib/puppet/pops/evaluator/closure.rb +151 -35
  159. data/lib/puppet/pops/evaluator/compare_operator.rb +26 -22
  160. data/lib/puppet/pops/evaluator/epp_evaluator.rb +16 -15
  161. data/lib/puppet/pops/evaluator/evaluator_impl.rb +277 -229
  162. data/lib/puppet/pops/evaluator/relationship_operator.rb +3 -2
  163. data/lib/puppet/pops/evaluator/runtime3_support.rb +86 -53
  164. data/lib/puppet/pops/functions/dispatch.rb +9 -4
  165. data/lib/puppet/pops/functions/dispatcher.rb +2 -169
  166. data/lib/puppet/pops/issue_reporter.rb +14 -6
  167. data/lib/puppet/pops/issues.rb +96 -21
  168. data/lib/puppet/pops/loader/base_loader.rb +3 -3
  169. data/lib/puppet/pops/loader/loader.rb +1 -1
  170. data/lib/puppet/pops/loader/loader_paths.rb +2 -21
  171. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  172. data/lib/puppet/pops/loader/static_loader.rb +12 -2
  173. data/lib/puppet/pops/model/ast_transformer.rb +4 -24
  174. data/lib/puppet/pops/model/factory.rb +72 -10
  175. data/lib/puppet/pops/model/model.rb +82 -574
  176. data/lib/puppet/pops/model/model_label_provider.rb +4 -2
  177. data/lib/puppet/pops/model/model_meta.rb +576 -0
  178. data/lib/puppet/pops/model/model_tree_dumper.rb +27 -5
  179. data/lib/puppet/pops/parser/egrammar.ra +209 -221
  180. data/lib/puppet/pops/parser/eparser.rb +1459 -1431
  181. data/lib/puppet/pops/parser/evaluating_parser.rb +15 -75
  182. data/lib/puppet/pops/parser/lexer2.rb +14 -10
  183. data/lib/puppet/pops/parser/lexer_support.rb +6 -0
  184. data/lib/puppet/pops/parser/locator.rb +1 -1
  185. data/lib/puppet/pops/parser/parser_support.rb +31 -49
  186. data/lib/puppet/pops/patterns.rb +10 -10
  187. data/lib/puppet/pops/semantic_error.rb +1 -1
  188. data/lib/puppet/pops/types/class_loader.rb +24 -13
  189. data/lib/puppet/pops/types/type_calculator.rb +188 -87
  190. data/lib/puppet/pops/types/type_factory.rb +79 -53
  191. data/lib/puppet/pops/types/type_parser.rb +22 -16
  192. data/lib/puppet/pops/types/types.rb +283 -392
  193. data/lib/puppet/pops/types/types_meta.rb +223 -0
  194. data/lib/puppet/pops/utils.rb +16 -14
  195. data/lib/puppet/pops/validation/checker4_0.rb +264 -18
  196. data/lib/puppet/pops/validation/validator_factory_4_0.rb +0 -1
  197. data/lib/puppet/pops/visitor.rb +0 -103
  198. data/lib/puppet/provider/exec.rb +10 -1
  199. data/lib/puppet/provider/file/windows.rb +3 -4
  200. data/lib/puppet/provider/group/windows_adsi.rb +10 -10
  201. data/lib/puppet/provider/nameservice/directoryservice.rb +3 -4
  202. data/lib/puppet/provider/package/apt.rb +5 -1
  203. data/lib/puppet/provider/package/gem.rb +7 -3
  204. data/lib/puppet/provider/package/openbsd.rb +84 -7
  205. data/lib/puppet/provider/package/pacman.rb +29 -4
  206. data/lib/puppet/provider/package/rpm.rb +5 -7
  207. data/lib/puppet/provider/package/sun.rb +5 -1
  208. data/lib/puppet/provider/package/windows.rb +6 -1
  209. data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
  210. data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
  211. data/lib/puppet/provider/package/windows/package.rb +13 -1
  212. data/lib/puppet/provider/package/yum.rb +7 -3
  213. data/lib/puppet/provider/package/zypper.rb +5 -1
  214. data/lib/puppet/provider/parsedfile.rb +17 -1
  215. data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +6 -12
  216. data/lib/puppet/provider/service/freebsd.rb +12 -12
  217. data/lib/puppet/provider/service/init.rb +5 -0
  218. data/lib/puppet/provider/service/launchd.rb +0 -3
  219. data/lib/puppet/provider/service/openbsd.rb +8 -7
  220. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -2
  221. data/lib/puppet/provider/sshkey/parsed.rb +5 -0
  222. data/lib/puppet/provider/user/user_role_add.rb +5 -4
  223. data/lib/puppet/provider/user/windows_adsi.rb +8 -8
  224. data/lib/puppet/provider/zone/solaris.rb +1 -1
  225. data/lib/puppet/reference/metaparameter.rb +8 -6
  226. data/lib/puppet/reports/store.rb +4 -9
  227. data/lib/puppet/resource.rb +75 -11
  228. data/lib/puppet/resource/catalog.rb +9 -7
  229. data/lib/puppet/resource/type.rb +27 -0
  230. data/lib/puppet/settings.rb +61 -41
  231. data/lib/puppet/settings/base_setting.rb +9 -3
  232. data/lib/puppet/settings/environment_conf.rb +32 -4
  233. data/lib/puppet/settings/file_setting.rb +9 -1
  234. data/lib/puppet/settings/priority_setting.rb +5 -5
  235. data/lib/puppet/ssl.rb +1 -0
  236. data/lib/puppet/ssl/certificate_authority.rb +15 -6
  237. data/lib/puppet/ssl/certificate_authority/autosign_command.rb +2 -1
  238. data/lib/puppet/ssl/host.rb +3 -2
  239. data/lib/puppet/ssl/inventory.rb +11 -6
  240. data/lib/puppet/ssl/validator/default_validator.rb +1 -0
  241. data/lib/puppet/ssl/validator/no_validator.rb +3 -0
  242. data/lib/puppet/transaction.rb +29 -0
  243. data/lib/puppet/transaction/resource_harness.rb +16 -3
  244. data/lib/puppet/type.rb +71 -49
  245. data/lib/puppet/type/exec.rb +36 -8
  246. data/lib/puppet/type/file.rb +56 -16
  247. data/lib/puppet/type/file/content.rb +3 -3
  248. data/lib/puppet/type/file/mode.rb +12 -3
  249. data/lib/puppet/type/file/source.rb +4 -1
  250. data/lib/puppet/type/group.rb +1 -1
  251. data/lib/puppet/type/mount.rb +1 -3
  252. data/lib/puppet/type/resources.rb +59 -35
  253. data/lib/puppet/type/ssh_authorized_key.rb +54 -16
  254. data/lib/puppet/type/sshkey.rb +1 -1
  255. data/lib/puppet/type/user.rb +17 -11
  256. data/lib/puppet/type/yumrepo.rb +59 -8
  257. data/lib/puppet/type/zone.rb +3 -6
  258. data/lib/puppet/util.rb +64 -55
  259. data/lib/puppet/util/autoload.rb +2 -2
  260. data/lib/puppet/util/colors.rb +61 -19
  261. data/lib/puppet/util/command_line.rb +21 -4
  262. data/lib/puppet/util/execution.rb +41 -29
  263. data/lib/puppet/util/feature.rb +15 -4
  264. data/lib/puppet/util/filetype.rb +6 -2
  265. data/lib/puppet/util/http_proxy.rb +29 -2
  266. data/lib/puppet/util/lockfile.rb +1 -1
  267. data/lib/puppet/util/log/destinations.rb +7 -3
  268. data/lib/puppet/util/logging.rb +44 -14
  269. data/lib/puppet/util/pidlock.rb +11 -5
  270. data/lib/puppet/util/posix.rb +21 -31
  271. data/lib/puppet/util/profiler.rb +17 -9
  272. data/lib/puppet/util/profiler/aggregate.rb +85 -0
  273. data/lib/puppet/util/profiler/around_profiler.rb +67 -0
  274. data/lib/puppet/util/profiler/logging.rb +12 -11
  275. data/lib/puppet/util/profiler/wall_clock.rb +7 -6
  276. data/lib/puppet/util/rdoc.rb +8 -1
  277. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
  278. data/lib/puppet/util/suidmanager.rb +1 -8
  279. data/lib/puppet/util/windows.rb +14 -3
  280. data/lib/puppet/util/windows/access_control_list.rb +4 -4
  281. data/lib/puppet/util/{adsi.rb → windows/adsi.rb} +99 -37
  282. data/lib/puppet/util/windows/api_types.rb +255 -0
  283. data/lib/puppet/util/windows/com.rb +224 -0
  284. data/lib/puppet/util/windows/error.rb +72 -5
  285. data/lib/puppet/util/windows/file.rb +254 -132
  286. data/lib/puppet/util/windows/process.rb +293 -177
  287. data/lib/puppet/util/windows/registry.rb +12 -2
  288. data/lib/puppet/util/windows/root_certs.rb +16 -9
  289. data/lib/puppet/util/windows/security.rb +501 -232
  290. data/lib/puppet/util/windows/sid.rb +80 -36
  291. data/lib/puppet/util/windows/string.rb +2 -0
  292. data/lib/puppet/util/windows/taskscheduler.rb +1241 -0
  293. data/lib/puppet/util/windows/user.rb +241 -57
  294. data/lib/puppet/vendor.rb +3 -1
  295. data/lib/puppet/vendor/load_pathspec.rb +1 -0
  296. data/lib/puppet/vendor/load_rgen.rb +1 -0
  297. data/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
  298. data/lib/puppet/vendor/pathspec/LICENSE +201 -0
  299. data/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
  300. data/lib/puppet/vendor/pathspec/README.md +53 -0
  301. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +121 -0
  302. data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
  303. data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
  304. data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
  305. data/lib/puppet/vendor/require_vendored.rb +2 -0
  306. data/lib/puppet/vendor/rgen/CHANGELOG +197 -0
  307. data/lib/puppet/vendor/rgen/MIT-LICENSE +20 -0
  308. data/lib/puppet/vendor/rgen/PUPPET_README.md +6 -0
  309. data/lib/puppet/vendor/rgen/README.rdoc +78 -0
  310. data/lib/puppet/vendor/rgen/Rakefile +41 -0
  311. data/lib/puppet/vendor/rgen/TODO +41 -0
  312. data/lib/puppet/vendor/rgen/anounce.txt +61 -0
  313. data/lib/puppet/vendor/rgen/design_rationale.txt +71 -0
  314. data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +54 -0
  315. data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +32 -0
  316. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +562 -0
  317. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +45 -0
  318. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +43 -0
  319. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +103 -0
  320. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +89 -0
  321. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +559 -0
  322. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +26 -0
  323. data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +20 -0
  324. data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +91 -0
  325. data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +28 -0
  326. data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +37 -0
  327. data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +172 -0
  328. data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +45 -0
  329. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +218 -0
  330. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +81 -0
  331. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +69 -0
  332. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +47 -0
  333. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +167 -0
  334. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +91 -0
  335. data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +129 -0
  336. data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +63 -0
  337. data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +140 -0
  338. data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +289 -0
  339. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +66 -0
  340. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +66 -0
  341. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +117 -0
  342. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +169 -0
  343. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +126 -0
  344. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +331 -0
  345. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +94 -0
  346. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +137 -0
  347. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +97 -0
  348. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +128 -0
  349. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +47 -0
  350. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +168 -0
  351. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +224 -0
  352. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +556 -0
  353. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +174 -0
  354. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +89 -0
  355. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +77 -0
  356. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +30 -0
  357. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +168 -0
  358. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +23 -0
  359. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +42 -0
  360. data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +32 -0
  361. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +334 -0
  362. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +225 -0
  363. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +156 -0
  364. data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +121 -0
  365. data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +18 -0
  366. data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +47 -0
  367. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +116 -0
  368. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +71 -0
  369. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +98 -0
  370. data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +297 -0
  371. data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +83 -0
  372. data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +87 -0
  373. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +234 -0
  374. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +26 -0
  375. data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +475 -0
  376. data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +61 -0
  377. data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +67 -0
  378. data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +124 -0
  379. data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +84 -0
  380. data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +114 -0
  381. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +68 -0
  382. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +142 -0
  383. data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +29 -0
  384. data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +42 -0
  385. data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +329 -0
  386. data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +79 -0
  387. data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +127 -0
  388. data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +64 -0
  389. data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +35 -0
  390. data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +23 -0
  391. data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +54 -0
  392. data/lib/puppet/vendor/rgen/test/environment_test.rb +90 -0
  393. data/lib/puppet/vendor/rgen/test/json_test.rb +171 -0
  394. data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +1482 -0
  395. data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +57 -0
  396. data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +131 -0
  397. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +98 -0
  398. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +70 -0
  399. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +42 -0
  400. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +44 -0
  401. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +9 -0
  402. data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +178 -0
  403. data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +59 -0
  404. data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +242 -0
  405. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +163 -0
  406. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +163 -0
  407. data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +156 -0
  408. data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +94 -0
  409. data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +42 -0
  410. data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +23 -0
  411. data/lib/puppet/vendor/rgen/test/model_builder_test.rb +6 -0
  412. data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +30 -0
  413. data/lib/puppet/vendor/rgen/test/output_handler_test.rb +58 -0
  414. data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +48 -0
  415. data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +102 -0
  416. data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +117 -0
  417. data/lib/puppet/vendor/rgen/test/rgen_test.rb +26 -0
  418. data/lib/puppet/vendor/rgen/test/template_language_test.rb +163 -0
  419. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +29 -0
  420. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +9 -0
  421. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +4 -0
  422. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +1 -0
  423. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +1 -0
  424. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +12 -0
  425. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +5 -0
  426. data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +11 -0
  427. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +7 -0
  428. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +5 -0
  429. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +8 -0
  430. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +8 -0
  431. data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +7 -0
  432. data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +12 -0
  433. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +1 -0
  434. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +3 -0
  435. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +5 -0
  436. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +3 -0
  437. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +3 -0
  438. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +24 -0
  439. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +13 -0
  440. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +10 -0
  441. data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +17 -0
  442. data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +31 -0
  443. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +9 -0
  444. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +3 -0
  445. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +4 -0
  446. data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +29 -0
  447. data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +119 -0
  448. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
  449. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +1029 -0
  450. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +317 -0
  451. data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +101 -0
  452. data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +22 -0
  453. data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +67 -0
  454. data/lib/puppet/vendor/rgen/test/transformer_test.rb +254 -0
  455. data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +99 -0
  456. data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +97 -0
  457. data/lib/puppet/vendor/rgen/test/util_test.rb +5 -0
  458. data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +160 -0
  459. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +94 -0
  460. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +53 -0
  461. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +49 -0
  462. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +75 -0
  463. data/lib/puppet/vendor/safe_yaml/PUPPET_README.md +6 -0
  464. data/lib/puppet/vendor/semantic/PUPPET_README.md +6 -0
  465. data/lib/puppet/version.rb +1 -1
  466. data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +2 -0
  467. data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +6 -0
  468. data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +1 -0
  469. data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +2 -0
  470. data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +1 -1
  471. data/spec/fixtures/unit/indirector/hiera/global.yaml +10 -0
  472. data/spec/fixtures/unit/indirector/hiera/invalid.yaml +1 -0
  473. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +3 -0
  474. data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +3 -0
  475. data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +2 -2
  476. data/spec/fixtures/unit/parser/lexer/casestatement.pp +14 -14
  477. data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +3 -3
  478. data/spec/fixtures/unit/parser/lexer/classincludes.pp +3 -3
  479. data/spec/fixtures/unit/parser/lexer/classpathtest.pp +1 -1
  480. data/spec/fixtures/unit/parser/lexer/collection_override.pp +1 -1
  481. data/spec/fixtures/unit/parser/lexer/componentrequire.pp +2 -2
  482. data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +5 -5
  483. data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +2 -2
  484. data/spec/fixtures/unit/parser/lexer/filecreate.pp +2 -2
  485. data/spec/fixtures/unit/parser/lexer/ifexpression.pp +1 -1
  486. data/spec/fixtures/unit/parser/lexer/implicititeration.pp +4 -4
  487. data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +3 -3
  488. data/spec/fixtures/unit/parser/lexer/multisubs.pp +2 -2
  489. data/spec/fixtures/unit/parser/lexer/namevartest.pp +2 -2
  490. data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +1 -1
  491. data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +1 -1
  492. data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +14 -14
  493. data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +3 -3
  494. data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +3 -3
  495. data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +1 -1
  496. data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +1 -1
  497. data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +2 -2
  498. data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +5 -5
  499. data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +2 -2
  500. data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +2 -2
  501. data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +1 -1
  502. data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +4 -4
  503. data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +3 -3
  504. data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +2 -2
  505. data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +2 -2
  506. data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +1 -1
  507. data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +4 -0
  508. data/spec/fixtures/unit/type/user/authorized_keys +1 -1
  509. data/spec/integration/agent/logging_spec.rb +4 -0
  510. data/spec/integration/application/doc_spec.rb +4 -3
  511. data/spec/integration/configurer_spec.rb +0 -14
  512. data/spec/integration/defaults_spec.rb +26 -0
  513. data/spec/integration/environments/default_manifest_spec.rb +274 -0
  514. data/spec/integration/faces/documentation_spec.rb +0 -4
  515. data/spec/integration/file_bucket/file_spec.rb +21 -0
  516. data/spec/integration/indirector/catalog/compiler_spec.rb +0 -2
  517. data/spec/integration/indirector/catalog/queue_spec.rb +0 -2
  518. data/spec/integration/indirector/facts/facter_spec.rb +1 -1
  519. data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
  520. data/spec/integration/node/environment_spec.rb +24 -8
  521. data/spec/integration/parser/catalog_spec.rb +10 -10
  522. data/spec/integration/parser/class_spec.rb +37 -0
  523. data/spec/integration/parser/collector_spec.rb +234 -75
  524. data/spec/integration/parser/compiler_spec.rb +385 -401
  525. data/spec/integration/parser/conditionals_spec.rb +117 -0
  526. data/spec/integration/parser/future_compiler_spec.rb +359 -8
  527. data/spec/integration/parser/node_spec.rb +185 -0
  528. data/spec/integration/parser/resource_expressions_spec.rb +286 -0
  529. data/spec/integration/parser/ruby_manifest_spec.rb +0 -4
  530. data/spec/integration/parser/scope_spec.rb +94 -151
  531. data/spec/integration/provider/cron/crontab_spec.rb +137 -148
  532. data/spec/integration/ssl/certificate_authority_spec.rb +26 -0
  533. data/spec/integration/ssl/certificate_request_spec.rb +0 -6
  534. data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -2
  535. data/spec/integration/ssl/host_spec.rb +0 -2
  536. data/spec/integration/transaction_spec.rb +16 -0
  537. data/spec/integration/type/file_spec.rb +14 -13
  538. data/spec/integration/type/nagios_spec.rb +6 -15
  539. data/spec/integration/type/sshkey_spec.rb +22 -0
  540. data/spec/integration/type/tidy_spec.rb +3 -0
  541. data/spec/integration/type/user_spec.rb +8 -3
  542. data/spec/integration/util/autoload_spec.rb +6 -6
  543. data/spec/integration/util/rdoc/parser_spec.rb +7 -0
  544. data/spec/integration/util/windows/process_spec.rb +12 -0
  545. data/spec/integration/util/windows/security_spec.rb +36 -35
  546. data/spec/integration/util/windows/user_spec.rb +75 -9
  547. data/spec/integration/util_spec.rb +2 -2
  548. data/spec/lib/matchers/resource.rb +1 -0
  549. data/spec/lib/puppet_spec/compiler.rb +15 -2
  550. data/spec/lib/puppet_spec/files.rb +10 -0
  551. data/spec/lib/puppet_spec/language.rb +74 -0
  552. data/spec/lib/puppet_spec/matchers.rb +59 -32
  553. data/spec/lib/puppet_spec/module_tool/stub_source.rb +3 -0
  554. data/spec/shared_behaviours/hiera_indirections.rb +99 -0
  555. data/spec/shared_behaviours/iterative_functions.rb +69 -0
  556. data/spec/unit/application/apply_spec.rb +4 -2
  557. data/spec/unit/application/doc_spec.rb +17 -13
  558. data/spec/unit/application/master_spec.rb +35 -27
  559. data/spec/unit/application/resource_spec.rb +0 -5
  560. data/spec/unit/configurer/downloader_factory_spec.rb +96 -0
  561. data/spec/unit/configurer/downloader_spec.rb +3 -24
  562. data/spec/unit/configurer/plugin_handler_spec.rb +22 -22
  563. data/spec/unit/configurer_spec.rb +0 -4
  564. data/spec/unit/defaults_spec.rb +30 -0
  565. data/spec/unit/face/config_spec.rb +2 -1
  566. data/spec/unit/face/module/build_spec.rb +2 -2
  567. data/spec/unit/face/module/install_spec.rb +8 -8
  568. data/spec/unit/face/parser_spec.rb +71 -33
  569. data/spec/unit/file_bucket/file_spec.rb +2 -2
  570. data/spec/unit/file_system/uniquefile_spec.rb +184 -0
  571. data/spec/unit/forge/errors_spec.rb +4 -6
  572. data/spec/unit/forge/module_release_spec.rb +178 -89
  573. data/spec/unit/forge/repository_spec.rb +110 -2
  574. data/spec/unit/forge_spec.rb +39 -3
  575. data/spec/unit/functions/assert_type_spec.rb +22 -3
  576. data/spec/unit/{parser/methods → functions}/each_spec.rb +21 -1
  577. data/spec/unit/{parser/functions → functions}/epp_spec.rb +61 -9
  578. data/spec/unit/{parser/methods → functions}/filter_spec.rb +34 -38
  579. data/spec/unit/{parser/functions → functions}/inline_epp_spec.rb +18 -3
  580. data/spec/unit/functions/map_spec.rb +169 -0
  581. data/spec/unit/functions/match_spec.rb +57 -0
  582. data/spec/unit/{parser/methods → functions}/reduce_spec.rb +23 -5
  583. data/spec/unit/{parser/methods → functions}/slice_spec.rb +34 -21
  584. data/spec/unit/functions/with_spec.rb +35 -0
  585. data/spec/unit/functions4_spec.rb +7 -8
  586. data/spec/unit/indirector/catalog/compiler_spec.rb +0 -2
  587. data/spec/unit/indirector/catalog/static_compiler_spec.rb +11 -0
  588. data/spec/unit/indirector/data_binding/hiera_spec.rb +1 -96
  589. data/spec/unit/indirector/facts/facter_spec.rb +69 -102
  590. data/spec/unit/indirector/hiera_spec.rb +17 -0
  591. data/spec/unit/indirector/request_spec.rb +2 -4
  592. data/spec/unit/indirector/resource/ral_spec.rb +5 -0
  593. data/spec/unit/indirector/resource_type/parser_spec.rb +17 -12
  594. data/spec/unit/indirector/rest_spec.rb +36 -6
  595. data/spec/unit/interface/face_collection_spec.rb +2 -2
  596. data/spec/unit/module_tool/applications/builder_spec.rb +364 -14
  597. data/spec/unit/module_tool/applications/uninstaller_spec.rb +22 -0
  598. data/spec/unit/module_tool/applications/unpacker_spec.rb +40 -0
  599. data/spec/unit/module_tool/applications/upgrader_spec.rb +22 -0
  600. data/spec/unit/module_tool/installed_modules_spec.rb +49 -0
  601. data/spec/unit/module_tool/metadata_spec.rb +72 -4
  602. data/spec/unit/module_tool/tar/mini_spec.rb +2 -1
  603. data/spec/unit/network/authentication_spec.rb +4 -0
  604. data/spec/unit/network/http/api/v2/environments_spec.rb +24 -3
  605. data/spec/unit/network/http/connection_spec.rb +127 -92
  606. data/spec/unit/network/http/factory_spec.rb +82 -0
  607. data/spec/unit/network/http/handler_spec.rb +23 -13
  608. data/spec/unit/network/http/nocache_pool_spec.rb +43 -0
  609. data/spec/unit/network/http/pool_spec.rb +269 -0
  610. data/spec/unit/network/http/rack/rest_spec.rb +1 -1
  611. data/spec/unit/network/http/session_spec.rb +43 -0
  612. data/spec/unit/network/http/site_spec.rb +90 -0
  613. data/spec/unit/network/http/webrick_spec.rb +1 -1
  614. data/spec/unit/network/http_pool_spec.rb +9 -6
  615. data/spec/unit/network/http_spec.rb +10 -0
  616. data/spec/unit/node/environment_spec.rb +54 -0
  617. data/spec/unit/node_spec.rb +3 -5
  618. data/spec/unit/parser/compiler_spec.rb +9 -2
  619. data/spec/unit/parser/files_spec.rb +19 -0
  620. data/spec/unit/parser/functions/contain_spec.rb +51 -0
  621. data/spec/unit/parser/functions/create_resources_spec.rb +8 -1
  622. data/spec/unit/parser/functions/digest_spec.rb +31 -0
  623. data/spec/unit/parser/functions/file_spec.rb +48 -5
  624. data/spec/unit/parser/functions/include_spec.rb +15 -1
  625. data/spec/unit/parser/functions/realize_spec.rb +43 -35
  626. data/spec/unit/parser/functions/require_spec.rb +19 -5
  627. data/spec/unit/parser/functions/search_spec.rb +5 -0
  628. data/spec/unit/parser/functions/shared.rb +82 -0
  629. data/spec/unit/parser/functions_spec.rb +1 -1
  630. data/spec/unit/parser/lexer_spec.rb +10 -1
  631. data/spec/unit/parser/type_loader_spec.rb +0 -1
  632. data/spec/unit/pops/benchmark_spec.rb +1 -1
  633. data/spec/unit/pops/binder/bindings_composer_spec.rb +24 -22
  634. data/spec/unit/pops/binder/injector_spec.rb +8 -6
  635. data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
  636. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +7 -4
  637. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +250 -30
  638. data/spec/unit/pops/evaluator/logical_ops_spec.rb +2 -2
  639. data/spec/unit/pops/evaluator/variables_spec.rb +0 -105
  640. data/spec/unit/pops/issues_spec.rb +170 -0
  641. data/spec/unit/pops/loaders/dependency_loader_spec.rb +17 -0
  642. data/spec/unit/pops/loaders/loader_paths_spec.rb +4 -15
  643. data/spec/unit/pops/loaders/loaders_spec.rb +31 -11
  644. data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -29
  645. data/spec/unit/pops/loaders/static_loader_spec.rb +6 -0
  646. data/spec/unit/pops/parser/epp_parser_spec.rb +38 -9
  647. data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -1
  648. data/spec/unit/pops/parser/lexer2_spec.rb +21 -4
  649. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +5 -0
  650. data/spec/unit/pops/parser/parse_calls_spec.rb +6 -3
  651. data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -5
  652. data/spec/unit/pops/parser/parse_containers_spec.rb +62 -7
  653. data/spec/unit/pops/parser/parse_resource_spec.rb +155 -73
  654. data/spec/unit/pops/parser/parser_spec.rb +16 -0
  655. data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +72 -0
  656. data/spec/unit/pops/transformer/transform_calls_spec.rb +1 -1
  657. data/spec/unit/pops/types/type_calculator_spec.rb +254 -57
  658. data/spec/unit/pops/types/type_factory_spec.rb +8 -3
  659. data/spec/unit/pops/types/type_parser_spec.rb +26 -5
  660. data/spec/unit/pops/validator/validator_spec.rb +143 -27
  661. data/spec/unit/provider/exec/posix_spec.rb +22 -14
  662. data/spec/unit/provider/exec/shell_spec.rb +2 -2
  663. data/spec/unit/provider/file/windows_spec.rb +7 -7
  664. data/spec/unit/provider/group/windows_adsi_spec.rb +17 -17
  665. data/spec/unit/provider/package/gem_spec.rb +10 -0
  666. data/spec/unit/provider/package/openbsd_spec.rb +66 -9
  667. data/spec/unit/provider/package/pacman_spec.rb +90 -71
  668. data/spec/unit/provider/package/windows/package_spec.rb +21 -6
  669. data/spec/unit/provider/package/yum_spec.rb +1 -0
  670. data/spec/unit/provider/parsedfile_spec.rb +1 -1
  671. data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +9 -9
  672. data/spec/unit/provider/service/openbsd_spec.rb +26 -2
  673. data/spec/unit/provider/service/upstart_spec.rb +12 -1
  674. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +6 -0
  675. data/spec/unit/provider/user/user_role_add_spec.rb +23 -1
  676. data/spec/unit/provider/user/windows_adsi_spec.rb +17 -17
  677. data/spec/unit/reports/store_spec.rb +0 -16
  678. data/spec/unit/resource/catalog_spec.rb +0 -5
  679. data/spec/unit/resource_spec.rb +2 -2
  680. data/spec/unit/settings/autosign_setting_spec.rb +2 -2
  681. data/spec/unit/settings/environment_conf_spec.rb +77 -10
  682. data/spec/unit/settings/file_setting_spec.rb +5 -4
  683. data/spec/unit/settings/priority_setting_spec.rb +4 -4
  684. data/spec/unit/settings_spec.rb +41 -3
  685. data/spec/unit/ssl/certificate_authority_spec.rb +25 -2
  686. data/spec/unit/ssl/inventory_spec.rb +13 -0
  687. data/spec/unit/ssl/validator_spec.rb +0 -1
  688. data/spec/unit/transaction/resource_harness_spec.rb +64 -0
  689. data/spec/unit/transaction_spec.rb +98 -47
  690. data/spec/unit/type/cron_spec.rb +3 -3
  691. data/spec/unit/type/exec_spec.rb +9 -0
  692. data/spec/unit/type/file/content_spec.rb +54 -71
  693. data/spec/unit/type/file/mode_spec.rb +26 -1
  694. data/spec/unit/type/file/source_spec.rb +26 -4
  695. data/spec/unit/type/file_spec.rb +3 -3
  696. data/spec/unit/type/nagios_spec.rb +12 -3
  697. data/spec/unit/type/resources_spec.rb +64 -30
  698. data/spec/unit/type/user_spec.rb +1 -1
  699. data/spec/unit/type/yumrepo_spec.rb +136 -0
  700. data/spec/unit/type/zone_spec.rb +44 -1
  701. data/spec/unit/type_spec.rb +20 -0
  702. data/spec/unit/util/colors_spec.rb +14 -8
  703. data/spec/unit/util/command_line_spec.rb +11 -7
  704. data/spec/unit/util/execution_spec.rb +35 -42
  705. data/spec/unit/util/feature_spec.rb +12 -0
  706. data/spec/unit/util/http_proxy_spec.rb +43 -1
  707. data/spec/unit/util/log/destinations_spec.rb +45 -1
  708. data/spec/unit/util/logging_spec.rb +38 -0
  709. data/spec/unit/util/pidlock_spec.rb +37 -1
  710. data/spec/unit/util/profiler/aggregate_spec.rb +59 -0
  711. data/spec/unit/util/profiler/around_profiler_spec.rb +61 -0
  712. data/spec/unit/util/profiler/logging_spec.rb +18 -29
  713. data/spec/unit/util/profiler/wall_clock_spec.rb +1 -1
  714. data/spec/unit/util/profiler_spec.rb +55 -0
  715. data/spec/unit/util/queue_spec.rb +0 -1
  716. data/spec/unit/util/rdoc/parser_spec.rb +14 -6
  717. data/spec/unit/util/tagging_spec.rb +1 -1
  718. data/spec/unit/util/windows/access_control_entry_spec.rb +1 -1
  719. data/spec/unit/util/{adsi_spec.rb → windows/adsi_spec.rb} +111 -108
  720. data/spec/unit/util/windows/api_types_spec.rb +28 -0
  721. data/spec/unit/util/windows/registry_spec.rb +7 -6
  722. data/spec/unit/util/windows/sid_spec.rb +3 -6
  723. data/spec/unit/util/windows/string_spec.rb +4 -0
  724. data/spec/unit/util/zaml_spec.rb +5 -1
  725. data/tasks/benchmark.rake +40 -5
  726. data/tasks/parser.rake +16 -2
  727. data/tasks/yard.rake +1 -1
  728. metadata +308 -150
  729. data/lib/puppet/file_system/tempfile.rb +0 -20
  730. data/lib/puppet/parser/e_parser_adapter.rb +0 -119
  731. data/lib/puppet/parser/functions/collect.rb +0 -15
  732. data/lib/puppet/parser/functions/select.rb +0 -15
  733. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +0 -109
  734. data/lib/puppet/pops/parser/lexer.rb +0 -753
  735. data/lib/puppet/pops/parser/makefile +0 -6
  736. data/lib/puppet/pops/validation/checker3_1.rb +0 -558
  737. data/lib/puppet/pops/validation/validator_factory_3_1.rb +0 -31
  738. data/lib/puppet/util/profiler/none.rb +0 -8
  739. data/spec/unit/face/certificate_request_spec.rb +0 -7
  740. data/spec/unit/face/certificate_revocation_list_spec.rb +0 -7
  741. data/spec/unit/face/key_spec.rb +0 -7
  742. data/spec/unit/face/report_spec.rb +0 -7
  743. data/spec/unit/face/resource_spec.rb +0 -7
  744. data/spec/unit/face/resource_type_spec.rb +0 -7
  745. data/spec/unit/file_system/tempfile_spec.rb +0 -48
  746. data/spec/unit/parser/eparser_adapter_spec.rb +0 -407
  747. data/spec/unit/parser/methods/map_spec.rb +0 -184
  748. data/spec/unit/parser/methods/shared.rb +0 -45
  749. data/spec/unit/pops/parser/lexer_spec.rb +0 -840
  750. data/spec/unit/pops/transformer/transform_resource_spec.rb +0 -185
  751. data/spec/unit/util/profiler/none_spec.rb +0 -12
@@ -0,0 +1,45 @@
1
+ module UML13EA
2
+ class << self
3
+ attr_accessor :idStore
4
+ end
5
+ module ModelElement::ClassModule
6
+ def qualifiedName
7
+ _name = (respond_to?(:_name) ? self._name : name) || "unnamed"
8
+ _namespace = respond_to?(:_namespace) ? self._namespace : namespace
9
+ _namespace && _namespace.qualifiedName ? _namespace.qualifiedName+"::"+_name : _name
10
+ end
11
+ end
12
+ module XmiIdProvider::ClassModule
13
+ def _xmi_id
14
+ UML13EA.idStore.idHash[qualifiedName] ||= "EAID_"+object_id.to_s
15
+ end
16
+ end
17
+ module Package::ClassModule
18
+ def _xmi_id
19
+ UML13EA.idStore.idHash[qualifiedName] ||= "EAPK_"+object_id.to_s
20
+ end
21
+ end
22
+ module Generalization::ClassModule
23
+ def _name
24
+ "#{subtype.name}_#{supertype.name}"
25
+ end
26
+ end
27
+ module Association::ClassModule
28
+ def _name
29
+ connection.collect{|c| "#{c.getType.name}_#{c.name}"}.sort.join("_")
30
+ end
31
+ end
32
+ module AssociationEnd::ClassModule
33
+ def _name
34
+ "#{getType.name}_#{name}"
35
+ end
36
+ def _namespace
37
+ association
38
+ end
39
+ end
40
+ module StateVertex::ClassModule
41
+ def _namespace
42
+ container
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,43 @@
1
+ require 'metamodels/uml13_metamodel'
2
+ require 'mmgen/metamodel_generator'
3
+ require 'rgen/transformer'
4
+ require 'rgen/environment'
5
+ require 'rgen/ecore/ecore'
6
+
7
+ include MMGen::MetamodelGenerator
8
+
9
+ class ECoreCopyTransformer < RGen::Transformer
10
+ copy_all RGen::ECore
11
+ end
12
+
13
+ eaMMRoot = ECoreCopyTransformer.new.trans(UML13.ecore)
14
+
15
+ eaMMRoot.name = "UML13EA"
16
+ eaMMRoot.eClassifiers.find{|c| c.name == "ActivityGraph"}.name = "ActivityModel"
17
+ eaMMRoot.eClassifiers.find{|c| c.name == "Pseudostate"}.name = "PseudoState"
18
+
19
+ compositeState = eaMMRoot.eClassifiers.find{|c| c.name == "CompositeState"}
20
+ compositeState.eReferences.find{|r| r.name == "subvertex"}.name = "substate"
21
+
22
+ generalization = eaMMRoot.eClassifiers.find{|c| c.name == "Generalization"}
23
+ generalization.eReferences.find{|r| r.name == "parent"}.name = "supertype"
24
+ generalization.eReferences.find{|r| r.name == "child"}.name = "subtype"
25
+
26
+ assocEnd = eaMMRoot.eClassifiers.find{|c| c.name == "AssociationEnd"}
27
+ assocEnd.eAttributes.find{|r| r.name == "ordering"}.name = "isOrdered"
28
+ assocEnd.eAttributes.find{|r| r.name == "changeability"}.name = "changeable"
29
+ assocEnd.eAttributes.find{|r| r.name == "isOrdered"}.eType = RGen::ECore::EBoolean
30
+ assocEnd.eAttributes.find{|r| r.name == "changeable"}.eType.eLiterals.find{|l| l.name == "frozen"}.name = "none"
31
+ multRef = assocEnd.eStructuralFeatures.find{|f| f.name == "multiplicity"}
32
+ multRef.eType = nil
33
+ assocEnd.removeEStructuralFeatures(multRef)
34
+ assocEnd.addEStructuralFeatures(RGen::ECore::EAttribute.new(:name => "multiplicity", :eType => RGen::ECore::EString))
35
+
36
+ xmiIdProvider = RGen::ECore::EClass.new(:name => "XmiIdProvider", :ePackage => eaMMRoot)
37
+ eaMMRoot.eClassifiers.each do |c|
38
+ if %w(Package Class Generalization Association AssociationEnd StateVertex).include?(c.name)
39
+ c.addESuperTypes(xmiIdProvider)
40
+ end
41
+ end
42
+
43
+ generateMetamodel(eaMMRoot, File.dirname(__FILE__)+"/uml13_ea_metamodel.rb")
@@ -0,0 +1,103 @@
1
+ require 'rgen/transformer'
2
+ require 'metamodels/uml13_metamodel'
3
+ require 'ea_support/uml13_ea_metamodel'
4
+
5
+ class UML13EAToUML13 < RGen::Transformer
6
+ include UML13EA
7
+
8
+ def transform
9
+ trans(:class => Package)
10
+ trans(:class => Class)
11
+ @env_out.find(:class => UML13::Attribute).each do |me|
12
+ # remove tagged vales internally used by EA which have been converted to UML
13
+ me.taggedValue = me.taggedValue.reject{|tv| ["lowerBound", "upperBound"].include?(tv.tag)}
14
+ end
15
+ end
16
+
17
+ def cleanModel
18
+ @env_out.find(:class => UML13::ModelElement).each do |me|
19
+ me.taggedValue = []
20
+ end
21
+ end
22
+
23
+ copy_all UML13EA, :to => UML13, :except => %w(
24
+ XmiIdProvider
25
+ AssociationEnd AssociationEndRole
26
+ StructuralFeature
27
+ Attribute
28
+ Generalization
29
+ ActivityModel
30
+ CompositeState
31
+ PseudoState
32
+ Dependency
33
+ )
34
+
35
+ transform AssociationEndRole, :to => UML13::AssociationEndRole do
36
+ copyAssociationEnd
37
+ end
38
+
39
+ transform AssociationEnd, :to => UML13::AssociationEnd do
40
+ copyAssociationEnd
41
+ end
42
+
43
+ def copyAssociationEnd
44
+ copy_features :except => [:isOrdered, :changeable] do
45
+ {:ordering => isOrdered ? :ordered : :unordered,
46
+ :changeability => {:none => :frozen}[changeable] || changeable,
47
+ :aggregation => {:shared => :aggregate}[aggregation] || aggregation,
48
+ :multiplicity => UML13::Multiplicity.new(
49
+ :range => [UML13::MultiplicityRange.new(
50
+ :lower => multiplicity && multiplicity.split("..").first,
51
+ :upper => multiplicity && multiplicity.split("..").last)])}
52
+ end
53
+ end
54
+
55
+ transform StructuralFeature, :to => UML13::StructuralFeature,
56
+ :if => lambda{|c| !@current_object.is_a?(UML13EA::Attribute)} do
57
+ copy_features :except => [:changeable] do
58
+ {:changeability => {:none => :frozen}[changeable] }
59
+ end
60
+ end
61
+
62
+ transform StructuralFeature, :to => UML13::Attribute,
63
+ :if => lambda{|c| @current_object.is_a?(UML13EA::Attribute)} do
64
+ _lowerBound = taggedValue.find{|tv| tv.tag == "lowerBound"}
65
+ _upperBound = taggedValue.find{|tv| tv.tag == "upperBound"}
66
+ if _lowerBound || _upperBound
67
+ _multiplicity = UML13::Multiplicity.new(
68
+ :range => [UML13::MultiplicityRange.new(
69
+ :lower => (_lowerBound && _lowerBound.value) || "0",
70
+ :upper => (_upperBound && _upperBound.value) || "1"
71
+ )])
72
+ end
73
+ copy_features :except => [:changeable] do
74
+ {:changeability => {:none => :frozen}[changeable],
75
+ :multiplicity => _multiplicity }
76
+ end
77
+ end
78
+
79
+ transform Generalization, :to => UML13::Generalization do
80
+ copy_features :except => [:subtype, :supertype] do
81
+ { :child => trans(subtype),
82
+ :parent => trans(supertype) }
83
+ end
84
+ end
85
+
86
+ copy ActivityModel, :to => UML13::ActivityGraph
87
+
88
+ transform CompositeState, :to => UML13::CompositeState do
89
+ copy_features :except => [:substate] do
90
+ { :subvertex => trans(substate) }
91
+ end
92
+ end
93
+
94
+ copy PseudoState, :to => UML13::Pseudostate
95
+
96
+ transform Dependency, :to => UML13::Dependency do
97
+ _name_tag = taggedValue.find{|tv| tv.tag == "dst_name"}
98
+ copy_features do
99
+ { :name => (_name_tag && _name_tag.value) || "Anonymous" }
100
+ end
101
+ end
102
+
103
+ end
@@ -0,0 +1,89 @@
1
+ require 'rgen/transformer'
2
+ require 'metamodels/uml13_metamodel'
3
+ require 'ea_support/uml13_ea_metamodel'
4
+ require 'ea_support/uml13_ea_metamodel_ext'
5
+
6
+ class UML13ToUML13EA < RGen::Transformer
7
+ include UML13
8
+
9
+ def transform
10
+ trans(:class => Package)
11
+ trans(:class => Class)
12
+ end
13
+
14
+ copy_all UML13, :to => UML13EA, :except => %w(
15
+ ActivityGraph
16
+ CompositeState SimpleState
17
+ Class
18
+ Association AssociationEnd AssociationEndRole
19
+ Generalization
20
+ Pseudostate
21
+ Attribute
22
+ )
23
+
24
+ copy ActivityGraph, :to => UML13EA::ActivityModel
25
+
26
+ copy Pseudostate, :to => UML13EA::PseudoState
27
+
28
+ transform CompositeState, :to => UML13EA::CompositeState do
29
+ copy_features :except => [:subvertex] do
30
+ { :substate => trans(subvertex) }
31
+ end
32
+ end
33
+
34
+ transform SimpleState, :to => UML13EA::SimpleState do
35
+ copy_features :except => [:container] do
36
+ { :taggedValue => trans(taggedValue) +
37
+ [@env_out.new(UML13EA::TaggedValue, :tag => "ea_stype", :value => "State")] +
38
+ (container ? [ @env_out.new(UML13EA::TaggedValue, :tag => "owner", :value => trans(container)._xmi_id)] : []) }
39
+ end
40
+ end
41
+
42
+ transform Class, :to => UML13EA::Class do
43
+ copy_features do
44
+ { :taggedValue => trans(taggedValue) + [@env_out.new(UML13EA::TaggedValue, :tag => "ea_stype", :value => "Class")]}
45
+ end
46
+ end
47
+
48
+ transform Association, :to => UML13EA::Association do
49
+ copy_features do
50
+ { :connection => trans(connection[1].isNavigable ? [connection[0], connection[1]] : [connection[1], connection[0]]),
51
+ :taggedValue => trans(taggedValue) + [
52
+ @env_out.new(UML13EA::TaggedValue, :tag => "ea_type", :value => "Association"),
53
+ @env_out.new(UML13EA::TaggedValue, :tag => "direction", :value =>
54
+ connection.all?{|c| c.isNavigable} ? "Bi-Directional" : "Source -&gt; Destination")] }
55
+ end
56
+ end
57
+
58
+ transform AssociationEnd, :to => UML13EA::AssociationEnd do
59
+ copyAssociationEnd
60
+ end
61
+
62
+ transform AssociationEndRole, :to => UML13EA::AssociationEndRole do
63
+ copyAssociationEnd
64
+ end
65
+
66
+ def copyAssociationEnd
67
+ _lower = multiplicity && multiplicity.range.first.lower
68
+ _upper = multiplicity && multiplicity.range.first.upper
69
+ copy_features :except => [:multiplicity, :ordering, :changeability] do
70
+ { :multiplicity => _lower == _upper ? _lower : "#{_lower}..#{_upper}",
71
+ :isOrdered => ordering == :ordered,
72
+ :changeable => :none } #{:frozen => :none}[changeability] || changeability}
73
+ end
74
+ end
75
+
76
+ transform Attribute, :to => UML13EA::Attribute do
77
+ copy_features :except => [:changeability] do
78
+ { :changeable => {:frozen => :none}[changeability] }
79
+ end
80
+ end
81
+
82
+ transform Generalization, :to => UML13EA::Generalization do
83
+ copy_features :except => [:child, :parent] do
84
+ { :taggedValue => trans(taggedValue) + [@env_out.new(UML13EA::TaggedValue, :tag => "ea_type", :value => "Generalization")],
85
+ :subtype => trans(child),
86
+ :supertype => trans(parent)}
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,559 @@
1
+ require 'rgen/metamodel_builder'
2
+
3
+ module UML13
4
+ extend RGen::MetamodelBuilder::ModuleExtension
5
+ include RGen::MetamodelBuilder::DataTypes
6
+
7
+ AggregationKind = Enum.new(:name => "AggregationKind", :literals =>[ :none, :aggregate, :composite ])
8
+ ChangeableKind = Enum.new(:name => "ChangeableKind", :literals =>[ :changeable, :frozen, :addOnly ])
9
+ OperationDirectionKind = Enum.new(:name => "OperationDirectionKind", :literals =>[ ])
10
+ ParameterDirectionKind = Enum.new(:name => "ParameterDirectionKind", :literals =>[ :in, :inout, :out, :return ])
11
+ MessageDirectionKind = Enum.new(:name => "MessageDirectionKind", :literals =>[ ])
12
+ ScopeKind = Enum.new(:name => "ScopeKind", :literals =>[ :instance, :classifier ])
13
+ VisibilityKind = Enum.new(:name => "VisibilityKind", :literals =>[ :public, :protected, :private ])
14
+ PseudostateKind = Enum.new(:name => "PseudostateKind", :literals =>[ :initial, :deepHistory, :shallowHistory, :join, :fork, :branch, :junction, :final ])
15
+ CallConcurrencyKind = Enum.new(:name => "CallConcurrencyKind", :literals =>[ :sequential, :guarded, :concurrent ])
16
+ OrderingKind = Enum.new(:name => "OrderingKind", :literals =>[ :unordered, :ordered, :sorted ])
17
+
18
+ class Element < RGen::MetamodelBuilder::MMBase
19
+ end
20
+
21
+ class ModelElement < Element
22
+ has_attr 'name', String
23
+ has_attr 'visibility', UML13::VisibilityKind, :defaultValueLiteral => "public"
24
+ has_attr 'isSpecification', Boolean
25
+ end
26
+
27
+ class Namespace < ModelElement
28
+ end
29
+
30
+ class GeneralizableElement < ModelElement
31
+ has_attr 'isRoot', Boolean
32
+ has_attr 'isLeaf', Boolean
33
+ has_attr 'isAbstract', Boolean
34
+ end
35
+
36
+ class Classifier < RGen::MetamodelBuilder::MMMultiple(GeneralizableElement, Namespace)
37
+ end
38
+
39
+ class Class < Classifier
40
+ has_attr 'isActive', Boolean
41
+ end
42
+
43
+ class DataType < Classifier
44
+ end
45
+
46
+ class Feature < ModelElement
47
+ has_attr 'ownerScope', UML13::ScopeKind, :defaultValueLiteral => "instance"
48
+ end
49
+
50
+ class StructuralFeature < Feature
51
+ has_attr 'changeability', UML13::ChangeableKind, :defaultValueLiteral => "changeable"
52
+ has_attr 'targetScope', UML13::ScopeKind, :defaultValueLiteral => "instance"
53
+ end
54
+
55
+ class AssociationEnd < ModelElement
56
+ has_attr 'isNavigable', Boolean, :defaultValueLiteral => "false"
57
+ has_attr 'ordering', UML13::OrderingKind, :defaultValueLiteral => "unordered"
58
+ has_attr 'aggregation', UML13::AggregationKind, :defaultValueLiteral => "none"
59
+ has_attr 'targetScope', UML13::ScopeKind, :defaultValueLiteral => "instance"
60
+ has_attr 'changeability', UML13::ChangeableKind, :defaultValueLiteral => "changeable"
61
+ end
62
+
63
+ class Interface < Classifier
64
+ end
65
+
66
+ class Constraint < ModelElement
67
+ end
68
+
69
+ class Relationship < ModelElement
70
+ end
71
+
72
+ class Association < RGen::MetamodelBuilder::MMMultiple(GeneralizableElement, Relationship)
73
+ end
74
+
75
+ class Attribute < StructuralFeature
76
+ end
77
+
78
+ class BehavioralFeature < Feature
79
+ has_attr 'isQuery', Boolean
80
+ end
81
+
82
+ class Operation < BehavioralFeature
83
+ has_attr 'concurrency', UML13::CallConcurrencyKind, :defaultValueLiteral => "sequential"
84
+ has_attr 'isRoot', Boolean
85
+ has_attr 'isLeaf', Boolean
86
+ has_attr 'isAbstract', Boolean
87
+ end
88
+
89
+ class Parameter < ModelElement
90
+ has_attr 'kind', UML13::ParameterDirectionKind, :defaultValueLiteral => "inout"
91
+ end
92
+
93
+ class Method < BehavioralFeature
94
+ end
95
+
96
+ class Generalization < Relationship
97
+ has_attr 'discriminator', String
98
+ end
99
+
100
+ class AssociationClass < RGen::MetamodelBuilder::MMMultiple(Class, Association)
101
+ end
102
+
103
+ class Dependency < Relationship
104
+ end
105
+
106
+ class Abstraction < Dependency
107
+ end
108
+
109
+ class PresentationElement < Element
110
+ end
111
+
112
+ class Usage < Dependency
113
+ end
114
+
115
+ class Binding < Dependency
116
+ end
117
+
118
+ class Component < Classifier
119
+ end
120
+
121
+ class Node < Classifier
122
+ end
123
+
124
+ class Permission < Dependency
125
+ end
126
+
127
+ class Comment < ModelElement
128
+ has_attr 'body', String
129
+ end
130
+
131
+ class Flow < Relationship
132
+ end
133
+
134
+ class TemplateParameter < RGen::MetamodelBuilder::MMBase
135
+ end
136
+
137
+ class ElementResidence < RGen::MetamodelBuilder::MMBase
138
+ has_attr 'visibility', UML13::VisibilityKind, :defaultValueLiteral => "public"
139
+ end
140
+
141
+ class Multiplicity < RGen::MetamodelBuilder::MMBase
142
+ end
143
+
144
+ class Expression < RGen::MetamodelBuilder::MMBase
145
+ has_attr 'language', String
146
+ has_attr 'body', String
147
+ end
148
+
149
+ class ObjectSetExpression < Expression
150
+ end
151
+
152
+ class TimeExpression < Expression
153
+ end
154
+
155
+ class BooleanExpression < Expression
156
+ end
157
+
158
+ class ActionExpression < Expression
159
+ end
160
+
161
+ class MultiplicityRange < RGen::MetamodelBuilder::MMBase
162
+ has_attr 'lower', String
163
+ has_attr 'upper', String
164
+ end
165
+
166
+ class Structure < DataType
167
+ end
168
+
169
+ class Primitive < DataType
170
+ end
171
+
172
+ class Enumeration < DataType
173
+ end
174
+
175
+ class EnumerationLiteral < RGen::MetamodelBuilder::MMBase
176
+ has_attr 'name', String
177
+ end
178
+
179
+ class ProgrammingLanguageType < DataType
180
+ end
181
+
182
+ class IterationExpression < Expression
183
+ end
184
+
185
+ class TypeExpression < Expression
186
+ end
187
+
188
+ class ArgListsExpression < Expression
189
+ end
190
+
191
+ class MappingExpression < Expression
192
+ end
193
+
194
+ class ProcedureExpression < Expression
195
+ end
196
+
197
+ class Stereotype < GeneralizableElement
198
+ has_attr 'icon', String
199
+ has_attr 'baseClass', String
200
+ end
201
+
202
+ class TaggedValue < Element
203
+ has_attr 'tag', String
204
+ has_attr 'value', String
205
+ end
206
+
207
+ class UseCase < Classifier
208
+ end
209
+
210
+ class Actor < Classifier
211
+ end
212
+
213
+ class Instance < ModelElement
214
+ end
215
+
216
+ class UseCaseInstance < Instance
217
+ end
218
+
219
+ class Extend < Relationship
220
+ end
221
+
222
+ class Include < Relationship
223
+ end
224
+
225
+ class ExtensionPoint < ModelElement
226
+ has_attr 'location', String
227
+ end
228
+
229
+ class StateMachine < ModelElement
230
+ end
231
+
232
+ class Event < ModelElement
233
+ end
234
+
235
+ class StateVertex < ModelElement
236
+ end
237
+
238
+ class State < StateVertex
239
+ end
240
+
241
+ class TimeEvent < Event
242
+ end
243
+
244
+ class CallEvent < Event
245
+ end
246
+
247
+ class SignalEvent < Event
248
+ end
249
+
250
+ class Transition < ModelElement
251
+ end
252
+
253
+ class CompositeState < State
254
+ has_attr 'isConcurrent', Boolean
255
+ end
256
+
257
+ class ChangeEvent < Event
258
+ end
259
+
260
+ class Guard < ModelElement
261
+ end
262
+
263
+ class Pseudostate < StateVertex
264
+ has_attr 'kind', UML13::PseudostateKind, :defaultValueLiteral => "initial"
265
+ end
266
+
267
+ class SimpleState < State
268
+ end
269
+
270
+ class SubmachineState < CompositeState
271
+ end
272
+
273
+ class SynchState < StateVertex
274
+ has_attr 'bound', Integer
275
+ end
276
+
277
+ class StubState < StateVertex
278
+ has_attr 'referenceState', String
279
+ end
280
+
281
+ class FinalState < State
282
+ end
283
+
284
+ class Collaboration < RGen::MetamodelBuilder::MMMultiple(GeneralizableElement, Namespace)
285
+ end
286
+
287
+ class ClassifierRole < Classifier
288
+ end
289
+
290
+ class AssociationRole < Association
291
+ end
292
+
293
+ class AssociationEndRole < AssociationEnd
294
+ end
295
+
296
+ class Message < ModelElement
297
+ end
298
+
299
+ class Interaction < ModelElement
300
+ end
301
+
302
+ class Signal < Classifier
303
+ end
304
+
305
+ class Action < ModelElement
306
+ has_attr 'isAsynchronous', Boolean
307
+ end
308
+
309
+ class CreateAction < Action
310
+ end
311
+
312
+ class DestroyAction < Action
313
+ end
314
+
315
+ class UninterpretedAction < Action
316
+ end
317
+
318
+ class AttributeLink < ModelElement
319
+ end
320
+
321
+ class Object < Instance
322
+ end
323
+
324
+ class Link < ModelElement
325
+ end
326
+
327
+ class LinkObject < RGen::MetamodelBuilder::MMMultiple(Object, Link)
328
+ end
329
+
330
+ class DataValue < Instance
331
+ end
332
+
333
+ class CallAction < Action
334
+ end
335
+
336
+ class SendAction < Action
337
+ end
338
+
339
+ class ActionSequence < Action
340
+ end
341
+
342
+ class Argument < ModelElement
343
+ end
344
+
345
+ class Reception < BehavioralFeature
346
+ has_attr 'isPolymorphic', Boolean
347
+ has_attr 'specification', String
348
+ end
349
+
350
+ class LinkEnd < ModelElement
351
+ end
352
+
353
+ class Call < RGen::MetamodelBuilder::MMBase
354
+ end
355
+
356
+ class ReturnAction < Action
357
+ end
358
+
359
+ class TerminateAction < Action
360
+ end
361
+
362
+ class Stimulus < ModelElement
363
+ end
364
+
365
+ class ActionInstance < RGen::MetamodelBuilder::MMBase
366
+ end
367
+
368
+ class Exception < Signal
369
+ end
370
+
371
+ class AssignmentAction < Action
372
+ end
373
+
374
+ class ComponentInstance < Instance
375
+ end
376
+
377
+ class NodeInstance < Instance
378
+ end
379
+
380
+ class ActivityGraph < StateMachine
381
+ end
382
+
383
+ class Partition < ModelElement
384
+ end
385
+
386
+ class SubactivityState < SubmachineState
387
+ has_attr 'isDynamic', Boolean
388
+ end
389
+
390
+ class ActionState < SimpleState
391
+ has_attr 'isDynamic', Boolean
392
+ end
393
+
394
+ class CallState < ActionState
395
+ end
396
+
397
+ class ObjectFlowState < SimpleState
398
+ has_attr 'isSynch', Boolean
399
+ end
400
+
401
+ class ClassifierInState < Classifier
402
+ end
403
+
404
+ class Package < RGen::MetamodelBuilder::MMMultiple(GeneralizableElement, Namespace)
405
+ end
406
+
407
+ class Model < Package
408
+ end
409
+
410
+ class Subsystem < RGen::MetamodelBuilder::MMMultiple(Classifier, Package)
411
+ has_attr 'isInstantiable', Boolean
412
+ end
413
+
414
+ class ElementImport < RGen::MetamodelBuilder::MMBase
415
+ has_attr 'visibility', UML13::VisibilityKind, :defaultValueLiteral => "public"
416
+ has_attr 'alias', String
417
+ end
418
+
419
+ class DiagramElement < PresentationElement
420
+ has_attr 'geometry', String
421
+ has_attr 'style', String
422
+ end
423
+
424
+ class Diagram < PresentationElement
425
+ has_attr 'name', String
426
+ has_attr 'toolName', String
427
+ has_attr 'diagramType', String
428
+ has_attr 'style', String
429
+ end
430
+
431
+ end
432
+
433
+ UML13::Classifier.many_to_many 'participant', UML13::AssociationEnd, 'specification'
434
+ UML13::Classifier.one_to_many 'associationEnd', UML13::AssociationEnd, 'type'
435
+ UML13::Classifier.contains_many 'feature', UML13::Feature, 'owner'
436
+ UML13::StructuralFeature.contains_one_uni 'multiplicity', UML13::Multiplicity
437
+ UML13::StructuralFeature.has_one 'type', UML13::Classifier, :lowerBound => 1
438
+ UML13::Namespace.contains_many 'ownedElement', UML13::ModelElement, 'namespace'
439
+ UML13::AssociationEnd.contains_one_uni 'multiplicity', UML13::Multiplicity
440
+ UML13::AssociationEnd.contains_many 'qualifier', UML13::Attribute, 'associationEnd'
441
+ UML13::Association.contains_many 'connection', UML13::AssociationEnd, 'association', :lowerBound => 2
442
+ UML13::Constraint.contains_one_uni 'body', UML13::BooleanExpression
443
+ UML13::Constraint.many_to_many 'constrainedElement', UML13::ModelElement, 'constraint', :lowerBound => 1
444
+ UML13::GeneralizableElement.one_to_many 'specialization', UML13::Generalization, 'parent'
445
+ UML13::GeneralizableElement.one_to_many 'generalization', UML13::Generalization, 'child'
446
+ UML13::Attribute.contains_one_uni 'initialValue', UML13::Expression
447
+ UML13::Operation.one_to_many 'occurrence', UML13::CallEvent, 'operation'
448
+ UML13::Operation.one_to_many 'method', UML13::Method, 'specification'
449
+ UML13::Parameter.contains_one_uni 'defaultValue', UML13::Expression
450
+ UML13::Parameter.many_to_many 'state', UML13::ObjectFlowState, 'parameter'
451
+ UML13::Parameter.has_one 'type', UML13::Classifier, :lowerBound => 1
452
+ UML13::Method.contains_one_uni 'body', UML13::ProcedureExpression
453
+ UML13::BehavioralFeature.many_to_many 'raisedSignal', UML13::Signal, 'context'
454
+ UML13::BehavioralFeature.contains_many_uni 'parameter', UML13::Parameter
455
+ UML13::ModelElement.one_to_many 'behavior', UML13::StateMachine, 'context'
456
+ UML13::ModelElement.many_to_one 'stereotype', UML13::Stereotype, 'extendedElement'
457
+ UML13::ModelElement.one_to_many 'elementResidence', UML13::ElementResidence, 'resident'
458
+ UML13::ModelElement.many_to_many 'sourceFlow', UML13::Flow, 'source'
459
+ UML13::ModelElement.many_to_many 'targetFlow', UML13::Flow, 'target'
460
+ UML13::ModelElement.many_to_many 'presentation', UML13::PresentationElement, 'subject'
461
+ UML13::ModelElement.many_to_many 'supplierDependency', UML13::Dependency, 'supplier', :lowerBound => 1
462
+ UML13::ModelElement.contains_many 'taggedValue', UML13::TaggedValue, 'modelElement'
463
+ UML13::ModelElement.contains_many_uni 'templateParameter', UML13::TemplateParameter
464
+ UML13::ModelElement.many_to_many 'clientDependency', UML13::Dependency, 'client', :lowerBound => 1
465
+ UML13::ModelElement.many_to_many 'comment', UML13::Comment, 'annotatedElement'
466
+ UML13::ModelElement.one_to_many 'elementImport', UML13::ElementImport, 'modelElement'
467
+ UML13::Abstraction.contains_one_uni 'mapping', UML13::MappingExpression
468
+ UML13::Binding.has_many 'argument', UML13::ModelElement, :lowerBound => 1
469
+ UML13::Component.contains_many 'residentElement', UML13::ElementResidence, 'implementationLocation'
470
+ UML13::Component.many_to_many 'deploymentLocation', UML13::Node, 'resident'
471
+ UML13::TemplateParameter.has_one 'modelElement', UML13::ModelElement
472
+ UML13::TemplateParameter.has_one 'defaultElement', UML13::ModelElement
473
+ UML13::Multiplicity.contains_many_uni 'range', UML13::MultiplicityRange, :lowerBound => 1
474
+ UML13::Enumeration.contains_many_uni 'literal', UML13::EnumerationLiteral, :lowerBound => 1
475
+ UML13::ProgrammingLanguageType.contains_one_uni 'type', UML13::TypeExpression
476
+ UML13::Stereotype.has_many 'requiredTag', UML13::TaggedValue
477
+ UML13::UseCase.has_many 'extensionPoint', UML13::ExtensionPoint
478
+ UML13::UseCase.one_to_many 'include', UML13::Include, 'base'
479
+ UML13::UseCase.one_to_many 'extend', UML13::Extend, 'extension'
480
+ UML13::Extend.contains_one_uni 'condition', UML13::BooleanExpression
481
+ UML13::Extend.has_many 'extensionPoint', UML13::ExtensionPoint, :lowerBound => 1
482
+ UML13::Extend.has_one 'base', UML13::UseCase, :lowerBound => 1
483
+ UML13::Include.has_one 'addition', UML13::UseCase, :lowerBound => 1
484
+ UML13::StateMachine.contains_many_uni 'transitions', UML13::Transition
485
+ UML13::StateMachine.contains_one_uni 'top', UML13::State, :lowerBound => 1
486
+ UML13::Event.contains_many_uni 'parameters', UML13::Parameter
487
+ UML13::State.contains_one_uni 'doActivity', UML13::Action
488
+ UML13::State.contains_many_uni 'internalTransition', UML13::Transition
489
+ UML13::State.has_many 'deferrableEvent', UML13::Event
490
+ UML13::State.contains_one_uni 'exit', UML13::Action
491
+ UML13::State.contains_one_uni 'entry', UML13::Action
492
+ UML13::TimeEvent.contains_one_uni 'when', UML13::TimeExpression
493
+ UML13::SignalEvent.many_to_one 'signal', UML13::Signal, 'occurrence', :lowerBound => 1
494
+ UML13::Transition.many_to_one 'target', UML13::StateVertex, 'incoming', :lowerBound => 1
495
+ UML13::Transition.many_to_one 'source', UML13::StateVertex, 'outgoing', :lowerBound => 1
496
+ UML13::Transition.has_one 'trigger', UML13::Event
497
+ UML13::Transition.contains_one_uni 'effect', UML13::Action
498
+ UML13::Transition.contains_one_uni 'guard', UML13::Guard
499
+ UML13::CompositeState.contains_many 'subvertex', UML13::StateVertex, 'container', :lowerBound => 1
500
+ UML13::ChangeEvent.contains_one_uni 'changeExpression', UML13::BooleanExpression
501
+ UML13::Guard.contains_one_uni 'expression', UML13::BooleanExpression
502
+ UML13::SubmachineState.has_one 'submachine', UML13::StateMachine, :lowerBound => 1
503
+ UML13::Collaboration.has_one 'representedOperation', UML13::Operation
504
+ UML13::Collaboration.has_one 'representedClassifier', UML13::Classifier
505
+ UML13::Collaboration.has_many 'constrainingElement', UML13::ModelElement
506
+ UML13::Collaboration.contains_many 'interaction', UML13::Interaction, 'context'
507
+ UML13::ClassifierRole.contains_one_uni 'multiplicity', UML13::Multiplicity
508
+ UML13::ClassifierRole.has_many 'availableContents', UML13::ModelElement
509
+ UML13::ClassifierRole.has_many 'availableFeature', UML13::Feature
510
+ UML13::ClassifierRole.has_one 'base', UML13::Classifier, :lowerBound => 1
511
+ UML13::AssociationRole.contains_one_uni 'multiplicity', UML13::Multiplicity
512
+ UML13::AssociationRole.has_one 'base', UML13::Association
513
+ UML13::AssociationEndRole.has_many 'availableQualifier', UML13::Attribute
514
+ UML13::AssociationEndRole.has_one 'base', UML13::AssociationEnd
515
+ UML13::Message.has_one 'action', UML13::Action, :lowerBound => 1
516
+ UML13::Message.has_one 'communicationConnection', UML13::AssociationRole
517
+ UML13::Message.has_many 'predecessor', UML13::Message
518
+ UML13::Message.has_one 'receiver', UML13::ClassifierRole, :lowerBound => 1
519
+ UML13::Message.has_one 'sender', UML13::ClassifierRole, :lowerBound => 1
520
+ UML13::Message.has_one 'activator', UML13::Message
521
+ UML13::Interaction.contains_many 'message', UML13::Message, 'interaction', :lowerBound => 1
522
+ UML13::Interaction.contains_many_uni 'link', UML13::Link
523
+ UML13::Instance.contains_many_uni 'slot', UML13::AttributeLink
524
+ UML13::Instance.one_to_many 'linkEnd', UML13::LinkEnd, 'instance'
525
+ UML13::Instance.has_many 'classifier', UML13::Classifier, :lowerBound => 1
526
+ UML13::Signal.one_to_many 'reception', UML13::Reception, 'signal'
527
+ UML13::CreateAction.has_one 'instantiation', UML13::Classifier, :lowerBound => 1
528
+ UML13::Action.contains_one_uni 'recurrence', UML13::IterationExpression
529
+ UML13::Action.contains_one_uni 'target', UML13::ObjectSetExpression
530
+ UML13::Action.contains_one_uni 'script', UML13::ActionExpression
531
+ UML13::Action.contains_many_uni 'actualArgument', UML13::Argument
532
+ UML13::AttributeLink.has_one 'value', UML13::Instance, :lowerBound => 1
533
+ UML13::AttributeLink.has_one 'attribute', UML13::Attribute, :lowerBound => 1
534
+ UML13::CallAction.has_one 'operation', UML13::Operation, :lowerBound => 1
535
+ UML13::SendAction.has_one 'signal', UML13::Signal, :lowerBound => 1
536
+ UML13::ActionSequence.contains_many_uni 'action', UML13::Action
537
+ UML13::Argument.contains_one_uni 'value', UML13::Expression
538
+ UML13::Link.contains_many_uni 'connection', UML13::LinkEnd, :lowerBound => 2
539
+ UML13::Link.has_one 'association', UML13::Association, :lowerBound => 1
540
+ UML13::LinkEnd.has_one 'associationEnd', UML13::AssociationEnd, :lowerBound => 1
541
+ UML13::LinkEnd.has_one 'participant', UML13::Instance, :lowerBound => 1
542
+ UML13::Stimulus.has_one 'dispatchAction', UML13::Action, :lowerBound => 1
543
+ UML13::Stimulus.has_one 'communicationLink', UML13::Link
544
+ UML13::Stimulus.has_one 'receiver', UML13::Instance, :lowerBound => 1
545
+ UML13::Stimulus.has_one 'sender', UML13::Instance, :lowerBound => 1
546
+ UML13::Stimulus.has_many 'argument', UML13::Instance
547
+ UML13::ComponentInstance.has_many 'resident', UML13::Instance
548
+ UML13::NodeInstance.has_many 'resident', UML13::ComponentInstance
549
+ UML13::ActivityGraph.contains_many_uni 'partition', UML13::Partition
550
+ UML13::Partition.has_many 'contents', UML13::ModelElement
551
+ UML13::SubactivityState.contains_one_uni 'dynamicArguments', UML13::ArgListsExpression
552
+ UML13::ObjectFlowState.has_one 'type', UML13::Classifier, :lowerBound => 1
553
+ UML13::ObjectFlowState.has_one 'available', UML13::Parameter, :lowerBound => 1
554
+ UML13::ClassifierInState.has_one 'type', UML13::Classifier, :lowerBound => 1
555
+ UML13::ClassifierInState.has_many 'inState', UML13::State
556
+ UML13::ActionState.contains_one_uni 'dynamicArguments', UML13::ArgListsExpression
557
+ UML13::Package.contains_many 'importedElement', UML13::ElementImport, 'package'
558
+ UML13::Diagram.contains_many 'element', UML13::DiagramElement, 'diagram'
559
+ UML13::Diagram.has_one 'owner', UML13::ModelElement, :lowerBound => 1