Author: donaldp
Date: Thu Apr 18 00:05:13 2013
New Revision: 1469110
URL: http://svn.apache.org/r1469110
Log:
Added support for SuperDevMode in gwt addon and upgraded to GWT 2.5.1 by
default.
Modified:
buildr/trunk/CHANGELOG
buildr/trunk/addon/buildr/gwt.rb
Modified: buildr/trunk/CHANGELOG
URL:
http://svn.apache.org/viewvc/buildr/trunk/CHANGELOG?rev=1469110&r1=1469109&r2=1469110&view=diff
==============================================================================
--- buildr/trunk/CHANGELOG (original)
+++ buildr/trunk/CHANGELOG Thu Apr 18 00:05:13 2013
@@ -1,4 +1,6 @@
1.4.12 (Pending)
+* Added: Added support for SuperDevMode in gwt addon and upgraded to
+ GWT 2.5.1 by default.
* Change: BUILDR-664 Update Checkstyle addon so that extra_dependencies is
empty by default.
* Fixed: BUILDR-663 require 'buildr' fails for Ruby 2.0.0.
Modified: buildr/trunk/addon/buildr/gwt.rb
URL:
http://svn.apache.org/viewvc/buildr/trunk/addon/buildr/gwt.rb?rev=1469110&r1=1469109&r2=1469110&view=diff
==============================================================================
--- buildr/trunk/addon/buildr/gwt.rb (original)
+++ buildr/trunk/addon/buildr/gwt.rb Thu Apr 18 00:05:13 2013
@@ -1,82 +1,127 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with this
-# work for additional information regarding copyright ownership. The ASF
-# licenses this file to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations under
-# the License.
-
-module Buildr
- module GWT
-
- class << self
- # The specs for requirements
- def dependencies
- ['com.google.gwt:gwt-dev:jar:2.4.0']
- end
-
- def gwtc_main(modules, source_artifacts, output_dir, options = {})
- cp = Buildr.artifacts(self.dependencies).each(&:invoke).map(&:to_s) +
Buildr.artifacts(source_artifacts).each(&:invoke).map(&:to_s)
- style = options[:style] || "OBFUSCATED," # "PRETTY", "DETAILED"
- log_level = options[:log_level] # ERROR, WARN, INFO, TRACE, DEBUG,
SPAM, or ALL
- workers = options[:workers] || 2
-
- args = []
- if log_level
- args << "-logLevel"
- args << log_level
- end
- args << "-strict"
- args << "-style"
- args << style
- args << "-localWorkers"
- args << workers
- args << "-war"
- args << output_dir
- if options[:compile_report_dir]
- args << "-compileReport"
- args << "-extra"
- args << options[:compile_report_dir]
- end
-
- if options[:draft_compile]
- args << "-draftCompile"
- end
-
- args += modules
-
- Java::Commands.java 'com.google.gwt.dev.Compiler', *(args +
[{:classpath => cp, :properties => options[:properties], :java_args =>
options[:java_args]}])
- end
- end
-
- module ProjectExtension
- include Extension
-
- def gwt(module_names, options = {})
- output_key = options[:output_key] || project.id
- output_dir = project._(:target, :generated, :gwt, output_key)
- artifacts = (project.compile.sources +
project.resources.sources).collect do |a|
- a.is_a?(String) ? file(a) : a
- end
- dependencies = artifacts(options[:dependencies]) ||
project.compile.dependencies
- task = file(output_dir) do
- Buildr::GWT.gwtc_main(module_names, dependencies + artifacts,
output_dir, options.dup)
- end
- task.enhance(dependencies)
- task.enhance([project.compile])
- task
- end
- end
- end
-end
-
-class Buildr::Project
- include Buildr::GWT::ProjectExtension
-end
\ No newline at end of file
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with this
+# work for additional information regarding copyright ownership. The ASF
+# licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+module Buildr
+ module GWT
+
+ class << self
+ # The specs for requirements
+ def dependencies
+ %w(com.google.gwt:gwt-dev:jar:2.5.1)
+ end
+
+ def gwtc_main(modules, source_artifacts, output_dir, unit_cache_dir,
options = {})
+ cp = Buildr.artifacts(self.dependencies).each(&:invoke).map(&:to_s) +
Buildr.artifacts(source_artifacts).each(&:invoke).map(&:to_s)
+ style = options[:style] || "OBFUSCATED," # "PRETTY", "DETAILED"
+ log_level = options[:log_level] # ERROR, WARN, INFO, TRACE, DEBUG,
SPAM, or ALL
+ workers = options[:workers] || 2
+
+ args = []
+ if log_level
+ args << "-logLevel"
+ args << log_level
+ end
+ args << "-strict"
+ args << "-style"
+ args << style
+ args << "-localWorkers"
+ args << workers
+ args << "-war"
+ args << output_dir
+ if options[:compile_report_dir]
+ args << "-compileReport"
+ args << "-extra"
+ args << options[:compile_report_dir]
+ end
+
+ if options[:draft_compile]
+ args << "-draftCompile"
+ end
+
+ if options[:enable_closure_compiler].nil? ||
options[:enable_closure_compiler]
+ args << "-XenableClosureCompiler"
+ end
+
+ args += modules
+
+ properties = options[:properties] ? options[:properties].dup : {}
+ properties["gwt.persistentunitcache"] = "true"
+ properties["gwt.persistentunitcachedir"] = unit_cache_dir
+
+ Java::Commands.java 'com.google.gwt.dev.Compiler', *(args +
[{:classpath => cp, :properties => properties, :java_args =>
options[:java_args]}])
+ end
+
+ def superdev_dependencies
+ self.dependencies + %w(com.google.gwt:gwt-codeserver:jar:2.5.1)
+ end
+
+ def gwt_superdev(module_name, source_artifacts, work_dir, options = {})
+
+ cp =
Buildr.artifacts(self.superdev_dependencies).each(&:invoke).map(&:to_s) +
Buildr.artifacts(source_artifacts).each(&:invoke).map(&:to_s)
+
+ args = []
+ args << "-port" << (options[:port] || 5050)
+ args << "-workDir" << work_dir
+ (options[:src] || []).each do |src|
+ args << "-src" << src
+ end
+ args << module_name
+
+ properties = options[:properties] ? options[:properties].dup : {}
+
+ java_args = options[:java_args] ? options[:java_args].dup : {}
+
+ Java::Commands.java 'com.google.gwt.dev.codeserver.CodeServer', *(args
+ [{:classpath => cp, :properties => properties, :java_args => java_args}])
+ end
+ end
+
+ module ProjectExtension
+ include Extension
+
+ def gwt(module_names, options = {})
+ output_key = options[:output_key] || project.id
+ output_dir = project._(:target, :generated, :gwt, output_key)
+ artifacts = (project.compile.sources +
project.resources.sources).collect do |a|
+ a.is_a?(String) ? file(a) : a
+ end
+ dependencies = artifacts(options[:dependencies]) ||
project.compile.dependencies
+
+ unit_cache_dir = project._(:target, :gwt, :unit_cache_dir, output_key)
+
+ task = file(output_dir) do
+ Buildr::GWT.gwtc_main(module_names, dependencies + artifacts,
output_dir, unit_cache_dir, options.dup)
+ end
+ task.enhance(dependencies)
+ task.enhance([project.compile])
+ task
+ end
+
+ def gwt_superdev_runner(module_name, options = {})
+ dependencies = artifacts(options[:dependencies]) ||
project.compile.dependencies
+
+ desc "Run Superdev mode"
+ project.task("superdev") do
+ work_dir = project._(:target, :gwt, :superdev)
+ mkdir_p work_dir
+ Buildr::GWT.gwt_superdev(module_name, dependencies, work_dir,
options)
+ end
+ end
+ end
+ end
+end
+
+class Buildr::Project
+ include Buildr::GWT::ProjectExtension
+end