Add support for ipr.add_glassfish_remote_configuration method that generates a remote glassfish configuration in IntelliJ IDEA project files.
Project: http://git-wip-us.apache.org/repos/asf/buildr/repo Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/0ac75c5c Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/0ac75c5c Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/0ac75c5c Branch: refs/heads/master Commit: 0ac75c5c45e659cb66c2f2de39070ef408951b06 Parents: 9657970 Author: Peter Donald <[email protected]> Authored: Sat Feb 28 20:18:56 2015 +1100 Committer: Peter Donald <[email protected]> Committed: Sat Feb 28 20:18:56 2015 +1100 ---------------------------------------------------------------------- CHANGELOG | 2 ++ lib/buildr/ide/idea.rb | 68 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/buildr/blob/0ac75c5c/CHANGELOG ---------------------------------------------------------------------- diff --git a/CHANGELOG b/CHANGELOG index 5fca8dc..e4195cd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,6 @@ 1.4.22 (Pending) +* Added: Add support for ipr.add_glassfish_remote_configuration method that generates + a remote glassfish configuration in IntelliJ IDEA project files. * Added: Add support for iml.prefix and ipr.prefix settings that prefix the generated IntelliJ IDEA project and module files. * Change: Update the buildr gemspec so that rspec is no longer a required dependency. http://git-wip-us.apache.org/repos/asf/buildr/blob/0ac75c5c/lib/buildr/ide/idea.rb ---------------------------------------------------------------------- diff --git a/lib/buildr/ide/idea.rb b/lib/buildr/ide/idea.rb index 893f93b..9d46bcc 100644 --- a/lib/buildr/ide/idea.rb +++ b/lib/buildr/ide/idea.rb @@ -1034,6 +1034,74 @@ module Buildr #:nodoc: end end + def add_glassfish_remote_configuration(project, options = {}) + artifact_name = options[:name] || project.iml.id + version = options[:version] || '4.1.0' + server_name = options[:server_name] || "GlassFish #{version}" + configuration_name = options[:configuration_name] || "Remote #{server_name}" + domain_port = options[:port] || '9009' + packaged = options[:packaged] || {} + exploded = options[:exploded] || {} + + add_to_composite_component(self.configurations) do |xml| + xml.configuration(:name => configuration_name, :type => 'GlassfishConfiguration', :factoryName => 'Remote', :default => false, :APPLICATION_SERVER_NAME => server_name) do |xml| + xml.option(:name => 'LOCAL', :value => 'false') + xml.option(:name => 'UPDATING_POLICY', :value => 'hot-swap-classes') + + xml.deployment do |deployment| + packaged.each do |name, deployable| + artifact = Buildr.artifact(deployable) + artifact.invoke + deployment.file(:path => resolve_path(artifact.to_s)) do |file| + file.settings do |settings| + settings.option(:name => 'contextRoot', :value => "/#{name}") + settings.option(:name => 'defaultContextRoot', :value => 'false') + end + end + end + exploded.each do |deployable_name| + deployment.artifact(:name => deployable_name) do |artifact| + artifact.settings + end + end + end + + xml.tag! 'server-settings' do |server_settings| + server_settings.option(:name => 'VIRTUAL_SERVER') + server_settings.data do |data| + data.option(:name => 'adminServerHost', :value => '') + data.option(:name => 'clusterName', :value => '') + data.option(:name => 'stagingRemotePath', :value => '') + data.option(:name => 'transportHostId') + data.option(:name => 'transportStagingTarget') do |option| + option.TransportTarget do |tt| + tt.option(:name => 'id', :value => 'X') + end + end + end + end + + xml.predefined_log_file(:id => 'GlassFish', :enabled => 'true') + + add_glassfish_runner_settings(xml, 'Debug', { + :DEBUG_PORT => domain_port.to_s, + :TRANSPORT => '0', + :LOCAL => 'false', + }) + add_glassfish_configuration_wrapper(xml, 'Debug') + + add_glassfish_runner_settings(xml, 'Run') + add_glassfish_configuration_wrapper(xml, 'Run') + + xml.method do |method| + method.option(:name => 'BuildArtifacts', :enabled => 'true') do |option| + option.artifact(:name => artifact_name) + end + end + end + end + end + def add_default_testng_configuration(options = {}) jvm_args = options[:jvm_args] || '-ea' dir = options[:dir] || '$PROJECT_DIR$'
