puppet 3.6.2 → 3.7.0

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 +296 -68
  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,71 @@
1
+ =ElementSet vs. Array
2
+
3
+ Subject:
4
+ Use a special array-like class "ElementSet" with the following properties:
5
+ * can call methods of elements by . notation
6
+ * can use all set and enumerable methods of Array
7
+ * enforce constraints regarding type of elements
8
+ * auto register/unregister with counterpart of an association
9
+
10
+ Dependencies:
11
+ * Without the constraint and register/unregister functionality of the ElementSet,
12
+ the API of model elements built by MetamodelBuilder has to be different:
13
+ instead of "e.myelements << newel" would be "e.addMyelements(newel)"
14
+ However this can also be an advantage (see Metamodel Many Assoc API)
15
+
16
+ A1. ElementSet:
17
+ + nice notation for calling methods of elements (.)
18
+ + nice notation for adding/removing elements from a model element
19
+ (e.myelements << newel; e.myelements.delete newel)
20
+ - complicated to realize
21
+ if ElementSet inherits from Array:
22
+ constraints/registration can not be garanteed for all add/remove operations
23
+ input and output of Array methods must be wrapped into ElementSet objects
24
+ if ElementSet delegates to an Array:
25
+ all (relevant) methods have to be delegated (methods from including
26
+ Enumerable do not automatically return ElementSet objects)
27
+ - dot notation for calling methods of elements my lead to errors which are difficult
28
+ to find
29
+
30
+ A2. Array:
31
+ + a separate operator like >> makes calling methods of elements more explicit
32
+ + very easy to implement
33
+ + easy to understand by users (no "magic" going on)
34
+
35
+ Decision: (2006-06-08)
36
+ A2. Array
37
+ Simplicity of implementation and ease of use are more important than a nice notation
38
+
39
+
40
+
41
+ = Metamodel Many Assoc API
42
+
43
+ Subject:
44
+ How to implement the API to deal with to-many associations of model elements.
45
+ One option is an array like object which is held by the model element for each to-many
46
+ association and which is given to the user for modification (external array).
47
+ The other option is an internal array which is only accessed via add and remove
48
+ methods
49
+
50
+ Dependencies:
51
+ If an external array is used, this array must check the association's constraints
52
+ and register/unregister with the other side of the association.
53
+ (see ElementSet vs. Array)
54
+
55
+ A1.External Array
56
+ + nice API (e.myassocs << newel; e. myassocs.delete newel)
57
+ + this is a Rails like API
58
+ - a reference to the array might be stored somewhere else in the program and
59
+ accidentially be modified, this would modify the model element it belongs to
60
+ as well as register/unregister with other model elements leading to errors
61
+ which are hard to find
62
+ - an external array is complicated to implement (see ElementSet vs. Array)
63
+
64
+ A2.Internal Array
65
+ + easy to understand for non Ruby/Rails aware users
66
+ + simple implementation
67
+
68
+ Decision: (2006-06-09)
69
+ A2. Internal Array
70
+ Simplicity of implementation and ease of use are more important than a nice notation
71
+
@@ -0,0 +1,54 @@
1
+ require 'ea_support/uml13_ea_metamodel'
2
+ require 'ea_support/uml13_ea_metamodel_ext'
3
+ require 'ea_support/uml13_to_uml13_ea'
4
+ require 'ea_support/uml13_ea_to_uml13'
5
+ require 'ea_support/id_store'
6
+ require 'rgen/serializer/xmi11_serializer'
7
+ require 'rgen/instantiator/xmi11_instantiator'
8
+ require 'rgen/environment'
9
+
10
+ module EASupport
11
+
12
+ FIXMAP = {
13
+ :tags => {
14
+ "EAStub" => proc { |tag, attr|
15
+ UML13EA::Class.new(:name => attr["name"]) if attr["UMLType"] == "Class"
16
+ }
17
+ }
18
+ }
19
+
20
+ INFO = XMI11Instantiator::INFO
21
+ WARN = XMI11Instantiator::WARN
22
+ ERROR = XMI11Instantiator::ERROR
23
+
24
+ def self.instantiateUML13FromXMI11(envUML, fileName, options={})
25
+ envUMLEA = RGen::Environment.new
26
+ xmiInst = XMI11Instantiator.new(envUMLEA, FIXMAP, options[:loglevel] || ERROR)
27
+ xmiInst.add_metamodel("omg.org/UML1.3", UML13EA)
28
+ File.open(fileName) do |f|
29
+ xmiInst.instantiate(f.read)
30
+ end
31
+ trans = UML13EAToUML13.new(envUMLEA, envUML)
32
+ trans.transform
33
+ trans.cleanModel if options[:clean_model]
34
+ end
35
+
36
+ def self.serializeUML13ToXMI11(envUML, fileName, options={})
37
+ envUMLEA = RGen::Environment.new
38
+
39
+ UML13EA.idStore = options[:keep_ids] ?
40
+ IdStore.new(File.dirname(fileName)+"/"+File.basename(fileName)+".ids") : IdStore.new
41
+
42
+ UML13ToUML13EA.new(envUML, envUMLEA).transform
43
+
44
+ File.open(fileName, "w") do |f|
45
+ xmiSer = RGen::Serializer::XMI11Serializer.new(f)
46
+ xmiSer.setNamespace("UML","omg.org/UML1.3")
47
+ xmiSer.serialize(envUMLEA.find(:class => UML13EA::Model).first,
48
+ {:documentation => {:exporter => "Enterprise Architect", :exporterVersion => "2.5"}})
49
+ end
50
+
51
+ UML13EA.idStore.store
52
+ end
53
+
54
+ end
@@ -0,0 +1,32 @@
1
+ require 'yaml'
2
+
3
+ class IdStore
4
+ def initialize(fileName=nil)
5
+ if fileName
6
+ raise "Base directory does not exist: #{File.dirname(fileName)}" \
7
+ unless File.exist?(File.dirname(fileName))
8
+ @idsFileName = fileName
9
+ end
10
+ @idHash = nil
11
+ end
12
+
13
+ def idHash
14
+ load unless @idHash
15
+ @idHash
16
+ end
17
+
18
+ def load
19
+ if @idsFileName && File.exist?(@idsFileName)
20
+ @idHash = YAML.load_file(@idsFileName) || {}
21
+ else
22
+ @idHash = {}
23
+ end
24
+ end
25
+
26
+ def store
27
+ return unless @idsFileName
28
+ File.open(@idsFileName,"w") do |f|
29
+ YAML.dump(@idHash, f)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,562 @@
1
+ require 'rgen/metamodel_builder'
2
+
3
+ module UML13EA
4
+ extend RGen::MetamodelBuilder::ModuleExtension
5
+ include RGen::MetamodelBuilder::DataTypes
6
+
7
+ OperationDirectionKind = Enum.new(:name => 'OperationDirectionKind', :literals =>[ ])
8
+ MessageDirectionKind = Enum.new(:name => 'MessageDirectionKind', :literals =>[ ])
9
+ ChangeableKind = Enum.new(:name => 'ChangeableKind', :literals =>[ :changeable, :none, :addOnly ])
10
+ PseudostateKind = Enum.new(:name => 'PseudostateKind', :literals =>[ :initial, :deepHistory, :shallowHistory, :join, :fork, :branch, :junction, :final ])
11
+ ParameterDirectionKind = Enum.new(:name => 'ParameterDirectionKind', :literals =>[ :in, :inout, :out, :return ])
12
+ ScopeKind = Enum.new(:name => 'ScopeKind', :literals =>[ :instance, :classifier ])
13
+ OrderingKind = Enum.new(:name => 'OrderingKind', :literals =>[ :unordered, :ordered, :sorted ])
14
+ CallConcurrencyKind = Enum.new(:name => 'CallConcurrencyKind', :literals =>[ :sequential, :guarded, :concurrent ])
15
+ AggregationKind = Enum.new(:name => 'AggregationKind', :literals =>[ :none, :aggregate, :composite, :shared ])
16
+ VisibilityKind = Enum.new(:name => 'VisibilityKind', :literals =>[ :public, :protected, :private ])
17
+ end
18
+
19
+ class UML13EA::Expression < RGen::MetamodelBuilder::MMBase
20
+ has_attr 'language', String
21
+ has_attr 'body', String
22
+ end
23
+
24
+ class UML13EA::ActionExpression < UML13EA::Expression
25
+ end
26
+
27
+ class UML13EA::Element < RGen::MetamodelBuilder::MMBase
28
+ end
29
+
30
+ class UML13EA::ModelElement < UML13EA::Element
31
+ has_attr 'name', String
32
+ has_attr 'visibility', UML13EA::VisibilityKind, :defaultValueLiteral => "public"
33
+ has_attr 'isSpecification', Boolean
34
+ end
35
+
36
+ class UML13EA::Namespace < UML13EA::ModelElement
37
+ end
38
+
39
+ class UML13EA::GeneralizableElement < UML13EA::ModelElement
40
+ has_attr 'isRoot', Boolean
41
+ has_attr 'isLeaf', Boolean
42
+ has_attr 'isAbstract', Boolean
43
+ end
44
+
45
+ class UML13EA::Classifier < RGen::MetamodelBuilder::MMMultiple(UML13EA::GeneralizableElement, UML13EA::Namespace)
46
+ end
47
+
48
+ class UML13EA::ClassifierRole < UML13EA::Classifier
49
+ end
50
+
51
+ class UML13EA::PresentationElement < UML13EA::Element
52
+ end
53
+
54
+ class UML13EA::DiagramElement < UML13EA::PresentationElement
55
+ has_attr 'geometry', String
56
+ has_attr 'style', String
57
+ end
58
+
59
+ class UML13EA::Feature < UML13EA::ModelElement
60
+ has_attr 'ownerScope', UML13EA::ScopeKind, :defaultValueLiteral => "instance"
61
+ end
62
+
63
+ class UML13EA::BehavioralFeature < UML13EA::Feature
64
+ has_attr 'isQuery', Boolean
65
+ end
66
+
67
+ class UML13EA::Method < UML13EA::BehavioralFeature
68
+ end
69
+
70
+ class UML13EA::Actor < UML13EA::Classifier
71
+ end
72
+
73
+ class UML13EA::DataType < UML13EA::Classifier
74
+ end
75
+
76
+ class UML13EA::Primitive < UML13EA::DataType
77
+ end
78
+
79
+ class UML13EA::Action < UML13EA::ModelElement
80
+ has_attr 'isAsynchronous', Boolean
81
+ end
82
+
83
+ class UML13EA::SendAction < UML13EA::Action
84
+ end
85
+
86
+ class UML13EA::Interface < UML13EA::Classifier
87
+ end
88
+
89
+ class UML13EA::Event < UML13EA::ModelElement
90
+ end
91
+
92
+ class UML13EA::ChangeEvent < UML13EA::Event
93
+ end
94
+
95
+ class UML13EA::Partition < UML13EA::ModelElement
96
+ end
97
+
98
+ class UML13EA::Comment < UML13EA::ModelElement
99
+ has_attr 'body', String
100
+ end
101
+
102
+ class UML13EA::ProgrammingLanguageType < UML13EA::DataType
103
+ end
104
+
105
+ class UML13EA::StateMachine < UML13EA::ModelElement
106
+ end
107
+
108
+ class UML13EA::Call < RGen::MetamodelBuilder::MMBase
109
+ end
110
+
111
+ class UML13EA::Operation < UML13EA::BehavioralFeature
112
+ has_attr 'concurrency', UML13EA::CallConcurrencyKind, :defaultValueLiteral => "sequential"
113
+ has_attr 'isRoot', Boolean
114
+ has_attr 'isLeaf', Boolean
115
+ has_attr 'isAbstract', Boolean
116
+ end
117
+
118
+ class UML13EA::XmiIdProvider < RGen::MetamodelBuilder::MMBase
119
+ end
120
+
121
+ class UML13EA::StateVertex < RGen::MetamodelBuilder::MMMultiple(UML13EA::ModelElement, UML13EA::XmiIdProvider)
122
+ end
123
+
124
+ class UML13EA::SynchState < UML13EA::StateVertex
125
+ has_attr 'bound', Integer
126
+ end
127
+
128
+ class UML13EA::ClassifierInState < UML13EA::Classifier
129
+ end
130
+
131
+ class UML13EA::Link < UML13EA::ModelElement
132
+ end
133
+
134
+ class UML13EA::ProcedureExpression < UML13EA::Expression
135
+ end
136
+
137
+ class UML13EA::CallEvent < UML13EA::Event
138
+ end
139
+
140
+ class UML13EA::AssignmentAction < UML13EA::Action
141
+ end
142
+
143
+ class UML13EA::Relationship < UML13EA::ModelElement
144
+ end
145
+
146
+ class UML13EA::Association < RGen::MetamodelBuilder::MMMultiple(UML13EA::GeneralizableElement, UML13EA::Relationship, UML13EA::XmiIdProvider)
147
+ end
148
+
149
+ class UML13EA::AssociationRole < UML13EA::Association
150
+ end
151
+
152
+ class UML13EA::Diagram < UML13EA::PresentationElement
153
+ has_attr 'name', String
154
+ has_attr 'toolName', String
155
+ has_attr 'diagramType', String
156
+ has_attr 'style', String
157
+ end
158
+
159
+ class UML13EA::MultiplicityRange < RGen::MetamodelBuilder::MMBase
160
+ has_attr 'lower', String
161
+ has_attr 'upper', String
162
+ end
163
+
164
+ class UML13EA::ActionSequence < UML13EA::Action
165
+ end
166
+
167
+ class UML13EA::Constraint < UML13EA::ModelElement
168
+ end
169
+
170
+ class UML13EA::Instance < UML13EA::ModelElement
171
+ end
172
+
173
+ class UML13EA::UseCaseInstance < UML13EA::Instance
174
+ end
175
+
176
+ class UML13EA::State < UML13EA::StateVertex
177
+ end
178
+
179
+ class UML13EA::CompositeState < UML13EA::State
180
+ has_attr 'isConcurrent', Boolean
181
+ end
182
+
183
+ class UML13EA::SubmachineState < UML13EA::CompositeState
184
+ end
185
+
186
+ class UML13EA::SubactivityState < UML13EA::SubmachineState
187
+ has_attr 'isDynamic', Boolean
188
+ end
189
+
190
+ class UML13EA::StructuralFeature < UML13EA::Feature
191
+ has_attr 'changeable', UML13EA::ChangeableKind, :defaultValueLiteral => "changeable"
192
+ has_attr 'targetScope', UML13EA::ScopeKind, :defaultValueLiteral => "instance"
193
+ end
194
+
195
+ class UML13EA::Attribute < UML13EA::StructuralFeature
196
+ end
197
+
198
+ class UML13EA::Flow < UML13EA::Relationship
199
+ end
200
+
201
+ class UML13EA::Class < RGen::MetamodelBuilder::MMMultiple(UML13EA::Classifier, UML13EA::XmiIdProvider)
202
+ has_attr 'isActive', Boolean
203
+ end
204
+
205
+ class UML13EA::Guard < UML13EA::ModelElement
206
+ end
207
+
208
+ class UML13EA::CreateAction < UML13EA::Action
209
+ end
210
+
211
+ class UML13EA::IterationExpression < UML13EA::Expression
212
+ end
213
+
214
+ class UML13EA::ReturnAction < UML13EA::Action
215
+ end
216
+
217
+ class UML13EA::Parameter < UML13EA::ModelElement
218
+ has_attr 'kind', UML13EA::ParameterDirectionKind, :defaultValueLiteral => "inout"
219
+ end
220
+
221
+ class UML13EA::Dependency < UML13EA::Relationship
222
+ end
223
+
224
+ class UML13EA::Binding < UML13EA::Dependency
225
+ end
226
+
227
+ class UML13EA::Package < RGen::MetamodelBuilder::MMMultiple(UML13EA::Namespace, UML13EA::GeneralizableElement, UML13EA::XmiIdProvider)
228
+ end
229
+
230
+ class UML13EA::ObjectSetExpression < UML13EA::Expression
231
+ end
232
+
233
+ class UML13EA::StubState < UML13EA::StateVertex
234
+ has_attr 'referenceState', String
235
+ end
236
+
237
+ class UML13EA::Stereotype < UML13EA::GeneralizableElement
238
+ has_attr 'icon', String
239
+ has_attr 'baseClass', String
240
+ end
241
+
242
+ class UML13EA::Object < UML13EA::Instance
243
+ end
244
+
245
+ class UML13EA::LinkObject < RGen::MetamodelBuilder::MMMultiple(UML13EA::Link, UML13EA::Object)
246
+ end
247
+
248
+ class UML13EA::ComponentInstance < UML13EA::Instance
249
+ end
250
+
251
+ class UML13EA::Usage < UML13EA::Dependency
252
+ end
253
+
254
+ class UML13EA::SignalEvent < UML13EA::Event
255
+ end
256
+
257
+ class UML13EA::Structure < UML13EA::DataType
258
+ end
259
+
260
+ class UML13EA::AssociationEnd < RGen::MetamodelBuilder::MMMultiple(UML13EA::ModelElement, UML13EA::XmiIdProvider)
261
+ has_attr 'isNavigable', Boolean, :defaultValueLiteral => "false"
262
+ has_attr 'isOrdered', Boolean, :defaultValueLiteral => "false"
263
+ has_attr 'aggregation', UML13EA::AggregationKind, :defaultValueLiteral => "none"
264
+ has_attr 'targetScope', UML13EA::ScopeKind, :defaultValueLiteral => "instance"
265
+ has_attr 'changeable', UML13EA::ChangeableKind, :defaultValueLiteral => "changeable"
266
+ has_attr 'multiplicity', String
267
+ end
268
+
269
+ class UML13EA::AssociationEndRole < UML13EA::AssociationEnd
270
+ end
271
+
272
+ class UML13EA::Signal < UML13EA::Classifier
273
+ end
274
+
275
+ class UML13EA::Exception < UML13EA::Signal
276
+ end
277
+
278
+ class UML13EA::Extend < UML13EA::Relationship
279
+ end
280
+
281
+ class UML13EA::Argument < UML13EA::ModelElement
282
+ end
283
+
284
+ class UML13EA::TemplateParameter < RGen::MetamodelBuilder::MMBase
285
+ end
286
+
287
+ class UML13EA::PseudoState < UML13EA::StateVertex
288
+ has_attr 'kind', UML13EA::PseudostateKind, :defaultValueLiteral => "initial"
289
+ end
290
+
291
+ class UML13EA::SimpleState < UML13EA::State
292
+ end
293
+
294
+ class UML13EA::ActionState < UML13EA::SimpleState
295
+ has_attr 'isDynamic', Boolean
296
+ end
297
+
298
+ class UML13EA::TypeExpression < UML13EA::Expression
299
+ end
300
+
301
+ class UML13EA::DestroyAction < UML13EA::Action
302
+ end
303
+
304
+ class UML13EA::TerminateAction < UML13EA::Action
305
+ end
306
+
307
+ class UML13EA::Generalization < RGen::MetamodelBuilder::MMMultiple(UML13EA::Relationship, UML13EA::XmiIdProvider)
308
+ has_attr 'discriminator', String
309
+ end
310
+
311
+ class UML13EA::FinalState < UML13EA::State
312
+ end
313
+
314
+ class UML13EA::Subsystem < RGen::MetamodelBuilder::MMMultiple(UML13EA::Package, UML13EA::Classifier)
315
+ has_attr 'isInstantiable', Boolean
316
+ end
317
+
318
+ class UML13EA::TimeExpression < UML13EA::Expression
319
+ end
320
+
321
+ class UML13EA::TaggedValue < UML13EA::Element
322
+ has_attr 'tag', String
323
+ has_attr 'value', String
324
+ end
325
+
326
+ class UML13EA::DataValue < UML13EA::Instance
327
+ end
328
+
329
+ class UML13EA::Transition < UML13EA::ModelElement
330
+ end
331
+
332
+ class UML13EA::NodeInstance < UML13EA::Instance
333
+ end
334
+
335
+ class UML13EA::Component < UML13EA::Classifier
336
+ end
337
+
338
+ class UML13EA::Message < UML13EA::ModelElement
339
+ end
340
+
341
+ class UML13EA::Enumeration < UML13EA::DataType
342
+ end
343
+
344
+ class UML13EA::Reception < UML13EA::BehavioralFeature
345
+ has_attr 'isPolymorphic', Boolean
346
+ has_attr 'specification', String
347
+ end
348
+
349
+ class UML13EA::Include < UML13EA::Relationship
350
+ end
351
+
352
+ class UML13EA::CallState < UML13EA::ActionState
353
+ end
354
+
355
+ class UML13EA::ElementResidence < RGen::MetamodelBuilder::MMBase
356
+ has_attr 'visibility', UML13EA::VisibilityKind, :defaultValueLiteral => "public"
357
+ end
358
+
359
+ class UML13EA::UninterpretedAction < UML13EA::Action
360
+ end
361
+
362
+ class UML13EA::ArgListsExpression < UML13EA::Expression
363
+ end
364
+
365
+ class UML13EA::Stimulus < UML13EA::ModelElement
366
+ end
367
+
368
+ class UML13EA::AssociationClass < RGen::MetamodelBuilder::MMMultiple(UML13EA::Class, UML13EA::Association)
369
+ end
370
+
371
+ class UML13EA::Node < UML13EA::Classifier
372
+ end
373
+
374
+ class UML13EA::ElementImport < RGen::MetamodelBuilder::MMBase
375
+ has_attr 'visibility', UML13EA::VisibilityKind, :defaultValueLiteral => "public"
376
+ has_attr 'alias', String
377
+ end
378
+
379
+ class UML13EA::BooleanExpression < UML13EA::Expression
380
+ end
381
+
382
+ class UML13EA::Collaboration < RGen::MetamodelBuilder::MMMultiple(UML13EA::GeneralizableElement, UML13EA::Namespace)
383
+ end
384
+
385
+ class UML13EA::CallAction < UML13EA::Action
386
+ end
387
+
388
+ class UML13EA::UseCase < UML13EA::Classifier
389
+ end
390
+
391
+ class UML13EA::ActivityModel < UML13EA::StateMachine
392
+ end
393
+
394
+ class UML13EA::Permission < UML13EA::Dependency
395
+ end
396
+
397
+ class UML13EA::Interaction < UML13EA::ModelElement
398
+ end
399
+
400
+ class UML13EA::EnumerationLiteral < RGen::MetamodelBuilder::MMBase
401
+ has_attr 'name', String
402
+ end
403
+
404
+ class UML13EA::Model < UML13EA::Package
405
+ end
406
+
407
+ class UML13EA::LinkEnd < UML13EA::ModelElement
408
+ end
409
+
410
+ class UML13EA::ExtensionPoint < UML13EA::ModelElement
411
+ has_attr 'location', String
412
+ end
413
+
414
+ class UML13EA::Multiplicity < RGen::MetamodelBuilder::MMBase
415
+ end
416
+
417
+ class UML13EA::ObjectFlowState < UML13EA::SimpleState
418
+ has_attr 'isSynch', Boolean
419
+ end
420
+
421
+ class UML13EA::AttributeLink < UML13EA::ModelElement
422
+ end
423
+
424
+ class UML13EA::MappingExpression < UML13EA::Expression
425
+ end
426
+
427
+ class UML13EA::TimeEvent < UML13EA::Event
428
+ end
429
+
430
+ class UML13EA::Abstraction < UML13EA::Dependency
431
+ end
432
+
433
+ class UML13EA::ActionInstance < RGen::MetamodelBuilder::MMBase
434
+ end
435
+
436
+
437
+ UML13EA::ClassifierRole.contains_one_uni 'multiplicity', UML13EA::Multiplicity
438
+ UML13EA::ClassifierRole.has_many 'availableContents', UML13EA::ModelElement
439
+ UML13EA::ClassifierRole.has_many 'availableFeature', UML13EA::Feature
440
+ UML13EA::ClassifierRole.has_one 'base', UML13EA::Classifier, :lowerBound => 1
441
+ UML13EA::Diagram.contains_many 'element', UML13EA::DiagramElement, 'diagram'
442
+ UML13EA::Method.many_to_one 'specification', UML13EA::Operation, 'method'
443
+ UML13EA::Method.contains_one_uni 'body', UML13EA::ProcedureExpression
444
+ UML13EA::SendAction.has_one 'signal', UML13EA::Signal, :lowerBound => 1
445
+ UML13EA::ChangeEvent.contains_one_uni 'changeExpression', UML13EA::BooleanExpression
446
+ UML13EA::Partition.has_many 'contents', UML13EA::ModelElement
447
+ UML13EA::Comment.many_to_many 'annotatedElement', UML13EA::ModelElement, 'comment'
448
+ UML13EA::ProgrammingLanguageType.contains_one_uni 'type', UML13EA::TypeExpression
449
+ UML13EA::Action.contains_one_uni 'recurrence', UML13EA::IterationExpression
450
+ UML13EA::Action.contains_one_uni 'target', UML13EA::ObjectSetExpression
451
+ UML13EA::Action.contains_one_uni 'script', UML13EA::ActionExpression
452
+ UML13EA::Action.contains_many_uni 'actualArgument', UML13EA::Argument
453
+ UML13EA::StateMachine.many_to_one 'context', UML13EA::ModelElement, 'behavior'
454
+ UML13EA::StateMachine.contains_many_uni 'transitions', UML13EA::Transition
455
+ UML13EA::StateMachine.contains_one_uni 'top', UML13EA::State, :lowerBound => 1
456
+ UML13EA::Operation.one_to_many 'occurrence', UML13EA::CallEvent, 'operation'
457
+ UML13EA::ClassifierInState.has_one 'type', UML13EA::Classifier, :lowerBound => 1
458
+ UML13EA::ClassifierInState.has_many 'inState', UML13EA::State
459
+ UML13EA::Link.contains_many_uni 'connection', UML13EA::LinkEnd, :lowerBound => 2
460
+ UML13EA::Link.has_one 'association', UML13EA::Association, :lowerBound => 1
461
+ UML13EA::PresentationElement.many_to_many 'subject', UML13EA::ModelElement, 'presentation'
462
+ UML13EA::AssociationRole.contains_one_uni 'multiplicity', UML13EA::Multiplicity
463
+ UML13EA::AssociationRole.has_one 'base', UML13EA::Association
464
+ UML13EA::Diagram.has_one 'owner', UML13EA::ModelElement, :lowerBound => 1
465
+ UML13EA::ActionSequence.contains_many_uni 'action', UML13EA::Action
466
+ UML13EA::Constraint.contains_one_uni 'body', UML13EA::BooleanExpression
467
+ UML13EA::Constraint.many_to_many 'constrainedElement', UML13EA::ModelElement, 'constraint', :lowerBound => 1
468
+ UML13EA::SubactivityState.contains_one_uni 'dynamicArguments', UML13EA::ArgListsExpression
469
+ UML13EA::AssociationEnd.contains_many 'qualifier', UML13EA::Attribute, 'associationEnd'
470
+ UML13EA::Attribute.contains_one_uni 'initialValue', UML13EA::Expression
471
+ UML13EA::Flow.many_to_many 'source', UML13EA::ModelElement, 'sourceFlow'
472
+ UML13EA::Flow.many_to_many 'target', UML13EA::ModelElement, 'targetFlow'
473
+ UML13EA::Guard.contains_one_uni 'expression', UML13EA::BooleanExpression
474
+ UML13EA::CreateAction.has_one 'instantiation', UML13EA::Classifier, :lowerBound => 1
475
+ UML13EA::Namespace.contains_many 'ownedElement', UML13EA::ModelElement, 'namespace'
476
+ UML13EA::Parameter.contains_one_uni 'defaultValue', UML13EA::Expression
477
+ UML13EA::Parameter.many_to_many 'state', UML13EA::ObjectFlowState, 'parameter'
478
+ UML13EA::Parameter.has_one 'type', UML13EA::Classifier, :lowerBound => 1
479
+ UML13EA::Binding.has_many 'argument', UML13EA::ModelElement, :lowerBound => 1
480
+ UML13EA::Event.contains_many_uni 'parameters', UML13EA::Parameter
481
+ UML13EA::Dependency.many_to_many 'supplier', UML13EA::ModelElement, 'supplierDependency', :opposite_lowerBound => 1
482
+ UML13EA::Dependency.many_to_many 'client', UML13EA::ModelElement, 'clientDependency', :opposite_lowerBound => 1
483
+ UML13EA::Package.contains_many 'importedElement', UML13EA::ElementImport, 'package'
484
+ UML13EA::Classifier.contains_many 'feature', UML13EA::Feature, 'owner'
485
+ UML13EA::Stereotype.one_to_many 'extendedElement', UML13EA::ModelElement, 'stereotype'
486
+ UML13EA::Stereotype.has_many 'requiredTag', UML13EA::TaggedValue
487
+ UML13EA::ComponentInstance.has_many 'resident', UML13EA::Instance
488
+ UML13EA::SignalEvent.many_to_one 'signal', UML13EA::Signal, 'occurrence', :lowerBound => 1
489
+ UML13EA::Instance.contains_many_uni 'slot', UML13EA::AttributeLink
490
+ UML13EA::Instance.one_to_many 'linkEnd', UML13EA::LinkEnd, 'instance'
491
+ UML13EA::Instance.has_many 'classifier', UML13EA::Classifier, :lowerBound => 1
492
+ UML13EA::AssociationEndRole.has_many 'availableQualifier', UML13EA::Attribute
493
+ UML13EA::AssociationEndRole.has_one 'base', UML13EA::AssociationEnd
494
+ UML13EA::Extend.many_to_one 'extension', UML13EA::UseCase, 'extend'
495
+ UML13EA::Extend.contains_one_uni 'condition', UML13EA::BooleanExpression
496
+ UML13EA::Extend.has_many 'extensionPoint', UML13EA::ExtensionPoint, :lowerBound => 1
497
+ UML13EA::Extend.has_one 'base', UML13EA::UseCase, :lowerBound => 1
498
+ UML13EA::Argument.contains_one_uni 'value', UML13EA::Expression
499
+ UML13EA::TemplateParameter.has_one 'modelElement', UML13EA::ModelElement
500
+ UML13EA::TemplateParameter.has_one 'defaultElement', UML13EA::ModelElement
501
+ UML13EA::ActionState.contains_one_uni 'dynamicArguments', UML13EA::ArgListsExpression
502
+ UML13EA::GeneralizableElement.one_to_many 'specialization', UML13EA::Generalization, 'supertype'
503
+ UML13EA::GeneralizableElement.one_to_many 'generalization', UML13EA::Generalization, 'subtype'
504
+ UML13EA::StateVertex.one_to_many 'incoming', UML13EA::Transition, 'target', :opposite_lowerBound => 1
505
+ UML13EA::StateVertex.one_to_many 'outgoing', UML13EA::Transition, 'source', :opposite_lowerBound => 1
506
+ UML13EA::CompositeState.contains_many 'substate', UML13EA::StateVertex, 'container', :lowerBound => 1
507
+ UML13EA::ModelElement.contains_many 'taggedValue', UML13EA::TaggedValue, 'modelElement'
508
+ UML13EA::StructuralFeature.contains_one_uni 'multiplicity', UML13EA::Multiplicity
509
+ UML13EA::StructuralFeature.has_one 'type', UML13EA::Classifier, :lowerBound => 1
510
+ UML13EA::Transition.has_one 'trigger', UML13EA::Event
511
+ UML13EA::Transition.contains_one_uni 'effect', UML13EA::Action
512
+ UML13EA::Transition.contains_one_uni 'guard', UML13EA::Guard
513
+ UML13EA::NodeInstance.has_many 'resident', UML13EA::ComponentInstance
514
+ UML13EA::Component.contains_many 'residentElement', UML13EA::ElementResidence, 'implementationLocation'
515
+ UML13EA::Component.many_to_many 'deploymentLocation', UML13EA::Node, 'resident'
516
+ UML13EA::Message.has_one 'action', UML13EA::Action, :lowerBound => 1
517
+ UML13EA::Message.has_one 'communicationConnection', UML13EA::AssociationRole
518
+ UML13EA::Message.has_many 'predecessor', UML13EA::Message
519
+ UML13EA::Message.has_one 'receiver', UML13EA::ClassifierRole, :lowerBound => 1
520
+ UML13EA::Message.has_one 'sender', UML13EA::ClassifierRole, :lowerBound => 1
521
+ UML13EA::Message.has_one 'activator', UML13EA::Message
522
+ UML13EA::Interaction.contains_many 'message', UML13EA::Message, 'interaction', :lowerBound => 1
523
+ UML13EA::ModelElement.one_to_many 'elementResidence', UML13EA::ElementResidence, 'resident'
524
+ UML13EA::ModelElement.contains_many_uni 'templateParameter', UML13EA::TemplateParameter
525
+ UML13EA::ModelElement.one_to_many 'elementImport', UML13EA::ElementImport, 'modelElement'
526
+ UML13EA::Enumeration.contains_many_uni 'literal', UML13EA::EnumerationLiteral, :lowerBound => 1
527
+ UML13EA::Reception.many_to_one 'signal', UML13EA::Signal, 'reception'
528
+ UML13EA::Association.contains_many 'connection', UML13EA::AssociationEnd, 'association', :lowerBound => 2
529
+ UML13EA::Include.many_to_one 'base', UML13EA::UseCase, 'include'
530
+ UML13EA::Include.has_one 'addition', UML13EA::UseCase, :lowerBound => 1
531
+ UML13EA::Classifier.many_to_many 'participant', UML13EA::AssociationEnd, 'specification'
532
+ UML13EA::Classifier.one_to_many 'associationEnd', UML13EA::AssociationEnd, 'type'
533
+ UML13EA::Stimulus.has_one 'dispatchAction', UML13EA::Action, :lowerBound => 1
534
+ UML13EA::Stimulus.has_one 'communicationLink', UML13EA::Link
535
+ UML13EA::Stimulus.has_one 'receiver', UML13EA::Instance, :lowerBound => 1
536
+ UML13EA::Stimulus.has_one 'sender', UML13EA::Instance, :lowerBound => 1
537
+ UML13EA::Stimulus.has_many 'argument', UML13EA::Instance
538
+ UML13EA::State.contains_one_uni 'doActivity', UML13EA::Action
539
+ UML13EA::State.contains_many_uni 'internalTransition', UML13EA::Transition
540
+ UML13EA::State.has_many 'deferrableEvent', UML13EA::Event
541
+ UML13EA::State.contains_one_uni 'exit', UML13EA::Action
542
+ UML13EA::State.contains_one_uni 'entry', UML13EA::Action
543
+ UML13EA::Collaboration.has_one 'representedOperation', UML13EA::Operation
544
+ UML13EA::Collaboration.has_one 'representedClassifier', UML13EA::Classifier
545
+ UML13EA::Collaboration.has_many 'constrainingElement', UML13EA::ModelElement
546
+ UML13EA::Collaboration.contains_many 'interaction', UML13EA::Interaction, 'context'
547
+ UML13EA::CallAction.has_one 'operation', UML13EA::Operation, :lowerBound => 1
548
+ UML13EA::UseCase.has_many 'extensionPoint', UML13EA::ExtensionPoint
549
+ UML13EA::ActivityModel.contains_many_uni 'partition', UML13EA::Partition
550
+ UML13EA::Interaction.contains_many_uni 'link', UML13EA::Link
551
+ UML13EA::LinkEnd.has_one 'associationEnd', UML13EA::AssociationEnd, :lowerBound => 1
552
+ UML13EA::LinkEnd.has_one 'participant', UML13EA::Instance, :lowerBound => 1
553
+ UML13EA::BehavioralFeature.many_to_many 'raisedSignal', UML13EA::Signal, 'context'
554
+ UML13EA::BehavioralFeature.contains_many_uni 'parameter', UML13EA::Parameter
555
+ UML13EA::SubmachineState.has_one 'submachine', UML13EA::StateMachine, :lowerBound => 1
556
+ UML13EA::Multiplicity.contains_many_uni 'range', UML13EA::MultiplicityRange, :lowerBound => 1
557
+ UML13EA::ObjectFlowState.has_one 'type', UML13EA::Classifier, :lowerBound => 1
558
+ UML13EA::ObjectFlowState.has_one 'available', UML13EA::Parameter, :lowerBound => 1
559
+ UML13EA::AttributeLink.has_one 'value', UML13EA::Instance, :lowerBound => 1
560
+ UML13EA::AttributeLink.has_one 'attribute', UML13EA::Attribute, :lowerBound => 1
561
+ UML13EA::TimeEvent.contains_one_uni 'when', UML13EA::TimeExpression
562
+ UML13EA::Abstraction.contains_one_uni 'mapping', UML13EA::MappingExpression