picrate 0.7.0-java → 0.8.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -1
- data/.mvn/wrapper/MavenWrapperDownloader.java +117 -0
- data/.mvn/wrapper/maven-wrapper.properties +2 -1
- data/.travis.yml +2 -5
- data/CHANGELOG.md +4 -0
- data/README.md +3 -3
- data/Rakefile +15 -27
- data/docs/_config.yml +1 -1
- data/docs/_posts/2018-05-11-arch-linux-arm.md +1 -1
- data/docs/_posts/2018-11-18-building-gem.md +1 -1
- data/lib/picrate/app.rb +1 -1
- data/lib/picrate/native_folder.rb +1 -1
- data/lib/picrate/version.rb +1 -1
- data/mvnw +127 -51
- data/mvnw.cmd +182 -0
- data/pom.rb +39 -30
- data/pom.xml +50 -37
- data/src/main/java/monkstone/ColorUtil.java +1 -1
- data/src/main/java/monkstone/core/LibraryProxy.java +0 -1
- data/src/main/java/monkstone/noise/SimplexNoise.java +1 -1
- data/src/main/java/monkstone/vecmath/GfxRender.java +87 -0
- data/src/main/java/monkstone/vecmath/ShapeRender.java +1 -1
- data/src/main/java/monkstone/vecmath/vec2/Vec2.java +1 -1
- data/src/main/java/processing/awt/PGraphicsJava2D.java +48 -50
- data/src/main/java/processing/awt/PShapeJava2D.java +10 -0
- data/src/main/java/processing/awt/PSurfaceAWT.java +315 -371
- data/src/main/java/processing/core/PApplet.java +15424 -15495
- data/src/main/java/processing/core/PConstants.java +4 -4
- data/src/main/java/processing/core/PFont.java +394 -369
- data/src/main/java/processing/core/PGraphics.java +11 -10
- data/src/main/java/processing/core/PImage.java +1389 -1435
- data/src/main/java/processing/core/PMatrix2D.java +297 -294
- data/src/main/java/processing/core/PMatrix3D.java +641 -594
- data/src/main/java/processing/core/PShape.java +1755 -1784
- data/src/main/java/processing/core/PShapeOBJ.java +145 -133
- data/src/main/java/processing/core/PShapeSVG.java +808 -801
- data/src/main/java/processing/core/PStyle.java +141 -149
- data/src/main/java/processing/core/PSurface.java +111 -117
- data/src/main/java/processing/core/PSurfaceNone.java +178 -187
- data/src/main/java/processing/javafx/PGraphicsFX2D.java +349 -346
- data/src/main/java/processing/opengl/FontTexture.java +40 -59
- data/src/main/java/processing/opengl/FrameBuffer.java +28 -18
- data/src/main/java/processing/opengl/LinePath.java +7 -7
- data/src/main/java/processing/opengl/LineStroker.java +6 -10
- data/src/main/java/processing/opengl/PGL.java +56 -44
- data/src/main/java/processing/opengl/PGraphicsOpenGL.java +909 -2338
- data/src/main/java/processing/opengl/PJOGL.java +1722 -1763
- data/src/main/java/processing/opengl/PShader.java +1308 -1192
- data/src/main/java/processing/opengl/PShapeOpenGL.java +487 -1811
- data/src/main/java/processing/opengl/PSurfaceJOGL.java +482 -497
- data/src/main/java/processing/opengl/Texture.java +99 -76
- data/src/main/java/processing/opengl/VertexBuffer.java +41 -43
- data/vendors/Rakefile +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b61e2d7b8def114783f856a3c42110aae89c5beaf90e8737c5f5fc203bf2d4d2
|
4
|
+
data.tar.gz: ec972b9e8d0f31e4455c3faac984564f1d6f4608bc71a824d12212c0eba6e5c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3590fff2e8dca810b933a689670c34a2b4cb430e6f5ed536c822808dee52522eae3da2b82ddfe96e23900b6f107669172ec1916f9e3f416bb930bddab620b5e
|
7
|
+
data.tar.gz: 11fd27d89c0ceb023382f7fabbbb4ca13dbae860017b4db199c1fe701d2f7ff08bb569df20f951743ba5e00d4c6b72e7eb0952674128d5b8861bcd59e8e164b0
|
data/.gitignore
CHANGED
@@ -0,0 +1,117 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2007-present the original author or authors.
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* 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,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
import java.net.*;
|
17
|
+
import java.io.*;
|
18
|
+
import java.nio.channels.*;
|
19
|
+
import java.util.Properties;
|
20
|
+
|
21
|
+
public class MavenWrapperDownloader {
|
22
|
+
|
23
|
+
private static final String WRAPPER_VERSION = "0.5.5";
|
24
|
+
/**
|
25
|
+
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
26
|
+
*/
|
27
|
+
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
28
|
+
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
32
|
+
* use instead of the default one.
|
33
|
+
*/
|
34
|
+
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
35
|
+
".mvn/wrapper/maven-wrapper.properties";
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Path where the maven-wrapper.jar will be saved to.
|
39
|
+
*/
|
40
|
+
private static final String MAVEN_WRAPPER_JAR_PATH =
|
41
|
+
".mvn/wrapper/maven-wrapper.jar";
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Name of the property which should be used to override the default download url for the wrapper.
|
45
|
+
*/
|
46
|
+
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
47
|
+
|
48
|
+
public static void main(String args[]) {
|
49
|
+
System.out.println("- Downloader started");
|
50
|
+
File baseDirectory = new File(args[0]);
|
51
|
+
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
52
|
+
|
53
|
+
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
54
|
+
// wrapperUrl parameter.
|
55
|
+
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
56
|
+
String url = DEFAULT_DOWNLOAD_URL;
|
57
|
+
if(mavenWrapperPropertyFile.exists()) {
|
58
|
+
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
59
|
+
try {
|
60
|
+
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
61
|
+
Properties mavenWrapperProperties = new Properties();
|
62
|
+
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
63
|
+
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
64
|
+
} catch (IOException e) {
|
65
|
+
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
66
|
+
} finally {
|
67
|
+
try {
|
68
|
+
if(mavenWrapperPropertyFileInputStream != null) {
|
69
|
+
mavenWrapperPropertyFileInputStream.close();
|
70
|
+
}
|
71
|
+
} catch (IOException e) {
|
72
|
+
// Ignore ...
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
System.out.println("- Downloading from: " + url);
|
77
|
+
|
78
|
+
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
79
|
+
if(!outputFile.getParentFile().exists()) {
|
80
|
+
if(!outputFile.getParentFile().mkdirs()) {
|
81
|
+
System.out.println(
|
82
|
+
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
83
|
+
}
|
84
|
+
}
|
85
|
+
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
86
|
+
try {
|
87
|
+
downloadFileFromURL(url, outputFile);
|
88
|
+
System.out.println("Done");
|
89
|
+
System.exit(0);
|
90
|
+
} catch (Throwable e) {
|
91
|
+
System.out.println("- Error downloading");
|
92
|
+
e.printStackTrace();
|
93
|
+
System.exit(1);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
98
|
+
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
99
|
+
String username = System.getenv("MVNW_USERNAME");
|
100
|
+
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
101
|
+
Authenticator.setDefault(new Authenticator() {
|
102
|
+
@Override
|
103
|
+
protected PasswordAuthentication getPasswordAuthentication() {
|
104
|
+
return new PasswordAuthentication(username, password);
|
105
|
+
}
|
106
|
+
});
|
107
|
+
}
|
108
|
+
URL website = new URL(urlString);
|
109
|
+
ReadableByteChannel rbc;
|
110
|
+
rbc = Channels.newChannel(website.openStream());
|
111
|
+
FileOutputStream fos = new FileOutputStream(destination);
|
112
|
+
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
113
|
+
fos.close();
|
114
|
+
rbc.close();
|
115
|
+
}
|
116
|
+
|
117
|
+
}
|
@@ -1 +1,2 @@
|
|
1
|
-
distributionUrl=https://
|
1
|
+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip
|
2
|
+
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
v0.8.0 Refactor processing code to jdk8 syntax, include lambda, switch on string etc. Make some methods used in constructors (eg allocate) final, might cause breakages? Using maven `release` flag which assumes build with jdk9+ (though targeting 8, which only supports `source` & `release` flags). The Jar manifest is now dynamically created by maven, which allows `travisci` to pass on java build.
|
2
|
+
|
3
|
+
v0.7.1 Oops fix `GfxRender` had not been merged
|
4
|
+
|
1
5
|
v0.7.0 Refactor sketch_writer to load params from ~/.picrate/sketch.yml. `AppRender => GfxRender` because we only need `PGraphics` in renderer.
|
2
6
|
|
3
7
|
v0.6.0 Re-branding with new 'pick'/'eight' svg for PiCrate
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
__C6H3N3O7__ [](https://badge.fury.io/rb/picrate)
|
1
|
+
__C6H3N3O7__ [](https://badge.fury.io/rb/picrate)
|
2
2
|
|
3
3
|
# PiCrate
|
4
4
|
Create processing sketches in ruby on raspberry-pi and linux (this project is a parallel development of [propane][propane] targetting the raspberry-pi, but will initially be developed on a regular linux box). The aim is to produce a gem installable app that can be run with jruby, with minimal dependencies. Drop the `C` and you get pirate, or and an `e` and get `PiCreate`, a happy coincidence?
|
@@ -13,12 +13,12 @@ jgem install picrate
|
|
13
13
|
|
14
14
|
Clone this repo:-
|
15
15
|
|
16
|
-
Requires maven,
|
16
|
+
Requires maven, openjdk11 (to build, uses `release` flag), and a jdk8 and jruby to install.
|
17
17
|
|
18
18
|
```bash
|
19
19
|
cd PiCrate
|
20
20
|
rake # assumes an installed version of vanilla processing
|
21
|
-
jgem install picrate-0.
|
21
|
+
jgem install picrate-0.8.0-java.gem
|
22
22
|
```
|
23
23
|
To create a template sketch:-
|
24
24
|
```bash
|
data/Rakefile
CHANGED
@@ -1,28 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'fileutils'
|
4
|
-
require_relative 'lib/picrate/version'
|
1
|
+
require_relative './lib/picrate/version'
|
5
2
|
|
6
3
|
HOME_DIR = ENV['HOME']
|
7
4
|
|
8
|
-
|
9
|
-
title = 'Implementation-Title: PiCrate'
|
10
|
-
version = format('Implementation-Version: %s', PiCrate::VERSION)
|
11
|
-
File.open('MANIFEST.MF', 'w') do |f|
|
12
|
-
f.puts(title)
|
13
|
-
f.puts(version)
|
14
|
-
f.puts('Class-Path: gluegen-rt.jar jog-all.jar')
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
task default: [:init, :compile, :install, :test, :gem]
|
5
|
+
task default: %i[init compile install test gem]
|
19
6
|
|
20
7
|
# depends on installed processing, with processing on path
|
21
|
-
desc '
|
8
|
+
desc 'Copy Jars'
|
22
9
|
task :init do
|
23
|
-
|
24
|
-
|
25
|
-
|
10
|
+
# for Archlinux etc
|
11
|
+
processing_root = File.dirname(`readlink -f $(which processing)`)
|
12
|
+
# alternative for debian linux etc
|
13
|
+
# processing_root = File.join(HOME_DIR, 'processing-3.5.3')
|
26
14
|
jar_dir = File.join(processing_root, 'core', 'library')
|
27
15
|
opengl = Dir.entries(jar_dir).grep(/amd64|armv6hf/).select { |jar| jar =~ /linux/ }
|
28
16
|
opengl.concat %w[jogl-all.jar gluegen-rt.jar]
|
@@ -38,26 +26,26 @@ end
|
|
38
26
|
|
39
27
|
desc 'Gem'
|
40
28
|
task :gem do
|
41
|
-
|
29
|
+
system 'gem build picrate.gemspec'
|
42
30
|
end
|
43
31
|
|
44
32
|
desc 'Document'
|
45
33
|
task :javadoc do
|
46
|
-
|
34
|
+
system 'mvn javadoc:javadoc'
|
47
35
|
end
|
48
36
|
|
49
37
|
desc 'Compile'
|
50
38
|
task :compile do
|
51
|
-
|
39
|
+
system 'mvn package'
|
52
40
|
end
|
53
41
|
|
54
42
|
desc 'Test'
|
55
43
|
task :test do
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
44
|
+
system 'jruby test/helper_methods_test.rb'
|
45
|
+
system 'jruby test/respond_to_test.rb' # Skip this test on Travis etc
|
46
|
+
system 'jruby test/math_tool_test.rb'
|
47
|
+
system 'jruby test/deglut_spec_test.rb'
|
48
|
+
system 'jruby test/vecmath_spec_test.rb'
|
61
49
|
end
|
62
50
|
|
63
51
|
desc 'clean'
|
data/docs/_config.yml
CHANGED
@@ -3,7 +3,7 @@ port: 4000
|
|
3
3
|
title: PiCrate gem
|
4
4
|
email: mamba2928@yahoo.co.uk
|
5
5
|
description: > # this means to ignore newlines until "baseurl:"
|
6
|
-
The picrate gem is ruby
|
6
|
+
The picrate gem is ruby implementation of processing, targetting raspberrypi and
|
7
7
|
linux
|
8
8
|
baseurl: "" # the subpath of your site, e.g. /blog
|
9
9
|
regenerate: true
|
@@ -8,7 +8,7 @@ It is quite likely that people wishing to experiment with PiCrate on arm have mo
|
|
8
8
|
|
9
9
|
```bash
|
10
10
|
sudo pacman -Syu # get up to data
|
11
|
-
sudo pacman jdk-arm # but I'm not 100% sure what version is installed jdk8 is reqd
|
11
|
+
sudo pacman jdk-arm # but I'm not 100% sure what version is installed jdk8+ is reqd
|
12
12
|
sudo archlinux-java set java-8-openjdk/jre # case you have more than one java installed
|
13
13
|
sudo pacman jruby # should install latest version
|
14
14
|
```
|
@@ -8,7 +8,7 @@ Requirements:-
|
|
8
8
|
|
9
9
|
1. An installed version of vanilla processing to provide `processing.org` customised version of the `jogl` jars. The default `Rakefile` assumes root installation of processing, for debian distros you will need to adjust `processing_root` _ca. line 20_.
|
10
10
|
|
11
|
-
2. jdk-
|
11
|
+
2. jdk-11 and maven (builds for jdk-8)
|
12
12
|
|
13
13
|
Simply clone this distribution, then rake to build and test gem
|
14
14
|
```bash
|
data/lib/picrate/app.rb
CHANGED
@@ -11,7 +11,7 @@ module Processing
|
|
11
11
|
# JRuby::Util.load_ext('monkstone.PicrateLibrary')
|
12
12
|
# A utility to facilitate rendering of Vec2D and Vec3D as vertex
|
13
13
|
module Render
|
14
|
-
java_import 'monkstone.vecmath.
|
14
|
+
java_import 'monkstone.vecmath.GfxRender'
|
15
15
|
java_import 'monkstone.vecmath.ShapeRender'
|
16
16
|
end
|
17
17
|
|
@@ -19,7 +19,7 @@ class NativeFolder
|
|
19
19
|
return format(LINUX_FORMAT, '64') if /amd64/.match?(bit)
|
20
20
|
return format(LINUX_FORMAT, ARM32) if /arm/.match?(bit)
|
21
21
|
end
|
22
|
-
raise RuntimeError, "Unsupported
|
22
|
+
raise RuntimeError, "Unsupported Architecture"
|
23
23
|
end
|
24
24
|
|
25
25
|
def extension
|
data/lib/picrate/version.rb
CHANGED
data/mvnw
CHANGED
@@ -54,38 +54,16 @@ case "`uname`" in
|
|
54
54
|
CYGWIN*) cygwin=true ;;
|
55
55
|
MINGW*) mingw=true;;
|
56
56
|
Darwin*) darwin=true
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
|
69
|
-
#
|
70
|
-
# Apple JDKs
|
71
|
-
#
|
72
|
-
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
|
73
|
-
fi
|
74
|
-
|
75
|
-
if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
|
76
|
-
#
|
77
|
-
# Oracle JDKs
|
78
|
-
#
|
79
|
-
export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
|
80
|
-
fi
|
81
|
-
|
82
|
-
if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
|
83
|
-
#
|
84
|
-
# Apple JDKs
|
85
|
-
#
|
86
|
-
export JAVA_HOME=`/usr/libexec/java_home`
|
87
|
-
fi
|
88
|
-
;;
|
57
|
+
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
58
|
+
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
59
|
+
if [ -z "$JAVA_HOME" ]; then
|
60
|
+
if [ -x "/usr/libexec/java_home" ]; then
|
61
|
+
export JAVA_HOME="`/usr/libexec/java_home`"
|
62
|
+
else
|
63
|
+
export JAVA_HOME="/Library/Java/Home"
|
64
|
+
fi
|
65
|
+
fi
|
66
|
+
;;
|
89
67
|
esac
|
90
68
|
|
91
69
|
if [ -z "$JAVA_HOME" ] ; then
|
@@ -130,13 +108,12 @@ if $cygwin ; then
|
|
130
108
|
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
|
131
109
|
fi
|
132
110
|
|
133
|
-
# For
|
111
|
+
# For Mingw, ensure paths are in UNIX format before anything is touched
|
134
112
|
if $mingw ; then
|
135
113
|
[ -n "$M2_HOME" ] &&
|
136
114
|
M2_HOME="`(cd "$M2_HOME"; pwd)`"
|
137
115
|
[ -n "$JAVA_HOME" ] &&
|
138
116
|
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
|
139
|
-
# TODO classpath?
|
140
117
|
fi
|
141
118
|
|
142
119
|
if [ -z "$JAVA_HOME" ]; then
|
@@ -184,27 +161,28 @@ fi
|
|
184
161
|
|
185
162
|
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
186
163
|
|
187
|
-
# For Cygwin, switch paths to Windows format before running java
|
188
|
-
if $cygwin; then
|
189
|
-
[ -n "$M2_HOME" ] &&
|
190
|
-
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
191
|
-
[ -n "$JAVA_HOME" ] &&
|
192
|
-
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
193
|
-
[ -n "$CLASSPATH" ] &&
|
194
|
-
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
195
|
-
fi
|
196
|
-
|
197
164
|
# traverses directory structure from process work directory to filesystem root
|
198
165
|
# first directory with .mvn subdirectory is considered project base directory
|
199
166
|
find_maven_basedir() {
|
200
|
-
|
201
|
-
|
167
|
+
|
168
|
+
if [ -z "$1" ]
|
169
|
+
then
|
170
|
+
echo "Path not specified to find_maven_basedir"
|
171
|
+
return 1
|
172
|
+
fi
|
173
|
+
|
174
|
+
basedir="$1"
|
175
|
+
wdir="$1"
|
202
176
|
while [ "$wdir" != '/' ] ; do
|
203
177
|
if [ -d "$wdir"/.mvn ] ; then
|
204
178
|
basedir=$wdir
|
205
179
|
break
|
206
180
|
fi
|
207
|
-
|
181
|
+
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
182
|
+
if [ -d "${wdir}" ]; then
|
183
|
+
wdir=`cd "$wdir/.."; pwd`
|
184
|
+
fi
|
185
|
+
# end of workaround
|
208
186
|
done
|
209
187
|
echo "${basedir}"
|
210
188
|
}
|
@@ -216,10 +194,109 @@ concat_lines() {
|
|
216
194
|
fi
|
217
195
|
}
|
218
196
|
|
219
|
-
|
197
|
+
BASE_DIR=`find_maven_basedir "$(pwd)"`
|
198
|
+
if [ -z "$BASE_DIR" ]; then
|
199
|
+
exit 1;
|
200
|
+
fi
|
201
|
+
|
202
|
+
##########################################################################################
|
203
|
+
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
204
|
+
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
205
|
+
##########################################################################################
|
206
|
+
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
207
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
208
|
+
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
209
|
+
fi
|
210
|
+
else
|
211
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
212
|
+
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
213
|
+
fi
|
214
|
+
if [ -n "$MVNW_REPOURL" ]; then
|
215
|
+
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
|
216
|
+
else
|
217
|
+
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
|
218
|
+
fi
|
219
|
+
while IFS="=" read key value; do
|
220
|
+
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
|
221
|
+
esac
|
222
|
+
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
223
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
224
|
+
echo "Downloading from: $jarUrl"
|
225
|
+
fi
|
226
|
+
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
227
|
+
if $cygwin; then
|
228
|
+
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
|
229
|
+
fi
|
230
|
+
|
231
|
+
if command -v wget > /dev/null; then
|
232
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
233
|
+
echo "Found wget ... using wget"
|
234
|
+
fi
|
235
|
+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
236
|
+
wget "$jarUrl" -O "$wrapperJarPath"
|
237
|
+
else
|
238
|
+
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
|
239
|
+
fi
|
240
|
+
elif command -v curl > /dev/null; then
|
241
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
242
|
+
echo "Found curl ... using curl"
|
243
|
+
fi
|
244
|
+
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
245
|
+
curl -o "$wrapperJarPath" "$jarUrl" -f
|
246
|
+
else
|
247
|
+
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
248
|
+
fi
|
249
|
+
|
250
|
+
else
|
251
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
252
|
+
echo "Falling back to using Java to download"
|
253
|
+
fi
|
254
|
+
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
255
|
+
# For Cygwin, switch paths to Windows format before running javac
|
256
|
+
if $cygwin; then
|
257
|
+
javaClass=`cygpath --path --windows "$javaClass"`
|
258
|
+
fi
|
259
|
+
if [ -e "$javaClass" ]; then
|
260
|
+
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
261
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
262
|
+
echo " - Compiling MavenWrapperDownloader.java ..."
|
263
|
+
fi
|
264
|
+
# Compiling the Java class
|
265
|
+
("$JAVA_HOME/bin/javac" "$javaClass")
|
266
|
+
fi
|
267
|
+
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
268
|
+
# Running the downloader
|
269
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
270
|
+
echo " - Running MavenWrapperDownloader.java ..."
|
271
|
+
fi
|
272
|
+
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
273
|
+
fi
|
274
|
+
fi
|
275
|
+
fi
|
276
|
+
fi
|
277
|
+
##########################################################################################
|
278
|
+
# End of extension
|
279
|
+
##########################################################################################
|
280
|
+
|
281
|
+
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
282
|
+
if [ "$MVNW_VERBOSE" = true ]; then
|
283
|
+
echo $MAVEN_PROJECTBASEDIR
|
284
|
+
fi
|
220
285
|
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
221
286
|
|
222
|
-
#
|
287
|
+
# For Cygwin, switch paths to Windows format before running java
|
288
|
+
if $cygwin; then
|
289
|
+
[ -n "$M2_HOME" ] &&
|
290
|
+
M2_HOME=`cygpath --path --windows "$M2_HOME"`
|
291
|
+
[ -n "$JAVA_HOME" ] &&
|
292
|
+
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
|
293
|
+
[ -n "$CLASSPATH" ] &&
|
294
|
+
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
|
295
|
+
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
296
|
+
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
|
297
|
+
fi
|
298
|
+
|
299
|
+
# Provide a "standardized" way to retrieve the CLI args that will
|
223
300
|
# work with both Windows and non-Windows executions.
|
224
301
|
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
225
302
|
export MAVEN_CMD_LINE_ARGS
|
@@ -230,5 +307,4 @@ exec "$JAVACMD" \
|
|
230
307
|
$MAVEN_OPTS \
|
231
308
|
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
232
309
|
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
233
|
-
${WRAPPER_LAUNCHER} $
|
234
|
-
|
310
|
+
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|