blufin 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. checksums.yaml +7 -0
  2. data/bin/bf +5 -0
  3. data/bin/blufin +5 -0
  4. data/lib/blufin.rb +245 -0
  5. data/lib/core/code_scanners/common/scanner_common.rb +83 -0
  6. data/lib/core/code_scanners/common/scanner_java.rb +106 -0
  7. data/lib/core/code_scanners/scanner_java_embedded_objects.rb +386 -0
  8. data/lib/core/code_scanners/scanner_java_enums.rb +125 -0
  9. data/lib/core/code_scanners/scanner_java_source.rb +29 -0
  10. data/lib/core/code_scanners/scanner_java_tests.rb +157 -0
  11. data/lib/core/error_handling/schema_error.rb +9 -0
  12. data/lib/core/error_handling/sql_error.rb +21 -0
  13. data/lib/core/error_handling/sql_error_handler.rb +149 -0
  14. data/lib/core/error_handling/yml_error.rb +21 -0
  15. data/lib/core/error_handling/yml_error_handler.rb +437 -0
  16. data/lib/core/mysql.rb +347 -0
  17. data/lib/core/opt.rb +21 -0
  18. data/lib/core/site/site.rb +26 -0
  19. data/lib/core/site/site_auth.rb +88 -0
  20. data/lib/core/site/site_embedded.rb +27 -0
  21. data/lib/core/site/site_ports.rb +9 -0
  22. data/lib/core/site/site_resolver.rb +276 -0
  23. data/lib/core/site/site_services.rb +162 -0
  24. data/lib/core/site/site_ui.rb +16 -0
  25. data/lib/core/yml/config/yml_config_validator.rb +219 -0
  26. data/lib/core/yml/maven/yml_maven_validator.rb +1132 -0
  27. data/lib/core/yml/resource/yml_resource_validator.rb +154 -0
  28. data/lib/core/yml/schema/yml_schema_flags.rb +9 -0
  29. data/lib/core/yml/schema/yml_schema_validator.rb +1850 -0
  30. data/lib/core/yml/yml_cache_handler.rb +115 -0
  31. data/lib/core/yml/yml_common.rb +487 -0
  32. data/lib/core/yml/yml_meta_writer_base.rb +300 -0
  33. data/lib/core/yml/yml_outputter.rb +307 -0
  34. data/lib/core/yml/yml_validator_base.rb +630 -0
  35. data/lib/core/yml_writers/yml_configuration_writer.rb +40 -0
  36. data/lib/core/yml_writers/yml_java_api_resource_writer.rb +348 -0
  37. data/lib/core/yml_writers/yml_java_cron_type_writer.rb +113 -0
  38. data/lib/core/yml_writers/yml_java_css_dependency_writer.rb +59 -0
  39. data/lib/core/yml_writers/yml_java_dao_writer.rb +364 -0
  40. data/lib/core/yml_writers/yml_java_dto_writer.rb +251 -0
  41. data/lib/core/yml_writers/yml_java_embedded_object_writer.rb +968 -0
  42. data/lib/core/yml_writers/yml_java_enum_writer.rb +161 -0
  43. data/lib/core/yml_writers/yml_java_js_dependency_writer.rb +59 -0
  44. data/lib/core/yml_writers/yml_java_message_type_writer.rb +106 -0
  45. data/lib/core/yml_writers/yml_java_meta_writer.rb +173 -0
  46. data/lib/core/yml_writers/yml_java_model_writer.rb +510 -0
  47. data/lib/core/yml_writers/yml_java_pom_writer.rb +1050 -0
  48. data/lib/core/yml_writers/yml_java_resource_data_writer.rb +251 -0
  49. data/lib/core/yml_writers/yml_java_sdk_writer.rb +732 -0
  50. data/lib/core/yml_writers/yml_java_validator_writer.rb +280 -0
  51. data/lib/core/yml_writers/yml_java_worker_writer.rb +81 -0
  52. data/lib/core/yml_writers/yml_sql_structure_writer.rb +307 -0
  53. data/lib/core/yml_writers/yml_sql_template_writer.rb +243 -0
  54. data/lib/core/yml_writers/yml_vue_service_writer.rb +170 -0
  55. data/lib/core/yml_writers/yml_writer_base.rb +114 -0
  56. data/lib/routes/api_list.rb +35 -0
  57. data/lib/routes/api_meta.rb +59 -0
  58. data/lib/routes/build.rb +46 -0
  59. data/lib/routes/create/create_api.rb +35 -0
  60. data/lib/routes/create/create_ui.rb +84 -0
  61. data/lib/routes/export.rb +56 -0
  62. data/lib/routes/generate/generate_api.rb +225 -0
  63. data/lib/routes/generate/generate_img_favicon.rb +56 -0
  64. data/lib/routes/generate/generate_img_landing.rb +94 -0
  65. data/lib/routes/generate/generate_lambda.rb +43 -0
  66. data/lib/routes/lint.rb +35 -0
  67. data/lib/routes/mysql_reset.rb +43 -0
  68. data/lib/routes/release_blufin.rb +351 -0
  69. data/lib/routes/run.rb +35 -0
  70. data/lib/version.rb +1 -0
  71. data/opt/README.MD +2 -0
  72. data/opt/config/schema.yml +73 -0
  73. data/opt/config/template.yml +25 -0
  74. data/opt/sql/data/config/data-client.sql +7 -0
  75. data/opt/sql/data/config/data-db-configuration-property.sql +47 -0
  76. data/opt/sql/data/config/data-db-configuration.sql +9 -0
  77. data/opt/sql/data/config/data-db.sql +175 -0
  78. data/opt/sql/data/config/data-profile-api.sql +47 -0
  79. data/opt/sql/data/config/data-profile-cron.sql +0 -0
  80. data/opt/sql/data/config/data-profile-worker.sql +0 -0
  81. data/opt/sql/data/config/data-profile.sql +87 -0
  82. data/opt/sql/data/config/data-project.sql +95 -0
  83. data/opt/sql/structure/blufin-master-structure-fks.sql +65 -0
  84. data/opt/sql/structure/blufin-master-structure.sql +97 -0
  85. data/opt/sql/structure/blufin-mock-structure-fks.sql +38 -0
  86. data/opt/sql/structure/blufin-mock-structure.sql +98 -0
  87. data/opt/sql/templates/config/template-client.sql +7 -0
  88. data/opt/sql/templates/config/template-db-configuration-property.sql +11 -0
  89. data/opt/sql/templates/config/template-db-configuration.sql +9 -0
  90. data/opt/sql/templates/config/template-db.sql +21 -0
  91. data/opt/sql/templates/config/template-profile-api.sql +11 -0
  92. data/opt/sql/templates/config/template-profile-cron.sql +7 -0
  93. data/opt/sql/templates/config/template-profile-worker.sql +7 -0
  94. data/opt/sql/templates/config/template-profile.sql +21 -0
  95. data/opt/sql/templates/config/template-project.sql +23 -0
  96. data/opt/yml/api/schema/config/client.yml +14 -0
  97. data/opt/yml/api/schema/config/db.yml +45 -0
  98. data/opt/yml/api/schema/config/db_configuration.yml +22 -0
  99. data/opt/yml/api/schema/config/db_configuration_property.yml +22 -0
  100. data/opt/yml/api/schema/config/profile.yml +53 -0
  101. data/opt/yml/api/schema/config/profile_api.yml +22 -0
  102. data/opt/yml/api/schema/config/profile_cron.yml +14 -0
  103. data/opt/yml/api/schema/config/profile_worker.yml +14 -0
  104. data/opt/yml/api/schema/config/project.yml +48 -0
  105. data/opt/yml/api/schema/mock/mock.yml +99 -0
  106. data/opt/yml/api/schema/mock/mock_nested_if_enum.yml +16 -0
  107. data/opt/yml/api/schema/mock/mock_nested_if_enum_system.yml +16 -0
  108. data/opt/yml/api/schema/mock/mock_nested_linked.yml +43 -0
  109. data/opt/yml/api/schema/mock/mock_nested_multiple.yml +61 -0
  110. data/opt/yml/api/schema/mock/mock_nested_single.yml +67 -0
  111. data/opt/yml/api/schema/mock/mock_nested_single_super_deep.yml +32 -0
  112. data/opt/yml/api/schema/mock/mock_nested_single_super_super_deep.yml +17 -0
  113. metadata +240 -0
@@ -0,0 +1,35 @@
1
+ module AppCommand
2
+
3
+ class APIList < ::Convoy::ActionCommand::Base
4
+
5
+ def execute
6
+
7
+ begin
8
+
9
+ @opts = command_options
10
+ @args = arguments
11
+
12
+ opts_validate
13
+ opts_routing
14
+
15
+ rescue => e
16
+
17
+ Blufin::Terminal::print_exception(e)
18
+
19
+ end
20
+
21
+ end
22
+
23
+ def opts_validate
24
+
25
+ end
26
+
27
+ def opts_routing
28
+
29
+ Blufin::Terminal::info("Available #{Blufin::Terminal::format_highlight('APIs')} are:", Blufin::SiteResolver::get_available_apis, true)
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,59 @@
1
+ module AppCommand
2
+
3
+ class APIMeta < ::Convoy::ActionCommand::Base
4
+
5
+ def execute
6
+
7
+ begin
8
+
9
+ @opts = command_options
10
+ @args = arguments
11
+
12
+ opts_validate
13
+
14
+ @site = Blufin::SiteResolver::validate_site(@args[0])
15
+ @error_handler = Blufin::YmlErrorHandler.new(@site)
16
+
17
+ Blufin::SiteEmbedded::init(Blufin::ScannerJavaEmbeddedObjects::new(@site, @error_handler).get_data)
18
+
19
+ @yml_config = Blufin::YmlConfigValidator.new(@site, @error_handler)
20
+
21
+ Blufin::SiteAuth::init(@yml_config.config_data[Blufin::YmlConfigValidator::GLOBAL][Blufin::YmlConfigValidator::GLOBAL_AUTHENTICATION])
22
+
23
+ @yml_schema = Blufin::YmlSchemaValidator.new(@site, @error_handler)
24
+
25
+ opts_routing
26
+
27
+ rescue => e
28
+
29
+ Blufin::Terminal::print_exception(e)
30
+
31
+ end
32
+
33
+ end
34
+
35
+ def opts_validate
36
+
37
+ # Show help if no flags.
38
+ if Blufin::Routes::flags_set(@opts) == 0
39
+
40
+ system("#{App::GEM_NAME} p am -h")
41
+ exit
42
+
43
+ end
44
+
45
+ end
46
+
47
+ def opts_routing
48
+
49
+ system('clear') unless @opts[:as_json]
50
+
51
+ @yml_schema.get_yml_schema_outputter.show_auto_increment if @opts[:show_auto_increment]
52
+ @yml_schema.get_yml_schema_outputter.show_enums if @opts[:show_enums]
53
+ @yml_schema.get_yml_schema_outputter.show_resources(@opts[:as_json]) if @opts[:show_resources]
54
+
55
+ end
56
+
57
+ end
58
+
59
+ end
@@ -0,0 +1,46 @@
1
+ module AppCommand
2
+
3
+ class Build < ::Convoy::ActionCommand::Base
4
+
5
+ def execute
6
+
7
+ begin
8
+
9
+ @opts = command_options
10
+ @args = arguments
11
+
12
+ opts_validate
13
+ opts_routing
14
+
15
+ rescue => e
16
+
17
+ Blufin::Terminal::print_exception(e)
18
+
19
+ end
20
+
21
+ end
22
+
23
+ def opts_validate
24
+
25
+ Blufin::SiteServices::validate_site_service(@site, @service)
26
+
27
+ end
28
+
29
+ def opts_routing
30
+
31
+ # Tag a branch:
32
+ # $ git tag -a "v0.1.0-beta" -m "Version: v0.1.0-beta"
33
+
34
+ # Show all commits between 2 tags...
35
+ # $ git log v0.1.0-beta..v0.1.1-beta | grep "^commit [a-z0-9]\{40\}$" | awk '{print $2}'
36
+
37
+ # Get commit message for commit hash...
38
+ # $ git show d29f2870c59ffab4abb565c3e3c06430cd62515c | grep "^commit [a-z0-9]\{40\}$" -A4 | tail -n 1
39
+
40
+ raise RuntimeError, 'Not yet implemented!'
41
+
42
+ end
43
+
44
+ end
45
+
46
+ end
@@ -0,0 +1,35 @@
1
+ module AppCommand
2
+
3
+ class CreateApi < ::Convoy::ActionCommand::Base
4
+
5
+ def execute
6
+
7
+ begin
8
+
9
+ @opts = command_options
10
+ @args = arguments
11
+
12
+ opts_validate
13
+ opts_routing
14
+
15
+ rescue => e
16
+
17
+ Blufin::Terminal::print_exception(e)
18
+
19
+ end
20
+
21
+ end
22
+
23
+ def opts_validate
24
+
25
+ end
26
+
27
+ def opts_routing
28
+
29
+ raise RuntimeError, 'Not yet implemented!'
30
+
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,84 @@
1
+ module AppCommand
2
+
3
+ class CreateUI < ::Convoy::ActionCommand::Base
4
+
5
+ def execute
6
+
7
+ begin
8
+
9
+ @opts = command_options
10
+ @args = arguments
11
+
12
+ @archetypes = get_archetypes
13
+
14
+ opts_validate
15
+ opts_routing
16
+
17
+ rescue => e
18
+
19
+ Blufin::Terminal::print_exception(e)
20
+
21
+ end
22
+
23
+ end
24
+
25
+ def opts_validate
26
+
27
+ end
28
+
29
+ def opts_routing
30
+
31
+ Blufin::Terminal::info('Create new UI', "You're about to create a new UI from an archetype.")
32
+
33
+ # TODO - FINISH THIS...
34
+
35
+ Blufin::Terminal::prompt_select('Select Archetype', @archetypes)
36
+
37
+ raise RuntimeError, 'Not yet implemented!'
38
+
39
+ # TODO - These are the steps I currently run manually...
40
+
41
+ # $ cd /path/to/where/i/want/new/ui
42
+ # $ cp -R ~/Repos/blufin-archetypes/nuxt/v1/* .
43
+ # $ rm -rf .nuxt
44
+ # $ rm -rf dist
45
+ # $ rm -rf node_modules
46
+ # $ rm static/sw.js
47
+ # $ rm README.md
48
+ # $ rm yarn.lock
49
+ # $ yarn install
50
+ # $ yarn link blufin-ui
51
+ # $ yarn install
52
+ # In IDE, ran string replace 'blufin-nuxt-v1' -> 'org.blufin' (the only occurrence was in package.json)
53
+ # In IDE, ran string replace 'Blufin Nuxt (v1)' -> 'Blufin' (the only occurrence was in package.json)
54
+
55
+ end
56
+
57
+ private
58
+
59
+ # Gets an Array of available archetypes (with descriptions).
60
+ # @return Array (of Hashes)
61
+ def get_archetypes
62
+
63
+ # TODO - This will need to eventually come from the configuration YML file.
64
+ # TODO - This structure is only temporary.
65
+ [
66
+ {
67
+ :value => 1,
68
+ :text => 'Blufin Nuxt (v1)'
69
+ },
70
+ {
71
+ :value => 2,
72
+ :text => 'Blufin Electron (v1)'
73
+ },
74
+ {
75
+ :value => 3,
76
+ :text => 'Blufin Electron (v2)'
77
+ }
78
+ ]
79
+
80
+ end
81
+
82
+ end
83
+
84
+ end
@@ -0,0 +1,56 @@
1
+ module AppCommand
2
+
3
+ class Export < ::Convoy::ActionCommand::Base
4
+
5
+ def execute
6
+
7
+ begin
8
+
9
+ @opts = command_options
10
+ @args = arguments
11
+
12
+ @site = Blufin::SiteResolver::validate_site(@args[0])
13
+ @error_handler = Blufin::YmlErrorHandler.new(@site)
14
+
15
+ opts_validate
16
+ opts_routing
17
+
18
+ rescue => e
19
+
20
+ Blufin::Terminal::print_exception(e)
21
+
22
+ end
23
+
24
+ end
25
+
26
+ def opts_validate
27
+
28
+ Blufin::Routes::at_least_one_flag(@opts)
29
+ Blufin::Routes::max_one_flag(@opts)
30
+
31
+ end
32
+
33
+ def opts_routing
34
+
35
+ puts maven_blufin.inspect if @opts[:maven_blufin]
36
+ puts maven_app.inspect if @opts[:maven_app]
37
+
38
+ end
39
+
40
+ def maven_blufin
41
+
42
+ yml_maven = Blufin::YmlMavenValidator.new(@site, @error_handler)
43
+ yml_maven.data_blufin
44
+
45
+ end
46
+
47
+ def maven_app
48
+
49
+ yml_maven = Blufin::YmlMavenValidator.new(@site, @error_handler)
50
+ yml_maven.data_app
51
+
52
+ end
53
+
54
+ end
55
+
56
+ end
@@ -0,0 +1,225 @@
1
+ module AppCommand
2
+
3
+ class GenerateApi < ::Convoy::ActionCommand::Base
4
+
5
+ def execute
6
+
7
+ begin
8
+
9
+ @opts = command_options
10
+ @args = arguments
11
+
12
+ @generate_java = false
13
+
14
+ opts_validate
15
+ opts_routing
16
+
17
+ Blufin::Terminal::custom(Blufin::SiteResolver::get_site_title(@site), 89, 'All files generated successfully.')
18
+
19
+ rescue => e
20
+
21
+ Blufin::Terminal::print_exception(e)
22
+
23
+ end
24
+
25
+ end
26
+
27
+ def opts_validate
28
+
29
+ @site = @args[0] ? Blufin::SiteResolver::validate_site(@args[0]) : Blufin::Site::DEFAULT_SITE
30
+
31
+ # TODO - Re-enable Yes/no Prompt.
32
+ # exit unless Blufin::Terminal::prompt_yes_no("Generate boiler-plate code for \xe2\x86\x92 #{Blufin::Terminal::format_action(Blufin::SiteResolver::get_site_title(@site))}", 'Continuing will overwrite all auto-generated code.', 'Continue?')
33
+
34
+ @error_handler = Blufin::YmlErrorHandler.new(@site)
35
+
36
+ # Must go first because it contains the most important configuration data.
37
+ Blufin::SiteEmbedded::init(Blufin::ScannerJavaEmbeddedObjects::new(@site, @error_handler).get_data)
38
+
39
+ config_file = "#{Blufin::SiteResolver::get_site_location(@site)}/#{Blufin::Site::PATH_TO_YML_CONFIG}/config.yml"
40
+
41
+ Blufin::Terminal::error("Config file doesn't exist", config_file, true) unless Blufin::Files::file_exists(config_file)
42
+
43
+ @yml_config = Blufin::YmlConfigValidator.new(@site, @error_handler)
44
+ @yml_maven = Blufin::YmlMavenValidator.new(@site, @error_handler)
45
+
46
+ # If there are YML at this point, display them & return.
47
+ @error_handler.display_errors_if_any(true)
48
+
49
+ Blufin::SiteAuth::init(@yml_config.config_data[Blufin::YmlConfigValidator::GLOBAL][Blufin::YmlConfigValidator::GLOBAL_AUTHENTICATION])
50
+
51
+ @java_scanner_source = Blufin::ScannerJavaSource::new(@site, @error_handler)
52
+ @java_scanner_tests = Blufin::ScannerJavaTests::new(@site, @error_handler)
53
+
54
+ @yml_schema = Blufin::YmlSchemaValidator.new(@site, @error_handler)
55
+ @yml_resources = Blufin::YmlResourceValidator.new(@site, @error_handler)
56
+
57
+ # If there are YML errors, display them & return.
58
+ @error_handler.display_errors_if_any(true)
59
+
60
+ if @yml_schema.get_errors_array.any?
61
+
62
+ # Schema Errors are handled the "legacy" way.
63
+ @yml_schema.get_errors_array.each do |hash|
64
+ hash.each do |title, array|
65
+ Blufin::Terminal::error(title, array, false)
66
+ end
67
+ end
68
+
69
+ exit
70
+
71
+ end
72
+
73
+ end
74
+
75
+ def opts_routing
76
+
77
+ cache_data_hashes
78
+
79
+ @threads = []
80
+
81
+ # Write the Java POMs.
82
+ @threads << Thread.new {
83
+ yml_java_pom_writer = Blufin::YmlJavaPomWriter.new(@yml_maven.data_blufin, @yml_maven.data_app, @site)
84
+ yml_java_pom_writer.write_poms_blufin
85
+ yml_java_pom_writer.write_poms_app
86
+ Blufin::Terminal::output('Java POMs...', Blufin::Terminal::MSG_PROCESSED)
87
+ }
88
+
89
+ # Write the Java Embedded Objects.
90
+ @threads << Thread.new {
91
+ yml_java_embedded_object_writer = Blufin::YmlJavaEmbeddedObjectWriter.new(@site, @yml_schema.get_schema_resources)
92
+ yml_java_embedded_object_writer.write
93
+ Blufin::Terminal::output('Embedded Objects...', Blufin::Terminal::MSG_PROCESSED)
94
+ }
95
+
96
+ # Write the Java (API) Resource Data.
97
+ @threads << Thread.new {
98
+ yml_java_resource_data_writer = Blufin::YmlJavaResourceDataWriter.new(@site, @yml_schema.get_schema_resources.dup)
99
+ yml_java_resource_data_writer.write
100
+ Blufin::Terminal::output('API Resource Data...', Blufin::Terminal::MSG_PROCESSED)
101
+ }
102
+
103
+ # Write the Java DTOs.
104
+ @threads << Thread.new {
105
+ yml_java_dto_writer = Blufin::YmlJavaDtoWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup)
106
+ yml_java_dto_writer.write
107
+ Blufin::Terminal::output('DTOs...', Blufin::Terminal::MSG_PROCESSED)
108
+ }
109
+
110
+ # Write the Java ENUMs.
111
+ @threads << Thread.new {
112
+ yml_java_enum_writer = Blufin::YmlJavaEnumWriter.new(@site, @yml_schema.get_schema_data.dup)
113
+ yml_java_enum_writer.write
114
+ Blufin::Terminal::output('Enums...', Blufin::Terminal::MSG_PROCESSED)
115
+ }
116
+
117
+ # Write the Java MetaData Classes.
118
+ @threads << Thread.new {
119
+ yml_java_meta_writer = Blufin::YmlJavaMetaWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup)
120
+ yml_java_meta_writer.write
121
+ Blufin::Terminal::output('MetaData classes...', Blufin::Terminal::MSG_PROCESSED)
122
+ }
123
+
124
+ # Write the Java DAOs.
125
+ @threads << Thread.new {
126
+ yml_java_dao_writer = Blufin::YmlJavaDaoWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup, @yml_schema.get_schema_fks)
127
+ yml_java_dao_writer.write
128
+ Blufin::Terminal::output('DAOs...', Blufin::Terminal::MSG_PROCESSED)
129
+ }
130
+
131
+ # Write the Java Model Classes.
132
+ @threads << Thread.new {
133
+ yml_java_model_writer = Blufin::YmlJavaModelWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup)
134
+ yml_java_model_writer.write
135
+ Blufin::Terminal::output('Models...', Blufin::Terminal::MSG_PROCESSED)
136
+ }
137
+
138
+ # Write the Java Validators.
139
+ @threads << Thread.new {
140
+ yml_java_validator_writer = Blufin::YmlJavaValidatorWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup)
141
+ yml_java_validator_writer.write
142
+ Blufin::Terminal::output('Validators...', Blufin::Terminal::MSG_PROCESSED)
143
+ }
144
+
145
+ # Write the Java MessageTypes (for Queue messages).
146
+ @threads << Thread.new {
147
+ yml_java_message_type_writer = Blufin::YmlJavaMessageTypeWriter.new(@site)
148
+ yml_java_message_type_writer.write
149
+ Blufin::Terminal::output('Message Queue classes...', Blufin::Terminal::MSG_PROCESSED)
150
+ }
151
+
152
+ # Write the Java CronTypes (for Cron Service).
153
+ @threads << Thread.new {
154
+ yml_java_cron_type_writer = Blufin::YmlJavaCronTypeWriter.new(@site)
155
+ yml_java_cron_type_writer.write
156
+ Blufin::Terminal::output('CronTypes...', Blufin::Terminal::MSG_PROCESSED)
157
+ }
158
+
159
+ # Write the Java API Resources.
160
+ @threads << Thread.new {
161
+ yml_java_api_resource_writer = Blufin::YmlJavaApiResourceWriter.new(@site, @yml_schema.get_schema_resources.dup)
162
+ yml_java_api_resource_writer.write
163
+ Blufin::Terminal::output('API Resources...', Blufin::Terminal::MSG_PROCESSED)
164
+ }
165
+
166
+ # Write the Java SDK Package.
167
+ @threads << Thread.new {
168
+ yml_sql_java_sdk_writer = Blufin::YmlJavaSdkWriter.new(@site, @yml_schema.get_schema_data.dup, @yml_schema.get_schema_resources.dup)
169
+ yml_sql_java_sdk_writer.write
170
+ Blufin::Terminal::output('SDK Package...', Blufin::Terminal::MSG_PROCESSED)
171
+ }
172
+
173
+ # Write the Java Worker Resources.
174
+ @threads << Thread.new {
175
+ yml_java_worker_writer = Blufin::YmlJavaWorkerWriter.new(@site)
176
+ yml_java_worker_writer.write
177
+ Blufin::Terminal::output('Worker Resources...', Blufin::Terminal::MSG_PROCESSED)
178
+ }
179
+
180
+ # TODO - Check that PATH_TO_RUBY exists (for the following 2)... Might be able to get rid of this if we manage to kill the config database.
181
+
182
+ # Write the SQL Structure.
183
+ @threads << Thread.new {
184
+ yml_sql_structure_writer = Blufin::YmlSqlStructureWriter.new(@site, @yml_schema.get_schema_data.dup)
185
+ yml_sql_structure_writer.write
186
+ Blufin::Terminal::output('SQL Structure...', Blufin::Terminal::MSG_PROCESSED)
187
+ }
188
+
189
+ # Write the SQL Templates.
190
+ @threads << Thread.new {
191
+ yml_sql_template_writer = Blufin::YmlSqlTemplateWriter.new(@site, @yml_schema.get_schema_data.dup)
192
+ yml_sql_template_writer.write
193
+ Blufin::Terminal::output('SQL Templates...', Blufin::Terminal::MSG_PROCESSED)
194
+ }
195
+
196
+ # # Write Vue Service files.
197
+ # yml_vue_service_writer = Blufin::YmlVueServiceWriter.new(@site, @yml_schema.get_schema_resources.dup)
198
+ # yml_vue_service_writer.write
199
+ # Blufin::Terminal::output('VueJs Services...', Blufin::Terminal::MSG_PROCESSED)
200
+
201
+ @threads.each { |thread| thread.join }
202
+
203
+ end
204
+
205
+ private
206
+
207
+ # Caches data-maps in the /tmp directory so other scripts can use it.
208
+ # @return void
209
+ def cache_data_hashes
210
+
211
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::CONFIG, @yml_config.config_data)
212
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_CONFIG, @yml_schema.get_schema_config)
213
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_DATA, @yml_schema.get_schema_data)
214
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_DESCRIPTIONS, @yml_schema.get_schema_descriptions)
215
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS, @yml_schema.get_schema_fks)
216
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS_DEPENDENCIES, @yml_schema.get_schema_fks_dependencies)
217
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS_PLACEHOLDERS, @yml_schema.get_schema_fks_placeholders)
218
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_FKS_LINKS, @yml_schema.get_schema_fks_links)
219
+ Blufin::YmlCacheHandler.store(@site, Blufin::YmlCacheHandler::SCHEMA_RESOURCES, @yml_schema.get_schema_resources)
220
+
221
+ end
222
+
223
+ end
224
+
225
+ end