You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2014/05/31 06:00:42 UTC

[3/3] git commit: Add ipr.add_glassfish_configuration method for defining a local glassfish configuration within IDEA.

Add ipr.add_glassfish_configuration method for defining a local glassfish configuration within IDEA.


Project: http://git-wip-us.apache.org/repos/asf/buildr/repo
Commit: http://git-wip-us.apache.org/repos/asf/buildr/commit/428c950d
Tree: http://git-wip-us.apache.org/repos/asf/buildr/tree/428c950d
Diff: http://git-wip-us.apache.org/repos/asf/buildr/diff/428c950d

Branch: refs/heads/master
Commit: 428c950d11c6e0cc1b8a7edb8fc51194ba349680
Parents: c21e8e2
Author: Peter Donald <pe...@realityforge.org>
Authored: Sat May 31 14:00:32 2014 +1000
Committer: Peter Donald <pe...@realityforge.org>
Committed: Sat May 31 14:00:32 2014 +1000

----------------------------------------------------------------------
 CHANGELOG              |  2 +
 lib/buildr/ide/idea.rb | 93 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 95 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/buildr/blob/428c950d/CHANGELOG
----------------------------------------------------------------------
diff --git a/CHANGELOG b/CHANGELOG
index 9de217f..2e14d0c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,6 @@
 1.4.18 (Pending)
+* Added:  Add ipr.add_glassfish_configuration method for defining a local
+          glassfish configuration within IDEA.
 * Added:  Add ipr.add_ruby_script_configuration method for defining a ruby
           configuration within IDEA.
 * Added:  Add ipr.add_java_configuration method for defining a java

http://git-wip-us.apache.org/repos/asf/buildr/blob/428c950d/lib/buildr/ide/idea.rb
----------------------------------------------------------------------
diff --git a/lib/buildr/ide/idea.rb b/lib/buildr/ide/idea.rb
index 900a728..1234857 100644
--- a/lib/buildr/ide/idea.rb
+++ b/lib/buildr/ide/idea.rb
@@ -903,6 +903,73 @@ module Buildr #:nodoc:
         end
       end
 
+      def add_glassfish_configuration(project, options = {})
+        artifact_name = options[:name] || project.iml.id
+        server_name = options[:server_name] || 'Glassfish 4.0.0'
+        domain_name = options[:domain] || project.iml.id
+        domain_port = options[:port] || '9009'
+        packaged = options[:packaged] || {}
+        exploded = options[:exploded] || {}
+
+        add_to_composite_component(self.configurations) do |xml|
+          xml.configuration(:name => server_name, :type => 'GlassfishConfiguration', :factoryName => 'Local', :default => false, :APPLICATION_SERVER_NAME => server_name) do |xml|
+            xml.option(:name => 'OPEN_IN_BROWSER', :value => 'false')
+            xml.option(:name => 'UPDATING_POLICY', :value => 'restart-server')
+
+            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.option(:name => 'DOMAIN', :value => domain_name.to_s)
+              server_settings.option(:name => 'PRESERVE', :value => 'false')
+              server_settings.option(:name => 'USERNAME', :value => 'admin')
+              server_settings.option(:name => 'PASSWORD', :value => '')
+            end
+
+            xml.predefined_log_file(:id => 'GlassFish', :enabled => 'true')
+
+            xml.extension(:name => 'coverage', :enabled => 'false', :merge => 'false', :sample_coverage => 'true', :runner => 'idea')
+
+            xml.RunnerSettings(:RunnerId => 'Cover')
+
+            add_glassfish_runner_settings(xml, 'Cover')
+            add_glassfish_configuration_wrapper(xml, 'Cover')
+
+            add_glassfish_runner_settings(xml, 'Debug', {
+              :DEBUG_PORT => domain_port.to_s,
+              :TRANSPORT => '0',
+              :LOCAL => 'true',
+            })
+            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$'
@@ -939,6 +1006,32 @@ module Buildr #:nodoc:
 
       protected
 
+      def add_glassfish_runner_settings(xml, name, options = {})
+        xml.RunnerSettings(:RunnerId => name.to_s) do |runner_settings|
+          options.each do |key, value|
+            runner_settings.option(:name => key.to_s, :value => value.to_s)
+          end
+        end
+      end
+
+      def add_glassfish_configuration_wrapper(xml, name)
+        xml.ConfigurationWrapper(:VM_VAR => 'JAVA_OPTS', :RunnerId => name.to_s) do |configuration_wrapper|
+          configuration_wrapper.option(:name => 'USE_ENV_VARIABLES', :value => 'true')
+          configuration_wrapper.STARTUP do |startup|
+            startup.option(:name => 'USE_DEFAULT', :value => 'true')
+            startup.option(:name => 'SCRIPT', :value => '')
+            startup.option(:name => 'VM_PARAMETERS', :value => '')
+            startup.option(:name => 'PROGRAM_PARAMETERS', :value => '')
+          end
+          configuration_wrapper.SHUTDOWN do |shutdown|
+            shutdown.option(:name => 'USE_DEFAULT', :value => 'true')
+            shutdown.option(:name => 'SCRIPT', :value => '')
+            shutdown.option(:name => 'VM_PARAMETERS', :value => '')
+            shutdown.option(:name => 'PROGRAM_PARAMETERS', :value => '')
+          end
+        end
+      end
+
       def artifact_content(xml, project, projects, options)
         emit_module_output(xml, projects)
         emit_jpa_descriptors(xml, project, options)