vraptor-scaffold 1.3.0.rc → 1.3.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.
- data/.rvmrc.example +1 -0
- data/.travis.yml +2 -1
- data/CHANGELOG.rdoc +22 -3
- data/Rakefile +2 -2
- data/lib/vraptor-scaffold.rb +1 -1
- data/lib/vraptor-scaffold/generators/app/app_generator.rb +23 -56
- data/lib/vraptor-scaffold/generators/app/dependency/default_dependencies.rb +44 -0
- data/lib/vraptor-scaffold/generators/app/{dependency.rb → dependency/dependency.rb} +0 -0
- data/lib/vraptor-scaffold/generators/app/dependency/dependency_manager.rb +25 -0
- data/lib/vraptor-scaffold/generators/app/dependency/gae_dependencies.rb +49 -0
- data/lib/vraptor-scaffold/generators/app/dependency/heroku_dependencies.rb +48 -0
- data/lib/vraptor-scaffold/generators/app/freemarker_template_engine.rb +7 -5
- data/lib/vraptor-scaffold/generators/app/gae_app_generator.rb +145 -0
- data/lib/vraptor-scaffold/generators/app/jsp_template_engine.rb +6 -5
- data/lib/vraptor-scaffold/generators/app/templates/build-gae.xml +144 -0
- data/lib/vraptor-scaffold/generators/app/templates/build.gradle.erb +4 -4
- data/lib/vraptor-scaffold/generators/app/templates/eclipse/classpath-gae.erb +1 -3
- data/lib/vraptor-scaffold/generators/app/templates/eclipse/classpath.erb +1 -1
- data/lib/vraptor-scaffold/generators/app/templates/eclipse/project-gae.erb +2 -2
- data/lib/vraptor-scaffold/generators/app/templates/eclipse/settings-gae/com.google.appengine.eclipse.core.prefs +4 -0
- data/lib/vraptor-scaffold/generators/app/templates/eclipse/settings-gae/com.google.gdt.eclipse.core.prefs +1 -2
- data/lib/vraptor-scaffold/generators/app/templates/freemarker/macros/html.ftl +12 -0
- data/lib/vraptor-scaffold/generators/app/templates/freemarker/main.ftl.erb +18 -0
- data/lib/vraptor-scaffold/generators/app/templates/gae/appengine-web.xml.tt +1 -0
- data/lib/vraptor-scaffold/generators/app/templates/gae/ivysettings.xml +1 -1
- data/lib/vraptor-scaffold/generators/app/templates/gitignore-gae +4 -0
- data/lib/vraptor-scaffold/generators/app/templates/ivy.erb +3 -3
- data/lib/vraptor-scaffold/generators/app/templates/jsp/main.jsp.erb +20 -0
- data/lib/vraptor-scaffold/generators/app/templates/pom.erb +3 -3
- data/lib/vraptor-scaffold/generators/app/templates/vraptor-scaffold-gae.erb +7 -0
- data/lib/vraptor-scaffold/generators/base.rb +21 -0
- data/lib/vraptor-scaffold/generators/scaffold/attribute.rb +7 -1
- data/lib/vraptor-scaffold/generators/scaffold/base_scaffold.rb +18 -0
- data/lib/vraptor-scaffold/generators/scaffold/controller_generator/templates/controller.erb +26 -1
- data/lib/vraptor-scaffold/generators/scaffold/controller_generator/templates/controller_test.erb +1 -1
- data/lib/vraptor-scaffold/generators/scaffold/import_manager.rb +20 -0
- data/lib/vraptor-scaffold/generators/scaffold/model_generator/templates/model.erb +7 -4
- data/lib/vraptor-scaffold/generators/scaffold/model_generator/templates/objectify_model.erb +3 -3
- data/lib/vraptor-scaffold/generators/scaffold/template_engine_generator/freemarker_generator/templates/form.erb +8 -0
- data/lib/vraptor-scaffold/generators/scaffold/template_engine_generator/jsp_generator/templates/form.erb +13 -3
- data/lib/vraptor-scaffold/load_paths.rb +3 -3
- data/lib/vraptor-scaffold/runner/generator.rb +11 -1
- data/lib/vraptor-scaffold/runner/start.rb +1 -1
- data/lib/vraptor-scaffold/version.rb +1 -1
- data/maven/repo/br/com/caelum/vraptor3.4-compatible-gae/1.1/vraptor3.4-compatible-gae-1.1.jar +0 -0
- data/spec/spec_helper.rb +9 -1
- data/spec/vraptor-scaffold/generators/app/app_generator_spec.rb +47 -99
- data/spec/vraptor-scaffold/generators/app/dependency/dependency_manager_spec.rb +21 -0
- data/spec/vraptor-scaffold/generators/app/{dependency_spec.rb → dependency/dependency_spec.rb} +4 -4
- data/spec/vraptor-scaffold/generators/app/dependency/gae_dependencies_spec.rb +20 -0
- data/spec/vraptor-scaffold/generators/app/dependency/heroku_dependencies_spec.rb +20 -0
- data/spec/vraptor-scaffold/generators/app/freemarker_template_engine_spec.rb +49 -7
- data/spec/vraptor-scaffold/generators/app/gae_app_generator_spec.rb +286 -0
- data/spec/vraptor-scaffold/generators/app/jsp_template_engine_spec.rb +49 -7
- data/spec/vraptor-scaffold/generators/app/templates/build.gradle +6 -6
- data/spec/vraptor-scaffold/generators/app/templates/classpath-gae +1 -3
- data/spec/vraptor-scaffold/generators/app/templates/gae-jsp-web.xml +1 -1
- data/spec/vraptor-scaffold/generators/app/templates/ivy-gae.xml +8 -6
- data/spec/vraptor-scaffold/generators/app/templates/ivy.xml +5 -5
- data/{lib/vraptor-scaffold/generators/app/templates/freemarker/main.ftl → spec/vraptor-scaffold/generators/app/templates/main-with-jquery.ftl} +0 -0
- data/{lib/vraptor-scaffold/generators/app/templates/jsp/main.jsp → spec/vraptor-scaffold/generators/app/templates/main-with-jquery.jsp} +0 -0
- data/spec/vraptor-scaffold/generators/app/templates/main-without-jquery.ftl +14 -0
- data/spec/vraptor-scaffold/generators/app/templates/main-without-jquery.jsp +16 -0
- data/spec/vraptor-scaffold/generators/app/templates/pom-heroku.xml +5 -5
- data/spec/vraptor-scaffold/generators/app/templates/pom.xml +5 -5
- data/spec/vraptor-scaffold/generators/app/templates/project-gae +2 -2
- data/spec/vraptor-scaffold/generators/app/templates/vraptor-scaffold-gae.properties +7 -0
- data/spec/vraptor-scaffold/generators/plugin/expected_configs/build.gradle +7 -7
- data/spec/vraptor-scaffold/generators/plugin/expected_configs/default_org_build.gradle +6 -6
- data/spec/vraptor-scaffold/generators/plugin/expected_configs/default_org_ivy.xml +5 -5
- data/spec/vraptor-scaffold/generators/plugin/expected_configs/default_org_pom.xml +5 -5
- data/spec/vraptor-scaffold/generators/plugin/expected_configs/ivy.xml +6 -6
- data/spec/vraptor-scaffold/generators/plugin/expected_configs/pom.xml +6 -6
- data/spec/vraptor-scaffold/generators/plugin/plugin_generator_spec.rb +7 -7
- data/spec/vraptor-scaffold/generators/scaffold/attribute_spec.rb +198 -181
- data/spec/vraptor-scaffold/generators/scaffold/base_scaffold_spec.rb +7 -1
- data/spec/vraptor-scaffold/generators/scaffold/controller_generator/templates/ProductController.java +9 -1
- data/spec/vraptor-scaffold/generators/scaffold/freemarker_generator/templates/form.ftl +15 -0
- data/spec/vraptor-scaffold/generators/scaffold/import_manager_spec.rb +9 -0
- data/spec/vraptor-scaffold/generators/scaffold/jsp_generator/templates/form.jsp +23 -3
- data/spec/vraptor-scaffold/generators/scaffold/model_generator/model_generator_spec.rb +2 -2
- data/spec/vraptor-scaffold/generators/scaffold/model_generator/objectify_model_generator_spec.rb +6 -6
- data/spec/vraptor-scaffold/generators/scaffold/model_generator/templates/Objectify_Product.java +23 -5
- data/spec/vraptor-scaffold/generators/scaffold/model_generator/templates/Product.java +24 -6
- data/spec/vraptor-scaffold/http_request_spec.rb +10 -0
- data/spec/vraptor-scaffold/runner/generator_spec.rb +18 -2
- metadata +86 -30
- data/lib/vraptor-scaffold/generators/app/dependency_manager.rb +0 -83
- data/spec/vraptor-scaffold/generators/app/dependency_manager_spec.rb +0 -34
data/.rvmrc.example
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rvm 1.9.3@vraptor-scaffold
|
data/.travis.yml
CHANGED
data/CHANGELOG.rdoc
CHANGED
|
@@ -1,10 +1,29 @@
|
|
|
1
|
-
== 1.3.
|
|
1
|
+
== 1.3.1 / 2012-??-??
|
|
2
|
+
|
|
3
|
+
* New Features
|
|
4
|
+
* Support entity relationship on scaffold (vraptor scaffold student pencil:references).
|
|
5
|
+
* Skip jquery download (vraptor new app --skip-jquery)
|
|
6
|
+
* vraptor-scanning ant task for appengine projects. Fast bootstrap for apps.
|
|
7
|
+
|
|
8
|
+
* Improvements
|
|
9
|
+
* Update vraptor to 3.4.1.
|
|
10
|
+
* Update gae to 1.7.2.1 sdk.
|
|
11
|
+
* Replaced http requisitions by mocks on specs. Specs running so fast.
|
|
12
|
+
* Refactoring on app generators.
|
|
13
|
+
* Refactoring on dependency manager.
|
|
14
|
+
|
|
15
|
+
== 1.3.0 / 2012-??-??
|
|
2
16
|
|
|
3
17
|
* New Features
|
|
4
18
|
* GAE support (vraptor new app --gae).
|
|
5
19
|
* Customizing templates.
|
|
6
20
|
* Added start command (vraptor start).
|
|
7
21
|
|
|
22
|
+
* Improvements
|
|
23
|
+
* updated mockito to 1.9.0.
|
|
24
|
+
* updated hibernte to 4.0.1.Final.
|
|
25
|
+
* updated hsqldb to 2.2.8.
|
|
26
|
+
|
|
8
27
|
== 1.2.3 / 2011-11-15
|
|
9
28
|
|
|
10
29
|
* Bugfixes
|
|
@@ -157,7 +176,7 @@
|
|
|
157
176
|
* Redirect to form when occur validation erros.
|
|
158
177
|
* Added joda time dependency.
|
|
159
178
|
* Create messages.properties(i18n).
|
|
160
|
-
|
|
179
|
+
|
|
161
180
|
* Bugfixes
|
|
162
181
|
* Fixed i.e problems.
|
|
163
182
|
|
|
@@ -172,7 +191,7 @@
|
|
|
172
191
|
* Change log4j.xml to log4j.properties.
|
|
173
192
|
* Change views directory from WEB-INF/freemarker to WEB-INF/views.
|
|
174
193
|
* Change hsqldb to use file instead of memory.
|
|
175
|
-
|
|
194
|
+
|
|
176
195
|
* Bugfixes
|
|
177
196
|
* Fixed pom when creating project with path like /home/rodolfo/project.
|
|
178
197
|
* Fixed runtime dependencies.
|
data/Rakefile
CHANGED
data/lib/vraptor-scaffold.rb
CHANGED
|
@@ -22,8 +22,8 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
22
22
|
class_option :heroku, :type => :boolean, :aliases => "-h",
|
|
23
23
|
:desc => "heroku project"
|
|
24
24
|
|
|
25
|
-
class_option :gae, :type => :boolean,
|
|
26
|
-
:desc => "
|
|
25
|
+
class_option :gae, :type => :boolean,
|
|
26
|
+
:desc => "gae project"
|
|
27
27
|
|
|
28
28
|
class_option :repositories_package, :aliases => "-r", :default => "repositories",
|
|
29
29
|
:desc => "Define repositories package"
|
|
@@ -34,8 +34,8 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
34
34
|
class_option :orm, :default => "jpa", :aliases => "-o",
|
|
35
35
|
:desc => "Object-relational mapping (options: #{ORMS.join(', ')})"
|
|
36
36
|
|
|
37
|
-
class_option :
|
|
38
|
-
:desc => "jQuery
|
|
37
|
+
class_option :skip_jquery, :type => :boolean, :aliases => "-j",
|
|
38
|
+
:desc => "Skip jQuery download file"
|
|
39
39
|
|
|
40
40
|
class_option :skip_eclipse, :type => :boolean, :aliases => "-E",
|
|
41
41
|
:desc => "Skip Eclipse files"
|
|
@@ -53,7 +53,7 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
53
53
|
validate
|
|
54
54
|
self.destination_root=(project_path)
|
|
55
55
|
@project_name = project_path.split("/").last
|
|
56
|
-
@
|
|
56
|
+
@dependencies = DependencyManager.new(options).dependencies
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
def create_root_folder
|
|
@@ -75,9 +75,6 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
75
75
|
template("ivy.erb", "ivy.xml")
|
|
76
76
|
copy_file(IVY_JAR)
|
|
77
77
|
end
|
|
78
|
-
if options[:gae]
|
|
79
|
-
copy_file("gae/ivysettings.xml", "ivysettings.xml")
|
|
80
|
-
end
|
|
81
78
|
end
|
|
82
79
|
|
|
83
80
|
def configure_gradle
|
|
@@ -85,10 +82,9 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
85
82
|
end
|
|
86
83
|
|
|
87
84
|
def configure_vraptor_packages
|
|
88
|
-
vraptor_util_package = "br.com.caelum.vraptor
|
|
85
|
+
vraptor_util_package = "br.com.caelum.vraptor"
|
|
89
86
|
@vraptor_packages = []
|
|
90
|
-
@vraptor_packages += ["#{vraptor_util_package}.#{orm}"] if orm == "jpa" or orm == "hibernate"
|
|
91
|
-
@vraptor_packages += ["#{vraptor_util_package}.gae"] if options[:gae]
|
|
87
|
+
@vraptor_packages += ["#{vraptor_util_package}.util.#{orm}"] if orm == "jpa" or orm == "hibernate"
|
|
92
88
|
end
|
|
93
89
|
|
|
94
90
|
def create_main_java
|
|
@@ -106,17 +102,13 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
106
102
|
def create_models_directory
|
|
107
103
|
models_folder = File.join @src, options[:models_package]
|
|
108
104
|
empty_directory models_folder
|
|
109
|
-
template("models/Entity.erb", "#{models_folder}/Entity.java")
|
|
105
|
+
template("models/Entity.erb", "#{models_folder}/Entity.java")
|
|
110
106
|
end
|
|
111
107
|
|
|
112
108
|
def create_repositories_directory
|
|
113
109
|
repositories_folder = File.join @src, options[:repositories_package]
|
|
114
110
|
empty_directory repositories_folder
|
|
115
|
-
|
|
116
|
-
template("orm/Repository-objectify.java.tt", "#{repositories_folder}/Repository.java")
|
|
117
|
-
else
|
|
118
|
-
template("orm/Repository-#{orm}.java.tt", "#{repositories_folder}/Repository.java")
|
|
119
|
-
end
|
|
111
|
+
template("orm/Repository-#{orm}.java.tt", "#{repositories_folder}/Repository.java")
|
|
120
112
|
end
|
|
121
113
|
|
|
122
114
|
def create_main_resources
|
|
@@ -126,10 +118,6 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
126
118
|
def configure_orm
|
|
127
119
|
if (orm == "hibernate")
|
|
128
120
|
copy_file("orm/hibernate.cfg.xml", (File.join Configuration::MAIN_RESOURCES, "hibernate.cfg.xml"))
|
|
129
|
-
elsif orm == "objectify"
|
|
130
|
-
infra_folder = File.join @src, "infra"
|
|
131
|
-
empty_directory infra_folder
|
|
132
|
-
template("gae/ObjectifyFactory.java.tt", "#{@src}/infra/ObjectifyFactory.java")
|
|
133
121
|
else
|
|
134
122
|
metainf = File.join Configuration::MAIN_RESOURCES, 'META-INF'
|
|
135
123
|
empty_directory metainf
|
|
@@ -139,16 +127,15 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
139
127
|
|
|
140
128
|
def create_webapp
|
|
141
129
|
directory("webapp", Configuration::WEB_APP)
|
|
142
|
-
if @options[:gae]
|
|
143
|
-
template("gae/appengine-web.xml.tt", "#{Configuration::WEB_INF}/appengine-web.xml")
|
|
144
|
-
copy_file("gae/logging.properties", "#{Configuration::WEB_INF}/logging.properties")
|
|
145
|
-
end
|
|
146
130
|
end
|
|
147
131
|
|
|
148
132
|
def create_javascripts
|
|
149
133
|
javascripts = File.join Configuration::WEB_APP, "javascripts"
|
|
150
134
|
create_file File.join javascripts, "application.js"
|
|
151
|
-
|
|
135
|
+
unless options[:skip_jquery]
|
|
136
|
+
jquery = get_jquery
|
|
137
|
+
add_file (File.join javascripts, "jquery.min.js"), jquery.body if jquery
|
|
138
|
+
end
|
|
152
139
|
end
|
|
153
140
|
|
|
154
141
|
def configure_scaffold_properties
|
|
@@ -157,7 +144,7 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
157
144
|
|
|
158
145
|
def configure_template_engine
|
|
159
146
|
templates = {"jsp" => JspTemplateEngine, "ftl" => FreemarkerTemplateEngine}
|
|
160
|
-
templates[options[:template_engine]].new(project_path).configure if templates[options[:template_engine]]
|
|
147
|
+
templates[options[:template_engine]].new(project_path, @options).configure if templates[options[:template_engine]]
|
|
161
148
|
end
|
|
162
149
|
|
|
163
150
|
def create_test
|
|
@@ -174,25 +161,17 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
174
161
|
private
|
|
175
162
|
def build_tool
|
|
176
163
|
return "mvn" if options[:heroku]
|
|
177
|
-
return "ant" if options[:gae]
|
|
178
164
|
options[:build_tool]
|
|
179
165
|
end
|
|
180
166
|
|
|
181
167
|
def orm
|
|
182
|
-
return "objectify" if options[:gae]
|
|
183
168
|
options[:orm]
|
|
184
169
|
end
|
|
185
170
|
|
|
186
171
|
def create_eclipse_files
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
directory("eclipse/settings-gae", ".settings")
|
|
191
|
-
else
|
|
192
|
-
template("eclipse/classpath.erb", ".classpath")
|
|
193
|
-
template("eclipse/project.erb", ".project")
|
|
194
|
-
directory("eclipse/settings", ".settings")
|
|
195
|
-
end
|
|
172
|
+
template("eclipse/classpath.erb", ".classpath")
|
|
173
|
+
template("eclipse/project.erb", ".project")
|
|
174
|
+
directory("eclipse/settings", ".settings")
|
|
196
175
|
end
|
|
197
176
|
|
|
198
177
|
def validate
|
|
@@ -209,33 +188,21 @@ class AppGenerator < VraptorScaffold::Base
|
|
|
209
188
|
Kernel::exit
|
|
210
189
|
end
|
|
211
190
|
|
|
212
|
-
if options[:heroku] and options[:gae]
|
|
213
|
-
puts "You cannot create gae and heroku template project together"
|
|
214
|
-
Kernel::exit
|
|
215
|
-
end
|
|
216
|
-
|
|
217
191
|
if File.directory? project_path
|
|
218
192
|
puts "The project #{project_path} already exist"
|
|
219
193
|
Kernel::exit
|
|
220
194
|
end
|
|
221
|
-
|
|
222
|
-
if options[:jquery] != 'latest version'
|
|
223
|
-
case get_jquery
|
|
224
|
-
when Net::HTTPClientError, Net::HTTPServerError
|
|
225
|
-
download_url = "http://docs.jquery.com/Downloading_jQuery"
|
|
226
|
-
puts "jQuery version #{options[:jquery]} was not found. Please visit the download page to see the versions available #{download_url}."
|
|
227
|
-
Kernel::exit
|
|
228
|
-
end
|
|
229
|
-
end
|
|
230
195
|
end
|
|
231
196
|
|
|
232
197
|
def jquery_uri
|
|
233
|
-
|
|
234
|
-
jquery_version = options[:jquery] if options[:jquery] != 'latest version'
|
|
235
|
-
"/ajax/libs/jquery/#{jquery_version}/jquery.min.js"
|
|
198
|
+
"/ajax/libs/jquery/1/jquery.min.js"
|
|
236
199
|
end
|
|
237
200
|
|
|
238
201
|
def get_jquery
|
|
239
|
-
|
|
202
|
+
begin
|
|
203
|
+
VraptorScaffold::HttpRequest.open_session("ajax.googleapis.com").get jquery_uri;
|
|
204
|
+
rescue
|
|
205
|
+
Kernel.puts "Was not possible to download jQuery."
|
|
206
|
+
end
|
|
240
207
|
end
|
|
241
208
|
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
class DefaultDependencies
|
|
2
|
+
|
|
3
|
+
attr_accessor :options
|
|
4
|
+
|
|
5
|
+
def initialize(options)
|
|
6
|
+
@options = options
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def compile_scope
|
|
10
|
+
dependencies = append_freemarker_dependency_if_necessary default_dependencies
|
|
11
|
+
dependencies
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_scope
|
|
15
|
+
[Dependency.new("junit", "junit", "4.10"),
|
|
16
|
+
Dependency.new("org.hamcrest", "hamcrest-all", "1.1"),
|
|
17
|
+
Dependency.new("org.mockito", "mockito-all", "1.9.0")]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def provided_scope
|
|
21
|
+
[Dependency.new("javax.servlet", "servlet-api", "2.5"), Dependency.new("javax.servlet.jsp", "jsp-api", "2.1")]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
def default_dependencies
|
|
26
|
+
hibernate_version = "4.0.1.Final"
|
|
27
|
+
dependencies = [Dependency.new("br.com.caelum", "vraptor", "3.4.1"),
|
|
28
|
+
Dependency.new("opensymphony", "sitemesh", "2.4.2"),
|
|
29
|
+
Dependency.new("javax.servlet", "jstl", "1.2"),
|
|
30
|
+
Dependency.new("org.hsqldb", "hsqldb", "2.2.8"),
|
|
31
|
+
Dependency.new("org.hibernate", "hibernate-entitymanager", hibernate_version),
|
|
32
|
+
Dependency.new("org.hibernate", "hibernate-c3p0", hibernate_version),
|
|
33
|
+
Dependency.new("org.hibernate", "hibernate-validator", "4.2.0.Final"),
|
|
34
|
+
Dependency.new("joda-time", "joda-time", "2.0"),
|
|
35
|
+
Dependency.new("com.thoughtworks.xstream", "xstream", "1.4.1")]
|
|
36
|
+
|
|
37
|
+
dependencies
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def append_freemarker_dependency_if_necessary dependencies
|
|
41
|
+
dependencies << Dependency.new("org.freemarker", "freemarker", "2.3.18") if @options[:template_engine] == 'ftl'
|
|
42
|
+
dependencies
|
|
43
|
+
end
|
|
44
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
class DependencyManager
|
|
2
|
+
|
|
3
|
+
attr_accessor :options
|
|
4
|
+
|
|
5
|
+
def initialize(options)
|
|
6
|
+
@options = options
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def dependencies
|
|
10
|
+
dependencies_per_project = {"default" => DefaultDependencies,
|
|
11
|
+
"gae" => GaeDependencies,
|
|
12
|
+
"heroku" => HerokuDependencies}
|
|
13
|
+
|
|
14
|
+
dependencies_per_project.fetch(project_style).new(@options)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
def project_style
|
|
19
|
+
return "heroku" if @options[:heroku]
|
|
20
|
+
return "gae" if @options[:gae]
|
|
21
|
+
|
|
22
|
+
"default"
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
class GaeDependencies
|
|
2
|
+
|
|
3
|
+
attr_accessor :options
|
|
4
|
+
|
|
5
|
+
def initialize(options)
|
|
6
|
+
@options = options
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def compile_scope
|
|
10
|
+
dependencies = append_freemarker_dependency_if_necessary default_dependencies
|
|
11
|
+
dependencies
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_scope
|
|
15
|
+
[Dependency.new("junit", "junit", "4.10"),
|
|
16
|
+
Dependency.new("org.hamcrest", "hamcrest-all", "1.1"),
|
|
17
|
+
Dependency.new("org.mockito", "mockito-all", "1.9.0")]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def provided_scope
|
|
21
|
+
[Dependency.new("javax.servlet", "servlet-api", "2.5"), Dependency.new("javax.servlet.jsp", "jsp-api", "2.1")]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def default_dependencies
|
|
25
|
+
dependencies = [Dependency.new("br.com.caelum", "vraptor", "3.4.1", [Dependency.new("org.objenesis", "objenesis")]),
|
|
26
|
+
Dependency.new("opensymphony", "sitemesh", "2.4.2"),
|
|
27
|
+
Dependency.new("javax.servlet", "jstl", "1.2"),
|
|
28
|
+
Dependency.new("org.hibernate", "hibernate-validator", "4.2.0.Final"),
|
|
29
|
+
Dependency.new("joda-time", "joda-time", "2.0"),
|
|
30
|
+
Dependency.new("com.thoughtworks.xstream", "xstream", "1.4.1")]
|
|
31
|
+
|
|
32
|
+
appengine_version = "1.7.2.1"
|
|
33
|
+
dependencies += [Dependency.new("com.googlecode.objectify", "objectify", "3.1"),
|
|
34
|
+
Dependency.new("br.com.caelum", "vraptor3.4-compatible-gae", "1.1"),
|
|
35
|
+
Dependency.new("commons-fileupload", "commons-fileupload", "1.2.2"),
|
|
36
|
+
Dependency.new("com.google.appengine", "appengine-api-1.0-sdk", appengine_version),
|
|
37
|
+
Dependency.new("com.google.appengine", "appengine-api-labs", appengine_version),
|
|
38
|
+
Dependency.new("com.google.appengine", "appengine-jsr107cache", appengine_version),
|
|
39
|
+
Dependency.new("net.sf.jsr107cache", "jsr107cache", "1.1"),
|
|
40
|
+
Dependency.new("org.apache.geronimo.specs", "geronimo-jpa_3.0_spec", "1.1.1")]
|
|
41
|
+
|
|
42
|
+
dependencies
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def append_freemarker_dependency_if_necessary dependencies
|
|
46
|
+
dependencies << Dependency.new("org.freemarker", "freemarker", "2.3.18") if @options[:template_engine] == 'ftl'
|
|
47
|
+
dependencies
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
class HerokuDependencies
|
|
2
|
+
|
|
3
|
+
attr_accessor :options
|
|
4
|
+
|
|
5
|
+
def initialize(options)
|
|
6
|
+
@options = options
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def compile_scope
|
|
10
|
+
dependencies = append_freemarker_dependency_if_necessary default_dependencies
|
|
11
|
+
dependencies
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_scope
|
|
15
|
+
[Dependency.new("junit", "junit", "4.10"),
|
|
16
|
+
Dependency.new("org.hamcrest", "hamcrest-all", "1.1"),
|
|
17
|
+
Dependency.new("org.mockito", "mockito-all", "1.9.0")]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def provided_scope
|
|
21
|
+
return []
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
def default_dependencies
|
|
26
|
+
hibernate_version = "4.0.1.Final"
|
|
27
|
+
dependencies = [Dependency.new("br.com.caelum", "vraptor", "3.4.1"),
|
|
28
|
+
Dependency.new("opensymphony", "sitemesh", "2.4.2"),
|
|
29
|
+
Dependency.new("javax.servlet", "jstl", "1.2"),
|
|
30
|
+
Dependency.new("org.hsqldb", "hsqldb", "2.2.8"),
|
|
31
|
+
Dependency.new("org.hibernate", "hibernate-entitymanager", hibernate_version),
|
|
32
|
+
Dependency.new("org.hibernate", "hibernate-c3p0", hibernate_version),
|
|
33
|
+
Dependency.new("org.hibernate", "hibernate-validator", "4.2.0.Final"),
|
|
34
|
+
Dependency.new("joda-time", "joda-time", "2.0"),
|
|
35
|
+
Dependency.new("com.thoughtworks.xstream", "xstream", "1.4.1")]
|
|
36
|
+
|
|
37
|
+
#heroku
|
|
38
|
+
dependencies += [Dependency.new("org.eclipse.jetty", "jetty-webapp", "7.4.4.v20110707"),
|
|
39
|
+
Dependency.new("org.mortbay.jetty", "jsp-2.1-glassfish", "2.1.v20100127"),
|
|
40
|
+
Dependency.new("javax.servlet", "servlet-api", "2.5")]
|
|
41
|
+
dependencies
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def append_freemarker_dependency_if_necessary dependencies
|
|
45
|
+
dependencies << Dependency.new("org.freemarker", "freemarker", "2.3.18") if @options[:template_engine] == 'ftl'
|
|
46
|
+
dependencies
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -4,16 +4,18 @@ class FreemarkerTemplateEngine < VraptorScaffold::Base
|
|
|
4
4
|
File.join(File.dirname(__FILE__), "templates", "freemarker")
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
-
def initialize(project_path)
|
|
7
|
+
def initialize(project_path, options)
|
|
8
8
|
super
|
|
9
9
|
self.destination_root=(project_path)
|
|
10
10
|
@project_path = project_path
|
|
11
|
+
@options = options
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
def configure
|
|
14
15
|
directory("macros", File.join(Configuration::WEB_APP, "macros"))
|
|
15
16
|
template("../decorators.erb", File.join(Configuration::WEB_INF, "decorators.xml"))
|
|
16
|
-
|
|
17
|
+
template("main.ftl.erb", File.join(Configuration::WEB_INF, decorators_path, "main.ftl"))
|
|
18
|
+
#copy_file("main.ftl", File.join(Configuration::WEB_INF, decorators_path, "main.ftl"))
|
|
17
19
|
directory("infrastructure", infra_path)
|
|
18
20
|
append_freemarker_servlet
|
|
19
21
|
end
|
|
@@ -21,7 +23,7 @@ class FreemarkerTemplateEngine < VraptorScaffold::Base
|
|
|
21
23
|
def extension
|
|
22
24
|
"ftl"
|
|
23
25
|
end
|
|
24
|
-
|
|
26
|
+
|
|
25
27
|
def decorators_path
|
|
26
28
|
File.join "views", "decorators"
|
|
27
29
|
end
|
|
@@ -36,9 +38,9 @@ class FreemarkerTemplateEngine < VraptorScaffold::Base
|
|
|
36
38
|
file = File.join(Configuration::WEB_INF, "web.xml")
|
|
37
39
|
template = File.join FreemarkerTemplateEngine.source_root, "freemarker-web.xml"
|
|
38
40
|
inject_into_file(file, File.read(template), :before => "</web-app>", :verbose => false)
|
|
39
|
-
end
|
|
41
|
+
end
|
|
40
42
|
|
|
41
43
|
def infra_path
|
|
42
44
|
File.join Configuration::MAIN_SRC, package.gsub(".", File::Separator), "infrastructure"
|
|
43
45
|
end
|
|
44
|
-
end
|
|
46
|
+
end
|