buildr 1.5.3-java → 1.5.4-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +25 -1
  3. data/addon/buildr/bnd.rb +8 -2
  4. data/addon/buildr/findbugs.rb +2 -2
  5. data/addon/buildr/gpg.rb +7 -1
  6. data/addon/buildr/gwt.rb +41 -1
  7. data/addon/buildr/jacoco.rb +18 -18
  8. data/addon/buildr/jetty.rb +14 -5
  9. data/addon/buildr/jetty6.rb +243 -0
  10. data/addon/buildr/org/apache/buildr/Jetty6Wrapper$1.class +0 -0
  11. data/addon/buildr/org/apache/buildr/Jetty6Wrapper$BuildrHandler.class +0 -0
  12. data/addon/buildr/org/apache/buildr/Jetty6Wrapper.class +0 -0
  13. data/addon/buildr/org/apache/buildr/Jetty6Wrapper.java +144 -0
  14. data/addon/buildr/org/apache/buildr/JettyWrapper$BuildrHandler.class +0 -0
  15. data/addon/buildr/org/apache/buildr/JettyWrapper.class +0 -0
  16. data/addon/buildr/org/apache/buildr/JettyWrapper.java +13 -13
  17. data/buildr.buildfile +7 -1
  18. data/doc/contributing.textile +0 -19
  19. data/doc/download.textile +18 -6
  20. data/doc/index.textile +20 -12
  21. data/doc/languages.textile +23 -1
  22. data/doc/packaging.textile +21 -0
  23. data/lib/buildr/ide/idea.rb +4 -2
  24. data/lib/buildr/java/commands.rb +1 -1
  25. data/lib/buildr/kotlin.rb +17 -0
  26. data/lib/buildr/kotlin/compiler.rb +282 -0
  27. data/lib/buildr/kotlin/org/apache/buildr/KotlinMessageCollector$1.class +0 -0
  28. data/lib/buildr/kotlin/org/apache/buildr/KotlinMessageCollector.class +0 -0
  29. data/lib/buildr/kotlin/org/apache/buildr/KotlinMessageCollector.java +46 -0
  30. data/lib/buildr/packaging/archive.rb +47 -11
  31. data/lib/buildr/packaging/package.rb +3 -2
  32. data/lib/buildr/packaging/tar.rb +51 -16
  33. data/lib/buildr/packaging/ziptask.rb +45 -17
  34. data/lib/buildr/version.rb +1 -1
  35. data/spec/addon/bnd_spec.rb +80 -20
  36. data/spec/kotlin/compiler_spec.rb +274 -0
  37. data/spec/packaging/archive_spec.rb +30 -0
  38. data/spec/sandbox.rb +1 -0
  39. metadata +13 -3
  40. data/lib/buildr/scala/org/apache/buildr/Specs2Runner.class +0 -0
@@ -0,0 +1,144 @@
1
+ /* Licensed to the Apache Software Foundation (ASF) under one or more
2
+ * contributor license agreements. See the NOTICE file distributed with this
3
+ * work for additional information regarding copyright ownership. The ASF
4
+ * licenses this file to you under the Apache License, Version 2.0 (the
5
+ * "License"); you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ * License for the specific language governing permissions and limitations
14
+ * under the License.
15
+ */
16
+
17
+
18
+ package org.apache.buildr;
19
+
20
+ import org.mortbay.jetty.Server;
21
+ import org.mortbay.jetty.Request;
22
+ import org.mortbay.jetty.Handler;
23
+ import org.mortbay.jetty.handler.AbstractHandler;
24
+ import org.mortbay.jetty.handler.ContextHandler;
25
+ import org.mortbay.jetty.handler.ContextHandlerCollection;
26
+ import org.mortbay.jetty.webapp.WebAppContext;
27
+ import org.mortbay.jetty.webapp.WebAppClassLoader;
28
+
29
+ import javax.servlet.http.HttpServletRequest;
30
+ import javax.servlet.http.HttpServletResponse;
31
+ import javax.servlet.ServletException;
32
+ import java.io.IOException;
33
+ import java.util.HashMap;
34
+
35
+ /**
36
+ * @author Matthieu Riou <mriou at apache dot org>
37
+ */
38
+ public class Jetty6Wrapper {
39
+
40
+ private Server _server;
41
+ private ContextHandlerCollection _handlerColl;
42
+
43
+ public Jetty6Wrapper(int port) throws Exception {
44
+ _server = new Server(port);
45
+ // Adding the buildr handler to control our server lifecycle
46
+ ContextHandler context = new ContextHandler();
47
+ context.setContextPath("/buildr");
48
+ Handler handler = new BuildrHandler();
49
+ context.setHandler(handler);
50
+
51
+ _handlerColl = new ContextHandlerCollection();
52
+ _handlerColl.setHandlers(new Handler[] {context});
53
+
54
+ _server.addHandler(_handlerColl);
55
+ _server.start();
56
+ }
57
+
58
+ /*
59
+ public void join() {
60
+ try {
61
+ _server.join();
62
+ } catch (Exception e) {
63
+ e.printStackTrace();
64
+ }
65
+ }
66
+ */
67
+
68
+ private class BuildrHandler extends AbstractHandler {
69
+
70
+ private HashMap _apps = new HashMap();
71
+
72
+ public void handle(String string, HttpServletRequest request,
73
+ HttpServletResponse response, int i) throws IOException, ServletException {
74
+ response.setContentType("text/html");
75
+ if (request.getPathInfo().equals("/")) {
76
+ response.getWriter().println("Alive");
77
+ ((Request)request).setHandled(true);
78
+ return;
79
+ } else if (request.getPathInfo().equals("/deploy")) {
80
+ try {
81
+ String webapp = request.getParameter("webapp");
82
+ String path = request.getParameter("path");
83
+ System.out.println("Deploying " + webapp + " in " + path);
84
+ WebAppContext context;
85
+
86
+ context = (WebAppContext) _apps.get(path);
87
+ if (context != null) {
88
+ context.stop();
89
+ _handlerColl.removeHandler(context);
90
+ _apps.remove(path);
91
+ }
92
+
93
+ context = new WebAppContext(webapp, path);
94
+ context.setConfigurationClasses(new String[] {
95
+ "org.mortbay.jetty.webapp.WebInfConfiguration",
96
+ "org.mortbay.jetty.webapp.WebXmlConfiguration"});
97
+ context.setClassLoader(new WebAppClassLoader(context));
98
+
99
+ _handlerColl.addHandler(context);
100
+ context.start();
101
+ _apps.put(path, context);
102
+ response.getWriter().println("Deployed");
103
+ response.getWriter().println(context.getTempDirectory());
104
+ ((Request)request).setHandled(true);
105
+ } catch (Throwable e) {
106
+ e.printStackTrace();
107
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
108
+ ((Request)request).setHandled(true);
109
+ return;
110
+ }
111
+ } else if (request.getPathInfo().equals("/undeploy")) {
112
+ try {
113
+ String path = request.getParameter("path");
114
+ WebAppContext context = (WebAppContext) _apps.get(path);
115
+ if (context != null) {
116
+ System.out.println("Undeploying app at " + path);
117
+ context.stop();
118
+ _handlerColl.removeHandler(context);
119
+ _apps.remove(path);
120
+ }
121
+ response.getWriter().println("Undeployed");
122
+ ((Request)request).setHandled(true);
123
+ } catch (Throwable e) {
124
+ e.printStackTrace();
125
+ response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
126
+ ((Request)request).setHandled(true);
127
+ return;
128
+ }
129
+ } else if (request.getPathInfo().equals("/stop")) {
130
+ try {
131
+ _server.stop();
132
+ _server.destroy();
133
+ // Brute force
134
+ System.exit(0);
135
+ } catch (Exception e) {
136
+ e.printStackTrace();
137
+ }
138
+ }
139
+ response.getWriter().println("OK " + request.getPathInfo());
140
+ ((Request)request).setHandled(true);
141
+ }
142
+
143
+ }
144
+ }
@@ -17,14 +17,14 @@
17
17
 
18
18
  package org.apache.buildr;
19
19
 
20
- import org.mortbay.jetty.Server;
21
- import org.mortbay.jetty.Request;
22
- import org.mortbay.jetty.Handler;
23
- import org.mortbay.jetty.handler.AbstractHandler;
24
- import org.mortbay.jetty.handler.ContextHandler;
25
- import org.mortbay.jetty.handler.ContextHandlerCollection;
26
- import org.mortbay.jetty.webapp.WebAppContext;
27
- import org.mortbay.jetty.webapp.WebAppClassLoader;
20
+ import org.eclipse.jetty.server.Server;
21
+ import org.eclipse.jetty.server.Request;
22
+ import org.eclipse.jetty.server.Handler;
23
+ import org.eclipse.jetty.server.handler.AbstractHandler;
24
+ import org.eclipse.jetty.server.handler.ContextHandler;
25
+ import org.eclipse.jetty.server.handler.ContextHandlerCollection;
26
+ import org.eclipse.jetty.webapp.WebAppContext;
27
+ import org.eclipse.jetty.webapp.WebAppClassLoader;
28
28
 
29
29
  import javax.servlet.http.HttpServletRequest;
30
30
  import javax.servlet.http.HttpServletResponse;
@@ -51,7 +51,7 @@ public class JettyWrapper {
51
51
  _handlerColl = new ContextHandlerCollection();
52
52
  _handlerColl.setHandlers(new Handler[] {context});
53
53
 
54
- _server.addHandler(_handlerColl);
54
+ _server.setHandler(_handlerColl);
55
55
  _server.start();
56
56
  }
57
57
 
@@ -69,8 +69,8 @@ public class JettyWrapper {
69
69
 
70
70
  private HashMap _apps = new HashMap();
71
71
 
72
- public void handle(String string, HttpServletRequest request,
73
- HttpServletResponse response, int i) throws IOException, ServletException {
72
+ public void handle(String string, Request req, HttpServletRequest request,
73
+ HttpServletResponse response) throws IOException, ServletException {
74
74
  response.setContentType("text/html");
75
75
  if (request.getPathInfo().equals("/")) {
76
76
  response.getWriter().println("Alive");
@@ -92,8 +92,8 @@ public class JettyWrapper {
92
92
 
93
93
  context = new WebAppContext(webapp, path);
94
94
  context.setConfigurationClasses(new String[] {
95
- "org.mortbay.jetty.webapp.WebInfConfiguration",
96
- "org.mortbay.jetty.webapp.WebXmlConfiguration"});
95
+ "org.eclipse.jetty.webapp.WebInfConfiguration",
96
+ "org.eclipse.jetty.webapp.WebXmlConfiguration"});
97
97
  context.setClassLoader(new WebAppClassLoader(context));
98
98
 
99
99
  _handlerColl.addHandler(context);
@@ -15,8 +15,10 @@
15
15
 
16
16
  $LOADED_FEATURES << 'jruby' unless RUBY_PLATFORM =~ /java/ # Pretend to have JRuby, keeps Nailgun happy.
17
17
  require 'buildr/jetty'
18
+ require 'buildr/jetty6'
18
19
  require 'buildr/nailgun'
19
20
  require 'buildr/scala'
21
+ require 'buildr/kotlin'
20
22
  repositories.remote << 'http://repo1.maven.org/maven2'
21
23
 
22
24
  repositories.remote << 'https://oss.sonatype.org/content/groups/scala-tools'
@@ -31,10 +33,14 @@ define 'buildr' do
31
33
  define 'scala' do
32
34
  compile.using(:javac).from(FileList['lib/buildr/scala/**/*.java']).into('lib/buildr/scala')
33
35
  end
36
+
37
+ define 'kotlin' do
38
+ compile.using(:javac).from(FileList['lib/buildr/kotlin/**/*.java']).into('lib/buildr/kotlin').with(Buildr::Kotlin::Kotlinc.dependencies)
39
+ end
34
40
 
35
41
  desc 'Buildr extra packages (Antlr, Cobertura, Hibernate, Javacc, JDepend, Jetty, OpenJPA, XmlBeans)'
36
42
  define 'extra', :version=>'1.0' do
37
- compile.using(:javac).from(FileList['addon/buildr/**/*.java']).into('addon/buildr').with(Buildr::Jetty::REQUIRES, Buildr::Nailgun::ARTIFACT_SPEC)
43
+ compile.using(:javac).from(FileList['addon/buildr/**/*.java']).into('addon/buildr').with(Buildr::Jetty::REQUIRES, Buildr::Jetty6::REQUIRES, Buildr::Nailgun::ARTIFACT_SPEC)
38
44
  # Legals included in source code and show in RDoc.
39
45
  legal = 'LICENSE', 'NOTICE'
40
46
  package(:gem).include(legal).path('lib').include('addon/buildr')
@@ -99,25 +99,6 @@ The _install_ task creates a Gem in your working directory (_pkg/_) and install
99
99
 
100
100
  Both _setup_ and _install_ tasks use the @sudo@ command on platforms that require it (i.e. not Windows), so there's no need to run @sudo rake@ when working with the Buildr source code.
101
101
 
102
-
103
- h3. Using development build
104
-
105
- Occasionally we'll make development builds from the current code in trunk/head. We appreciate if you can take the time to test those out and report any bugs. To install development builds, use the Gem repository at @people.apache.org/~assaf/buildr/snapshot@:
106
-
107
- {% highlight sh %}
108
- gem source --add http://people.apache.org/~assaf/buildr/snapshot/
109
- {% endhighlight %}
110
-
111
- Since Ruby Gems uses version numbers to detect new releases, if you installed Buildr from a snapshot and want to upgrade to a newer snapshot or the latest official release, you need to use @gem install buildr@ rather than @gem upgrade@.
112
-
113
- If you want to go back to using the RubyForge releases:
114
-
115
- {% highlight sh %}
116
- gem source --remove http://people.apache.org/~assaf/buildr/snapshot/
117
- gem install buildr
118
- {% endhighlight %}
119
-
120
-
121
102
  h2(#testing). Tested and Documented
122
103
 
123
104
  Two things we definitely encourage!
@@ -18,16 +18,28 @@ The source code is included in both source and binary distribution, the Gem dist
18
18
 
19
19
  h2(#dist). Binaries and Source Code
20
20
 
21
+ h3. buildr 1.5.3 (2017-05-17)
22
+
23
+ |_. Package |_. MD5 Checksum |_. PGP |
24
+ | "buildr-1.5.3-java.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.5.3/buildr-1.5.3-java.gem | "873c2bfe3060f4d074dc7464c68af837":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3-java.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3-java.gem.asc |
25
+ | "buildr-1.5.3-x86-mswin32.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.5.3/buildr-1.5.3-x86-mswin32.gem | "5b1bb8a17b55743910c34e5f20a75b7a":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3-x86-mswin32.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3-x86-mswin32.gem.asc |
26
+ | "buildr-1.5.3.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.5.3/buildr-1.5.3.gem | "84c063a3e5f96cd4ea614fe60fb28eac":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3.gem.asc |
27
+ | "buildr-1.5.3.tgz":http://www.apache.org/dyn/closer.cgi/buildr/1.5.3/buildr-1.5.3.tgz | "1bb3198d0f8396c02539f6620dedc098":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3.tgz.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3.tgz.asc |
28
+ | "buildr-1.5.3.zip":http://www.apache.org/dyn/closer.cgi/buildr/1.5.3/buildr-1.5.3.zip | "f8a54f02bac10e714f6f38daca00d7e1":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3.zip.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.3/buildr-1.5.3.zip.asc |
29
+
30
+ p>. ("Release signing keys":http://www.apache.org/dist/buildr/1.5.3/KEYS)
31
+
32
+
21
33
  h3. buildr 1.5.2 (2017-04-03)
22
34
 
23
35
  |_. Package |_. MD5 Checksum |_. PGP |
24
- | "buildr-1.5.2-java.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.5.2/buildr-1.5.2-java.gem | "72ac9122e057112f5699b39ba237432f":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2-java.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2-java.gem.asc |
25
- | "buildr-1.5.2-x86-mswin32.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.5.2/buildr-1.5.2-x86-mswin32.gem | "0b34fd2fc14236bcecc877901d58080d":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2-x86-mswin32.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2-x86-mswin32.gem.asc |
26
- | "buildr-1.5.2.gem":http://www.apache.org/dyn/closer.cgi/buildr/1.5.2/buildr-1.5.2.gem | "6645bfa5380490233affa9adb9e388a1":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2.gem.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2.gem.asc |
27
- | "buildr-1.5.2.tgz":http://www.apache.org/dyn/closer.cgi/buildr/1.5.2/buildr-1.5.2.tgz | "77e4ef6ce1b408943d98c848f86feb10":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2.tgz.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2.tgz.asc |
28
- | "buildr-1.5.2.zip":http://www.apache.org/dyn/closer.cgi/buildr/1.5.2/buildr-1.5.2.zip | "793d86899fd3c3eb326a0ea920b1275a":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2.zip.md5 | "Sig":http://www.apache.org/dist/buildr/1.5.2/buildr-1.5.2.zip.asc |
36
+ | "buildr-1.5.2-java.gem":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2-java.gem | "72ac9122e057112f5699b39ba237432f":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2-java.gem.md5 | "Sig":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2-java.gem.asc |
37
+ | "buildr-1.5.2-x86-mswin32.gem":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2-x86-mswin32.gem | "0b34fd2fc14236bcecc877901d58080d":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2-x86-mswin32.gem.md5 | "Sig":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2-x86-mswin32.gem.asc |
38
+ | "buildr-1.5.2.gem":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.gem | "6645bfa5380490233affa9adb9e388a1":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.gem.md5 | "Sig":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.gem.asc |
39
+ | "buildr-1.5.2.tgz":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.tgz | "77e4ef6ce1b408943d98c848f86feb10":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.tgz.md5 | "Sig":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.tgz.asc |
40
+ | "buildr-1.5.2.zip":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.zip | "793d86899fd3c3eb326a0ea920b1275a":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.zip.md5 | "Sig":http://archive.apache.org/dist/buildr/1.5.2/buildr-1.5.2.zip.asc |
29
41
 
30
- p>. ("Release signing keys":http://www.apache.org/dist/buildr/1.5.2/KEYS)
42
+ p>. ("Release signing keys":http://archive.apache.org/dist/buildr/1.5.2/KEYS)
31
43
 
32
44
 
33
45
  h3. buildr 1.5.1 (2017-03-11)
@@ -46,23 +46,31 @@ So let's get started. You can "read the documentation online":quick_start.html,
46
46
 
47
47
  h2(#news). What's New
48
48
 
49
+ Highlights from Buildr 1.5.4 (2017-11-29)
50
+ * Added: Findbugs Addon: Upgrade to version 3.0.1 of findbugs.
51
+ * Added: GPG Addon: Add boolean configuration setting `project.gpg` that can be set to false via
52
+ `project.gpg = false` to avoid signing and uploading packages. This is useful when some
53
+ projects are not intended for publishing.
54
+ * Fixed: JaCoCo Addon: Projects that have jacoco disabled will no longer appear in the JaCoCo reports.
55
+ * Change: JaCoCo Addon: Update JaCoCo version to 0.7.9.
56
+ * Fixed: BUILDR-733 - Escape classpath entries in the pathing jar manifest. Submitted by Glenn Croes.
57
+ * Fixed: Ensure that the pom is attached to the jar artifact with empty classifier rather than the last
58
+ artifact of a type defined. Otherwise a project that defines multiple artifacts of the same type
59
+ (i.e. `package(:jar)` and `package(:jar, :classifier => :gwt)`) could have the pom named after
60
+ the package with the classifier rather than the package without a classifer. (i.e. the pom could
61
+ be incorrectly defined as `mypackage-1.0.0-gwt.pom` rather than `mypackage-1.0.0.pom`).
62
+ * Added: GWT Addon: Add support for GWT 2.8.2 release and make it the default version unless otherwise specified.
63
+ * Added: BUILDR-732 - Support bnd version 2.1.0 or more. Submitted By Eric Bruneton.
64
+ * Added: Support to compiling Kotlin
65
+ * Added: New way to concatenate file contents when merging several archives together.
66
+ * Added: New way to transform file contents when merging several archives together.
67
+ * Added: Support both Jetty 6 and Jetty 9 as addons. Added integration tests to cover their use.
68
+
49
69
  Highlights from Buildr 1.5.3 (2017-05-17)
50
70
  * Change: Add support for gwt 2.8.1 to gwt addon.
51
71
  * Fixed: Avoid error "undefined local variable or method `pom'" when invoking the `JarTask` without it being
52
72
  registered through the `package` helper`. Reported by Dieter Vrancken.
53
73
 
54
- Highlights from Buildr 1.5.2 (2017-04-03)
55
- * Change: Update TestNG version to 6.11.
56
- * Change: BUILDR-731 - Enhance Sonar addon to support configuration of the project version. Submitted by Ross Mahony.
57
- * Fixed: Fix pom generation to eliminate invalid `classifier` element from being added to POM.
58
-
59
- Highlights from Buildr 1.5.1 (2017-03-11)
60
- * Change: Add css2gss task to gwt addon to support conveting from deprecated css syntax to modern gss syntax.
61
- * Change: Add support for gwt 2.8.0 to gwt addon.
62
- * Change: Update jruby-openssl to 0.9.17
63
- * Change: BUILDR-719 Change User-Agent when uploading artifacts
64
- * Change: BUILDR-709 Integrate `buildr/custom_pom` into core and just make it the default pom generated.
65
-
66
74
  This is a partial list -- see the "CHANGELOG":CHANGELOG for full details.
67
75
 
68
76
  h2(#notices). Credits & Notices
@@ -490,6 +490,29 @@ end
490
490
 
491
491
  The @doc@ task is *not* joint-compilation aware. Thus, it will only generate ScalaDoc for mixed-source projects, it will not attempt to generate both JavaDoc and ScalaDoc.
492
492
 
493
+ h2(#kotlin). Kotlin
494
+
495
+ h3. Compiling Kotlin
496
+
497
+ To start using Kotlin, you must first require it on your Buildfile:
498
+
499
+ {% highlight ruby %}
500
+ require 'buildr/kotlin'
501
+ {% endhighlight %}
502
+
503
+ Any project with a .kt file under the @src/main/kotlin@ directory (by default), compiling them into @target/classes@.
504
+
505
+ If the project has any java files, they will be compiled using javac.
506
+
507
+ |_. Option |_. Usage |
508
+ | @verbose@ | Asks the compiler for verbose output, true when running in verbose mode. |
509
+ | @fork@ | Whether to execute groovyc using a spawned instance of the JVM. Defaults to no. |
510
+ | @warnings@ | Issue warnings when compiling. True when running in verbose mode. |
511
+ | @debug@ | Generates bytecode with debugging information. Set from the debug environment variable/global option. |
512
+ | @optimize@ | Generates faster bytecode by applying optimisations to the program. |
513
+ | @noStdlib@ | Include the Kotlin runtime libraries from KOTLIN_HOME in the classpath of the compiler. |
514
+ | @target@ | Bytecode compatibility. |
515
+ | @javac@ | Hash of options passed to the ant javac task. |
493
516
 
494
517
  h2(#groovy). Groovy
495
518
 
@@ -527,7 +550,6 @@ The Groovy compiler supports the following options:
527
550
  | @target@ | Bytecode compatibility. |
528
551
  | @javac@ | Hash of options passed to the ant javac task. |
529
552
 
530
-
531
553
  h3. Testing with Groovy
532
554
 
533
555
  h4. EasyB
@@ -142,6 +142,8 @@ For example, when you use @package :jar@, under the hood it specifies to include
142
142
 
143
143
  If you need to get rid of all the included files, call the @clean@ method. Some packaging types default to adding various files and directories, for example, JAR packaging will include all the compiled classes and resources.
144
144
 
145
+ h2(#merging). Merging archives
146
+
145
147
  You can also merge two ZIP files together, expanding the content of one ZIP into the other. For example:
146
148
 
147
149
  {% highlight ruby %}
@@ -155,6 +157,25 @@ If you need to be more selective, you can apply the include/exclude pattern to t
155
157
  package(:zip).merge(_('bigbad.war')).exclude('libs/**/*')
156
158
  {% endhighlight %}
157
159
 
160
+ h3(#transforming). Transforming files while merging them
161
+
162
+ You may need to have special treatment for files that you are merging from multiple locations.
163
+
164
+ If you wish to concatenate the file contents, you can perform the following:
165
+
166
+ {% highlight ruby %}
167
+ package(:zip).merge(_('part1.zip'), _('part2.zip')).concatenate('META-INF/services/spring.providers')
168
+ {% endhighlight %}
169
+
170
+ If you need to transform the file contents to assemble the final output, you can work with the @transform@ method.
171
+ The transform method takes a block to process the contents of all the matching paths, as the zip file is assembled.
172
+
173
+ {% highlight ruby %}
174
+ package(:zip).merge(_('part1.zip'), _('part2.zip')).transform('plugin.xml') do |plugin_xml_files|
175
+ return "<plugin>#{plugin_xml_files.map {|xml| xml.match('<plugin>(.*)</plugin>')[1]}}</plugin>"
176
+ end
177
+ {% endhighlight %}
178
+
158
179
 
159
180
  h2(#jar). Packaging JARs
160
181
 
@@ -997,11 +997,13 @@ module Buildr #:nodoc:
997
997
  xml.option(:name => 'RUN_PAGE', :value => launch_page) if launch_page
998
998
  xml.option(:name => 'GWT_MODULE', :value => gwt_module) if gwt_module
999
999
 
1000
+ # noinspection RubySimplifyBooleanInspection
1001
+ xml.option(:name => 'OPEN_IN_BROWSER', :value => false) if options[:open_in_browser] == false
1000
1002
  xml.option(:name => 'START_JAVASCRIPT_DEBUGGER', :value => start_javascript_debugger)
1001
1003
  xml.option(:name => 'USE_SUPER_DEV_MODE', :value => super_dev)
1002
1004
  xml.option(:name => 'SHELL_PARAMETERS', :value => shell_parameters) if shell_parameters
1003
1005
 
1004
- xml.RunnerSettings(:RunnerId => 'Debug') do |xml|
1006
+ xml.RunnerSettings(:RunnerId => 'Debug') do
1005
1007
  xml.option(:name => 'DEBUG_PORT', :value => '')
1006
1008
  xml.option(:name => 'TRANSPORT', :value => 0)
1007
1009
  xml.option(:name => 'LOCAL', :value => true)
@@ -1010,7 +1012,7 @@ module Buildr #:nodoc:
1010
1012
  xml.RunnerSettings(:RunnerId => 'Run')
1011
1013
  xml.ConfigurationWrapper(:RunnerId => 'Run')
1012
1014
  xml.ConfigurationWrapper(:RunnerId => 'Debug')
1013
- xml.method()
1015
+ xml.method
1014
1016
  end
1015
1017
  end
1016
1018
 
@@ -73,7 +73,7 @@ module Java
73
73
  path = File.directory?(c) && !c.end_with?('/') ? "#{c}/" : c.to_s
74
74
  Buildr::Util.win_os? ? "/#{path}" : path
75
75
  end
76
- manifest = Buildr::Packaging::Java::Manifest.new([{'Class-Path' => paths.join(" ")}])
76
+ manifest = Buildr::Packaging::Java::Manifest.new([{'Class-Path' => paths.map{|p| URI.encode(p)}.join(" ")}])
77
77
  tjar = Tempfile.new(['javacmd', '.jar'])
78
78
  Zip::OutputStream.open(tjar.path) do |zos|
79
79
  zos.put_next_entry('META-INF/MANIFEST.MF')