Class: Buildr::IntellijIdea::IdeaModule
Overview
IdeaModule represents an .iml file
Constant Summary
collapse
- DEFAULT_TYPE =
'JAVA_MODULE'
Constants inherited
from IdeaFile
Buildr::IntellijIdea::IdeaFile::DEFAULT_LOCAL_REPOSITORY_ENV_OVERRIDE, Buildr::IntellijIdea::IdeaFile::DEFAULT_PREFIX, Buildr::IntellijIdea::IdeaFile::DEFAULT_SUFFIX
Instance Attribute Summary collapse
Attributes inherited from IdeaFile
#buildr_project, #id, #local_repository_env_override, #prefix, #suffix, #template
Instance Method Summary
collapse
Methods inherited from IdeaFile
#add_component, #add_component_from_artifact, #add_component_from_file, #filename, #name, #write
Constructor Details
Returns a new instance of IdeaModule.
195
196
197
198
|
# File 'lib/buildr/ide/idea.rb', line 195
def initialize
super()
@type = DEFAULT_TYPE
end
|
Instance Attribute Details
Returns the value of attribute facets.
192
193
194
|
# File 'lib/buildr/ide/idea.rb', line 192
def facets
@facets
end
|
Returns the value of attribute group.
191
192
193
|
# File 'lib/buildr/ide/idea.rb', line 191
def group
@group
end
|
#jdk_version ⇒ Object
207
208
209
|
# File 'lib/buildr/ide/idea.rb', line 207
def jdk_version
@jdk_version || buildr_project.compile.options.source || '1.7'
end
|
#main_output_dir ⇒ Object
263
264
265
|
# File 'lib/buildr/ide/idea.rb', line 263
def main_output_dir
@main_output_dir ||= buildr_project._(:target, :main, :idea, :classes)
end
|
#test_output_dir ⇒ Object
269
270
271
|
# File 'lib/buildr/ide/idea.rb', line 269
def test_output_dir
@test_output_dir ||= buildr_project._(:target, :test, :idea, :classes)
end
|
Returns the value of attribute type.
190
191
192
|
# File 'lib/buildr/ide/idea.rb', line 190
def type
@type
end
|
Instance Method Details
#add_ejb_facet(options = {}) ⇒ Object
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
|
# File 'lib/buildr/ide/idea.rb', line 443
def add_ejb_facet(options = {})
name = options[:name] || 'EJB'
default_ejb_roots = [buildr_project.iml.main_source_directories, buildr_project.compile.sources, buildr_project.resources.sources].flatten.compact
ejb_roots = options[:ejb_roots] || default_ejb_roots
default_deployment_descriptors = []
%w(ejb-jar.xml glassfish-ejb-jar.xml ibm-ejb-jar-bnd.xml ibm-ejb-jar-ext-pme.xml ibm-ejb-jar-ext.xml jboss.xml jbosscmp-jdbc.xml openejb-jar.xml sun-cmp-mapping.xml sun-ejb-jar.xml weblogic-cmp-rdbms-jar.xml weblogic-ejb-jar.xml).
each do |descriptor|
ejb_roots.each do |path|
d = "#{path}/WEB-INF/#{descriptor}"
default_deployment_descriptors << d if File.exist?(d)
d = "#{path}/META-INF/#{descriptor}"
default_deployment_descriptors << d if File.exist?(d)
end
end
deployment_descriptors = options[:deployment_descriptors] || default_deployment_descriptors
add_facet(name, 'ejb') do |facet|
facet.configuration do |c|
c.descriptors do |d|
deployment_descriptors.each do |deployment_descriptor|
d.deploymentDescriptor :name => File.basename(deployment_descriptor), :url => file_path(deployment_descriptor)
end
end
c.ejbRoots do |e|
ejb_roots.each do |ejb_root|
e.root :url => file_path(ejb_root)
end
end
end
end
end
|
#add_facet(name, type) ⇒ Object
281
282
283
284
285
286
287
|
# File 'lib/buildr/ide/idea.rb', line 281
def add_facet(name, type)
add_to_composite_component(self.facets) do |xml|
xml.facet(:name => name, :type => type) do |xml|
yield xml if block_given?
end
end
end
|
#add_gwt_facet(modules = {}, options = {}) ⇒ Object
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
|
# File 'lib/buildr/ide/idea.rb', line 297
def add_gwt_facet(modules = {}, options = {})
name = options[:name] || 'GWT'
detected_gwt_version = nil
if options[:gwt_dev_artifact]
a = Buildr.artifact(options[:gwt_dev_artifact])
a.invoke
detected_gwt_version = a.to_s
end
settings =
{
:webFacet => 'Web',
:compilerMaxHeapSize => '512',
:compilerParameters => '-draftCompile -localWorkers 2 -strict',
:gwtScriptOutputStyle => 'PRETTY'
}.merge(options[:settings] || {})
buildr_project.compile.dependencies.each do |d|
if d.to_s =~ /\/com\/google\/gwt\/gwt-dev\/(.*)\//
detected_gwt_version = d.to_s
break
end
end unless detected_gwt_version
if detected_gwt_version
settings[:gwtSdkUrl] = resolve_path(File.dirname(detected_gwt_version))
settings[:gwtSdkType] = 'maven'
else
settings[:gwtSdkUrl] = 'file://$GWT_TOOLS$'
end
add_facet(name, 'gwt') do |f|
f.configuration do |c|
settings.each_pair do |k, v|
c.setting :name => k.to_s, :value => v.to_s
end
c.packaging do |d|
modules.each_pair do |k, v|
d.module :name => k, :enabled => v
end
end
end
end
end
|
#add_jpa_facet(options = {}) ⇒ Object
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
|
# File 'lib/buildr/ide/idea.rb', line 396
def add_jpa_facet(options = {})
name = options[:name] || 'JPA'
source_roots = [buildr_project.iml.main_source_directories, buildr_project.compile.sources, buildr_project.resources.sources].flatten.compact
default_deployment_descriptors = []
['orm.xml', 'persistence.xml'].
each do |descriptor|
source_roots.each do |path|
d = "#{path}/META-INF/#{descriptor}"
default_deployment_descriptors << d if File.exist?(d)
end
end
deployment_descriptors = options[:deployment_descriptors] || default_deployment_descriptors
factory_entry = options[:factory_entry] || buildr_project.name.to_s
validation_enabled = options[:validation_enabled].nil? ? true : options[:validation_enabled]
if options[:provider_enabled]
provider = options[:provider_enabled]
else
provider = nil
{'org.hibernate.ejb.HibernatePersistence' => 'Hibernate',
'org.eclipse.persistence.jpa.PersistenceProvider' => 'EclipseLink'}.
each_pair do |match, candidate_provider|
deployment_descriptors.each do |descriptor|
if File.exist?(descriptor) && /#{Regexp.escape(match)}/ =~ IO.read(descriptor)
provider = candidate_provider
end
end
end
end
add_facet(name, 'jpa') do |f|
f.configuration do |c|
if provider
c.setting :name => 'validation-enabled', :value => validation_enabled
c.setting :name => 'provider-name', :value => provider
end
c.tag!('datasource-mapping') do |ds|
ds.tag!('factory-entry', :name => factory_entry)
end
deployment_descriptors.each do |descriptor|
c.deploymentDescriptor :name => File.basename(descriptor), :url => file_path(descriptor)
end
end
end
end
|
#add_jruby_facet(options = {}) ⇒ Object
381
382
383
384
385
386
387
388
389
390
391
392
393
394
|
# File 'lib/buildr/ide/idea.rb', line 381
def add_jruby_facet(options = {})
name = options[:name] || 'JRuby'
ruby_version_file = buildr_project._('.ruby-version')
default_jruby_version = File.exist?(ruby_version_file) ? "rbenv: #{IO.read(ruby_version_file).strip}" : 'jruby-1.6.7.2'
jruby_version = options[:jruby_version] || default_jruby_version
add_facet(name, 'JRUBY') do |f|
f.configuration do |c|
c.JRUBY_FACET_CONFIG_ID :NAME => 'JRUBY_SDK_NAME', :VALUE => jruby_version
c.LOAD_PATH :number => '0'
c.I18N_FOLDERS :number => '0'
end
end
end
|
#add_web_facet(options = {}) ⇒ Object
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
|
# File 'lib/buildr/ide/idea.rb', line 342
def add_web_facet(options = {})
name = options[:name] || 'Web'
default_webroots = {}
default_webroots[buildr_project._(:source, :main, :webapp)] = '/' if File.exist?(buildr_project._(:source, :main, :webapp))
buildr_project.assets.paths.each {|p| default_webroots[p] = '/' }
webroots = options[:webroots] || default_webroots
default_deployment_descriptors = []
%w(web.xml sun-web.xml glassfish-web.xml jetty-web.xml geronimo-web.xml context.xml weblogic.xml jboss-deployment-structure.xml jboss-web.xml ibm-web-bnd.xml ibm-web-ext.xml ibm-web-ext-pme.xml).
each do |descriptor|
webroots.each_pair do |path, relative_url|
next unless relative_url == '/'
d = "#{path}/WEB-INF/#{descriptor}"
default_deployment_descriptors << d if File.exist?(d)
end
end
deployment_descriptors = options[:deployment_descriptors] || default_deployment_descriptors
add_facet(name, 'web') do |f|
f.configuration do |c|
c.descriptors do |d|
deployment_descriptors.each do |deployment_descriptor|
d.deploymentDescriptor :name => File.basename(deployment_descriptor), :url => file_path(deployment_descriptor)
end
end
c.webroots do |w|
webroots.each_pair do |webroot, relative_url|
w.root :url => file_path(webroot), :relative => relative_url
end
end
end
default_enable_jsf = webroots.keys.any?{|webroot| File.exist?("#{webroot}/WEB-INF/faces-config.xml")}
enable_jsf = options[:enable_jsf].nil? ? default_enable_jsf : options[:enable_jsf]
enable_jsf = false if buildr_project.root_project.ipr? && buildr_project.root_project.ipr.version >= '13'
f.facet(:type => 'jsf', :name => 'JSF') do |jsf|
jsf.configuration
end if enable_jsf
end
end
|
#annotation_paths ⇒ Object
215
216
217
|
# File 'lib/buildr/ide/idea.rb', line 215
def annotation_paths
@annotation_paths ||= [buildr_project._(:source, :main, :annotations)].select {|p| File.exist?(p)}
end
|
#buildr_project=(buildr_project) ⇒ Object
200
201
202
203
204
205
|
# File 'lib/buildr/ide/idea.rb', line 200
def buildr_project=(buildr_project)
@id = nil
@facets = []
@skip_content = false
@buildr_project = buildr_project
end
|
#excluded_directories ⇒ Object
251
252
253
254
255
256
257
258
259
|
# File 'lib/buildr/ide/idea.rb', line 251
def excluded_directories
@excluded_directories ||= [
buildr_project.resources.target,
buildr_project.test.resources.target,
buildr_project.path_to(:target, :main),
buildr_project.path_to(:target, :test),
buildr_project.path_to(:reports)
].flatten.compact
end
|
#extension ⇒ Object
211
212
213
|
# File 'lib/buildr/ide/idea.rb', line 211
def extension
'iml'
end
|
#main_dependencies ⇒ Object
273
274
275
|
# File 'lib/buildr/ide/idea.rb', line 273
def main_dependencies
@main_dependencies ||= buildr_project.compile.dependencies.dup
end
|
#main_generated_resource_directories ⇒ Object
231
232
233
|
# File 'lib/buildr/ide/idea.rb', line 231
def main_generated_resource_directories
@main_generated_resource_directories ||= []
end
|
#main_generated_source_directories ⇒ Object
227
228
229
|
# File 'lib/buildr/ide/idea.rb', line 227
def main_generated_source_directories
@main_generated_source_directories ||= []
end
|
#main_resource_directories ⇒ Object
223
224
225
|
# File 'lib/buildr/ide/idea.rb', line 223
def main_resource_directories
@main_resource_directories ||= [buildr_project.resources.sources].flatten.compact
end
|
#main_source_directories ⇒ Object
219
220
221
|
# File 'lib/buildr/ide/idea.rb', line 219
def main_source_directories
@main_source_directories ||= [buildr_project.compile.sources].flatten.compact
end
|
#skip_content! ⇒ Object
293
294
295
|
# File 'lib/buildr/ide/idea.rb', line 293
def skip_content!
@skip_content = true
end
|
#skip_content? ⇒ Boolean
289
290
291
|
# File 'lib/buildr/ide/idea.rb', line 289
def skip_content?
!!@skip_content
end
|
#test_dependencies ⇒ Object
277
278
279
|
# File 'lib/buildr/ide/idea.rb', line 277
def test_dependencies
@test_dependencies ||= buildr_project.test.compile.dependencies.dup
end
|
#test_generated_resource_directories ⇒ Object
247
248
249
|
# File 'lib/buildr/ide/idea.rb', line 247
def test_generated_resource_directories
@test_generated_resource_directories ||= []
end
|
#test_generated_source_directories ⇒ Object
243
244
245
|
# File 'lib/buildr/ide/idea.rb', line 243
def test_generated_source_directories
@test_generated_source_directories ||= []
end
|
#test_resource_directories ⇒ Object
239
240
241
|
# File 'lib/buildr/ide/idea.rb', line 239
def test_resource_directories
@test_resource_directories ||= [buildr_project.test.resources.sources].flatten.compact
end
|
#test_source_directories ⇒ Object
235
236
237
|
# File 'lib/buildr/ide/idea.rb', line 235
def test_source_directories
@test_source_directories ||= [buildr_project.test.compile.sources].flatten.compact
end
|