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$'

Reply via email to